[qmapshack] 01/10: New upstream version 1.11.0

Bas Couwenberg sebastic at debian.org
Mon Mar 5 18:23:04 UTC 2018


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository qmapshack.

commit a1d5b4c9c88bf261af5af31356be933b70a02f7c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Mon Mar 5 15:22:28 2018 +0100

    New upstream version 1.11.0
---
 3rdparty/alglib/src/ap.cpp                         |     8 +-
 3rdparty/alglib/src/linalg.cpp                     |     6 +-
 3rdparty/alglib/src/optimization.cpp               |     8 +-
 CMakeLists.txt                                     |   255 +-
 CMakeLists.txt.user                                |   202 +-
 CPackConfig.cmake                                  |     6 +-
 ConfigureChecks.cmake                              |     2 +-
 README.md                                          |     2 +-
 changelog.txt                                      |    17 +
 cmake/Modules/DefineCompilerFlags.cmake            |    29 +
 cmake/Modules/DefineInstallationPaths.cmake        |    22 +-
 config.h.cmake                                     |     2 +-
 msvc_64/QMapShack_Installer.nsi                    |    39 +-
 msvc_64/QMapTool.ico                               |   Bin 0 -> 75110 bytes
 msvc_64/copyfiles.bat                              |     7 +-
 qmaptool.1                                         |    45 +
 qmaptool.desktop.in                                |    15 +
 qmt_rgb2pct.1                                      |    68 +
 src/CAbout.cpp                                     |    57 -
 src/CMainWindow.cpp                                |  1545 ---
 src/CMainWindow.h                                  |   183 -
 src/CMakeLists.txt                                 |   890 --
 src/IMainWindow.ui                                 |   865 --
 src/canvas/CCanvas.cpp                             |  1071 --
 src/canvas/CCanvas.h                               |   247 -
 src/canvas/CCanvasSetup.cpp                        |    74 -
 src/canvas/ICanvasSetup.ui                         |   141 -
 src/cursors/cursorPointAdd.png                     |   Bin 1342 -> 1366 bytes
 src/cursors/cursorPointDel.png                     |   Bin 1390 -> 1354 bytes
 src/cursors/cursorPointMove.png                    |   Bin 1440 -> 1501 bytes
 src/device/IDevice.cpp                             |   404 -
 src/device/IDevice.h                               |   120 -
 src/gis/CGisDatabase.cpp                           |    60 -
 src/gis/CGisDatabase.h                             |    49 -
 src/gis/CGisDraw.cpp                               |    67 -
 src/gis/CGisDraw.h                                 |    40 -
 src/gis/CGisListDB.cpp                             |  1082 --
 src/gis/CGisListDB.h                               |   115 -
 src/gis/CGisListWks.cpp                            |  2102 ----
 src/gis/CGisListWks.h                              |   203 -
 src/gis/CGisWorkspace.cpp                          |  1128 --
 src/gis/CGisWorkspace.h                            |   448 -
 src/gis/IGisDatabase.ui                            |   123 -
 src/gis/IGisItem.cpp                               |   902 --
 src/gis/IGisItem.h                                 |   618 --
 src/gis/IGisLine.h                                 |    69 -
 src/gis/IGisWorkspace.ui                           |   170 -
 src/gis/db/CDBFolderMysql.cpp                      |    95 -
 src/gis/db/CDBFolderMysql.h                        |    56 -
 src/gis/db/CDBFolderSqlite.cpp                     |    89 -
 src/gis/db/CDBFolderSqlite.h                       |    48 -
 src/gis/db/CDBProject.cpp                          |   877 --
 src/gis/db/CDBProject.h                            |   163 -
 src/gis/db/CSelectDBFolder.cpp                     |   105 -
 src/gis/db/CSelectDBFolder.h                       |    43 -
 src/gis/db/CSelectSaveAction.cpp                   |    71 -
 src/gis/db/CSetupDatabase.cpp                      |   164 -
 src/gis/db/IDBFolder.cpp                           |   640 --
 src/gis/db/IDBFolder.h                             |   214 -
 src/gis/db/IDBFolderSql.cpp                        |   154 -
 src/gis/ovl/CDetailsOvlArea.cpp                    |   245 -
 src/gis/ovl/CDetailsOvlArea.h                      |    59 -
 src/gis/ovl/CGisItemOvlArea.cpp                    |   545 -
 src/gis/ovl/CGisItemOvlArea.h                      |   190 -
 src/gis/ovl/CScrOptOvlArea.cpp                     |    94 -
 src/gis/ovl/CScrOptOvlArea.h                       |    51 -
 src/gis/ovl/IDetailsOvlArea.ui                     |   368 -
 src/gis/ovl/IScrOptOvlArea.ui                      |   134 -
 src/gis/prj/CDetailsPrj.cpp                        |   942 --
 src/gis/prj/IGisProject.cpp                        |  1214 ---
 src/gis/prj/IGisProject.h                          |   587 -
 src/gis/rte/CDetailsRte.cpp                        |   164 -
 src/gis/rte/CGisItemRte.cpp                        |  1217 ---
 src/gis/rte/CGisItemRte.h                          |   245 -
 src/gis/rte/CScrOptRte.cpp                         |   134 -
 src/gis/rte/CScrOptRte.h                           |    56 -
 src/gis/rte/IDetailsRte.ui                         |   272 -
 src/gis/rte/IScrOptRte.ui                          |   190 -
 src/gis/rte/router/CRouterBRouter.cpp              |   636 --
 src/gis/rte/router/CRouterBRouter.h                |   106 -
 src/gis/rte/router/CRouterSetup.cpp                |    96 -
 src/gis/rte/router/IRouter.h                       |    65 -
 src/gis/rte/router/IRouterBRouter.ui               |   259 -
 src/gis/rte/router/IRouterMapQuest.ui              |   117 -
 src/gis/rte/router/IRouterRoutino.ui               |   139 -
 src/gis/rte/router/IRouterSetup.ui                 |    49 -
 src/gis/rte/router/brouter/CRouterBRouterSetup.cpp |   625 --
 src/gis/rte/router/brouter/CRouterBRouterSetup.h   |   148 -
 .../router/brouter/CRouterBRouterSetupWizard.cpp   |   952 --
 .../rte/router/brouter/CRouterBRouterToolShell.cpp |    85 -
 .../rte/router/brouter/CRouterBRouterToolShell.h   |    53 -
 .../router/brouter/IRouterBRouterSetupWizard.ui    |   682 --
 src/gis/trk/CCombineTrk.cpp                        |   226 -
 src/gis/trk/CDetailsTrk.cpp                        |   692 --
 src/gis/trk/CGisItemTrk.cpp                        |  2680 -----
 src/gis/trk/CGisItemTrk.h                          |   923 --
 src/gis/trk/CScrOptTrk.cpp                         |   172 -
 src/gis/trk/CScrOptTrk.h                           |    59 -
 src/gis/trk/CTableTrk.cpp                          |   205 -
 src/gis/trk/CTrackData.cpp                         |   182 -
 src/gis/trk/CTrackData.h                           |   266 -
 src/gis/trk/IDetailsTrk.ui                         |  1650 ---
 src/gis/trk/IScrOptTrk.ui                          |   237 -
 src/gis/trk/filter/CFilterSpeed.cpp                |    51 -
 src/gis/trk/filter/CFilterSpeed.h                  |    42 -
 src/gis/trk/filter/IFilterSpeed.ui                 |   122 -
 src/gis/trk/filter/filter.cpp                      |   395 -
 src/gis/wpt/CDetailsWpt.cpp                        |   245 -
 src/gis/wpt/CGisItemWpt.cpp                        |   948 --
 src/gis/wpt/CGisItemWpt.h                          |   394 -
 src/gis/wpt/CScrOptWpt.cpp                         |   144 -
 src/gis/wpt/CScrOptWptRadius.cpp                   |    98 -
 src/gis/wpt/IDetailsWpt.ui                         |   462 -
 src/gis/wpt/IScrOptWpt.ui                          |   266 -
 src/gis/wpt/IScrOptWptRadius.ui                    |   144 -
 src/grid/CGridSetup.cpp                            |    93 -
 src/grid/CProjWizard.cpp                           |   232 -
 src/grid/CProjWizard.h                             |    44 -
 src/grid/IGridSetup.ui                             |   231 -
 src/grid/IProjWizard.ui                            |   210 -
 src/helpers/CDraw.cpp                              |   202 -
 src/helpers/CDraw.h                                |    93 -
 src/helpers/CSelectCopyAction.cpp                  |    96 -
 src/helpers/CToolBarSetupDialog.cpp                |   109 -
 src/icons/16x16/Aircraft.png                       |   Bin 0 -> 656 bytes
 .../{hicolor/16x16/apps => 16x16}/QMapShack.png    |   Bin
 src/icons/16x16/QMapTool.png                       |   Bin 0 -> 814 bytes
 src/icons/32x32/AddOverview.png                    |   Bin 0 -> 852 bytes
 src/icons/32x32/Aircraft.png                       |   Bin 0 -> 1312 bytes
 src/icons/32x32/CombineMap.png                     |   Bin 0 -> 567 bytes
 src/icons/32x32/CutMap.png                         |   Bin 0 -> 621 bytes
 src/icons/32x32/GridTool.png                       |   Bin 0 -> 1641 bytes
 .../32x32/{GridWizzard.png => GridWizard.png}      |   Bin
 src/icons/32x32/LoadGcp.png                        |   Bin 0 -> 860 bytes
 src/icons/32x32/LoadShape.png                      |   Bin 0 -> 902 bytes
 src/icons/32x32/LogProject.png                     |   Bin 1279 -> 1154 bytes
 src/icons/32x32/NoGo.png                           |   Bin 1390 -> 940 bytes
 src/icons/32x32/NotPossible.png                    |   Bin 0 -> 1548 bytes
 src/icons/32x32/OpenSky.png                        |   Bin 0 -> 612 bytes
 src/icons/32x32/Pause.png                          |   Bin 0 -> 257 bytes
 src/icons/32x32/PointAdd.png                       |   Bin 581 -> 614 bytes
 src/icons/32x32/PointDel.png                       |   Bin 738 -> 613 bytes
 src/icons/32x32/PointDelAll.png                    |   Bin 0 -> 963 bytes
 src/icons/32x32/PointMove.png                      |   Bin 975 -> 1078 bytes
 src/icons/32x32/QMapTool.png                       |   Bin 0 -> 1845 bytes
 src/icons/32x32/Rasterize.png                      |   Bin 0 -> 806 bytes
 src/icons/32x32/Record.png                         |   Bin 0 -> 950 bytes
 src/icons/32x32/RefAdd.png                         |   Bin 0 -> 680 bytes
 src/icons/32x32/RefDel.png                         |   Bin 0 -> 710 bytes
 src/icons/32x32/RefDelAll.png                      |   Bin 0 -> 897 bytes
 src/icons/32x32/RefMove.png                        |   Bin 0 -> 1106 bytes
 src/icons/32x32/RefMoveAuto.png                    |   Bin 0 -> 965 bytes
 src/icons/32x32/ReferenceMap.png                   |   Bin 0 -> 595 bytes
 src/icons/32x32/RegularScreen.png                  |   Bin 857 -> 937 bytes
 src/icons/32x32/Reload.png                         |   Bin 0 -> 1162 bytes
 src/icons/32x32/SaveGcp.png                        |   Bin 0 -> 785 bytes
 src/icons/32x32/SaveShape.png                      |   Bin 0 -> 807 bytes
 src/icons/32x32/SelectColor.png                    |   Bin 1640 -> 1668 bytes
 src/icons/32x32/SetupSummary.png                   |   Bin 0 -> 1421 bytes
 src/icons/32x32/ShowSummary.png                    |   Bin 0 -> 1196 bytes
 src/icons/32x32/SmlProject.png                     |   Bin 1222 -> 1150 bytes
 src/icons/32x32/Sort.png                           |   Bin 0 -> 573 bytes
 src/icons/32x32/ToggleRealTime.png                 |   Bin 0 -> 935 bytes
 src/icons/32x32/WptAvoid.png                       |   Bin 1736 -> 1729 bytes
 src/icons/32x32/WptDelProx.png                     |   Bin 711 -> 766 bytes
 src/icons/32x32/WptEditProx.png                    |   Bin 1134 -> 1190 bytes
 src/icons/48x48/AddOverview.png                    |   Bin 0 -> 1431 bytes
 src/icons/48x48/Aircraft.png                       |   Bin 0 -> 1936 bytes
 src/icons/48x48/CombineMap.png                     |   Bin 0 -> 640 bytes
 src/icons/48x48/CutMap.png                         |   Bin 0 -> 854 bytes
 src/icons/48x48/GridTool.png                       |   Bin 0 -> 2760 bytes
 .../48x48/{GridWizzard.png => GridWizard.png}      |   Bin
 src/icons/48x48/LoadGcp.png                        |   Bin 0 -> 1263 bytes
 src/icons/48x48/LoadShape.png                      |   Bin 0 -> 1182 bytes
 src/icons/48x48/LogProject.png                     |   Bin 1888 -> 1780 bytes
 src/icons/48x48/NoGo.png                           |   Bin 2176 -> 1559 bytes
 src/icons/48x48/NotPossible.png                    |   Bin 0 -> 2424 bytes
 src/icons/48x48/OpenSky.png                        |   Bin 0 -> 877 bytes
 src/icons/48x48/Pause.png                          |   Bin 0 -> 293 bytes
 src/icons/48x48/PointAdd.png                       |   Bin 769 -> 790 bytes
 src/icons/48x48/PointDel.png                       |   Bin 1023 -> 844 bytes
 src/icons/48x48/PointDelAll.png                    |   Bin 0 -> 1297 bytes
 src/icons/48x48/PointMove.png                      |   Bin 1425 -> 1528 bytes
 src/icons/48x48/QMapTool.png                       |   Bin 0 -> 3099 bytes
 src/icons/48x48/Rasterize.png                      |   Bin 0 -> 1176 bytes
 src/icons/48x48/Record.png                         |   Bin 0 -> 1386 bytes
 src/icons/48x48/RefAdd.png                         |   Bin 0 -> 932 bytes
 src/icons/48x48/RefDel.png                         |   Bin 0 -> 971 bytes
 src/icons/48x48/RefDelAll.png                      |   Bin 0 -> 1294 bytes
 src/icons/48x48/RefMove.png                        |   Bin 0 -> 1572 bytes
 src/icons/48x48/RefMoveAuto.png                    |   Bin 0 -> 1408 bytes
 src/icons/48x48/ReferenceMap.png                   |   Bin 0 -> 894 bytes
 src/icons/48x48/RegularScreen.png                  |   Bin 1150 -> 1229 bytes
 src/icons/48x48/Reload.png                         |   Bin 0 -> 1794 bytes
 src/icons/48x48/SaveGcp.png                        |   Bin 0 -> 1063 bytes
 src/icons/48x48/SaveShape.png                      |   Bin 0 -> 1008 bytes
 src/icons/48x48/SelectColor.png                    |   Bin 2573 -> 2638 bytes
 src/icons/48x48/SetupSummary.png                   |   Bin 0 -> 2412 bytes
 src/icons/48x48/ShowSummary.png                    |   Bin 0 -> 1943 bytes
 src/icons/48x48/SmlProject.png                     |   Bin 1814 -> 1793 bytes
 src/icons/48x48/Sort.png                           |   Bin 0 -> 768 bytes
 src/icons/48x48/ToggleRealTime.png                 |   Bin 0 -> 1379 bytes
 src/icons/48x48/WptAvoid.png                       |   Bin 2794 -> 2804 bytes
 src/icons/48x48/WptDelProx.png                     |   Bin 1110 -> 1124 bytes
 src/icons/48x48/WptEditProx.png                    |   Bin 1780 -> 1835 bytes
 src/icons/{hicolor/8x8/apps => 8x8}/QMapShack.png  |   Bin
 src/icons/8x8/QMapTool.png                         |   Bin 0 -> 377 bytes
 src/icons/AddOverview.svg                          |    78 +
 src/icons/Aircraft.svg                             |    75 +
 src/icons/CombineMap.svg                           |    81 +
 src/icons/CutMap.svg                               |    73 +
 src/icons/GridTool.svg                             |   116 +
 src/icons/{GridWizzard.svg => GridWizard.svg}      |     0
 src/icons/LoadGcp.svg                              |   121 +
 src/icons/LoadShape.svg                            |    80 +
 src/icons/LogProject.svg                           |     0
 src/icons/NoGo.svg                                 |    32 +-
 src/icons/NotPossible.svg                          |    84 +
 src/icons/OpenSky.svg                              |    97 +
 src/icons/Pause.svg                                |    88 +
 src/icons/PointAdd.svg                             |    10 +-
 src/icons/PointDel.svg                             |    10 +-
 src/icons/PointDelAll.svg                          |    79 +
 src/icons/PointMove.svg                            |    36 +-
 src/icons/QMapTool.svg                             |  2222 ++++
 src/icons/Rasterize.svg                            |   142 +
 src/icons/Record.svg                               |    88 +
 src/icons/RefAdd.svg                               |   359 +
 src/icons/RefDel.svg                               |   356 +
 src/icons/RefDelAll.svg                            |   117 +
 src/icons/RefMove.svg                              |   416 +
 src/icons/RefMoveAuto.svg                          |   394 +
 src/icons/ReferenceMap.svg                         |   107 +
 src/icons/Reload.svg                               |    64 +
 src/icons/SaveGcp.svg                              |   139 +
 src/icons/SaveShape.svg                            |    98 +
 src/icons/SelectColor.svg                          |   224 +-
 src/icons/SetupSummary.svg                         |    83 +
 src/icons/ShowSummary.svg                          |   111 +
 src/icons/Sort.svg                                 |   387 +
 src/icons/ToggleRealTime.svg                       |   113 +
 src/icons/hicolor/scalable/apps/QMapShack.svg      |  2117 ----
 src/icons/makeicons                                |    61 +-
 .../hicolor/128x128/apps/QMapShack.png             |   Bin
 .../hicolor/16x16/apps/QMapShack.png               |   Bin
 .../hicolor/192x192/apps/QMapShack.png             |   Bin
 .../hicolor/22x22/apps/QMapShack.png               |   Bin
 .../hicolor/24x24/apps/QMapShack.png               |   Bin
 .../hicolor/256x256/apps/QMapShack.png             |   Bin
 .../hicolor/32x32/apps/QMapShack.png               |   Bin
 .../hicolor/36x36/apps/QMapShack.png               |   Bin
 .../hicolor/40x40/apps/QMapShack.png               |   Bin
 .../hicolor/42x42/apps/QMapShack.png               |   Bin
 .../hicolor/48x48/apps/QMapShack.png               |   Bin
 .../hicolor/512x512/apps/QMapShack.png             |   Bin
 .../hicolor/64x64/apps/QMapShack.png               |   Bin
 .../hicolor/72x72/apps/QMapShack.png               |   Bin
 .../hicolor/80x80/apps/QMapShack.png               |   Bin
 .../{ => qmapshack}/hicolor/8x8/apps/QMapShack.png |   Bin
 .../hicolor/96x96/apps/QMapShack.png               |   Bin
 .../qmaptool/hicolor/128x128/apps/QMapTool.png     |   Bin 0 -> 10969 bytes
 src/icons/qmaptool/hicolor/16x16/apps/QMapTool.png |   Bin 0 -> 814 bytes
 .../qmaptool/hicolor/192x192/apps/QMapTool.png     |   Bin 0 -> 18316 bytes
 src/icons/qmaptool/hicolor/22x22/apps/QMapTool.png |   Bin 0 -> 1210 bytes
 src/icons/qmaptool/hicolor/24x24/apps/QMapTool.png |   Bin 0 -> 1286 bytes
 .../qmaptool/hicolor/256x256/apps/QMapTool.png     |   Bin 0 -> 26313 bytes
 src/icons/qmaptool/hicolor/32x32/apps/QMapTool.png |   Bin 0 -> 1845 bytes
 src/icons/qmaptool/hicolor/36x36/apps/QMapTool.png |   Bin 0 -> 2154 bytes
 src/icons/qmaptool/hicolor/40x40/apps/QMapTool.png |   Bin 0 -> 2430 bytes
 src/icons/qmaptool/hicolor/42x42/apps/QMapTool.png |   Bin 0 -> 2652 bytes
 src/icons/qmaptool/hicolor/48x48/apps/QMapTool.png |   Bin 0 -> 3099 bytes
 .../qmaptool/hicolor/512x512/apps/QMapTool.png     |   Bin 0 -> 64040 bytes
 src/icons/qmaptool/hicolor/64x64/apps/QMapTool.png |   Bin 0 -> 4526 bytes
 src/icons/qmaptool/hicolor/72x72/apps/QMapTool.png |   Bin 0 -> 5350 bytes
 src/icons/qmaptool/hicolor/80x80/apps/QMapTool.png |   Bin 0 -> 5966 bytes
 src/icons/qmaptool/hicolor/8x8/apps/QMapTool.png   |   Bin 0 -> 377 bytes
 src/icons/qmaptool/hicolor/96x96/apps/QMapTool.png |   Bin 0 -> 7620 bytes
 src/locale/qmapshack.ts                            | 10141 -----------------
 src/locale/qmapshack_ca.ts                         | 10223 -----------------
 src/locale/qmapshack_cs.ts                         | 10196 -----------------
 src/locale/qmapshack_de.ts                         | 10214 -----------------
 src/locale/qmapshack_es.ts                         | 10213 -----------------
 src/locale/qmapshack_fr.ts                         | 10189 -----------------
 src/locale/qmapshack_nl.ts                         | 10198 -----------------
 src/locale/qmapshack_ru.ts                         | 10223 -----------------
 src/map/CMapVRT.cpp                                |   436 -
 src/map/CMapWMTS.cpp                               |   551 -
 src/mouse/CMouseDummy.cpp                          |    30 -
 src/mouse/CMouseDummy.h                            |    46 -
 src/mouse/CMouseEditArea.cpp                       |   106 -
 src/mouse/CMouseEditArea.h                         |    49 -
 src/mouse/CMouseEditRte.cpp                        |   117 -
 src/mouse/CMouseEditRte.h                          |    47 -
 src/mouse/CMouseEditTrk.cpp                        |   124 -
 src/mouse/CMouseEditTrk.h                          |    48 -
 src/mouse/CMouseMoveWpt.cpp                        |   177 -
 src/mouse/CMouseMoveWpt.h                          |    61 -
 src/mouse/CMouseNormal.cpp                         |   464 -
 src/mouse/CMouseNormal.h                           |   101 -
 src/mouse/CMousePrint.cpp                          |    63 -
 src/mouse/CMousePrint.h                            |    40 -
 src/mouse/CMouseRadiusWpt.cpp                      |   144 -
 src/mouse/CMouseRadiusWpt.h                        |    58 -
 src/mouse/CMouseRangeTrk.cpp                       |   298 -
 src/mouse/CMouseRangeTrk.h                         |    75 -
 src/mouse/CMouseSelect.cpp                         |   194 -
 src/mouse/CMouseSelect.h                           |    69 -
 src/mouse/CMouseWptBubble.cpp                      |    90 -
 src/mouse/CMouseWptBubble.h                        |    46 -
 src/mouse/CScrOptSelect.cpp                        |   142 -
 src/mouse/CScrOptSelect.h                          |    54 -
 src/mouse/CScrOptUnclutter.cpp                     |   214 -
 src/mouse/CScrOptUnclutter.h                       |    63 -
 src/mouse/IMouse.cpp                               |    41 -
 src/mouse/IMouse.h                                 |    94 -
 src/mouse/IMouseSelect.cpp                         |   301 -
 src/mouse/IMouseSelect.h                           |    82 -
 src/mouse/IScrOpt.cpp                              |    62 -
 src/mouse/IScrOpt.h                                |    62 -
 src/mouse/IScrOptSelect.ui                         |   410 -
 src/mouse/line/CLineOpAddPoint.cpp                 |   247 -
 src/mouse/line/CLineOpAddPoint.h                   |    48 -
 src/mouse/line/CLineOpDeletePoint.cpp              |    72 -
 src/mouse/line/CLineOpDeletePoint.h                |    40 -
 src/mouse/line/CLineOpMovePoint.cpp                |   146 -
 src/mouse/line/CLineOpMovePoint.h                  |    45 -
 src/mouse/line/CLineOpSelectRange.cpp              |   250 -
 src/mouse/line/CLineOpSelectRange.h                |    69 -
 src/mouse/line/ILineOp.cpp                         |   412 -
 src/mouse/line/ILineOp.h                           |   141 -
 src/mouse/line/IMouseEditLine.cpp                  |   526 -
 src/mouse/line/IMouseEditLine.h                    |   157 -
 src/plot/IPlot.cpp                                 |  1459 ---
 src/qlgt/CQmsDb.cpp                                |   280 -
 src/qmapshack/CAbout.cpp                           |    65 +
 src/{ => qmapshack}/CAbout.h                       |     0
 src/qmapshack/CMainWindow.cpp                      |  1577 +++
 src/qmapshack/CMainWindow.h                        |   186 +
 src/qmapshack/CMakeLists.txt                       |   852 ++
 src/{ => qmapshack}/CSingleInstanceProxy.cpp       |     0
 src/{ => qmapshack}/CSingleInstanceProxy.h         |     0
 src/{ => qmapshack}/GeoMath.cpp                    |     0
 src/{ => qmapshack}/GeoMath.h                      |     0
 src/{ => qmapshack}/IAbout.ui                      |     0
 src/qmapshack/IMainWindow.ui                       |   887 ++
 src/qmapshack/canvas/CCanvas.cpp                   |  1055 ++
 src/qmapshack/canvas/CCanvas.h                     |   251 +
 src/qmapshack/canvas/CCanvasSetup.cpp              |    74 +
 src/{ => qmapshack}/canvas/CCanvasSetup.h          |     0
 src/qmapshack/canvas/ICanvasSetup.ui               |   141 +
 src/{ => qmapshack}/canvas/IDrawContext.cpp        |     0
 src/{ => qmapshack}/canvas/IDrawContext.h          |     0
 src/{ => qmapshack}/canvas/IDrawObject.cpp         |     0
 src/{ => qmapshack}/canvas/IDrawObject.h           |     0
 src/{ => qmapshack}/dem/CDemDraw.cpp               |     0
 src/{ => qmapshack}/dem/CDemDraw.h                 |     0
 src/{ => qmapshack}/dem/CDemItem.cpp               |     0
 src/{ => qmapshack}/dem/CDemItem.h                 |     0
 src/{ => qmapshack}/dem/CDemList.cpp               |     0
 src/{ => qmapshack}/dem/CDemList.h                 |     0
 src/{ => qmapshack}/dem/CDemPathSetup.cpp          |     0
 src/{ => qmapshack}/dem/CDemPathSetup.h            |     0
 src/{ => qmapshack}/dem/CDemPropSetup.cpp          |     0
 src/{ => qmapshack}/dem/CDemPropSetup.h            |     0
 src/{ => qmapshack}/dem/CDemVRT.cpp                |     0
 src/{ => qmapshack}/dem/CDemVRT.h                  |     0
 src/{ => qmapshack}/dem/IDem.cpp                   |     0
 src/{ => qmapshack}/dem/IDem.h                     |     0
 src/{ => qmapshack}/dem/IDemList.ui                |     0
 src/{ => qmapshack}/dem/IDemPathSetup.ui           |     0
 src/{ => qmapshack}/dem/IDemProp.cpp               |     0
 src/{ => qmapshack}/dem/IDemProp.h                 |     0
 src/{ => qmapshack}/dem/IDemPropSetup.ui           |     0
 src/{ => qmapshack}/device/CDeviceGarmin.cpp       |     0
 src/{ => qmapshack}/device/CDeviceGarmin.h         |     0
 .../device/CDeviceGarminArchive.cpp                |     0
 src/{ => qmapshack}/device/CDeviceGarminArchive.h  |     0
 src/{ => qmapshack}/device/CDeviceTwoNav.cpp       |     0
 src/{ => qmapshack}/device/CDeviceTwoNav.h         |     0
 src/{ => qmapshack}/device/CDeviceWatcherLinux.cpp |     0
 src/{ => qmapshack}/device/CDeviceWatcherLinux.h   |     0
 src/{ => qmapshack}/device/CDeviceWatcherMac.cpp   |     0
 src/{ => qmapshack}/device/CDeviceWatcherMac.h     |     0
 .../device/CDeviceWatcherWindows.cpp               |     0
 src/{ => qmapshack}/device/CDeviceWatcherWindows.h |     0
 src/qmapshack/device/IDevice.cpp                   |   404 +
 src/qmapshack/device/IDevice.h                     |   120 +
 src/{ => qmapshack}/device/IDeviceWatcher.cpp      |     0
 src/{ => qmapshack}/device/IDeviceWatcher.h        |     0
 src/qmapshack/gis/CGisDatabase.cpp                 |    71 +
 src/qmapshack/gis/CGisDatabase.h                   |    51 +
 src/qmapshack/gis/CGisDraw.cpp                     |    64 +
 src/qmapshack/gis/CGisDraw.h                       |    40 +
 src/qmapshack/gis/CGisListDB.cpp                   |  1100 ++
 src/qmapshack/gis/CGisListDB.h                     |   117 +
 src/qmapshack/gis/CGisListWks.cpp                  |  2159 ++++
 src/qmapshack/gis/CGisListWks.h                    |   210 +
 src/qmapshack/gis/CGisWorkspace.cpp                |  1170 ++
 src/qmapshack/gis/CGisWorkspace.h                  |   452 +
 src/{ => qmapshack}/gis/CSelDevices.cpp            |     0
 src/{ => qmapshack}/gis/CSelDevices.h              |     0
 src/{ => qmapshack}/gis/CSetupFilter.cpp           |     0
 src/{ => qmapshack}/gis/CSetupFilter.h             |     0
 src/qmapshack/gis/IGisDatabase.ui                  |   156 +
 src/qmapshack/gis/IGisItem.cpp                     |   982 ++
 src/qmapshack/gis/IGisItem.h                       |   619 ++
 src/{ => qmapshack}/gis/IGisLine.cpp               |     0
 src/qmapshack/gis/IGisLine.h                       |    70 +
 src/qmapshack/gis/IGisWorkspace.ui                 |   168 +
 src/{ => qmapshack}/gis/ISelDevices.ui             |     0
 src/{ => qmapshack}/gis/ISetupFilter.ui            |     0
 src/{ => qmapshack}/gis/Poi.h                      |     0
 src/{ => qmapshack}/gis/WptIcons.cpp               |     0
 src/{ => qmapshack}/gis/WptIcons.h                 |     0
 src/{ => qmapshack}/gis/db/CDBFolderGroup.cpp      |     0
 src/{ => qmapshack}/gis/db/CDBFolderGroup.h        |     0
 src/{ => qmapshack}/gis/db/CDBFolderLostFound.cpp  |     0
 src/{ => qmapshack}/gis/db/CDBFolderLostFound.h    |     0
 src/qmapshack/gis/db/CDBFolderMysql.cpp            |   101 +
 src/qmapshack/gis/db/CDBFolderMysql.h              |    61 +
 src/{ => qmapshack}/gis/db/CDBFolderOther.cpp      |     0
 src/{ => qmapshack}/gis/db/CDBFolderOther.h        |     0
 src/{ => qmapshack}/gis/db/CDBFolderProject.cpp    |     0
 src/{ => qmapshack}/gis/db/CDBFolderProject.h      |     0
 src/qmapshack/gis/db/CDBFolderSqlite.cpp           |    88 +
 src/qmapshack/gis/db/CDBFolderSqlite.h             |    48 +
 src/{ => qmapshack}/gis/db/CDBItem.cpp             |     0
 src/{ => qmapshack}/gis/db/CDBItem.h               |     0
 src/qmapshack/gis/db/CDBProject.cpp                |   894 ++
 src/qmapshack/gis/db/CDBProject.h                  |   165 +
 src/{ => qmapshack}/gis/db/CExportDatabase.cpp     |     0
 src/{ => qmapshack}/gis/db/CExportDatabase.h       |     0
 .../gis/db/CExportDatabaseThread.cpp               |     0
 src/{ => qmapshack}/gis/db/CExportDatabaseThread.h |     0
 src/{ => qmapshack}/gis/db/CLostFoundProject.cpp   |     0
 src/{ => qmapshack}/gis/db/CLostFoundProject.h     |     0
 src/{ => qmapshack}/gis/db/CSearchDatabase.cpp     |     0
 src/{ => qmapshack}/gis/db/CSearchDatabase.h       |     0
 src/qmapshack/gis/db/CSelectDBFolder.cpp           |   123 +
 src/qmapshack/gis/db/CSelectDBFolder.h             |    51 +
 src/qmapshack/gis/db/CSelectSaveAction.cpp         |    71 +
 src/{ => qmapshack}/gis/db/CSelectSaveAction.h     |     0
 src/qmapshack/gis/db/CSetupDatabase.cpp            |   165 +
 src/{ => qmapshack}/gis/db/CSetupDatabase.h        |     0
 src/{ => qmapshack}/gis/db/CSetupFolder.cpp        |     0
 src/{ => qmapshack}/gis/db/CSetupFolder.h          |     0
 src/{ => qmapshack}/gis/db/CSetupWorkspace.cpp     |     0
 src/{ => qmapshack}/gis/db/CSetupWorkspace.h       |     0
 src/{ => qmapshack}/gis/db/IDB.cpp                 |     0
 src/{ => qmapshack}/gis/db/IDB.h                   |     0
 src/qmapshack/gis/db/IDBFolder.cpp                 |   701 ++
 src/qmapshack/gis/db/IDBFolder.h                   |   232 +
 src/qmapshack/gis/db/IDBFolderSql.cpp              |   157 +
 src/{ => qmapshack}/gis/db/IDBFolderSql.h          |     0
 src/{ => qmapshack}/gis/db/IDBMysql.cpp            |     0
 src/{ => qmapshack}/gis/db/IDBMysql.h              |     0
 src/{ => qmapshack}/gis/db/IDBSqlite.cpp           |     0
 src/{ => qmapshack}/gis/db/IDBSqlite.h             |     0
 src/{ => qmapshack}/gis/db/IExportDatabase.ui      |     0
 src/{ => qmapshack}/gis/db/ISearchDatabase.ui      |     0
 src/{ => qmapshack}/gis/db/ISelectDBFolder.ui      |     0
 src/{ => qmapshack}/gis/db/ISelectSaveAction.ui    |     0
 src/{ => qmapshack}/gis/db/ISetupDatabase.ui       |     0
 src/{ => qmapshack}/gis/db/ISetupFolder.ui         |     0
 src/{ => qmapshack}/gis/db/ISetupWorkspace.ui      |     0
 src/{ => qmapshack}/gis/db/macros.h                |     0
 src/{ => qmapshack}/gis/fit/CFitProject.cpp        |     0
 src/{ => qmapshack}/gis/fit/CFitProject.h          |     0
 src/{ => qmapshack}/gis/fit/CFitStream.cpp         |     0
 src/{ => qmapshack}/gis/fit/CFitStream.h           |     0
 .../gis/fit/decoder/CFitByteDataTransformer.cpp    |     0
 .../gis/fit/decoder/CFitByteDataTransformer.h      |     0
 .../gis/fit/decoder/CFitCrcState.cpp               |     0
 src/{ => qmapshack}/gis/fit/decoder/CFitCrcState.h |     0
 .../gis/fit/decoder/CFitDecoder.cpp                |     0
 src/{ => qmapshack}/gis/fit/decoder/CFitDecoder.h  |     0
 .../gis/fit/decoder/CFitDefinitionMessage.cpp      |     0
 .../gis/fit/decoder/CFitDefinitionMessage.h        |     0
 .../gis/fit/decoder/CFitDevFieldDefinition.cpp     |     0
 .../gis/fit/decoder/CFitDevFieldDefinition.h       |     0
 .../fit/decoder/CFitDevFieldDefinitionState.cpp    |     0
 .../gis/fit/decoder/CFitDevFieldDefinitionState.h  |     0
 src/{ => qmapshack}/gis/fit/decoder/CFitField.cpp  |     0
 src/{ => qmapshack}/gis/fit/decoder/CFitField.h    |     0
 .../gis/fit/decoder/CFitFieldBuilder.cpp           |     0
 .../gis/fit/decoder/CFitFieldBuilder.h             |     0
 .../gis/fit/decoder/CFitFieldDataState.cpp         |     0
 .../gis/fit/decoder/CFitFieldDataState.h           |     0
 .../gis/fit/decoder/CFitFieldDefinition.cpp        |     0
 .../gis/fit/decoder/CFitFieldDefinition.h          |     0
 .../gis/fit/decoder/CFitFieldDefinitionState.cpp   |     0
 .../gis/fit/decoder/CFitFieldDefinitionState.h     |     0
 .../gis/fit/decoder/CFitHeaderState.cpp            |     0
 .../gis/fit/decoder/CFitHeaderState.h              |     0
 .../gis/fit/decoder/CFitMessage.cpp                |     0
 src/{ => qmapshack}/gis/fit/decoder/CFitMessage.h  |     0
 .../gis/fit/decoder/CFitRecordContentState.cpp     |     0
 .../gis/fit/decoder/CFitRecordContentState.h       |     0
 .../gis/fit/decoder/CFitRecordHeaderState.cpp      |     0
 .../gis/fit/decoder/CFitRecordHeaderState.h        |     0
 .../gis/fit/decoder/IFitDecoderState.cpp           |     0
 .../gis/fit/decoder/IFitDecoderState.h             |     0
 src/{ => qmapshack}/gis/fit/defs/CFitBaseType.cpp  |     0
 src/{ => qmapshack}/gis/fit/defs/CFitBaseType.h    |     0
 .../gis/fit/defs/CFitFieldProfile.cpp              |     0
 .../gis/fit/defs/CFitFieldProfile.h                |     0
 src/{ => qmapshack}/gis/fit/defs/CFitProfile.cpp   |     0
 src/{ => qmapshack}/gis/fit/defs/CFitProfile.h     |     0
 .../gis/fit/defs/CFitProfileLookup.cpp             |     0
 .../gis/fit/defs/CFitProfileLookup.h               |     0
 .../gis/fit/defs/HowToFitGenerator.txt             |     0
 .../gis/fit/defs/Profile_Messages.csv              |     0
 src/{ => qmapshack}/gis/fit/defs/Profile_Types.csv |     0
 src/{ => qmapshack}/gis/fit/defs/fit_const.h       |     0
 src/{ => qmapshack}/gis/fit/defs/fit_enums.h       |     0
 src/{ => qmapshack}/gis/fit/defs/fit_fields.h      |     0
 src/{ => qmapshack}/gis/fit/defs/profiles.py       |     0
 src/{ => qmapshack}/gis/fit/serialization.cpp      |     0
 src/{ => qmapshack}/gis/gpx/CGpxProject.cpp        |     0
 src/{ => qmapshack}/gis/gpx/CGpxProject.h          |     0
 src/{ => qmapshack}/gis/gpx/serialization.cpp      |     0
 src/qmapshack/gis/ovl/CDetailsOvlArea.cpp          |   249 +
 src/qmapshack/gis/ovl/CDetailsOvlArea.h            |    59 +
 src/qmapshack/gis/ovl/CGisItemOvlArea.cpp          |   563 +
 src/qmapshack/gis/ovl/CGisItemOvlArea.h            |   192 +
 src/qmapshack/gis/ovl/CScrOptOvlArea.cpp           |   102 +
 src/qmapshack/gis/ovl/CScrOptOvlArea.h             |    52 +
 src/qmapshack/gis/ovl/IDetailsOvlArea.ui           |   384 +
 src/qmapshack/gis/ovl/IScrOptOvlArea.ui            |   151 +
 src/qmapshack/gis/prj/CDetailsPrj.cpp              |   968 ++
 src/{ => qmapshack}/gis/prj/CDetailsPrj.h          |     0
 src/{ => qmapshack}/gis/prj/IDetailsPrj.ui         |     0
 src/qmapshack/gis/prj/IGisProject.cpp              |  1209 ++
 src/qmapshack/gis/prj/IGisProject.h                |   587 +
 src/{ => qmapshack}/gis/qlb/CQlbProject.cpp        |     0
 src/{ => qmapshack}/gis/qlb/CQlbProject.h          |     0
 src/{ => qmapshack}/gis/qms/CQmsProject.cpp        |     0
 src/{ => qmapshack}/gis/qms/CQmsProject.h          |     0
 src/{ => qmapshack}/gis/qms/serialization.cpp      |     0
 .../gis/rte/CCreateRouteFromWpt.cpp                |     0
 src/{ => qmapshack}/gis/rte/CCreateRouteFromWpt.h  |     0
 src/qmapshack/gis/rte/CDetailsRte.cpp              |   165 +
 src/{ => qmapshack}/gis/rte/CDetailsRte.h          |     0
 src/qmapshack/gis/rte/CGisItemRte.cpp              |  1282 +++
 src/qmapshack/gis/rte/CGisItemRte.h                |   247 +
 src/qmapshack/gis/rte/CScrOptRte.cpp               |   149 +
 src/qmapshack/gis/rte/CScrOptRte.h                 |    58 +
 src/{ => qmapshack}/gis/rte/ICreateRouteFromWpt.ui |     0
 src/qmapshack/gis/rte/IDetailsRte.ui               |   300 +
 src/qmapshack/gis/rte/IScrOptRte.ui                |   221 +
 src/qmapshack/gis/rte/router/CRouterBRouter.cpp    |   857 ++
 src/qmapshack/gis/rte/router/CRouterBRouter.h      |    99 +
 .../gis/rte/router/CRouterMapQuest.cpp             |     0
 .../gis/rte/router/CRouterMapQuest.h               |     0
 .../gis/rte/router/CRouterRoutino.cpp              |     0
 .../gis/rte/router/CRouterRoutino.h                |     0
 src/qmapshack/gis/rte/router/CRouterSetup.cpp      |   101 +
 src/{ => qmapshack}/gis/rte/router/CRouterSetup.h  |     0
 src/{ => qmapshack}/gis/rte/router/IRouter.cpp     |     0
 src/qmapshack/gis/rte/router/IRouter.h             |    48 +
 src/qmapshack/gis/rte/router/IRouterBRouter.ui     |   298 +
 src/qmapshack/gis/rte/router/IRouterMapQuest.ui    |   132 +
 src/qmapshack/gis/rte/router/IRouterRoutino.ui     |   169 +
 src/qmapshack/gis/rte/router/IRouterSetup.ui       |    49 +
 .../gis/rte/router/brouter/CRouterBRouterInfo.cpp  |     0
 .../gis/rte/router/brouter/CRouterBRouterInfo.h    |     0
 .../gis/rte/router/brouter/CRouterBRouterSetup.cpp |   628 ++
 .../gis/rte/router/brouter/CRouterBRouterSetup.h   |   151 +
 .../rte/router/brouter/CRouterBRouterSetupPage.cpp |     0
 .../rte/router/brouter/CRouterBRouterSetupPage.h   |     0
 .../router/brouter/CRouterBRouterSetupWizard.cpp   |   955 ++
 .../rte/router/brouter/CRouterBRouterSetupWizard.h |     0
 .../rte/router/brouter/CRouterBRouterTilesPage.cpp |     0
 .../rte/router/brouter/CRouterBRouterTilesPage.h   |     0
 .../router/brouter/CRouterBRouterTilesSelect.cpp   |     0
 .../rte/router/brouter/CRouterBRouterTilesSelect.h |     0
 .../brouter/CRouterBRouterTilesSelectArea.cpp      |     0
 .../router/brouter/CRouterBRouterTilesSelectArea.h |     0
 .../brouter/CRouterBRouterTilesSelectLayout.h      |     0
 .../rte/router/brouter/CRouterBRouterTilesStatus.h |     0
 .../rte/router/brouter/CRouterBRouterToolShell.cpp |   100 +
 .../rte/router/brouter/CRouterBRouterToolShell.h   |    56 +
 .../gis/rte/router/brouter/IRouterBRouterInfo.ui   |     0
 .../router/brouter/IRouterBRouterSetupWizard.ui    |   696 ++
 .../rte/router/routino/CRouterRoutinoPathSetup.cpp |     0
 .../rte/router/routino/CRouterRoutinoPathSetup.h   |     0
 .../rte/router/routino/IRouterRoutinoPathSetup.ui  |     0
 src/{ => qmapshack}/gis/search/CSearchGoogle.cpp   |     0
 src/{ => qmapshack}/gis/search/CSearchGoogle.h     |     0
 src/{ => qmapshack}/gis/slf/CSlfProject.cpp        |     0
 src/{ => qmapshack}/gis/slf/CSlfProject.h          |     0
 src/{ => qmapshack}/gis/slf/CSlfReader.cpp         |     0
 src/{ => qmapshack}/gis/slf/CSlfReader.h           |     0
 src/qmapshack/gis/summary/CGisSummary.cpp          |   141 +
 src/qmapshack/gis/summary/CGisSummary.h            |    71 +
 src/qmapshack/gis/summary/CGisSummaryDropZone.cpp  |   132 +
 src/qmapshack/gis/summary/CGisSummaryDropZone.h    |    46 +
 src/qmapshack/gis/summary/CGisSummarySetup.cpp     |   139 +
 src/qmapshack/gis/summary/CGisSummarySetup.h       |    58 +
 src/qmapshack/gis/summary/IGisSummary.ui           |    59 +
 src/qmapshack/gis/summary/IGisSummarySetup.ui      |   366 +
 src/{ => qmapshack}/gis/suunto/CLogProject.cpp     |     0
 src/{ => qmapshack}/gis/suunto/CLogProject.h       |     0
 src/{ => qmapshack}/gis/suunto/CSmlProject.cpp     |     0
 src/{ => qmapshack}/gis/suunto/CSmlProject.h       |     0
 src/{ => qmapshack}/gis/suunto/ISuuntoProject.cpp  |     0
 src/{ => qmapshack}/gis/suunto/ISuuntoProject.h    |     0
 src/{ => qmapshack}/gis/tcx/CTcxProject.cpp        |     0
 src/{ => qmapshack}/gis/tcx/CTcxProject.h          |     0
 src/{ => qmapshack}/gis/tcx/serialization.cpp      |     0
 src/{ => qmapshack}/gis/tnv/CTwoNavProject.cpp     |     0
 src/{ => qmapshack}/gis/tnv/CTwoNavProject.h       |     0
 src/{ => qmapshack}/gis/tnv/serialization.cpp      |     0
 src/{ => qmapshack}/gis/trk/CActivityTrk.cpp       |     0
 src/{ => qmapshack}/gis/trk/CActivityTrk.h         |     0
 src/qmapshack/gis/trk/CCombineTrk.cpp              |   226 +
 src/{ => qmapshack}/gis/trk/CCombineTrk.h          |     0
 src/{ => qmapshack}/gis/trk/CCutTrk.cpp            |     0
 src/{ => qmapshack}/gis/trk/CCutTrk.h              |     0
 src/qmapshack/gis/trk/CDetailsTrk.cpp              |   701 ++
 src/{ => qmapshack}/gis/trk/CDetailsTrk.h          |     0
 src/qmapshack/gis/trk/CGisItemTrk.cpp              |  2696 +++++
 src/qmapshack/gis/trk/CGisItemTrk.h                |   928 ++
 src/{ => qmapshack}/gis/trk/CKnownExtension.cpp    |     0
 src/{ => qmapshack}/gis/trk/CKnownExtension.h      |     0
 src/{ => qmapshack}/gis/trk/CPropertyTrk.cpp       |     0
 src/{ => qmapshack}/gis/trk/CPropertyTrk.h         |     0
 src/qmapshack/gis/trk/CScrOptTrk.cpp               |   188 +
 src/qmapshack/gis/trk/CScrOptTrk.h                 |    60 +
 .../gis/trk/CSelectActivityColor.cpp               |     0
 src/{ => qmapshack}/gis/trk/CSelectActivityColor.h |     0
 src/qmapshack/gis/trk/CTableTrk.cpp                |   205 +
 src/{ => qmapshack}/gis/trk/CTableTrk.h            |     0
 src/qmapshack/gis/trk/CTrackData.cpp               |   193 +
 src/qmapshack/gis/trk/CTrackData.h                 |   273 +
 src/{ => qmapshack}/gis/trk/ICombineTrk.ui         |     0
 src/{ => qmapshack}/gis/trk/ICutTrk.ui             |     0
 src/qmapshack/gis/trk/IDetailsTrk.ui               |  1678 +++
 src/qmapshack/gis/trk/IScrOptTrk.ui                |   268 +
 .../gis/trk/ISelectActivityColor.ui                |     0
 .../gis/trk/filter/CFilterDelete.cpp               |     0
 src/{ => qmapshack}/gis/trk/filter/CFilterDelete.h |     0
 .../gis/trk/filter/CFilterDeleteExtension.cpp      |     0
 .../gis/trk/filter/CFilterDeleteExtension.h        |     0
 .../gis/trk/filter/CFilterDouglasPeuker.cpp        |     0
 .../gis/trk/filter/CFilterDouglasPeuker.h          |     0
 .../gis/trk/filter/CFilterInterpolateElevation.cpp |     0
 .../gis/trk/filter/CFilterInterpolateElevation.h   |     0
 .../gis/trk/filter/CFilterInvalid.cpp              |     0
 .../gis/trk/filter/CFilterInvalid.h                |     0
 .../gis/trk/filter/CFilterMedian.cpp               |     0
 src/{ => qmapshack}/gis/trk/filter/CFilterMedian.h |     0
 .../gis/trk/filter/CFilterNewDate.cpp              |     0
 .../gis/trk/filter/CFilterNewDate.h                |     0
 .../gis/trk/filter/CFilterObscureDate.cpp          |     0
 .../gis/trk/filter/CFilterObscureDate.h            |     0
 .../gis/trk/filter/CFilterOffsetElevation.cpp      |     0
 .../gis/trk/filter/CFilterOffsetElevation.h        |     0
 .../gis/trk/filter/CFilterReplaceElevation.cpp     |     0
 .../gis/trk/filter/CFilterReplaceElevation.h       |     0
 .../gis/trk/filter/CFilterReset.cpp                |     0
 src/{ => qmapshack}/gis/trk/filter/CFilterReset.h  |     0
 src/qmapshack/gis/trk/filter/CFilterSpeed.cpp      |   295 +
 src/qmapshack/gis/trk/filter/CFilterSpeed.h        |    67 +
 .../gis/trk/filter/CFilterSplitSegment.cpp         |     0
 .../gis/trk/filter/CFilterSplitSegment.h           |     0
 .../gis/trk/filter/CFilterSubPt2Pt.cpp             |     0
 .../gis/trk/filter/CFilterSubPt2Pt.h               |     0
 .../gis/trk/filter/CFilterTerrainSlope.cpp         |     0
 .../gis/trk/filter/CFilterTerrainSlope.h           |     0
 .../gis/trk/filter/IFilterDelete.ui                |     0
 .../gis/trk/filter/IFilterDeleteExtension.ui       |     0
 .../gis/trk/filter/IFilterDouglasPeuker.ui         |     0
 .../gis/trk/filter/IFilterInterpolateElevation.ui  |     0
 .../gis/trk/filter/IFilterInvalid.ui               |     0
 .../gis/trk/filter/IFilterMedian.ui                |     0
 .../gis/trk/filter/IFilterNewDate.ui               |     0
 .../gis/trk/filter/IFilterObscureDate.ui           |     0
 .../gis/trk/filter/IFilterOffsetElevation.ui       |     0
 .../gis/trk/filter/IFilterReplaceElevation.ui      |     0
 src/{ => qmapshack}/gis/trk/filter/IFilterReset.ui |     0
 src/qmapshack/gis/trk/filter/IFilterSpeed.ui       |   643 ++
 .../gis/trk/filter/IFilterSplitSegment.ui          |     0
 .../gis/trk/filter/IFilterSubPt2Pt.ui              |     0
 .../gis/trk/filter/IFilterTerrainSlope.ui          |     0
 src/qmapshack/gis/trk/filter/filter.cpp            |   468 +
 src/{ => qmapshack}/gis/wpt/CDetailsGeoCache.cpp   |     0
 src/{ => qmapshack}/gis/wpt/CDetailsGeoCache.h     |     0
 src/qmapshack/gis/wpt/CDetailsWpt.cpp              |   245 +
 src/{ => qmapshack}/gis/wpt/CDetailsWpt.h          |     0
 src/qmapshack/gis/wpt/CGisItemWpt.cpp              |   934 ++
 src/qmapshack/gis/wpt/CGisItemWpt.h                |   388 +
 src/{ => qmapshack}/gis/wpt/CProjWpt.cpp           |     0
 src/{ => qmapshack}/gis/wpt/CProjWpt.h             |     0
 src/qmapshack/gis/wpt/CScrOptWpt.cpp               |   144 +
 src/{ => qmapshack}/gis/wpt/CScrOptWpt.h           |     0
 src/qmapshack/gis/wpt/CScrOptWptRadius.cpp         |    98 +
 src/{ => qmapshack}/gis/wpt/CScrOptWptRadius.h     |     0
 src/{ => qmapshack}/gis/wpt/CSetupNewWpt.cpp       |     0
 src/{ => qmapshack}/gis/wpt/CSetupNewWpt.h         |     0
 src/{ => qmapshack}/gis/wpt/IDetailsGeoCache.ui    |     0
 src/qmapshack/gis/wpt/IDetailsWpt.ui               |   496 +
 src/{ => qmapshack}/gis/wpt/IProjWpt.ui            |     0
 src/qmapshack/gis/wpt/IScrOptWpt.ui                |   265 +
 src/qmapshack/gis/wpt/IScrOptWptRadius.ui          |   143 +
 src/{ => qmapshack}/gis/wpt/ISetupNewWpt.ui        |     0
 src/{ => qmapshack}/grid/CGrid.cpp                 |     0
 src/{ => qmapshack}/grid/CGrid.h                   |     0
 src/qmapshack/grid/CGridSetup.cpp                  |    93 +
 src/{ => qmapshack}/grid/CGridSetup.h              |     0
 src/qmapshack/grid/CProjWizard.cpp                 |   239 +
 src/qmapshack/grid/CProjWizard.h                   |    44 +
 src/qmapshack/grid/IGridSetup.ui                   |   231 +
 src/qmapshack/grid/IProjWizard.ui                  |   210 +
 src/{ => qmapshack}/grid/mitab.cpp                 |     0
 src/{ => qmapshack}/grid/mitab.h                   |     0
 src/qmapshack/helpers/CDraw.cpp                    |   250 +
 src/qmapshack/helpers/CDraw.h                      |    95 +
 src/{ => qmapshack}/helpers/CElevationDialog.cpp   |     0
 src/{ => qmapshack}/helpers/CElevationDialog.h     |     0
 src/{ => qmapshack}/helpers/CFileExt.h             |     0
 src/{ => qmapshack}/helpers/CInputDialog.cpp       |     0
 src/{ => qmapshack}/helpers/CInputDialog.h         |     0
 src/{ => qmapshack}/helpers/CLimit.cpp             |     0
 src/{ => qmapshack}/helpers/CLimit.h               |     0
 src/{ => qmapshack}/helpers/CLinksDialog.cpp       |     0
 src/{ => qmapshack}/helpers/CLinksDialog.h         |     0
 src/{ => qmapshack}/helpers/CPhotoViewer.cpp       |     0
 src/{ => qmapshack}/helpers/CPhotoViewer.h         |     0
 src/{ => qmapshack}/helpers/CPositionDialog.cpp    |     0
 src/{ => qmapshack}/helpers/CPositionDialog.h      |     0
 src/{ => qmapshack}/helpers/CProgressDialog.cpp    |     0
 src/{ => qmapshack}/helpers/CProgressDialog.h      |     0
 src/qmapshack/helpers/CSelectCopyAction.cpp        |    96 +
 src/{ => qmapshack}/helpers/CSelectCopyAction.h    |     0
 .../helpers/CSelectProjectDialog.cpp               |     0
 src/{ => qmapshack}/helpers/CSelectProjectDialog.h |     0
 src/{ => qmapshack}/helpers/CSettings.h            |     0
 src/{ => qmapshack}/helpers/CToolBarConfig.cpp     |     0
 src/{ => qmapshack}/helpers/CToolBarConfig.h       |     0
 src/qmapshack/helpers/CToolBarSetupDialog.cpp      |   110 +
 src/{ => qmapshack}/helpers/CToolBarSetupDialog.h  |     0
 src/{ => qmapshack}/helpers/CValue.cpp             |     0
 src/{ => qmapshack}/helpers/CValue.h               |     0
 src/{ => qmapshack}/helpers/CWptIconDialog.cpp     |     0
 src/{ => qmapshack}/helpers/CWptIconDialog.h       |     0
 src/{ => qmapshack}/helpers/IElevationDialog.ui    |     0
 src/{ => qmapshack}/helpers/IInputDialog.ui        |     0
 src/{ => qmapshack}/helpers/ILinksDialog.ui        |     0
 src/{ => qmapshack}/helpers/IPositionDialog.ui     |     0
 src/{ => qmapshack}/helpers/IProgressDialog.ui     |     0
 src/{ => qmapshack}/helpers/ISelectCopyAction.ui   |     0
 .../helpers/ISelectProjectDialog.ui                |     0
 src/{ => qmapshack}/helpers/IToolBarSetupDialog.ui |     0
 src/{ => qmapshack}/helpers/IWptIconDialog.ui      |     0
 src/{ => qmapshack}/helpers/Platform.h             |     0
 src/{ => qmapshack}/helpers/Signals.h              |     0
 src/qmapshack/locale/qmapshack.ts                  | 10817 ++++++++++++++++++
 src/qmapshack/locale/qmapshack_ca.ts               | 10899 ++++++++++++++++++
 src/{ => qmapshack}/locale/qmapshack_cs.desktop    |     0
 src/qmapshack/locale/qmapshack_cs.ts               | 10872 ++++++++++++++++++
 src/{ => qmapshack}/locale/qmapshack_de.desktop    |     0
 src/qmapshack/locale/qmapshack_de.ts               | 10890 ++++++++++++++++++
 src/qmapshack/locale/qmapshack_es.ts               | 10889 ++++++++++++++++++
 src/qmapshack/locale/qmapshack_fr.ts               | 10865 ++++++++++++++++++
 src/qmapshack/locale/qmapshack_nl.ts               | 10874 ++++++++++++++++++
 src/{ => qmapshack}/locale/qmapshack_ru.desktop    |     0
 src/qmapshack/locale/qmapshack_ru.ts               | 10901 +++++++++++++++++++
 src/{ => qmapshack}/main.cpp                       |     0
 src/{ => qmapshack}/map/CMapDraw.cpp               |     0
 src/{ => qmapshack}/map/CMapDraw.h                 |     0
 src/{ => qmapshack}/map/CMapGEMF.cpp               |     0
 src/{ => qmapshack}/map/CMapGEMF.h                 |     0
 src/{ => qmapshack}/map/CMapIMG.cpp                |     0
 src/{ => qmapshack}/map/CMapIMG.h                  |     0
 src/{ => qmapshack}/map/CMapItem.cpp               |     0
 src/{ => qmapshack}/map/CMapItem.h                 |     0
 src/{ => qmapshack}/map/CMapJNX.cpp                |     0
 src/{ => qmapshack}/map/CMapJNX.h                  |     0
 src/{ => qmapshack}/map/CMapList.cpp               |     0
 src/{ => qmapshack}/map/CMapList.h                 |     0
 src/{ => qmapshack}/map/CMapMAP.cpp                |     0
 src/{ => qmapshack}/map/CMapMAP.h                  |     0
 src/{ => qmapshack}/map/CMapPathSetup.cpp          |     0
 src/{ => qmapshack}/map/CMapPathSetup.h            |     0
 src/{ => qmapshack}/map/CMapPropSetup.cpp          |     0
 src/{ => qmapshack}/map/CMapPropSetup.h            |     0
 src/{ => qmapshack}/map/CMapRMAP.cpp               |     0
 src/{ => qmapshack}/map/CMapRMAP.h                 |     0
 src/{ => qmapshack}/map/CMapTMS.cpp                |     0
 src/{ => qmapshack}/map/CMapTMS.h                  |     0
 src/qmapshack/map/CMapVRT.cpp                      |   436 +
 src/{ => qmapshack}/map/CMapVRT.h                  |     0
 src/qmapshack/map/CMapWMTS.cpp                     |   560 +
 src/{ => qmapshack}/map/CMapWMTS.h                 |     0
 src/{ => qmapshack}/map/IMap.cpp                   |     0
 src/{ => qmapshack}/map/IMap.h                     |     0
 src/{ => qmapshack}/map/IMapList.ui                |     0
 src/{ => qmapshack}/map/IMapOnline.cpp             |     0
 src/{ => qmapshack}/map/IMapOnline.h               |     0
 src/{ => qmapshack}/map/IMapPathSetup.ui           |     0
 src/{ => qmapshack}/map/IMapProp.cpp               |     0
 src/{ => qmapshack}/map/IMapProp.h                 |     0
 src/{ => qmapshack}/map/IMapPropSetup.cpp          |     0
 src/{ => qmapshack}/map/IMapPropSetup.h            |     0
 src/{ => qmapshack}/map/IMapPropSetup.ui           |     0
 src/{ => qmapshack}/map/OSM_Topo.tms               |     0
 src/{ => qmapshack}/map/OpenCycleMap.tms           |     0
 src/{ => qmapshack}/map/OpenStreetMap.tms          |     0
 src/{ => qmapshack}/map/WorldSat.wmts              |     0
 src/{ => qmapshack}/map/WorldTopo.wmts             |     0
 src/{ => qmapshack}/map/cache/CDiskCache.cpp       |     0
 src/{ => qmapshack}/map/cache/CDiskCache.h         |     0
 src/{ => qmapshack}/map/garmin/CGarminPoint.cpp    |     0
 src/{ => qmapshack}/map/garmin/CGarminPoint.h      |     0
 src/{ => qmapshack}/map/garmin/CGarminPolygon.cpp  |     0
 src/{ => qmapshack}/map/garmin/CGarminPolygon.h    |     0
 src/{ => qmapshack}/map/garmin/CGarminStrTbl6.cpp  |     0
 src/{ => qmapshack}/map/garmin/CGarminStrTbl6.h    |     0
 src/{ => qmapshack}/map/garmin/CGarminStrTbl8.cpp  |     0
 src/{ => qmapshack}/map/garmin/CGarminStrTbl8.h    |     0
 .../map/garmin/CGarminStrTblUtf8.cpp               |     0
 src/{ => qmapshack}/map/garmin/CGarminStrTblUtf8.h |     0
 src/{ => qmapshack}/map/garmin/CGarminTyp.cpp      |     0
 src/{ => qmapshack}/map/garmin/CGarminTyp.h        |     0
 src/{ => qmapshack}/map/garmin/Garmin.h            |     0
 src/{ => qmapshack}/map/garmin/IGarminStrTbl.cpp   |     0
 src/{ => qmapshack}/map/garmin/IGarminStrTbl.h     |     0
 src/{ => qmapshack}/map/mapsforge/types.cpp        |     0
 src/{ => qmapshack}/map/mapsforge/types.h          |     0
 src/qmapshack/mouse/CMouseAdapter.cpp              |   209 +
 src/qmapshack/mouse/CMouseAdapter.h                |    84 +
 src/qmapshack/mouse/CMouseDummy.cpp                |    31 +
 src/qmapshack/mouse/CMouseDummy.h                  |    50 +
 src/qmapshack/mouse/CMouseEditArea.cpp             |   101 +
 src/qmapshack/mouse/CMouseEditArea.h               |    48 +
 src/qmapshack/mouse/CMouseEditRte.cpp              |   112 +
 src/qmapshack/mouse/CMouseEditRte.h                |    46 +
 src/qmapshack/mouse/CMouseEditTrk.cpp              |   119 +
 src/qmapshack/mouse/CMouseEditTrk.h                |    47 +
 src/qmapshack/mouse/CMouseMoveWpt.cpp              |   135 +
 src/qmapshack/mouse/CMouseMoveWpt.h                |    57 +
 src/qmapshack/mouse/CMouseNormal.cpp               |   446 +
 src/qmapshack/mouse/CMouseNormal.h                 |    94 +
 src/qmapshack/mouse/CMousePrint.cpp                |    64 +
 src/qmapshack/mouse/CMousePrint.h                  |    40 +
 src/qmapshack/mouse/CMouseRadiusWpt.cpp            |   108 +
 src/qmapshack/mouse/CMouseRadiusWpt.h              |    55 +
 src/qmapshack/mouse/CMouseRangeTrk.cpp             |   254 +
 src/qmapshack/mouse/CMouseRangeTrk.h               |    71 +
 src/qmapshack/mouse/CMouseSelect.cpp               |   202 +
 src/qmapshack/mouse/CMouseSelect.h                 |    70 +
 src/qmapshack/mouse/CMouseWptBubble.cpp            |   100 +
 src/qmapshack/mouse/CMouseWptBubble.h              |    49 +
 src/{ => qmapshack}/mouse/CScrOptPrint.cpp         |     0
 src/{ => qmapshack}/mouse/CScrOptPrint.h           |     0
 src/{ => qmapshack}/mouse/CScrOptRangeTrk.cpp      |     0
 src/{ => qmapshack}/mouse/CScrOptRangeTrk.h        |     0
 src/qmapshack/mouse/CScrOptSelect.cpp              |   143 +
 src/qmapshack/mouse/CScrOptSelect.h                |    52 +
 src/qmapshack/mouse/CScrOptUnclutter.cpp           |   214 +
 src/qmapshack/mouse/CScrOptUnclutter.h             |    63 +
 src/qmapshack/mouse/IMouse.cpp                     |    50 +
 src/qmapshack/mouse/IMouse.h                       |    79 +
 src/qmapshack/mouse/IMouseSelect.cpp               |   288 +
 src/qmapshack/mouse/IMouseSelect.h                 |    83 +
 src/qmapshack/mouse/IScrOpt.cpp                    |    63 +
 src/qmapshack/mouse/IScrOpt.h                      |    62 +
 src/{ => qmapshack}/mouse/IScrOptPrint.ui          |     0
 src/{ => qmapshack}/mouse/IScrOptRangeTrk.ui       |     0
 src/qmapshack/mouse/IScrOptSelect.ui               |   358 +
 src/qmapshack/mouse/line/CLineOpAddPoint.cpp       |   246 +
 src/qmapshack/mouse/line/CLineOpAddPoint.h         |    47 +
 src/qmapshack/mouse/line/CLineOpDeletePoint.cpp    |    73 +
 src/qmapshack/mouse/line/CLineOpDeletePoint.h      |    38 +
 src/qmapshack/mouse/line/CLineOpMovePoint.cpp      |   149 +
 src/qmapshack/mouse/line/CLineOpMovePoint.h        |    44 +
 src/qmapshack/mouse/line/CLineOpSelectRange.cpp    |   245 +
 src/qmapshack/mouse/line/CLineOpSelectRange.h      |    66 +
 src/{ => qmapshack}/mouse/line/CScrOptEditLine.cpp |     0
 src/{ => qmapshack}/mouse/line/CScrOptEditLine.h   |     0
 .../mouse/line/CScrOptRangeLine.cpp                |     0
 src/{ => qmapshack}/mouse/line/CScrOptRangeLine.h  |     0
 src/qmapshack/mouse/line/ILineOp.cpp               |   323 +
 src/qmapshack/mouse/line/ILineOp.h                 |   131 +
 src/qmapshack/mouse/line/IMouseEditLine.cpp        |   512 +
 src/qmapshack/mouse/line/IMouseEditLine.h          |   158 +
 src/{ => qmapshack}/mouse/line/IScrOptEditLine.ui  |     0
 src/{ => qmapshack}/mouse/line/IScrOptRangeLine.ui |     0
 src/{ => qmapshack}/pics/about.png                 |   Bin
 src/{ => qmapshack}/pics/compass.png               |   Bin
 src/{ => qmapshack}/pics/compass.svg               |     0
 src/{ => qmapshack}/pics/noMap256x256.png          |   Bin
 src/{ => qmapshack}/pics/splash.png                |   Bin
 src/{ => qmapshack}/pics/timezones.png             |   Bin
 src/{ => qmapshack}/plot/CPlot.cpp                 |     0
 src/{ => qmapshack}/plot/CPlot.h                   |     0
 src/{ => qmapshack}/plot/CPlotAxis.cpp             |     0
 src/{ => qmapshack}/plot/CPlotAxis.h               |     0
 src/{ => qmapshack}/plot/CPlotAxisTime.cpp         |     0
 src/{ => qmapshack}/plot/CPlotAxisTime.h           |     0
 src/{ => qmapshack}/plot/CPlotData.cpp             |     0
 src/{ => qmapshack}/plot/CPlotData.h               |     0
 src/{ => qmapshack}/plot/CPlotProfile.cpp          |     0
 src/{ => qmapshack}/plot/CPlotProfile.h            |     0
 src/{ => qmapshack}/plot/CPlotTrack.cpp            |     0
 src/{ => qmapshack}/plot/CPlotTrack.h              |     0
 src/qmapshack/plot/IPlot.cpp                       |  1459 +++
 src/{ => qmapshack}/plot/IPlot.h                   |     0
 src/{ => qmapshack}/plot/ITrack.cpp                |     0
 src/{ => qmapshack}/plot/ITrack.h                  |     0
 src/{ => qmapshack}/print/CPrintDialog.cpp         |     0
 src/{ => qmapshack}/print/CPrintDialog.h           |     0
 src/{ => qmapshack}/print/IPrintDialog.ui          |     0
 src/{ => qmapshack}/qlgt/CQlb.cpp                  |     0
 src/{ => qmapshack}/qlgt/CQlb.h                    |     0
 src/{ => qmapshack}/qlgt/CQlgtDb.cpp               |     0
 src/{ => qmapshack}/qlgt/CQlgtDb.h                 |     0
 src/{ => qmapshack}/qlgt/CQlgtDiary.cpp            |     0
 src/{ => qmapshack}/qlgt/CQlgtDiary.h              |     0
 src/{ => qmapshack}/qlgt/CQlgtFolder.cpp           |     0
 src/{ => qmapshack}/qlgt/CQlgtFolder.h             |     0
 src/{ => qmapshack}/qlgt/CQlgtRoute.cpp            |     0
 src/{ => qmapshack}/qlgt/CQlgtRoute.h              |     0
 src/{ => qmapshack}/qlgt/CQlgtTrack.cpp            |     0
 src/{ => qmapshack}/qlgt/CQlgtTrack.h              |     0
 src/{ => qmapshack}/qlgt/CQlgtWpt.cpp              |     0
 src/{ => qmapshack}/qlgt/CQlgtWpt.h                |     0
 src/qmapshack/qlgt/CQmsDb.cpp                      |   280 +
 src/{ => qmapshack}/qlgt/CQmsDb.h                  |     0
 src/{ => qmapshack}/qlgt/IItem.cpp                 |     0
 src/{ => qmapshack}/qlgt/IItem.h                   |     0
 src/{ => qmapshack}/qlgt/IQlgtOverlay.cpp          |     0
 src/{ => qmapshack}/qlgt/IQlgtOverlay.h            |     0
 src/{ => qmapshack}/qlgt/converter.cpp             |     0
 src/qmapshack/realtime/CRtDraw.cpp                 |    65 +
 src/qmapshack/realtime/CRtDraw.h                   |    41 +
 src/qmapshack/realtime/CRtSelectSource.cpp         |   114 +
 src/qmapshack/realtime/CRtSelectSource.h           |    44 +
 src/qmapshack/realtime/CRtWorkspace.cpp            |   275 +
 src/qmapshack/realtime/CRtWorkspace.h              |   104 +
 src/qmapshack/realtime/IRtRecord.cpp               |   106 +
 src/qmapshack/realtime/IRtRecord.h                 |   112 +
 src/qmapshack/realtime/IRtSelectSource.ui          |    84 +
 src/qmapshack/realtime/IRtSource.cpp               |    55 +
 src/qmapshack/realtime/IRtSource.h                 |   151 +
 src/qmapshack/realtime/IRtWorkspace.ui             |   132 +
 src/qmapshack/realtime/opensky/CRtOpenSky.cpp      |   343 +
 src/qmapshack/realtime/opensky/CRtOpenSky.h        |   133 +
 src/qmapshack/realtime/opensky/CRtOpenSkyInfo.cpp  |   164 +
 src/qmapshack/realtime/opensky/CRtOpenSkyInfo.h    |    58 +
 .../realtime/opensky/CRtOpenSkyRecord.cpp          |    88 +
 src/qmapshack/realtime/opensky/CRtOpenSkyRecord.h  |    51 +
 src/qmapshack/realtime/opensky/IRtOpenSkyInfo.ui   |   205 +
 src/qmapshack/resources.qrc                        |   615 ++
 src/{ => qmapshack}/setup/CAppOpts.h               |     0
 src/{ => qmapshack}/setup/CAppSetupLinux.cpp       |     0
 src/{ => qmapshack}/setup/CAppSetupLinux.h         |     0
 src/{ => qmapshack}/setup/CAppSetupMac.cpp         |     0
 src/{ => qmapshack}/setup/CAppSetupMac.h           |     0
 src/qmapshack/setup/CAppSetupWin.cpp               |    79 +
 src/{ => qmapshack}/setup/CAppSetupWin.h           |     0
 src/{ => qmapshack}/setup/CCommandProcessor.cpp    |     0
 src/{ => qmapshack}/setup/CCommandProcessor.h      |     0
 src/{ => qmapshack}/setup/CLogHandler.cpp          |     0
 src/{ => qmapshack}/setup/CLogHandler.h            |     0
 src/{ => qmapshack}/setup/IAppSetup.cpp            |     0
 src/{ => qmapshack}/setup/IAppSetup.h              |     0
 .../templates/Hiking_Tour_Summary.ui               |     0
 src/{ => qmapshack}/tool/CImportDatabase.cpp       |     0
 src/{ => qmapshack}/tool/CImportDatabase.h         |     0
 src/qmapshack/tool/CMapVrtBuilder.cpp              |   206 +
 src/qmapshack/tool/CMapVrtBuilder.h                |    47 +
 .../tool/CRoutinoDatabaseBuilder.cpp               |     0
 src/{ => qmapshack}/tool/CRoutinoDatabaseBuilder.h |     0
 src/{ => qmapshack}/tool/IImportDatabase.ui        |     0
 src/qmapshack/tool/IMapVrtBuilder.ui               |   294 +
 .../tool/IRoutinoDatabaseBuilder.ui                |     0
 src/{ => qmapshack}/tool/IToolShell.cpp            |     0
 src/{ => qmapshack}/tool/IToolShell.h              |     0
 src/{ => qmapshack}/units/CCoordFormatSetup.cpp    |     0
 src/{ => qmapshack}/units/CCoordFormatSetup.h      |     0
 src/{ => qmapshack}/units/CTimeZoneSetup.cpp       |     0
 src/{ => qmapshack}/units/CTimeZoneSetup.h         |     0
 src/{ => qmapshack}/units/CUnitImperial.cpp        |     0
 src/{ => qmapshack}/units/CUnitImperial.h          |     0
 src/{ => qmapshack}/units/CUnitMetric.cpp          |     0
 src/{ => qmapshack}/units/CUnitMetric.h            |     0
 src/{ => qmapshack}/units/CUnitNautic.cpp          |     0
 src/{ => qmapshack}/units/CUnitNautic.h            |     0
 src/qmapshack/units/CUnitsSetup.cpp                |    81 +
 src/{ => qmapshack}/units/CUnitsSetup.h            |     0
 src/{ => qmapshack}/units/ICoordFormatSetup.ui     |     0
 src/{ => qmapshack}/units/ITimeZoneSetup.ui        |     0
 src/qmapshack/units/IUnit.cpp                      |   828 ++
 src/qmapshack/units/IUnit.h                        |   168 +
 src/qmapshack/units/IUnitsSetup.ui                 |   152 +
 src/qmapshack/version.h                            |    33 +
 src/qmapshack/widgets/CColorChooser.cpp            |   104 +
 src/qmapshack/widgets/CColorChooser.h              |    46 +
 src/{ => qmapshack}/widgets/CColorLegend.cpp       |     0
 src/{ => qmapshack}/widgets/CColorLegend.h         |     0
 src/{ => qmapshack}/widgets/CDoubleSpinBox.cpp     |     0
 src/{ => qmapshack}/widgets/CDoubleSpinBox.h       |     0
 src/{ => qmapshack}/widgets/CFadingIcon.cpp        |     0
 src/{ => qmapshack}/widgets/CFadingIcon.h          |     0
 src/{ => qmapshack}/widgets/CHistoryListWidget.cpp |     0
 src/{ => qmapshack}/widgets/CHistoryListWidget.h   |     0
 src/{ => qmapshack}/widgets/CLineEdit.cpp          |     0
 src/{ => qmapshack}/widgets/CLineEdit.h            |     0
 src/{ => qmapshack}/widgets/CPhotoAlbum.cpp        |     0
 src/{ => qmapshack}/widgets/CPhotoAlbum.h          |     0
 src/qmapshack/widgets/CSelectDoubleListWidget.cpp  |   267 +
 src/qmapshack/widgets/CSelectDoubleListWidget.h    |    62 +
 src/qmapshack/widgets/CTemplateWidget.cpp          |   259 +
 src/{ => qmapshack}/widgets/CTemplateWidget.h      |     0
 src/{ => qmapshack}/widgets/CTextEdit.cpp          |     0
 src/{ => qmapshack}/widgets/CTextEdit.h            |     0
 src/{ => qmapshack}/widgets/CTextEditWidget.cpp    |     0
 src/{ => qmapshack}/widgets/CTextEditWidget.h      |     0
 .../widgets/CTextEditWidgetSelMenu.cpp             |     0
 .../widgets/CTextEditWidgetSelMenu.h               |     0
 src/{ => qmapshack}/widgets/CTinySpinBox.cpp       |     0
 src/{ => qmapshack}/widgets/CTinySpinBox.h         |     0
 src/{ => qmapshack}/widgets/IColorChooser.ui       |     0
 src/{ => qmapshack}/widgets/IPhotoAlbum.ui         |     0
 .../widgets/ISelectDoubleListWidget.ui             |     0
 src/{ => qmapshack}/widgets/ITemplateWidget.ui     |     0
 src/{ => qmapshack}/widgets/ITextEditWidget.ui     |     0
 .../widgets/ITextEditWidgetSelMenu.ui              |     0
 src/qmaptool/CAbout.cpp                            |    46 +
 src/qmaptool/CAbout.h                              |    35 +
 src/qmaptool/CMainWindow.cpp                       |   178 +
 src/qmaptool/CMainWindow.h                         |    98 +
 src/qmaptool/CMakeLists.txt                        |   253 +
 src/qmaptool/CSingleInstanceProxy.cpp              |   102 +
 src/{ => qmaptool}/CSingleInstanceProxy.h          |     0
 src/qmaptool/GeoMath.cpp                           |    54 +
 src/qmaptool/GeoMath.h                             |    31 +
 src/qmaptool/IAbout.ui                             |   164 +
 src/qmaptool/IMainWindow.ui                        |   208 +
 src/qmaptool/README.md                             |     7 +
 src/qmaptool/canvas/CCanvas.cpp                    |   189 +
 src/qmaptool/canvas/CCanvas.h                      |    92 +
 src/qmaptool/canvas/CDrawContextPixel.cpp          |   330 +
 src/qmaptool/canvas/CDrawContextPixel.h            |   118 +
 src/qmaptool/canvas/IDrawContext.cpp               |   276 +
 src/qmaptool/canvas/IDrawContext.h                 |   158 +
 src/qmaptool/helpers/CDraw.cpp                     |   239 +
 src/qmaptool/helpers/CDraw.h                       |    96 +
 src/{ => qmaptool}/helpers/CSettings.h             |     0
 src/{grid => qmaptool/helpers}/mitab.cpp           |     0
 src/{grid => qmaptool/helpers}/mitab.h             |     0
 src/qmaptool/items/CItemCutMap.cpp                 |    98 +
 src/qmaptool/items/CItemCutMap.h                   |    52 +
 src/qmaptool/items/CItemFile.cpp                   |    30 +
 src/qmaptool/items/CItemFile.h                     |    34 +
 src/qmaptool/items/CItemListWidget.cpp             |   156 +
 src/qmaptool/items/CItemListWidget.h               |    64 +
 src/qmaptool/items/CItemRefMap.cpp                 |   115 +
 src/qmaptool/items/CItemRefMap.h                   |    56 +
 src/qmaptool/items/IItem.cpp                       |   144 +
 src/qmaptool/items/IItem.h                         |    98 +
 src/qmaptool/items/IItemListWidget.ui              |   127 +
 src/qmaptool/locale/qmaptool.ts                    |  1506 +++
 src/qmaptool/locale/qmaptool_de.ts                 |  1522 +++
 src/qmaptool/locale/qmaptool_es.ts                 |  1518 +++
 src/qmaptool/main.cpp                              |    76 +
 src/qmaptool/overlay/COverlayCutMap.cpp            |   644 ++
 src/qmaptool/overlay/COverlayCutMap.h              |   105 +
 src/qmaptool/overlay/COverlayGridTool.cpp          |   348 +
 src/qmaptool/overlay/COverlayGridTool.h            |    68 +
 src/qmaptool/overlay/COverlayRefMap.cpp            |   747 ++
 src/qmaptool/overlay/COverlayRefMap.h              |   103 +
 src/qmaptool/overlay/IOverlay.cpp                  |    36 +
 src/qmaptool/overlay/IOverlay.h                    |    43 +
 src/qmaptool/overlay/IOverlayCutMap.ui             |   202 +
 src/qmaptool/overlay/IOverlayGridTool.ui           |   184 +
 src/qmaptool/overlay/IOverlayRefMap.ui             |   351 +
 src/qmaptool/overlay/gridtool/CGridPlacer.cpp      |   274 +
 src/qmaptool/overlay/gridtool/CGridPlacer.h        |    85 +
 src/qmaptool/overlay/gridtool/CGridPoint.cpp       |   184 +
 src/qmaptool/overlay/gridtool/CGridPoint.h         |    70 +
 src/qmaptool/overlay/gridtool/CGridSelArea.cpp     |   240 +
 src/qmaptool/overlay/gridtool/CGridSelArea.h       |    97 +
 src/qmaptool/overlay/gridtool/CGridSetRef.cpp      |   105 +
 src/qmaptool/overlay/gridtool/CGridSetRef.h        |    86 +
 src/qmaptool/overlay/gridtool/IGridPlacer.ui       |   248 +
 src/qmaptool/overlay/gridtool/IGridSelArea.ui      |    49 +
 src/qmaptool/overlay/gridtool/IGridSetRef.ui       |   117 +
 src/qmaptool/overlay/refmap/CDialogRefPoint.cpp    |    74 +
 src/qmaptool/overlay/refmap/CDialogRefPoint.h      |    46 +
 .../overlay/refmap/COverlayRefMapPoint.cpp         |    52 +
 src/qmaptool/overlay/refmap/COverlayRefMapPoint.h  |    67 +
 src/qmaptool/overlay/refmap/CProjWizard.cpp        |   237 +
 src/qmaptool/overlay/refmap/CProjWizard.h          |    44 +
 src/qmaptool/overlay/refmap/IDialogRefPoint.ui     |   131 +
 src/qmaptool/overlay/refmap/IProjWizard.ui         |   210 +
 src/qmaptool/pic/line_3px_horizontal.png           |   Bin 0 -> 188 bytes
 src/qmaptool/pic/line_3px_vertical.png             |   Bin 0 -> 189 bytes
 src/qmaptool/pic/splash.png                        |   Bin 0 -> 156794 bytes
 src/qmaptool/resources.qrc                         |    87 +
 src/{ => qmaptool}/setup/CAppOpts.h                |     0
 src/qmaptool/setup/CAppSetupLinux.cpp              |    62 +
 src/qmaptool/setup/CAppSetupLinux.h                |    44 +
 src/qmaptool/setup/CAppSetupMac.cpp                |   140 +
 src/qmaptool/setup/CAppSetupMac.h                  |    49 +
 src/qmaptool/setup/CAppSetupWin.cpp                |    69 +
 src/qmaptool/setup/CAppSetupWin.h                  |    45 +
 src/qmaptool/setup/CCommandProcessor.cpp           |    58 +
 src/{ => qmaptool}/setup/CCommandProcessor.h       |     0
 src/qmaptool/setup/CLogHandler.cpp                 |   122 +
 src/{ => qmaptool}/setup/CLogHandler.h             |     0
 src/qmaptool/setup/CSetupExtTools.cpp              |    88 +
 src/qmaptool/setup/CSetupExtTools.h                |    46 +
 src/qmaptool/setup/IAppSetup.cpp                   |   158 +
 src/qmaptool/setup/IAppSetup.h                     |   186 +
 src/qmaptool/setup/ISetupExtTools.ui               |   324 +
 src/qmaptool/shell/CShell.cpp                      |   198 +
 src/qmaptool/shell/CShell.h                        |    75 +
 src/qmaptool/shell/CShellCmd.cpp                   |    27 +
 src/qmaptool/shell/CShellCmd.h                     |    47 +
 src/qmaptool/tool/CToolAddOverview.cpp             |   225 +
 src/qmaptool/tool/CToolAddOverview.h               |    51 +
 src/qmaptool/tool/CToolBox.cpp                     |    44 +
 src/qmaptool/tool/CToolBox.h                       |    40 +
 src/qmaptool/tool/CToolCutMap.cpp                  |   202 +
 src/qmaptool/tool/CToolCutMap.h                    |    51 +
 src/qmaptool/tool/CToolGrid.cpp                    |   124 +
 src/qmaptool/tool/CToolGrid.h                      |    57 +
 src/qmaptool/tool/CToolOverviewGroupBox.cpp        |    95 +
 src/qmaptool/tool/CToolOverviewGroupBox.h          |    43 +
 src/qmaptool/tool/CToolPalettize.cpp               |   302 +
 src/qmaptool/tool/CToolPalettize.h                 |    55 +
 src/qmaptool/tool/CToolRefMap.cpp                  |   257 +
 src/qmaptool/tool/CToolRefMap.h                    |    52 +
 src/qmaptool/tool/CToolStack.cpp                   |    44 +
 src/qmaptool/tool/CToolStack.h                     |    41 +
 src/qmaptool/tool/ITool.cpp                        |    20 +
 src/qmaptool/tool/ITool.h                          |   179 +
 src/qmaptool/tool/IToolAddOverview.ui              |   278 +
 src/qmaptool/tool/IToolCutMap.ui                   |   263 +
 src/qmaptool/tool/IToolGrid.ui                     |   158 +
 src/qmaptool/tool/IToolGui.cpp                     |    81 +
 src/qmaptool/tool/IToolGui.h                       |    44 +
 src/qmaptool/tool/IToolOverviewGroupBox.ui         |   130 +
 src/qmaptool/tool/IToolPalettize.ui                |   269 +
 src/qmaptool/tool/IToolRefMap.ui                   |   276 +
 src/{ => qmaptool}/units/CCoordFormatSetup.cpp     |     0
 src/{ => qmaptool}/units/CCoordFormatSetup.h       |     0
 src/{ => qmaptool}/units/CTimeZoneSetup.cpp        |     0
 src/{ => qmaptool}/units/CTimeZoneSetup.h          |     0
 src/{ => qmaptool}/units/CUnitImperial.cpp         |     0
 src/{ => qmaptool}/units/CUnitImperial.h           |     0
 src/{ => qmaptool}/units/CUnitMetric.cpp           |     0
 src/{ => qmaptool}/units/CUnitMetric.h             |     0
 src/{ => qmaptool}/units/CUnitNautic.cpp           |     0
 src/{ => qmaptool}/units/CUnitNautic.h             |     0
 src/qmaptool/units/CUnitsSetup.cpp                 |    59 +
 src/{ => qmaptool}/units/CUnitsSetup.h             |     0
 src/qmaptool/units/ICoordFormatSetup.ui            |   125 +
 src/qmaptool/units/ITimeZoneSetup.ui               |   182 +
 src/qmaptool/units/IUnit.cpp                       |   776 ++
 src/qmaptool/units/IUnit.h                         |   153 +
 src/qmaptool/units/IUnitsSetup.ui                  |   125 +
 src/qmaptool/version.h                             |    33 +
 src/qmt_map2jnx/CMakeLists.txt                     |    65 +
 src/qmt_map2jnx/argv.cpp                           |    45 +
 src/qmt_map2jnx/argv.h                             |    16 +
 src/qmt_map2jnx/main.cpp                           |  1039 ++
 src/qmt_map2rmap/README.md                         |     7 +
 src/qmt_rgb2pct/CApp.cpp                           |   280 +
 src/qmt_rgb2pct/CApp.h                             |    55 +
 src/qmt_rgb2pct/CMakeLists.txt                     |   117 +
 src/qmt_rgb2pct/README.md                          |     5 +
 src/qmt_rgb2pct/locale/qmt_rgb2pct.ts              |   126 +
 src/qmt_rgb2pct/locale/qmt_rgb2pct_de.ts           |   127 +
 src/qmt_rgb2pct/main.cpp                           |   155 +
 src/qmt_rgb2pct/version.h                          |    33 +
 src/resources.qrc                                  |   595 -
 src/setup/CAppSetupWin.cpp                         |    81 -
 src/tool/CMapVrtBuilder.cpp                        |   157 -
 src/tool/CMapVrtBuilder.h                          |    45 -
 src/tool/IMapVrtBuilder.ui                         |   234 -
 src/units/CUnitsSetup.cpp                          |    79 -
 src/units/IUnit.cpp                                |   806 --
 src/units/IUnit.h                                  |   167 -
 src/units/IUnitsSetup.ui                           |   190 -
 src/version.h                                      |    31 -
 src/widgets/CColorChooser.cpp                      |    64 -
 src/widgets/CColorChooser.h                        |    42 -
 src/widgets/CSelectDoubleListWidget.cpp            |   262 -
 src/widgets/CSelectDoubleListWidget.h              |    60 -
 src/widgets/CTemplateWidget.cpp                    |   258 -
 templates/header.h                                 |     2 +-
 templates/source.c                                 |     2 +-
 templates/source.cpp                               |     2 +-
 1197 files changed, 171776 insertions(+), 134054 deletions(-)

diff --git a/3rdparty/alglib/src/ap.cpp b/3rdparty/alglib/src/ap.cpp
index 1c04250..70d43ab 100755
--- a/3rdparty/alglib/src/ap.cpp
+++ b/3rdparty/alglib/src/ap.cpp
@@ -140,10 +140,10 @@ __declspec(align(AE_LOCK_ALIGNMENT)) volatile ae_int64_t _ae_dbg_lock_yields = 0
  * you can remove them, if you want - they are not used anywhere.
  *
  */
-static char     _ae_bool_must_be_8_bits_wide[1-2*((int)(sizeof(ae_bool))-1)*((int)(sizeof(ae_bool))-1)];
-static char _ae_int32_t_must_be_32_bits_wide[1-2*((int)(sizeof(ae_int32_t))-4)*((int)(sizeof(ae_int32_t))-4)];
-static char _ae_int64_t_must_be_64_bits_wide[1-2*((int)(sizeof(ae_int64_t))-8)*((int)(sizeof(ae_int64_t))-8)];
-static char _ae_int_t_must_be_pointer_sized [1-2*((int)(sizeof(ae_int_t))-(int)sizeof(void*))*((int)(sizeof(ae_int_t))-(int)(sizeof(void*)))];  
+//static char     _ae_bool_must_be_8_bits_wide[1-2*((int)(sizeof(ae_bool))-1)*((int)(sizeof(ae_bool))-1)];
+//static char _ae_int32_t_must_be_32_bits_wide[1-2*((int)(sizeof(ae_int32_t))-4)*((int)(sizeof(ae_int32_t))-4)];
+//static char _ae_int64_t_must_be_64_bits_wide[1-2*((int)(sizeof(ae_int64_t))-8)*((int)(sizeof(ae_int64_t))-8)];
+//static char _ae_int_t_must_be_pointer_sized [1-2*((int)(sizeof(ae_int_t))-(int)sizeof(void*))*((int)(sizeof(ae_int_t))-(int)(sizeof(void*)))];
 
 /*
  * This variable is used to prevent some tricky optimizations which may degrade multithreaded performance.
diff --git a/3rdparty/alglib/src/linalg.cpp b/3rdparty/alglib/src/linalg.cpp
index 9e485b0..497e933 100755
--- a/3rdparty/alglib/src/linalg.cpp
+++ b/3rdparty/alglib/src/linalg.cpp
@@ -10891,8 +10891,8 @@ bool rmatrixschur(real_2d_array &a, const ae_int_t n, real_2d_array &s)
 /////////////////////////////////////////////////////////////////////////
 namespace alglib_impl
 {
-static ae_int_t ablas_rgemmparallelsize = 64;
-static ae_int_t ablas_cgemmparallelsize = 64;
+//static ae_int_t ablas_rgemmparallelsize = 64;
+//static ae_int_t ablas_cgemmparallelsize = 64;
 static void ablas_ablasinternalsplitlength(ae_int_t n,
      ae_int_t nb,
      ae_int_t* n1,
@@ -11363,7 +11363,7 @@ static void rcond_internalcomplexrcondloadall(/* Integer */ ae_vector* isave,
      ae_state *_state);
 
 
-static ae_int_t matinv_parallelsize = 64;
+//static ae_int_t matinv_parallelsize = 64;
 static void matinv_rmatrixtrinverserec(/* Real    */ ae_matrix* a,
      ae_int_t offs,
      ae_int_t n,
diff --git a/3rdparty/alglib/src/optimization.cpp b/3rdparty/alglib/src/optimization.cpp
index 6b7e803..be1167e 100755
--- a/3rdparty/alglib/src/optimization.cpp
+++ b/3rdparty/alglib/src/optimization.cpp
@@ -36524,7 +36524,7 @@ static void minns_solveqp(/* Real    */ ae_matrix* sampleg,
     double v;
     double vv;
     ae_int_t n;
-    ae_int_t nr;
+//    ae_int_t nr;
     ae_int_t idx0;
     ae_int_t idx1;
     ae_int_t ncandbnd;
@@ -36536,7 +36536,7 @@ static void minns_solveqp(/* Real    */ ae_matrix* sampleg,
     ae_int_t actidx;
     double dtol;
     ae_bool kickneeded;
-    ae_bool terminationneeded;
+//    ae_bool terminationneeded;
     double kicklength;
     double lambdav;
     double maxdiag;
@@ -36546,7 +36546,7 @@ static void minns_solveqp(/* Real    */ ae_matrix* sampleg,
 
 
     n = nsample;
-    nr = nvars;
+//    nr = nvars;
     
     /*
      * Allocate arrays, prepare data
@@ -36591,7 +36591,7 @@ static void minns_solveqp(/* Real    */ ae_matrix* sampleg,
     dtol = 1.0E5*ae_machineepsilon;
     kicklength = ae_machineepsilon;
     lambdav = 1.0E5*ae_machineepsilon;
-    terminationneeded = ae_false;
+//    terminationneeded = ae_false;
     termcnt = 0;
     for(;;)
     {
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70131cd..bcb6988 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,14 +1,8 @@
+###############################################################################################
+# CMake compatibility requirements
+###############################################################################################
 cmake_minimum_required(VERSION 3.0.0)
 
-project(QMapShack)
-
-option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files" OFF)
-if(WIN32)
-option(USE_QT5DBus "Enable device detection via DBus" OFF)
-else(WIN32)
-option(USE_QT5DBus "Enable device detection via DBus" ON)
-endif(WIN32)
-
 # Needed to properly handle extract translations strings when using the Ninja
 # generator.
 if (COMMAND CMAKE_POLICY)
@@ -17,102 +11,199 @@ if (COMMAND CMAKE_POLICY)
     endif()
 endif()
 
-if(WIN32)
-set(QT_DEV_PATH   "C:\\Qt5\\5.5\\msvc2013_64" CACHE PATH "Path to directory containing Qt5 include and lib, e.g. C:\\Qt5\\5.5\\msvc2013_64")
-set(GDAL_DEV_PATH "C:\\GDAL" CACHE PATH "Path to directory containing GDAL include and lib, e.g. M:\\lib\\gdal")
-set(PROJ_DEV_PATH "C:\\PROJ" CACHE PATH "Path to directory containing PROJ.4 include and lib, e.g. M:\\lib\\PROJ")
-set(ROUTINO_DEV_PATH "C:\\routino" CACHE PATH "Path to directory containing routino include and lib, e.g. M:\\lib\\routino")
-set(QUAZIP_DEV_PATH "C:\\quazip" CACHE PATH "Path to directory containing quazip include and lib, e.g. M:\\lib\\quazip5")
-set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT_DEV_PATH})
-endif(WIN32)
-
-
-set(APPLICATION_NAME qmapshack)
-
-set(APPLICATION_VERSION_MAJOR "1")
-set(APPLICATION_VERSION_MINOR "10")
-set(APPLICATION_VERSION_PATCH "0")
+if (COMMAND CMAKE_POLICY)
+    if (POLICY CMP0048)
+        cmake_policy(SET CMP0048 NEW)
+    endif()
+endif()
 
-add_definitions(-DVER_MAJOR=${APPLICATION_VERSION_MAJOR} -DVER_MINOR=${APPLICATION_VERSION_MINOR} -DVER_STEP=${APPLICATION_VERSION_PATCH} -DAPPLICATION_NAME=${PROJECT_NAME})
+###############################################################################################
+# Define project name and version tags
+###############################################################################################
+# this is not only the QMS version it will be the package version, too.
+project(QMapShack VERSION 1.11.0)
 
+# FOR A RELEASE:
+# remove "development" for a release
+set(VERSION_SUFFIX )
+# !!! Do not forget to update versions in the sub-repos, too!!!
 
-if (APPLE)
-  set(PROGNAME "QMapShack")
-  set(CONFIGDIR "Library/Application Support/${PROGNAME}/")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} -Wall -std=c++11 -stdlib=libc++")
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
-  SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
-else(APPLE)
-  set(PROGNAME qmapshack)
-  set(CONFIGDIR ".config/QLandkarte/")
-endif(APPLE)
-if(MSVC)
-  # Add link-time code generation to improve performance
-  set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
-  set(CMAKE_EXE_LINKER_FLAGS_RELEASE    "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
-  set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
-  set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
-endif(MSVC)
 
+###############################################################################################
+# Define paths and include other modules
+###############################################################################################
 # where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
-set(CMAKE_MODULE_PATH
-  ${CMAKE_SOURCE_DIR}/cmake/Modules
-)
+set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
+
+# all binaries are collected in the ./bin directory
+set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
 
-# Bring translation support in
 include(TranslateTs)
 include(TranslateDesktop)
-
-# add definitions
 include(DefineCMakeDefaults)
 include(DefineCompilerFlags)
 include(DefineInstallationPaths)
 include(CPackConfig.cmake)
-
 include(ConfigureChecks.cmake)
-configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 
-set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
+###############################################################################################
+# All boolean options
+###############################################################################################
 
-find_package(ALGLIB)
+# Translation related
+option(UPDATE_TRANSLATIONS  "Update source translation translations/*.ts files"     OFF)
 
-if(NOT ALGLIB_FOUND)
+# Feature related
+option(BUILD_QMAPSHACK      "Build QMapShack Binary"                                ON)
+option(BUILD_QMAPTOOL       "Build QMapTool Binary including command line tools"    ON)
+
+if(WIN32)
+option(USE_QT5DBus          "Enable device detection via DBus"                      OFF)
+else(WIN32)
+option(USE_QT5DBus          "Enable device detection via DBus"                      ON)
+endif(WIN32)
+
+# Compiler related
+option(BUILD_FOR_LOCAL_SYSTEM "Build for local system ONLY (resulting binary might not work on other systems!)" OFF)
+
+
+###############################################################################################
+# All OS and compiler specific tweaks
+###############################################################################################
+if (APPLE)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} -Wall -std=c++11 -stdlib=libc++")
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
+    SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -framework Foundation -framework DiskArbitration")
+    SET(LINK_FLAGS "${LINK_FLAGS} -framework Foundation -framework DiskArbitration")
+    SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.7")
+endif(APPLE)
+
+if(WIN32)
+    set(QT_DEV_PATH   "C:\\Qt5\\5.5\\msvc2013_64" CACHE PATH "Path to directory containing Qt5 include and lib, e.g. C:\\Qt5\\5.5\\msvc2013_64")
+    set(GDAL_DEV_PATH "C:\\GDAL" CACHE PATH "Path to directory containing GDAL include and lib, e.g. M:\\lib\\gdal")
+    set(PROJ_DEV_PATH "C:\\PROJ" CACHE PATH "Path to directory containing PROJ.4 include and lib, e.g. M:\\lib\\PROJ")
+    set(ROUTINO_DEV_PATH "C:\\routino" CACHE PATH "Path to directory containing routino include and lib, e.g. M:\\lib\\routino")
+    set(QUAZIP_DEV_PATH "C:\\quazip" CACHE PATH "Path to directory containing quazip include and lib, e.g. M:\\lib\\quazip5")
+    set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT_DEV_PATH})
+endif(WIN32)
+
+if(MSVC)
+    # Add link-time code generation to improve performance
+    set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
+    set(CMAKE_EXE_LINKER_FLAGS_RELEASE    "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
+    set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
+    set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
+    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif(MSVC)
+
+if(UNIX)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lstdc++ -lm")
+    add_definitions(-Wall -Wpedantic -Wno-switch -Wno-strict-aliasing)
+endif(UNIX)
+
+
+###############################################################################################
+# GCC specific compiler tweaks
+###############################################################################################
+if(BUILD_FOR_LOCAL_SYSTEM)
+    cxx_local_system_optimization()
+endif(BUILD_FOR_LOCAL_SYSTEM)
+
+# try to figure out which compiler flags are supported (and add them)
+cxx_add_flag_if_supported(-Wsuggest-override)
+cxx_add_flag_if_supported(-Woverloaded-virtual)
+
+###############################################################################################
+# Find all required packages and setup internal variables
+###############################################################################################
+find_package(Qt5Widgets         REQUIRED)
+find_package(Qt5Core            REQUIRED)
+find_package(Qt5Xml             REQUIRED)
+find_package(Qt5Script          REQUIRED)
+find_package(Qt5Sql             REQUIRED)
+find_package(Qt5WebKitWidgets   REQUIRED)
+find_package(Qt5LinguistTools   REQUIRED)
+find_package(Qt5PrintSupport    REQUIRED)
+find_package(Qt5UiTools         REQUIRED)
+find_package(GDAL               REQUIRED)
+find_package(PROJ               REQUIRED)
+find_package(JPEG               REQUIRED)
+find_package(ROUTINO            REQUIRED)
+find_package(QuaZip             REQUIRED)
+find_package(ALGLIB                     ) # optional as we can use our local version
+
+
+if(${Qt5Widgets_VERSION} MATCHES "5\\.[0-2]{1}\\..*")
+    message( SEND_ERROR "You need at least Qt5.3 or newer.")
+endif()
+
+if(USE_QT5DBus)
+    find_package(Qt5DBus REQUIRED)
+    if(Qt5DBus_FOUND)
+        add_definitions(-DHAVE_DBUS)
+    endif(Qt5DBus_FOUND)
+endif(USE_QT5DBus)
+
+# Everything included. Let's finetune the mess a bit more
+
+if(APPLE)
+     find_library(DiskArbitration_LIBRARY DiskArbitration)
+     find_library(Foundation_LIBRARY Foundation)
+endif(APPLE)
+
+
+if(NOT ALGLIB_FOUND AND BUILD_QMAPSHACK)
     set(ALGLIB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/alglib/src)
     set(ALGLIB_LIBRARIES alg)
     add_subdirectory(3rdparty/alglib)
-endif(NOT ALGLIB_FOUND)
+endif(NOT ALGLIB_FOUND AND BUILD_QMAPSHACK)
+
+###############################################################################################
+# Create global config.h
+###############################################################################################
+if (APPLE)
+  set(PROGNAME "QMapShack")
+  set(CONFIGDIR "Library/Application Support/${PROGNAME}/")
+else(APPLE)
+  set(PROGNAME ${PROJECT_NAME})
+  set(CONFIGDIR ".config/QLandkarte/")
+endif(APPLE)
 
-add_subdirectory(src)
+configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
 
+###############################################################################################
+# Now we are ready to compile all sub-projects
+###############################################################################################
+if(BUILD_QMAPSHACK)
+add_subdirectory(src/qmapshack)
+endif(BUILD_QMAPSHACK)
+
+if(BUILD_QMAPTOOL)
+add_subdirectory(src/qmaptool)
+add_subdirectory(src/qmt_rgb2pct)
+add_subdirectory(src/qmt_map2jnx)
+endif(BUILD_QMAPTOOL)
+
+###############################################################################################
+# Copy a few more files need by the install/unistall target
+###############################################################################################
 if (UNIX AND NOT WIN32 AND NOT APPLE)
-  install(
-    FILES
-      src/icons/48x48/QMapShack.png
-    DESTINATION
-      ${DATA_INSTALL_PREFIX}/pixmaps
-  )
-
-  install(
-    DIRECTORY
-      src/icons/hicolor
-    DESTINATION
-      ${ICON_INSTALL_DIR}
-  )
-
-  install(
-    FILES
-      qmapshack.1
-    DESTINATION
-      ${MAN_INSTALL_DIR}/man1
-  )
+if(BUILD_QMAPSHACK)
+    install( FILES        src/icons/48x48/QMapShack.png     DESTINATION     ${DATA_INSTALL_PREFIX}/pixmaps )    
+    install( DIRECTORY    src/icons/qmapshack/hicolor       DESTINATION     ${ICON_INSTALL_DIR} )
+    install( FILES        qmapshack.1                       DESTINATION     ${MAN_INSTALL_DIR}/man1  )
+endif(BUILD_QMAPSHACK)
+
+if(BUILD_QMAPTOOL)
+    install( FILES        src/icons/48x48/QMapTool.png      DESTINATION     ${DATA_INSTALL_PREFIX}/pixmaps )
+    install( DIRECTORY    src/icons/qmaptool/hicolor        DESTINATION     ${ICON_INSTALL_DIR} )
+    install( FILES        qmaptool.1                        DESTINATION     ${MAN_INSTALL_DIR}/man1  )
+    install( FILES        qmt_rgb2pct.1                     DESTINATION     ${MAN_INSTALL_DIR}/man1  )
+endif(BUILD_QMAPTOOL)
 endif (UNIX AND NOT WIN32 AND NOT APPLE)
 
-CONFIGURE_FILE(
-  "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
-  "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
-  IMMEDIATE @ONLY)
-
-ADD_CUSTOM_TARGET(uninstall
-  "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
+# this is used by the uninstall target
+CONFIGURE_FILE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
+ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
 
 
diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user
index 0dbbfec..0ace089 100644
--- a/CMakeLists.txt.user
+++ b/CMakeLists.txt.user
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 4.4.1, 2017-12-21T08:47:17. -->
+<!-- Written by QtCreator 4.5.0, 2018-03-05T11:10:51. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>
-  <value type="QByteArray">{866bca39-16eb-4541-961c-07f20b41e42e}</value>
+  <value type="QByteArray">{8c794b5e-2a75-4115-9132-2a8e41033185}</value>
  </data>
  <data>
   <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -59,24 +59,25 @@
  <data>
   <variable>ProjectExplorer.Project.Target.0</variable>
   <valuemap type="QVariantMap">
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 5.6.2 (qt5)</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Qt 5.6.2 (qt5)</value>
-   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{8715122a-3e83-46ae-83d4-72f9a7d29e4c}</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
+   <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{51546969-344d-413b-bc16-18294a0c7ceb}</value>
    <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
    <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
-   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
+   <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">4</value>
    <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
     <valuelist type="QVariantList" key="CMake.Configuration">
      <value type="QString">BUILD_FOR_LOCAL_SYSTEM:BOOL=ON</value>
-     <value type="QString">CMAKE_BUILD_TYPE:STRING=Debug</value>
-     <value type="QString">CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/g++-7</value>
-     <value type="QString">CMAKE_C_COMPILER:FILEPATH=/usr/bin/gcc-7</value>
+     <value type="QString">BUILD_QMAPSHACK:BOOL=ON</value>
+     <value type="QString">BUILD_QMAPTOOL:BOOL=ON</value>
+     <value type="QString">CMAKE_CXX_COMPILER:STRING=%{Compiler:Executable:Cxx}</value>
+     <value type="QString">CMAKE_C_COMPILER:STRING=%{Compiler:Executable:C}</value>
      <value type="QString">CMAKE_INSTALL_PREFIX:PATH=/usr</value>
      <value type="QString">CMAKE_PREFIX_PATH:STRING=%{Qt:QT_INSTALL_PREFIX}</value>
-     <value type="QString">QT_QMAKE_EXECUTABLE:STRING=%{Qt:qmakeExecutable}</value>
+     <value type="QString">QT_QMAKE_EXECUTABLE:STRING=/usr/bin/qmake</value>
      <value type="QString">UPDATE_TRANSLATIONS:BOOL=OFF</value>
     </valuelist>
-    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/oeichler/Code/cpp/build_QMapShack</value>
+    <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/oeichler/Code/cpp/build-QMapShack</value>
     <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
      <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
       <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">-j8</value>
@@ -174,7 +175,7 @@
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmapshack</value>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
-    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichlerx/Code/cpp/build_QMapShack/bin</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichler/Code/cpp/build-QMapShack/bin</value>
     <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmapshack</value>
@@ -230,10 +231,10 @@
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmaptool</value>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
     <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
-    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichlerx/Code/cpp/build_QMapShack/bin</value>
-    <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichler/Code/cpp/build-QMapShack/bin</value>
+    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
     <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
-    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmaptool (deaktiviert)</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmaptool</value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
     <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.qmaptool</value>
     <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
@@ -243,7 +244,176 @@
     <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
     <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
    </valuemap>
-   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.2">
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmt_rgb2pct</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichler/Code/cpp/build-QMapShack/bin</value>
+    <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmt_rgb2pct</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.qmt_rgb2pct</value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.3">
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">qmt_map2jnx</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments">/home/MapRoom/map/Taufers.tif test.jnx
+</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory">/home/oeichler/Code/cpp/build-QMapShack</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichler/Code/cpp/build-QMapShack/bin</value>
+    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmt_map2jnx</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.qmt_map2jnx</value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.4">
+    <value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value>
+    <value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value>
+    <value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value>
+    <value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value>
+    <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
+    <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
+    <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
+    <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
+    <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
+    <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
+    <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
+    <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
+    <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
+    <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
+    <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
+    <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
+     <value type="int">0</value>
+     <value type="int">1</value>
+     <value type="int">2</value>
+     <value type="int">3</value>
+     <value type="int">4</value>
+     <value type="int">5</value>
+     <value type="int">6</value>
+     <value type="int">7</value>
+     <value type="int">8</value>
+     <value type="int">9</value>
+     <value type="int">10</value>
+     <value type="int">11</value>
+     <value type="int">12</value>
+     <value type="int">13</value>
+     <value type="int">14</value>
+    </valuelist>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguation.Title">map2jnx</value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.Arguments"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory"></value>
+    <value type="QString" key="CMakeProjectManager.CMakeRunConfiguration.UserWorkingDirectory.default">/home/oeichler/Code/cpp/build-QMapShack/bin</value>
+    <value type="int" key="PE.EnvironmentAspect.Base">2</value>
+    <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">map2jnx</value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
+    <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.map2jnx</value>
+    <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
+    <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
+    <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
+    <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
+   </valuemap>
+   <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">5</value>
   </valuemap>
  </data>
  <data>
diff --git a/CPackConfig.cmake b/CPackConfig.cmake
index f65b49b..799ec98 100644
--- a/CPackConfig.cmake
+++ b/CPackConfig.cmake
@@ -4,21 +4,21 @@ include(InstallRequiredSystemLibraries)
 # http://www.cmake.org/Wiki/CMake:CPackConfiguration
 
 ### general settings
-string(TOLOWER ${APPLICATION_NAME} CPACK_PACKAGE_NAME)
+string(TOLOWER ${PROJECT_NAME} CPACK_PACKAGE_NAME)
 set(CPACK_PACKAGE_VENDOR "QLandkarte")
 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "GPS Map, Route, Waypoint and Tracking Tool")
 
 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
 
 ### versions
-set(CPACK_PACKAGE_VERSION "${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH}")
+set(CPACK_PACKAGE_VERSION "${PROJECT_VERSION}")
 
 set(CPACK_GENERATOR "TGZ")
 set(CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
 
 ### source package settings
 set(CPACK_SOURCE_GENERATOR "TGZ")
-set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;[.]hg/;[.]hgsub;[.]hgsubstate;.gitignore;/build/;tags;cscope.*;[.]rej$;[.]orig$;svn-commit[.]")
+set(CPACK_SOURCE_IGNORE_FILES "~$;[.]swp$;/[.]svn/;/[.]git/;[.]hg/;[.]hgsub;[.]hgsubstate;.gitignore;/build/;tags;cscope.*;[.]rej$;[.]orig$;svn-commit[.];/doc/")
 set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
 
 include(CPack)
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index bc8cf1b..6525351 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -6,7 +6,7 @@ include(CheckTypeSize)
 include(CheckCXXSourceCompiles)
 include(TestBigEndian)
 
-set(PACKAGE ${APPLICATION_NAME})
+set(PACKAGE ${PROJECT_NAME})
 set(VERSION ${APPLICATION_VERSION})
 set(DATADIR ${DATA_INSTALL_DIR})
 set(LIBDIR ${LIB_INSTALL_DIR})
diff --git a/README.md b/README.md
index 98d5ec5..f1c9de4 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ Next to QT5 you will need the development packages of:
 * [Qt5](https://www.qt.io/) (at least 5.4)
 * [GDAL](http://www.gdal.org/)
 * [Proj4](https://github.com/OSGeo/proj.4/wiki)
-* [Routino](http://www.routino.org/) (at least 3.0)
+* [Routino](http://www.routino.org/) (at least 3.1)
 * [QuaZip](http://quazip.sourceforge.net/index.html)
 * CMake/Make
 * a C++ compiler (supporting C++11)
diff --git a/changelog.txt b/changelog.txt
index 1a69d07..9dcdae7 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,20 @@
+V 1.11.0
+Add: QMapTool and friends as sub-project
+Add: Reverse route
+Add: BRoute binding to local address instead of all interfaces
+Add: Use track timestamp as arival time for waypoints attached to track 
+Add: Optional overview generation to vrt builder
+Add: Add left button long press action to open menu on canvas
+Add: Framework to process and display realtime data
+Add: Drop zones to collect items in summary folders of the database
+Add: Extend BRouter no-go areas to tracks, routes and areas
+Add: Calculate timestamps for tracks depending on the slope for bikes
+Fix: Clean up action enabling/disabling for GIS item menus
+Fix: Restructure mouse handling to solve some peculiar behavior
+[Issue #294] Missing error message in case of wrong map coordinate system
+[Issue #305] Nodata value 0 not accepted in VRT
+[Issue #289] Add-color-change-for-multiple-tracks
+
 V 1.10.0
 * Fine tune code for screen gestures.
 [Issue #253] Tracksorting in Datawindow somehow random- should be alphabetical
diff --git a/cmake/Modules/DefineCompilerFlags.cmake b/cmake/Modules/DefineCompilerFlags.cmake
index f0df53b..4de28b5 100644
--- a/cmake/Modules/DefineCompilerFlags.cmake
+++ b/cmake/Modules/DefineCompilerFlags.cmake
@@ -11,3 +11,32 @@ if(UNIX AND NOT WIN32)
     endif(WITH_FPIC)
   endif(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
 endif(UNIX AND NOT WIN32)
+
+# function to test for compile flags
+function(cxx_add_flag_if_supported flag)
+    check_cxx_compiler_flag(${flag} Flag:${flag})
+    if(Flag:${flag})
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
+    endif(Flag:${flag})
+endfunction(cxx_add_flag_if_supported)
+
+
+function(cxx_local_system_optimization)
+    set(flag "-march=native")
+    check_cxx_compiler_flag(${flag} Flag:${flag})
+    if(Flag:${flag})
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+        message(STATUS [=[
+ BUILDING FOR LOCAL SYSTEM ONLY
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Specifying -DBUILD_FOR_LOCAL_SYSTEM=ON will pass -march=native to the compiler.
+ The generated binary will exhibit higher performance,
+ but will not be portable (e.g., might not work on other CPUs)]=])
+    else(Flag:${flag})
+        message(STATUS [=[
+ Your compiler does not support -march=native.
+ Ignoring -DBUILD_FOR_LOCAL_SYSTEM=ON!]=])
+    endif(Flag:${flag})
+   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
+
+endfunction(cxx_local_system_optimization)
diff --git a/cmake/Modules/DefineInstallationPaths.cmake b/cmake/Modules/DefineInstallationPaths.cmake
index bd906d8..569a1d2 100644
--- a/cmake/Modules/DefineInstallationPaths.cmake
+++ b/cmake/Modules/DefineInstallationPaths.cmake
@@ -1,10 +1,6 @@
 if (UNIX)
-  IF (NOT APPLICATION_NAME)
-    MESSAGE(STATUS "${PROJECT_NAME} is used as APPLICATION_NAME")
-    SET(APPLICATION_NAME ${PROJECT_NAME})
-  ENDIF (NOT APPLICATION_NAME)
 
-  STRING(TOLOWER ${APPLICATION_NAME} _APPLICATION_NAME)
+  STRING(TOLOWER ${PROJECT_NAME} _PROJECT_NAME)
 
   # Suffix for Linux
   SET(LIB_SUFFIX
@@ -28,12 +24,12 @@ if (UNIX)
   # The following are directories where stuff will be installed to
   SET(BIN_INSTALL_DIR
     "${EXEC_INSTALL_PREFIX}/bin"
-    CACHE PATH "The ${_APPLICATION_NAME} binary install dir (default prefix/bin)"
+    CACHE PATH "The ${_PROJECT_NAME} binary install dir (default prefix/bin)"
     FORCE
   )
   SET(SBIN_INSTALL_DIR
     "${EXEC_INSTALL_PREFIX}/sbin"
-    CACHE PATH "The ${_APPLICATION_NAME} sbin install dir (default prefix/sbin)"
+    CACHE PATH "The ${_PROJECT_NAME} sbin install dir (default prefix/sbin)"
     FORCE
   )
   SET(LIB_INSTALL_DIR
@@ -47,8 +43,8 @@ if (UNIX)
     FORCE
   )
   SET(PLUGIN_INSTALL_DIR
-    "${LIB_INSTALL_DIR}/${_APPLICATION_NAME}"
-    CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${_APPLICATION_NAME})"
+    "${LIB_INSTALL_DIR}/${_PROJECT_NAME}"
+    CACHE PATH "The subdirectory relative to the install prefix where plugins will be installed (default is prefix/lib/${_PROJECT_NAME})"
     FORCE
   )
   SET(INCLUDE_INSTALL_DIR
@@ -59,7 +55,7 @@ if (UNIX)
 
   SET(DATA_INSTALL_DIR
     "${DATA_INSTALL_PREFIX}"
-    CACHE PATH "The parent directory where applications can install their data (default prefix/share/${_APPLICATION_NAME})"
+    CACHE PATH "The parent directory where applications can install their data (default prefix/share/${_PROJECT_NAME})"
     FORCE
   )
   SET(HTML_INSTALL_DIR
@@ -97,17 +93,17 @@ if (UNIX)
 
   SET(SYSCONF_INSTALL_DIR
     "${EXEC_INSTALL_PREFIX}/etc"
-    CACHE PATH "The ${_APPLICATION_NAME} sysconfig install dir (default prefix/etc)"
+    CACHE PATH "The ${_PROJECT_NAME} sysconfig install dir (default prefix/etc)"
     FORCE
   )
   SET(MAN_INSTALL_DIR
     "${SHARE_INSTALL_PREFIX}/man"
-    CACHE PATH "The ${_APPLICATION_NAME} man install dir (default prefix/man)"
+    CACHE PATH "The ${_PROJECT_NAME} man install dir (default prefix/man)"
     FORCE
   )
   SET(INFO_INSTALL_DIR
     "${SHARE_INSTALL_PREFIX}/info"
-    CACHE PATH "The ${_APPLICATION_NAME} info install dir (default prefix/info)"
+    CACHE PATH "The ${_PROJECT_NAME} info install dir (default prefix/info)"
     FORCE
   )
 endif (UNIX)
diff --git a/config.h.cmake b/config.h.cmake
index ef2814a..c193a0c 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -1,4 +1,4 @@
-#cmakedefine PACKAGE ${APPLICATION_NAME}
+#cmakedefine PACKAGE ${PROJECT_NAME}
 #cmakedefine VERSION ${APPLICATION_VERSION}
 #cmakedefine LOCALEDIR ${LOCALE_INSTALL_DIR}
 #cmakedefine DATADIR ${SHARE_INSTALL_PREFIX}
diff --git a/msvc_64/QMapShack_Installer.nsi b/msvc_64/QMapShack_Installer.nsi
index 542e712..6ddc6ab 100644
--- a/msvc_64/QMapShack_Installer.nsi
+++ b/msvc_64/QMapShack_Installer.nsi
@@ -107,8 +107,11 @@ Section "QMapShack" QMapShack
   ;BEGIN QMapShack Files    
   SetOutPath $INSTDIR
     File Files\qmapshack.exe
-	File Files\*.ico
-	;File Files\*.png
+    File Files\qmaptool.exe
+    File Files\qmt_map2jnx.exe
+    File Files\qmt_rgb2pct.exe
+    File Files\*.ico
+    ;File Files\*.png
   SetOutPath "$INSTDIR\translations"
     File Files\translations\qmapshack_*.qm  
   ;END QMapShack Files    
@@ -117,28 +120,28 @@ Section "QMapShack" QMapShack
   SetOutPath $INSTDIR
     File Files\Qt5Core.dll
     File Files\Qt5Gui.dll
-	File Files\Qt5Multimedia.dll
-	File Files\Qt5MultimediaWidgets.dll
+    File Files\Qt5Multimedia.dll
+    File Files\Qt5MultimediaWidgets.dll
     File Files\Qt5Network.dll
     File Files\Qt5OpenGL.dll
-	File Files\Qt5Positioning.dll
-	File Files\Qt5PrintSupport.dll
-	File Files\Qt5Qml.dll
-	File Files\Qt5Quick.dll
+    File Files\Qt5Positioning.dll
+    File Files\Qt5PrintSupport.dll
+    File Files\Qt5Qml.dll
+    File Files\Qt5Quick.dll
     File Files\Qt5Script.dll
-	File Files\Qt5Sensors.dll
+    File Files\Qt5Sensors.dll
     File Files\Qt5Sql.dll
     File Files\Qt5Svg.dll
-	File Files\Qt5WebChannel.dll
+    File Files\Qt5WebChannel.dll
     File Files\Qt5WebKit.dll
     File Files\Qt5Widgets.dll 
     File Files\Qt5WebKitWidgets.dll	
     File Files\Qt5Xml.dll
-	File Files\icudt54.dll
-	File Files\icuin54.dll
-	File Files\icuuc54.dll
-	File Files\libEGL.dll
-	File Files\libGLESv2.dll
+    File Files\icudt54.dll
+    File Files\icuin54.dll
+    File Files\icuuc54.dll
+    File Files\libEGL.dll
+    File Files\libGLESv2.dll
 
   SetOutPath "$INSTDIR\imageformats\"
     File Files\imageformats\qgif.dll
@@ -181,7 +184,7 @@ Section "QMapShack" QMapShack
     File Files\proj*.dll
     File Files\proj*.exe
   SetOutPath "$INSTDIR\share\"
-	File /r Files\share\*.*
+    File /r Files\share\*.*
   ;END PROJ.4 Files        
 
   ;BEGIN QuaZip Files
@@ -196,7 +199,7 @@ Section "QMapShack" QMapShack
     File Files\libwinpthread-1.dll
     File Files\libz-1.dll
   SetOutPath "$INSTDIR\routino-xml\"
-	File /r Files\routino-xml\*.*
+    File /r Files\routino-xml\*.*
   ;END Routino Files     
   
   ;BEGIN additional Files    
@@ -231,6 +234,7 @@ Section "StartMenue" StartMenue
     CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
     CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
     CreateShortCut "$SMPROGRAMS\$StartMenuFolder\QMapShack.lnk" "$INSTDIR\qmapshack.exe" "" "$INSTDIR\QMapShack.ico"
+    CreateShortCut "$SMPROGRAMS\$StartMenuFolder\QMapTool.lnk" "$INSTDIR\qmaptool.exe" "" "$INSTDIR\QMapTool.ico"
     CreateShortCut "$SMPROGRAMS\$StartMenuFolder\qmapshack.org.lnk" "https://bitbucket.org/maproom/qmapshack/wiki/Home" "" "$INSTDIR\kfm_home.ico"
     CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Help.lnk" "https://bitbucket.org/maproom/qmapshack/wiki/DocMain" "" "$INSTDIR\Help.ico"
     CreateShortCut "$SMPROGRAMS\$StartMenuFolder\gdal.org.lnk" "http://www.gdal.org/" "" "$INSTDIR\gdalicon.ico"
@@ -270,6 +274,7 @@ Section "Uninstall"
 
   Delete "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk"
   Delete "$SMPROGRAMS\$StartMenuFolder\QMapShack.lnk"
+  Delete "$SMPROGRAMS\$StartMenuFolder\QMapTool.lnk"
   Delete "$SMPROGRAMS\$StartMenuFolder\qmapshack.org.lnk"
   Delete "$SMPROGRAMS\$StartMenuFolder\Help.lnk"
   Delete "$SMPROGRAMS\$StartMenuFolder\gdal.org.lnk"
diff --git a/msvc_64/QMapTool.ico b/msvc_64/QMapTool.ico
new file mode 100644
index 0000000..cf94df4
Binary files /dev/null and b/msvc_64/QMapTool.ico differ
diff --git a/msvc_64/copyfiles.bat b/msvc_64/copyfiles.bat
index f2cc96c..339f9d6 100644
--- a/msvc_64/copyfiles.bat
+++ b/msvc_64/copyfiles.bat
@@ -108,7 +108,11 @@ copy %QMSI_VCREDIST_PATH%\vcredist_x64.exe
 
 rem section 2.4) Copy QMapShack Files
 copy %QMSI_BUILD_PATH%\bin\Release\qmapshack.exe
-copy %QMSI_BUILD_PATH%\src\*.qm translations
+copy %QMSI_BUILD_PATH%\bin\Release\qmaptool.exe
+copy %QMSI_BUILD_PATH%\bin\Release\qmt_map2jnx.exe
+copy %QMSI_BUILD_PATH%\bin\Release\qmt_rgb2pct.exe
+copy %QMSI_BUILD_PATH%\src\qmapshack\*.qm translations
+copy %QMSI_BUILD_PATH%\src\qmaptool\*.qm translations
 copy ..\*.ico
 
 rem section 2.5) 3rd party SW description
@@ -117,5 +121,4 @@ copy ..\3rdparty.txt
 rem section 2.6) qt.conf
 copy ..\qt.conf
 
-
 pause
diff --git a/qmaptool.1 b/qmaptool.1
new file mode 100644
index 0000000..a8160e0
--- /dev/null
+++ b/qmaptool.1
@@ -0,0 +1,45 @@
+.TH "QMAPTOOL" "1" "July 2014" "" ""
+.SH "NAME"
+QMapTool - Creating Raster Maps
+.br
+
+.SH "SYNOPSIS"
+\fBqmaptool\fR\fB [ -d \fR| \fB--debug \fR] [ \fB-h \fR| \fB--help \fR] [ \fB-n \fR| \fB--no-splash \fR]
+.br
+
+.SH "DESCRIPTION"
+A tool to process and referecne scanned paper maps
+.br
+
+Main features:
+.br
+	- Cut borders of maps
+.br
+	- Reference maps 
+.br
+	- Convert maps into GeoTiff files with a color table
+.br
+
+.SH "OPTIONS"
+\fB-d\fR, \fB--debug\fR
+.br
+       Run with debugging output.
+.br
+
+\fB-h\fR, \fB--help\fR
+.br
+       Displays the help message.
+.br
+
+\fB-n, --no-splash\fR
+.br
+       Start without splash screen.
+.br
+
+.SH "SEE ALSO"
+https://bitbucket.org/maproom/qmapshack/wiki/DocMain
+.br
+
+.SH "AUTHOR"
+QMapTool was written and is currently maintained by Oliver Eichler \fB<oliver.eichler at gmx.de>\fR.
+.br
diff --git a/qmaptool.desktop.in b/qmaptool.desktop.in
new file mode 100644
index 0000000..b7f37a0
--- /dev/null
+++ b/qmaptool.desktop.in
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Version=1.0
+Name=QMapTool
+Exec=qmaptool %F
+Icon=QMapTool
+Terminal=false
+Type=Application
+X-MultipleArgs=false
+Categories=Qt;Geoscience;Geography;Science;
+GenericName=Tool to create raster maps
+Keywords=map;raster;referencing
+MimeType=application/x-tif;
+StartupNotify=true
+
+#TRANSLATIONS_DIR=src/locale
diff --git a/qmt_rgb2pct.1 b/qmt_rgb2pct.1
new file mode 100644
index 0000000..594b104
--- /dev/null
+++ b/qmt_rgb2pct.1
@@ -0,0 +1,68 @@
+.TH "QMT_RGB2PCT" "1" "Jan 2018" "" ""
+.SH "NAME"
+qmt_rgb2pct - a rgb2pct replacement that does not need python
+.br
+
+.SH "SYNOPSIS"
+qmt_rgb2pct\fB \fR\fB [ -v \fR| \fB--version \fR] [ \fB-h \fR| \fB--help \fR] [ \fB-n \fR| \fB--ncolors \fR<number>] [ \fB-p \fR| \fB--pct \fR<filename>] [ \fB-s \fR| \fB--sct \fR<filename>] source traget
+.br
+
+.SH "DESCRIPTION"
+Convert GeoTiff files with RGB or RGBA color scheme into a dithered GeoTiff with color table
+.br
+
+Main features:
+.br
+	- Optional read external color table
+.br
+	- Optional save external color table	
+.br
+	- Convert aplha band into a no data value	
+.br
+
+.SH "OPTIONS"
+\fB-h, --help\fR
+.br
+	Displays this help.
+.br
+
+\fB-v, --version           \fR
+.br
+	Displays version information.
+.br
+	
+.br
+\fB-n, --ncolors <number>  \fR
+.br
+	Number of colors. (default: 255)
+.br
+	
+.br
+\fB-p, --pct <filename>    \fR
+.br
+	Input palette file for color table (*.vrt)
+.br
+	
+.br
+\fB-s, --sct <filename>    \fR
+.br
+	Save color table to palette file (*.vrt)
+.br
+
+\fBsource                  \fR
+.br
+	Source file.
+.br
+	
+.br
+\fBtarget                  \fR
+.br
+	Target file.
+.br
+.SH "SEE ALSO"
+https://bitbucket.org/maproom/qmapshack/wiki/DocMain
+.br
+
+.SH "AUTHOR"
+qmt_rgb2pct was written and is currently maintained by Oliver Eichler \fB<oliver.eichler at gmx.de>\fR.
+.br
diff --git a/src/CAbout.cpp b/src/CAbout.cpp
deleted file mode 100644
index 690bac2..0000000
--- a/src/CAbout.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/**********************************************************************************************
-    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 "CAbout.h"
-#include "version.h"
-
-#include <QtWidgets>
-#include <gdal.h>
-#include <proj_api.h>
-#include <routino.h>
-
-CAbout::CAbout(QWidget *parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-
-    labelVersion->setText(VER_STR);
-    labelQtVersion->setText(qVersion());
-    labelGDALVersion->setText(GDALVersionInfo("--version"));
-    labelProj4Version->setText(QString::number(PJ_VERSION));
-    if(Routino_CheckAPIVersion() != ROUTINO_ERROR_NONE)
-    {
-        labelRoutinoVersion->setText(tr("%1 (API V%2, expected V%3)").arg(Routino_Version).arg(ROUTINO_API_VERSION).arg(Routino_APIVersion));
-    }
-    else
-    {
-        labelRoutinoVersion->setText(tr("%1 (API V%2)").arg(Routino_Version).arg(Routino_APIVersion));
-    }
-
-#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
-    #if defined (HAVE_DBUS)
-    labelNoDBus->setText("");
-    #else
-    labelNoDBus->setText(tr("(no DBUS: device detection and handling disabled)"));
-    #endif
-#endif
-}
-
-CAbout::~CAbout()
-{
-}
-
diff --git a/src/CMainWindow.cpp b/src/CMainWindow.cpp
deleted file mode 100644
index aed829f..0000000
--- a/src/CMainWindow.cpp
+++ /dev/null
@@ -1,1545 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CAbout.h"
-#include "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "config.h"
-#include "dem/CDemDraw.h"
-#include "dem/CDemList.h"
-#include "gis/CGisDatabase.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/IGisLine.h"
-#include "gis/WptIcons.h"
-#include "gis/db/CSetupWorkspace.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/trk/CActivityTrk.h"
-#include "gis/trk/CKnownExtension.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSettings.h"
-#include "helpers/CToolBarConfig.h"
-#include "helpers/CToolBarSetupDialog.h"
-#include "helpers/CWptIconDialog.h"
-#include "map/CMapDraw.h"
-#include "map/CMapItem.h"
-#include "map/CMapList.h"
-#include "tool/CImportDatabase.h"
-#include "tool/CMapVrtBuilder.h"
-#include "tool/CRoutinoDatabaseBuilder.h"
-#include "units/CCoordFormatSetup.h"
-#include "units/CTimeZoneSetup.h"
-#include "units/CUnitsSetup.h"
-#include "units/IUnit.h"
-#include "version.h"
-
-#include <QtGui>
-#include <QtSql>
-#include <QtWidgets>
-
-#ifdef WIN32
-#include "device/CDeviceWatcherWindows.h"
-#include <dbt.h>
-#include <guiddef.h>
-#include <initguid.h>
-#include <usbiodef.h>
-#include <windows.h>
-#endif // WIN32
-
-CMainWindow * CMainWindow::pSelf = nullptr;
-
-QMutex CMainWindow::mutex(QMutex::NonRecursive);
-
-CMainWindow::CMainWindow()
-    : id(qrand())
-{
-    qDebug() << "Application ID:" << id;
-    SETTINGS;
-
-    pSelf = this;
-    setupUi(this);
-    setWindowTitle(WHAT_STR);
-
-    initWptIcons();
-
-    IUnit::setUnitType((IUnit::type_e)cfg.value("MainWindow/units",IUnit::eTypeMetric).toInt(), this);
-    IUnit::setSlopeMode((IUnit::slope_mode_e)cfg.value("Units/slopeMode", IUnit::eSlopeDegrees).toInt());
-
-    QByteArray tz;
-    IUnit::tz_mode_e tzmode;
-    bool useShortFormat;
-    tz = cfg.value("Units/timezone", "UTC").toByteArray();
-    tzmode = (IUnit::tz_mode_e)cfg.value("Units/timezone/mode", IUnit::eTZUtc).toInt();
-    useShortFormat = cfg.value("Units/time/useShortFormat", false).toBool();
-    IUnit::setTimeZoneSetup(tzmode, tz, useShortFormat);
-
-    IUnit::coord_format_e coordFormat;
-    coordFormat = (IUnit::coord_format_e)cfg.value("Units/coordFormat", IUnit::eCoordFormat1).toInt();
-    IUnit::setCoordFormat(coordFormat);
-
-    CKnownExtension::init(IUnit::self());
-    CActivityTrk::init();
-
-    widgetGisWorkspace = new CGisWorkspace(menuProject, this);
-    dockWorkspace->setWidget(widgetGisWorkspace);
-
-    widgetGisDatabase = new CGisDatabase(this);
-    dockDatabase->setWidget(widgetGisDatabase);
-
-    // start ---- restore window geometry -----
-    cfg.beginGroup("MainWindow");
-    if ( cfg.contains("geometry"))
-    {
-        restoreGeometry(cfg.value("geometry").toByteArray());
-    }
-    else
-    {
-        QTimer::singleShot(500, this, SLOT(showMaximized()));
-    }
-
-    if ( cfg.contains("state"))
-    {
-        restoreState(cfg.value("state").toByteArray());
-    }
-
-    if (cfg.contains("displaymode"))
-    {
-        displayMode = static_cast<Qt::WindowStates>(cfg.value("displaymode").toInt());
-        if (displayMode == Qt::WindowFullScreen)
-        {
-            displayMode = Qt::WindowMaximized;
-        }
-    }
-
-    if (cfg.contains("dockstate"))
-    {
-        dockStates = cfg.value("dockstate").toByteArray();
-    }
-
-    menuVisible = cfg.value("menuvisible",false).toBool();
-
-    if(windowState() == Qt::WindowFullScreen)
-    {
-        displayRegular();
-    }
-    cfg.endGroup();
-
-    // end ---- restore window geometry -----
-
-    connect(actionAbout,                 &QAction::triggered,            this,      &CMainWindow::slotAbout);
-    connect(actionHelp,                  &QAction::triggered,            this,      &CMainWindow::slotHelp);
-    connect(actionQuickstart,            &QAction::triggered,            this,      &CMainWindow::slotQuickstart);
-    connect(actionAddMapView,            &QAction::triggered,            this,      &CMainWindow::slotAddCanvas);
-    connect(actionCloneMapView,          &QAction::triggered,            this,      &CMainWindow::slotCloneCanvas);
-    connect(actionShowScale,             &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
-    connect(actionShowGrid,              &QAction::changed,              this,      static_cast<void (CMainWindow::*)()>(&CMainWindow::update));
-    connect(actionPOIText,               &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
-    connect(actionMapToolTip,            &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
-    connect(actionNightDay,              &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
-    connect(actionMinMaxTrackValues,     &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
-    connect(actionProfileIsWindow,       &QAction::toggled,              this,      &CMainWindow::slotSetProfileMode);
-    connect(actionSetupMapFont,          &QAction::triggered,            this,      &CMainWindow::slotSetupMapFont);
-    connect(actionSetupMapBackground,    &QAction::triggered,            this,      &CMainWindow::slotSetupMapBackground);
-    connect(actionSetupGrid,             &QAction::triggered,            this,      &CMainWindow::slotSetupGrid);
-    connect(actionSetupMapPaths,         &QAction::triggered,            this,      &CMainWindow::slotSetupMapPath);
-    connect(actionSetupDEMPaths,         &QAction::triggered,            this,      &CMainWindow::slotSetupDemPath);
-    connect(actionSetupMapView,          &QAction::triggered,            this,      &CMainWindow::slotSetupMapView);
-    connect(actionSetupTimeZone,         &QAction::triggered,            this,      &CMainWindow::slotSetupTimeZone);
-    connect(actionSetupUnits,            &QAction::triggered,            this,      &CMainWindow::slotSetupUnits);
-    connect(actionSetupWorkspace,        &QAction::triggered,            this,      &CMainWindow::slotSetupWorkspace);
-    connect(actionSetupCoordFormat,      &QAction::triggered,            this,      &CMainWindow::slotSetupCoordFormat);
-    connect(actionSetupToolbar,          &QAction::triggered,            this,      &CMainWindow::slotSetupToolbar);
-    connect(actionImportDatabase,        &QAction::triggered,            this,      &CMainWindow::slotImportDatabase);
-    connect(actionSaveGISData,           &QAction::triggered,            widgetGisWorkspace, &CGisWorkspace::slotSaveAll);
-    connect(actionLoadGISData,           &QAction::triggered,            this,      &CMainWindow::slotLoadGISData);
-    connect(actionVrtBuilder,            &QAction::triggered,            this,      &CMainWindow::slotBuildVrt);
-    connect(actionStoreView,             &QAction::triggered,            this,      &CMainWindow::slotStoreView);
-    connect(actionLoadView,              &QAction::triggered,            this,      &CMainWindow::slotLoadView);
-    connect(actionClose,                 &QAction::triggered,            this,      &CMainWindow::close);
-    connect(actionCreateRoutinoDatabase, &QAction::triggered,            this,      &CMainWindow::slotCreateRoutinoDatabase);
-    connect(actionPrintMap,              &QAction::triggered,            this,      &CMainWindow::slotPrintMap);
-    connect(actionSetupWaypointIcons,    &QAction::triggered,            this,      &CMainWindow::slotSetupWptIcons);
-    connect(actionCloseTab,              &QAction::triggered,            this,      &CMainWindow::slotCloseTab);
-    connect(actionToggleDocks,           &QAction::triggered,            this,      &CMainWindow::slotToggleDocks);
-    connect(actionFullScreen,            &QAction::triggered,            this,      &CMainWindow::slotFullScreen);
-    connect(tabWidget,                   &QTabWidget::tabCloseRequested, this,      &CMainWindow::slotTabCloseRequest);
-    connect(tabWidget,                   &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabCanvas);
-    connect(tabMaps,                     &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabMaps);
-    connect(tabDem,                      &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabDem);
-
-    cfg.beginGroup("Canvas");
-    CMapDraw::loadMapPath(cfg);
-    CDemDraw::loadDemPath(cfg);
-
-    cfg.beginGroup("Views");
-    QStringList names = cfg.childGroups();
-
-    for(const QString &name : names)
-    {
-        CCanvas * view = addView(name);
-
-        cfg.beginGroup(name);
-        view->loadConfig(cfg);
-        cfg.endGroup(); // name
-    }
-    if(names.isEmpty())
-    {
-        CCanvas * view = addView(QString());
-        // call just to setup default values
-        view->loadConfig(cfg);
-    }
-    cfg.endGroup(); // Views
-    testForNoView();
-
-    CCanvas::gisLayerOpacity = cfg.value("gisLayerOpacity",1.0).toFloat();
-    widgetGisWorkspace->setOpacity(CCanvas::gisLayerOpacity);
-
-    actionShowScale->setChecked(cfg.value("isScaleVisible", true).toBool());
-    actionShowGrid->setChecked(cfg.value("isGridVisible", false).toBool());
-    actionPOIText->setChecked(cfg.value("POIText", true).toBool());
-    actionMapToolTip->setChecked(cfg.value("MapToolTip", true).toBool());
-    actionNightDay->setChecked(cfg.value("isNight", false).toBool());
-    actionMinMaxTrackValues->setChecked(cfg.value("MinMaxTrackValues", 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
-
-
-
-    QStatusBar * status = statusBar();
-    lblPosWGS84 = new QLabel(status);
-    status->addPermanentWidget(lblPosWGS84);
-
-    lblElevation = new QLabel(status);
-    status->addPermanentWidget(lblElevation);
-
-    lblSlope = new QLabel(status);
-    status->addPermanentWidget(lblSlope);
-
-    lblPosGrid = new QLabel(status);
-    status->addPermanentWidget(lblPosGrid);
-
-
-    docks << dockMaps
-          << dockDem
-          << dockWorkspace
-          << dockDatabase
-          << dockRte;
-
-    if (cfg.contains("MainWindow/activedocks"))
-    {
-        const QStringList & dockNames = cfg.value("MainWindow/activedocks").toStringList();
-        for(QDockWidget * const & dock : docks)
-        {
-            if(dockNames.contains(dock->objectName()))
-            {
-                activeDocks << dock;
-            }
-        }
-    }
-
-    for (QDockWidget * const & dock : docks)
-    {
-        connect(dock, &QDockWidget::visibilityChanged, this, &CMainWindow::slotDockVisibilityChanged);
-    }
-
-
-    QAction * actionToggleToolBar = toolBar->toggleViewAction();
-    actionToggleToolBar->setObjectName("actionToggleToolBar");
-    actionToggleToolBar->setIcon(QIcon(":/icons/32x32/ToolBar.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleToolBar);
-
-    QAction * actionToggleMaps = dockMaps->toggleViewAction();
-    actionToggleMaps->setObjectName("actionToggleMaps");
-    actionToggleMaps->setIcon(QIcon(":/icons/32x32/ToggleMaps.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleMaps);
-
-    QAction * actionToggleDem = dockDem->toggleViewAction();
-    actionToggleDem->setObjectName("actionToggleDem");
-    actionToggleDem->setIcon(QIcon(":/icons/32x32/ToggleDem.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleDem);
-
-    QAction * actionToggleWorkspace = dockWorkspace->toggleViewAction();
-    actionToggleWorkspace->setObjectName("actionToggleWorkspace");
-    actionToggleWorkspace->setIcon(QIcon(":/icons/32x32/ToggleGis.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleWorkspace);
-
-    QAction * actionToggleDatabase = dockDatabase->toggleViewAction();
-    actionToggleDatabase->setObjectName("actionToggleDatabase");
-    actionToggleDatabase->setIcon(QIcon(":/icons/32x32/ToggleDatabase.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleDatabase);
-
-    QAction * actionToggleRte = dockRte->toggleViewAction();
-    actionToggleRte->setObjectName("actionToggleRte");
-    actionToggleRte->setIcon(QIcon(":/icons/32x32/ToggleRouter.png"));
-    menuWindow->insertAction(actionSetupToolbar,actionToggleRte);
-
-
-    menuWindow->insertSeparator(actionSetupToolbar);
-
-    QAction * separator = new QAction("---------------",this);
-    separator->setSeparator(true);
-    separator->setObjectName("separator");
-
-    QList<QAction *> availableActions;
-    availableActions << separator
-                     << actionAddMapView
-                     << actionShowScale
-                     << actionSetupMapFont
-                     << actionShowGrid
-                     << actionSetupGrid
-                     << actionFlipMouseWheel
-                     << actionSetupMapPaths
-                     << actionPOIText
-                     << actionNightDay
-                     << actionMapToolTip
-                     << actionMinMaxTrackValues
-                     << actionSetupDEMPaths
-                     << actionAbout
-                     << actionHelp
-                     << actionSetupMapView
-                     << actionLoadGISData
-                     << actionSaveGISData
-                     << actionSetupTimeZone
-                     << actionAddEmptyProject
-                     << actionSearchGoogle
-                     << actionCloseAllProjects
-                     << actionSetupUnits
-                     << actionSetupWorkspace
-                     << actionImportDatabase
-                     << actionVrtBuilder
-                     << actionStoreView
-                     << actionLoadView
-                     << actionProfileIsWindow
-                     << actionClose
-                     << actionCloneMapView
-                     << actionCreateRoutinoDatabase
-                     << actionPrintMap
-                     << actionSetupCoordFormat
-                     << actionSetupMapBackground
-                     << actionSetupWaypointIcons
-                     << actionCloseTab
-                     << actionQuickstart
-                     << actionSetupToolbar
-                     << actionToggleMaps
-                     << actionToggleDem
-                     << actionToggleWorkspace
-                     << actionToggleDatabase
-                     << actionToggleRte
-                     << actionToggleDocks
-                     << actionToggleToolBar
-                     << actionFullScreen;
-
-    QAction * separator1 = new QAction("---------------",this);
-    separator1->setSeparator(true);
-    separator1->setObjectName("separator");
-
-    QList<QAction *> defaultActions;
-    defaultActions << actionSearchGoogle
-                   << actionAddEmptyProject
-                   << actionLoadGISData
-                   << actionSaveGISData
-                   << separator
-                   << actionShowScale
-                   << actionShowGrid
-                   << actionPOIText
-                   << actionNightDay
-                   << actionMapToolTip
-                   << actionMinMaxTrackValues
-                   << actionProfileIsWindow
-                   << separator1
-                   << actionSetupToolbar
-                   << actionToggleMaps
-                   << actionToggleDem
-                   << actionToggleWorkspace
-                   << actionToggleDatabase
-                   << actionToggleRte
-                   << actionToggleDocks
-                   << actionFullScreen;
-
-    toolBarConfig = new CToolBarConfig(this, toolBar, availableActions, defaultActions);
-    toolBarConfig->loadSettings();
-
-    prepareMenuForMac();
-
-    // make sure all actions that have a shortcut are available even when menu and toolbar are not visible
-    for (QAction * action : availableActions)
-    {
-        if (!action->shortcuts().isEmpty())
-        {
-            addAction(action);
-        }
-    }
-
-
-    loadGISData(qlOpts->arguments);
-
-    QTimer::singleShot(100, this, SLOT(slotSanityTest()));
-}
-
-void CMainWindow::prepareMenuForMac()
-{
-    toolBar->toggleViewAction()->setMenuRole(QAction::NoRole);
-    dockMaps->toggleViewAction()->setMenuRole(QAction::NoRole);
-    dockDem->toggleViewAction()->setMenuRole(QAction::NoRole);
-    dockWorkspace->toggleViewAction()->setMenuRole(QAction::NoRole);
-    dockDatabase->toggleViewAction()->setMenuRole(QAction::NoRole);
-    dockRte->toggleViewAction()->setMenuRole(QAction::NoRole);
-}
-
-CMainWindow::~CMainWindow()
-{
-    CActivityTrk::release();
-
-    SETTINGS;
-    cfg.beginGroup("MainWindow");
-    cfg.setValue("state", saveState());
-    cfg.setValue("geometry", saveGeometry());
-    cfg.setValue("units", IUnit::self().type);
-    QStringList activeDockNames;
-    for (QDockWidget * const & dock : activeDocks)
-    {
-        activeDockNames << dock->objectName();
-    }
-    cfg.setValue("activedocks",activeDockNames);
-
-    cfg.setValue("displaymode",static_cast<int>(displayMode));
-    cfg.setValue("dockstate",dockStates);
-    cfg.setValue("menuvisible",menuVisible);
-    cfg.endGroup();
-
-    /*
-       The "Canvas" section will hold all settings global to all views
-       and "Views" section containing a subsection for each view.
-     */
-    cfg.beginGroup("Canvas");
-    QList<CCanvas*> allViews;
-    QList<QWidget*> allOtherTabs;
-
-    // save setup of all views
-    cfg.beginGroup("Views");
-    // remove all previous setups in this section first
-    cfg.remove(QString());
-
-    for(int i = 0; i < tabWidget->count(); i++)
-    {
-        CCanvas * view = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-        if(nullptr == view)
-        {
-            allOtherTabs << tabWidget->widget(i);
-            continue;
-        }
-
-        // save views
-        cfg.beginGroup(view->objectName());
-        view->saveConfig(cfg);
-        cfg.endGroup();
-
-        allViews << view;
-    }
-    cfg.endGroup(); // Views
-
-    cfg.setValue("gisLayerOpacity", CCanvas::gisLayerOpacity);
-    cfg.setValue("visibleCanvas", tabWidget->currentIndex());
-    cfg.setValue("isScaleVisible", actionShowScale->isChecked());
-    cfg.setValue("isGridVisible", actionShowGrid->isChecked());
-    cfg.setValue("POIText", actionPOIText->isChecked());
-    cfg.setValue("MapToolTip", actionMapToolTip->isChecked());
-    cfg.setValue("isNight", actionNightDay->isChecked());
-    cfg.setValue("MinMaxTrackValues", actionMinMaxTrackValues->isChecked());
-    cfg.setValue("flipMouseWheel", actionFlipMouseWheel->isChecked());
-    cfg.setValue("profileIsWindow",actionProfileIsWindow->isChecked());
-    cfg.setValue("mapFont", mapFont);
-    CMapDraw::saveMapPath(cfg);
-    CDemDraw::saveDemPath(cfg);
-    cfg.endGroup(); // Canvas
-
-
-    /*
-        Delete all widgets in the tab widget other than views. The IPlot objects
-        in a track detail dialog send update events to the view on destruction.
-        So it is important that these are destroyed first.
-     */
-    qDeleteAll(allOtherTabs);
-    /*
-        Delete all canvas objects now to make sure they are destroyed before all
-        other objects. This allows children of the canvas to access central objects
-        like CGisWorkspace safely upon their destruction. (e.g. CMouseRangeTrk to reset
-        it's track's draw mode by key)
-     */
-    qDeleteAll(allViews);
-
-    QByteArray tz;
-    IUnit::tz_mode_e tzmode;
-    bool useShortFormat;
-    IUnit::getTimeZoneSetup(tzmode, tz, useShortFormat);
-
-    cfg.setValue("Units/timezone", tz);
-    cfg.setValue("Units/timezone/mode", tzmode);
-    cfg.setValue("Units/time/useShortFormat", useShortFormat);
-    cfg.setValue("Units/coordFormat", IUnit::getCoordFormat());
-    cfg.setValue("Units/slopeMode", IUnit::getSlopeMode());
-
-    toolBarConfig->saveSettings();
-}
-
-CCanvas *CMainWindow::addView(const QString& name)
-{
-    CCanvas * view = new CCanvas(tabWidget, name);
-    tabWidget->addTab(view, view->objectName());
-    connect(view, &CCanvas::sigMousePosition, this, &CMainWindow::slotMousePosition);
-    connect(actionMinMaxTrackValues, &QAction::triggered, view, &CCanvas::slotUpdateTrackStatistic);
-
-    return view;
-}
-
-QWidget * CMainWindow::getBestWidgetForParent()
-{
-    QWidget * w = CProgressDialog::self();
-    if(w)
-    {
-        return w;
-    }
-
-    // this is a workaround for unittesting
-    if(nullptr == pSelf)
-    {
-        return nullptr;
-    }
-
-    w = self().getVisibleCanvas();
-    if(w)
-    {
-        return w;
-    }
-
-    return &self();
-}
-
-QString CMainWindow::getUser()
-{
-    QString user = getenv("USER");
-    if(user.isEmpty())
-    {
-        user = getenv("USERNAME"); //for windows
-
-        if(user.isEmpty())
-        {
-            user = "QMapShack";
-        }
-    }
-
-    return user;
-}
-
-bool CMainWindow::isScaleVisible() const
-{
-    return actionShowScale->isChecked();
-}
-
-bool CMainWindow::isGridVisible() const
-{
-    return actionShowGrid->isChecked();
-}
-
-bool CMainWindow::isNight() const
-{
-    return actionNightDay->isChecked();
-}
-
-bool CMainWindow::isPOIText() const
-{
-    return actionPOIText->isChecked();
-}
-
-bool CMainWindow::isMapToolTip() const
-{
-    return actionMapToolTip->isChecked();
-}
-
-bool CMainWindow::isMinMaxTrackValues() const
-{
-    return actionMinMaxTrackValues->isChecked();
-}
-
-bool CMainWindow::flipMouseWheel() const
-{
-    return actionFlipMouseWheel->isChecked();
-}
-
-bool CMainWindow::profileIsWindow() const
-{
-    return actionProfileIsWindow->isChecked();
-}
-
-void CMainWindow::addMapList(CMapList * list, const QString &name)
-{
-    tabMaps->addTab(list,name);
-    connect(list, &CMapList::sigSetupMapPath, this, &CMainWindow::slotSetupMapPath);
-}
-
-void CMainWindow::addDemList(CDemList * list, const QString &name)
-{
-    tabDem->addTab(list,name);
-    connect(list, &CDemList::sigSetupDemPath, this, &CMainWindow::slotSetupDemPath);
-}
-
-void CMainWindow::addWidgetToTab(QWidget * w)
-{
-    if(tabWidget->indexOf(w) == NOIDX)
-    {
-        tabWidget->addTab(w, w->objectName().replace("&", "&&"));
-    }
-    tabWidget->setCurrentWidget(w);
-}
-
-CCanvas* CMainWindow::getVisibleCanvas() const
-{
-    return dynamic_cast<CCanvas*>(tabWidget->currentWidget());
-}
-
-QList<CCanvas*> CMainWindow::getCanvas() const
-{
-    QList<CCanvas*> result;
-    const int N = tabWidget->count();
-    for(int n = 0; n < N; n++)
-    {
-        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(n));
-        if(canvas != nullptr)
-        {
-            result << canvas;
-        }
-    }
-
-    return result;
-}
-
-void CMainWindow::zoomCanvasTo(const QRectF rect)
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->zoomTo(rect);
-    }
-}
-
-qreal CMainWindow::getElevationAt(const QPointF& pos) const
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        return canvas->getElevationAt(pos);
-    }
-    else
-    {
-        for(int i = 0; i < tabWidget->count(); i++)
-        {
-            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-            if(canvas)
-            {
-                return canvas->getElevationAt(pos);
-            }
-        }
-    }
-    return NOFLOAT;
-}
-
-
-void CMainWindow::getElevationAt(SGisLine &line) const
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->getElevationAt(line);
-    }
-    else
-    {
-        for(int i = 0; i < tabWidget->count(); i++)
-        {
-            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-            if(canvas)
-            {
-                canvas->getElevationAt(line);
-                return;
-            }
-        }
-
-        for(int i = 0; i < line.size(); i++)
-        {
-            line[i].resetElevation();
-        }
-    }
-}
-
-void CMainWindow::getElevationAt(const QPolygonF &pos, QPolygonF& ele) const
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->getElevationAt(pos, ele);
-    }
-    else
-    {
-        for(int i = 0; i < tabWidget->count(); i++)
-        {
-            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-            if(canvas)
-            {
-                canvas->getElevationAt(pos, ele);
-                return;
-            }
-        }
-        ele.clear();
-    }
-}
-
-qreal CMainWindow::getSlopeAt(const QPointF& pos) const
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        return canvas->getSlopeAt(pos);
-    }
-    else
-    {
-        for(int i = 0; i < tabWidget->count(); i++)
-        {
-            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-            if(canvas)
-            {
-                return canvas->getSlopeAt(pos);
-            }
-        }
-    }
-    return NOFLOAT;
-}
-
-void CMainWindow::getSlopeAt(const QPolygonF &pos, QPolygonF& slope) const
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->getSlopeAt(pos, slope);
-    }
-    else
-    {
-        for(int i = 0; i < tabWidget->count(); i++)
-        {
-            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-            if(canvas)
-            {
-                canvas->getSlopeAt(pos, slope);
-                return;
-            }
-        }
-        slope.clear();
-    }
-}
-
-void CMainWindow::slotAbout()
-{
-    CAbout dlg(this);
-    dlg.exec();
-}
-
-void CMainWindow::slotHelp()
-{
-    QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocMain"));
-}
-
-void CMainWindow::slotQuickstart()
-{
-    // show menu action for German help if system language is German.
-    QString locale = QLocale::system().name();
-    if(locale.size() >= 2)
-    {
-        locale = locale.left(2).toLower();
-        if(locale == "de")
-        {
-            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartGerman"));
-        }
-        else if(locale == "ru")
-        {
-            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartRussian"));
-        }
-        else
-        {
-            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartEnglish"));
-        }
-    }
-    else
-    {
-        QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartEnglish"));
-    }
-}
-
-
-void CMainWindow::slotAddCanvas()
-{
-    int i, cnt = 0;
-    for(i = 0; i < tabWidget->count(); i++)
-    {
-        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
-        if(nullptr != canvas)
-        {
-            cnt++;
-        }
-    }
-
-    CCanvas * view = addView(QString());
-    tabWidget->setCurrentWidget(view);
-
-    testForNoView();
-}
-
-void CMainWindow::slotCloneCanvas()
-{
-    CCanvas * source = getVisibleCanvas();
-    if(nullptr == source)
-    {
-        return;
-    }
-
-    QTemporaryFile temp;
-    temp.open();
-    temp.close();
-
-    QSettings view(temp.fileName(), QSettings::IniFormat);
-    view.clear();
-
-    source->saveConfig(view);
-
-    slotAddCanvas();
-
-    CCanvas * target = getVisibleCanvas();
-    if(nullptr == target)
-    {
-        return;
-    }
-
-    target->loadConfig(view);
-    target->slotTriggerCompleteUpdate(CCanvas::redraw_e::eRedrawGis);
-
-    SETTINGS;
-    cfg.beginGroup("Canvas");
-    cfg.beginGroup("Views");
-    cfg.beginGroup(target->objectName());
-    target->saveConfig(cfg);
-    cfg.endGroup();
-    cfg.endGroup();
-    cfg.endGroup();
-
-    testForNoView();
-}
-
-void CMainWindow::testForNoView()
-{
-    if(tabWidget->count() == 0)
-    {
-        QLabel * label = new QLabel(tabWidget);
-        label->setAlignment(Qt::AlignCenter);
-        label->setWordWrap(true);
-        label->setText(tr("Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>."));
-        label->setObjectName("NoViewInfo");
-        connect(label, &QLabel::linkActivated, this, &CMainWindow::slotLinkActivated);
-        tabWidget->addTab(label, "*");
-        return;
-    }
-
-    QLabel * label = tabWidget->findChild<QLabel*>("NoViewInfo");
-
-    if(label && tabWidget->count() > 1)
-    {
-        delete label;
-    }
-}
-
-void CMainWindow::slotTabCloseRequest(int i)
-{
-    QMutexLocker lock(&CMapItem::mutexActiveMaps);
-
-    delete tabWidget->widget(i);
-
-    testForNoView();
-}
-
-static inline bool compareNames(QString s1, QString s2)
-{
-    return s1.replace("&", "") == s2.replace("&", "");
-}
-
-void CMainWindow::slotCurrentTabCanvas(int i)
-{
-    QString name = tabWidget->tabText(i);
-    for(int n = 0; n < tabMaps->count(); n++)
-    {
-        bool isMapView = compareNames(name, tabMaps->tabText(n));
-
-        actionSetupGrid->setEnabled(isMapView);
-        actionSetupMapBackground->setEnabled(isMapView);
-        actionSetupMapView->setEnabled(isMapView);
-
-        if(isMapView)
-        {
-            tabMaps->setCurrentIndex(n);
-            break;
-        }
-    }
-
-    for(int n = 0; n < tabDem->count(); n++)
-    {
-        if(compareNames(name, tabDem->tabText(n)))
-        {
-            tabDem->setCurrentIndex(n);
-            break;
-        }
-    }
-
-    for(int n = 0; n < tabWidget->count(); n++)
-    {
-        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(n));
-        if(canvas)
-        {
-            if(n == i)
-            {
-                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-                canvas->showProfile(true);
-            }
-            else
-            {
-                canvas->showProfile(false);
-            }
-        }
-    }
-}
-
-void CMainWindow::slotCurrentTabMaps(int i)
-{
-    QString name = tabMaps->tabText(i);
-    for(int n = 0; n < tabWidget->count(); n++)
-    {
-        if(compareNames(name, tabWidget->tabText(n)))
-        {
-            tabWidget->setCurrentIndex(n);
-            break;
-        }
-    }
-
-    for(int n = 0; n < tabDem->count(); n++)
-    {
-        if(compareNames(name, tabDem->tabText(n)))
-        {
-            tabDem->setCurrentIndex(n);
-            break;
-        }
-    }
-}
-
-void CMainWindow::slotCurrentTabDem(int i)
-{
-    QString name = tabMaps->tabText(i);
-    for(int n = 0; n < tabWidget->count(); n++)
-    {
-        if(compareNames(name, tabWidget->tabText(n)))
-        {
-            tabWidget->setCurrentIndex(n);
-            break;
-        }
-    }
-
-    for(int n = 0; n < tabMaps->count(); n++)
-    {
-        if(compareNames(name, tabMaps->tabText(n)))
-        {
-            tabMaps->setCurrentIndex(n);
-            break;
-        }
-    }
-}
-
-void CMainWindow::slotMousePosition(const QPointF& pos, qreal ele, qreal slope)
-{
-    QString str;
-    IUnit::degToStr(pos.x(), pos.y(), str);
-    lblPosWGS84->setText(str);
-
-    if(ele != NOFLOAT)
-    {
-        QString val, unit;
-        IUnit::self().meter2elevation(ele, val, unit);
-        lblElevation->setText(tr("Ele.: %1%2").arg(val).arg(unit));
-        lblElevation->show();
-    }
-    else
-    {
-        lblElevation->hide();
-    }
-
-    if(slope != NOFLOAT)
-    {
-        QString val;
-        val.sprintf("%.1f", slope);
-        lblSlope->setText(tr("Slope: %1%2", "terrain").arg(val).arg("°"));
-        lblSlope->show();
-    }
-    else
-    {
-        lblSlope->hide();
-    }
-
-    if(actionShowGrid->isChecked())
-    {
-        CCanvas * canvas = getVisibleCanvas();
-        if(canvas)
-        {
-            QString str;
-            lblPosGrid->show();
-            canvas->convertGridPos2Str(pos, str, false);
-            lblPosGrid->setText(tr("[Grid: %1]").arg(str));
-        }
-    }
-    else
-    {
-        lblPosGrid->hide();
-    }
-}
-
-void CMainWindow::slotUpdateCurrentWidget()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
-        return;
-    }
-
-    QWidget * w = tabWidget->currentWidget();
-    if(w)
-    {
-        w->update();
-        return;
-    }
-}
-
-
-void CMainWindow::slotSetupMapFont()
-{
-    bool ok = false;
-    QFont f = QFontDialog::getFont(&ok, mapFont, this);
-    if(ok)
-    {
-        mapFont = f;
-        QWidget * w = tabWidget->currentWidget();
-        if(w)
-        {
-            w->update();
-        }
-    }
-}
-
-void CMainWindow::slotSetupMapBackground()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr == canvas)
-    {
-        return;
-    }
-    canvas->setupBackgroundColor();
-}
-
-void CMainWindow::slotSetupGrid()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr == canvas)
-    {
-        return;
-    }
-    canvas->setupGrid();
-}
-
-void CMainWindow::slotSetupMapPath()
-{
-    CMapDraw::setupMapPath();
-}
-
-void CMainWindow::slotSetupDemPath()
-{
-    CDemDraw::setupDemPath();
-}
-
-void CMainWindow::slotSetupMapView()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr == canvas)
-    {
-        return;
-    }
-    canvas->setup();
-}
-
-void CMainWindow::slotSetupTimeZone()
-{
-    CTimeZoneSetup dlg(this);
-    dlg.exec();
-}
-
-void CMainWindow::slotSetupUnits()
-{
-    CUnitsSetup dlg(this);
-    dlg.exec();
-
-    if(QDialog::Accepted == dlg.result())
-    {
-        CKnownExtension::init(IUnit::self());
-    }
-}
-
-void CMainWindow::slotSetupWorkspace()
-{
-    CSetupWorkspace dlg(this);
-    dlg.exec();
-}
-
-void CMainWindow::slotSetupCoordFormat()
-{
-    CCoordFormatSetup dlg(this);
-    dlg.exec();
-}
-
-void CMainWindow::slotSetupToolbar()
-{
-    CToolBarSetupDialog dlg(this,toolBarConfig);
-    dlg.exec();
-}
-
-void CMainWindow::slotImportDatabase()
-{
-    CImportDatabase * widget = new CImportDatabase(this);
-    addWidgetToTab(widget);
-}
-
-void CMainWindow::slotBuildVrt()
-{
-    CMapVrtBuilder * widget = new CMapVrtBuilder(this);
-    addWidgetToTab(widget);
-}
-
-void CMainWindow::slotCreateRoutinoDatabase()
-{
-    CRoutinoDatabaseBuilder * widget = new CRoutinoDatabaseBuilder(this);
-    addWidgetToTab(widget);
-}
-
-void CMainWindow::slotLoadGISData()
-{
-    SETTINGS;
-    QString path   = cfg.value("Paths/lastGisPath",   QDir::homePath()).toString();
-    QString filter = cfg.value("Paths/lastGisFilter", IGisProject::filedialogAllSupported).toString();
-
-    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Load GIS Data..."), path, IGisProject::filedialogLoadFilters, &filter);
-
-    if(filenames.isEmpty())
-    {
-        return;
-    }
-
-    loadGISData(filenames);
-
-    path = QFileInfo(filenames.first()).absolutePath();
-    cfg.setValue("Paths/lastGisPath",   path);
-    cfg.setValue("Paths/lastGisFilter", filter);
-}
-
-
-void CMainWindow::loadGISData(const QStringList& filenames)
-{
-    for(const QString &filename : filenames)
-    {
-        widgetGisWorkspace->loadGisProject(filename);
-    }
-}
-
-
-void CMainWindow::slotStoreView()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr == canvas)
-    {
-        return;
-    }
-
-    SETTINGS;
-    QString path = cfg.value("Paths/lastViewPath", QDir::homePath()).toString();
-    QString filename = QFileDialog::getSaveFileName( this, tr("Select output file"), path, tr("QMapShack View (*.view)"));
-
-    if(filename.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(filename);
-    if(fi.suffix().toLower() != "view")
-    {
-        filename += ".view";
-    }
-
-    QSettings view(filename, QSettings::IniFormat);
-    view.clear();
-
-    canvas->saveConfig(view);
-
-    path = fi.absolutePath();
-    cfg.setValue("Paths/lastViewPath", path);
-}
-
-void CMainWindow::slotLoadView()
-{
-    SETTINGS;
-    QString path = cfg.value("Paths/lastViewPath", QDir::homePath()).toString();
-    QString filename = QFileDialog::getOpenFileName(this, tr("Select file to load"), path, tr("QMapShack View (*.view)"));
-
-    if(filename.isEmpty())
-    {
-        return;
-    }
-
-    slotAddCanvas();
-
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr == canvas)
-    {
-        return;
-    }
-
-    QSettings view(filename, QSettings::IniFormat);
-    canvas->loadConfig(view);
-
-    cfg.beginGroup("Canvas");
-    cfg.beginGroup("Views");
-    cfg.beginGroup(canvas->objectName());
-    canvas->saveConfig(cfg);
-    cfg.endGroup(); // objectName
-    cfg.endGroup(); // "Views"
-    cfg.endGroup(); // "Canvas"
-
-    QFileInfo fi(filename);
-    path = fi.absolutePath();
-    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(nullptr != view)
-        {
-            view->showProfileAsWindow(on);
-        }
-    }
-}
-
-void CMainWindow::slotPrintMap()
-{
-    CCanvas * canvas = getVisibleCanvas();
-    if(nullptr != canvas)
-    {
-        canvas->setMousePrint();
-    }
-}
-
-void CMainWindow::slotLinkActivated(const QString& link)
-{
-    if(link == "newview")
-    {
-        actionAddMapView->trigger();
-    }
-}
-
-void CMainWindow::slotSetupWptIcons()
-{
-    CWptIconDialog dlg(this);
-    dlg.exec();
-}
-
-
-void CMainWindow::slotCloseTab()
-{
-    CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->currentWidget());
-    if(canvas == nullptr)
-    {
-        QWidget * widget = tabWidget->currentWidget();
-        if(widget != nullptr)
-        {
-            widget->deleteLater();
-        }
-    }
-}
-
-void CMainWindow::slotToggleDocks()
-{
-    if (docksVisible())
-    {
-        dockStates = saveState();
-        hideDocks();
-    }
-    else
-    {
-        showDocks();
-        if (!dockStates.isEmpty())
-        {
-            restoreState(dockStates);
-        }
-    }
-}
-
-bool CMainWindow::docksVisible() const
-{
-    for (QDockWidget * const & dock : docks)
-    {
-        if (!dock->isHidden())
-        {
-            return true;
-        }
-    }
-    return false;
-}
-
-void CMainWindow::showDocks() const
-{
-    if (activeDocks.isEmpty())
-    {
-        for (QDockWidget * const & dock : docks)
-        {
-            dock->show();
-        }
-    }
-    else
-    {
-        const QList<QDockWidget *> docksToShow(activeDocks);
-        for (QDockWidget * const & dock : docksToShow)
-        {
-            dock->show();
-        }
-    }
-}
-
-void CMainWindow::hideDocks()
-{
-    activeDocks.clear();
-    for (QDockWidget * const & dock : docks)
-    {
-        if (!dock->isHidden())
-        {
-            dock->hide();
-            activeDocks << dock;
-        }
-    }
-}
-
-void CMainWindow::slotDockVisibilityChanged(bool visible)
-{
-    if (visible)
-    {
-        activeDocks.clear();
-    }
-    else
-    {
-        for (QDockWidget * const & dock : docks)
-        {
-            if (!dock->isHidden())
-            {
-                visible = true;
-                break;
-            }
-        }
-    }
-    actionToggleDocks->setChecked(visible);
-}
-
-void CMainWindow::slotFullScreen()
-{
-    QMutexLocker lock(&CMainWindow::mutex);
-
-    Qt::WindowStates state = windowState();
-    if(state == Qt::WindowFullScreen)
-    {
-        displayRegular();
-    }
-    else
-    {
-        displayMode = state;
-        displayFullscreen();
-    }
-}
-
-void CMainWindow::displayRegular()
-{
-    if (!dockStates.isEmpty())
-    {
-        restoreState(dockStates);
-    }
-    tabWidget->tabBar()->setVisible(true);
-    statusBar()->setVisible(true);
-    if (menuVisible)
-    {
-        menuBar()->setVisible(true);
-    }
-    actionFullScreen->setIcon(QIcon(":/icons/32x32/FullScreen.png"));
-    setWindowState(displayMode);
-}
-
-void CMainWindow::displayFullscreen()
-{
-    dockStates = saveState();
-    setWindowState(Qt::WindowFullScreen);
-    statusBar()->setVisible(false);
-    menuVisible = menuBar()->isVisible();
-    // menu is handled dynamically as on some platforms (e.g. ubuntu with unity)
-    // the menu is not visible but it's actions are active nevertheless
-    if (menuVisible)
-    {
-        menuBar()->setVisible(false);
-    }
-    if (docksVisible())
-    {
-        hideDocks();
-    }
-    if (!toolBarConfig->visibleInFullscreen())
-    {
-        toolBar->setVisible(false);
-    }
-    tabWidget->tabBar()->setVisible(false);
-    actionFullScreen->setIcon(QIcon(":/icons/32x32/RegularScreen.png"));
-}
-
-#ifdef WIN32
-
-static void sendDeviceEvent(DWORD unitmask, bool add)
-{
-    for (char i = 0; i < 26; ++i)
-    {
-        if (unitmask & 0x1)
-        {
-            QString path = QString(i + 'A') + ":/";
-            qDebug() << "sendDeviceEvent" << path << add;
-            CEventDevice * event = new CEventDevice(path, add);
-            QCoreApplication::postEvent(CDeviceWatcherWindows::self(), event);
-            //qDebug() << "postEvent";
-        }
-        unitmask = unitmask >> 1;
-    }
-}
-
-
-bool CMainWindow::nativeEvent(const QByteArray & eventType, void * message, long * result)
-{
-    MSG* msg = (MSG*)message;
-    //qDebug() << "nativeEvent" << eventType << msg->message << msg->lParam << msg->wParam;
-
-    if (WM_DEVICECHANGE == msg->message)
-    {
-        //qDebug() << "WM_DEVICECHANGE";
-        PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)msg->lParam;
-        switch (msg->wParam)
-        {
-        case DBT_DEVICEARRIVAL:
-        {
-            qDebug() << "DBT_DEVICEARRIVAL"<< pHdr->dbch_devicetype;
-            if (pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
-            {
-                PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr;
-                sendDeviceEvent(pHdrv->dbcv_unitmask, true);
-            }
-            break;
-        }
-
-        case  DBT_DEVICEREMOVECOMPLETE:
-        {
-            qDebug() << "DBT_DEVICEREMOVECOMPLETE" << pHdr->dbch_devicetype;
-            if (pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
-            {
-                PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr;
-                sendDeviceEvent(pHdrv->dbcv_unitmask, false);
-            }
-            break;
-        }
-
-        default:
-        {
-            break;
-        }
-        }
-    }
-
-    return QWidget::nativeEvent(eventType, message, result);
-}
-#endif // WIN32
-
-void CMainWindow::dragEnterEvent(QDragEnterEvent *event)
-{
-    if(event->mimeData()->hasUrls())
-    {
-        QList<QUrl> urls = event->mimeData()->urls();
-        QFileInfo fi(urls[0].path());
-        QString ext = fi.suffix().toUpper();
-
-        if ((ext == "QMS") || (ext == "GPX") || (ext == "SLF") || (ext == "FIT") || (ext == "TCX") || (ext == "SML") || (ext == "LOG"))
-        {
-            event->acceptProposedAction();
-        }
-    }
-}
-
-
-void CMainWindow::dropEvent(QDropEvent *event)
-{
-    QList<QUrl> urls = event->mimeData()->urls();
-
-    QStringList filenames;
-    for(const QUrl &url : urls)
-    {
-        filenames << url.toLocalFile();
-    }
-
-    loadGISData(filenames);
-
-    event->acceptProposedAction();
-}
-
-void CMainWindow::slotSanityTest()
-{
-    projPJ pjsrc = pj_init_plus("+init=epsg:32661");
-    if(pjsrc == nullptr)
-    {
-        QMessageBox::critical(this, tr("Fatal...")
-                              ,tr("QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.")
-                              ,QMessageBox::Close);
-
-        deleteLater();
-        return;
-    }
-
-    pj_free(pjsrc);
-
-
-    qDebug() << "Sanity test passed.";
-}
-
diff --git a/src/CMainWindow.h b/src/CMainWindow.h
deleted file mode 100644
index ab5505e..0000000
--- a/src/CMainWindow.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CMAINWINDOW_H
-#define CMAINWINDOW_H
-
-#include "ui_IMainWindow.h"
-#include <QMainWindow>
-
-class CMapList;
-class CDemList;
-class QLabel;
-class CGisWorkspace;
-class CGisDatabase;
-class CCanvas;
-class CToolBarConfig;
-struct SGisLine;
-
-class CMainWindow : public QMainWindow, private Ui::IMainWindow
-{
-    Q_OBJECT
-public:
-    static CMainWindow& self()
-    {
-        return *pSelf;
-    }
-
-    static QWidget * getBestWidgetForParent();
-
-    static QString getUser();
-
-    virtual ~CMainWindow();
-
-    void addMapList(CMapList *list, const QString& name);
-    void addDemList(CDemList *list, const QString& name);
-    void addWidgetToTab(QWidget * w);
-
-    bool isScaleVisible()  const;
-    bool isGridVisible()   const;
-    bool isNight()         const;
-    bool isPOIText()       const;
-    bool isMapToolTip()    const;
-    bool isMinMaxTrackValues() const;
-    bool flipMouseWheel()  const;
-    bool profileIsWindow() const;
-    const QFont& getMapFont() const
-    {
-        return mapFont;
-    }
-
-    void zoomCanvasTo(const QRectF rect);
-    /**
-       @brief Read the elevation from DEM data attached to the currently visible canvas for a given location
-       @param pos   a position in units of [rad]
-       @return If no elevation value can be found for the position NOFLOAT is returned.
-     */
-    qreal getElevationAt(const QPointF &pos) const;
-    void  getElevationAt(const QPolygonF& pos, QPolygonF &ele) const;
-    void  getElevationAt(SGisLine &line) const;
-
-    qreal getSlopeAt(const QPointF &pos) const;
-    void getSlopeAt(const QPolygonF &pos, QPolygonF& slope) const;
-    /**
-       @brief Get pointer to the currently visible canvas object.
-       @return If the currently visible tab does not contain a CCanvas object 0 is returned.
-     */
-    CCanvas* getVisibleCanvas() const;
-    QList<CCanvas*> getCanvas() const;
-
-    QAction * getMapSetupAction()
-    {
-        return actionSetupMapPaths;
-    }
-
-    QAction * getDemSetupAction()
-    {
-        return actionSetupDEMPaths;
-    }
-
-    void loadGISData(const QStringList& filenames);
-
-    const qint32 id;
-protected:
-#ifdef WIN32
-    bool CMainWindow::nativeEvent(const QByteArray & eventType, void * message, long * result);
-#endif // WIN32
-    void dragEnterEvent(QDragEnterEvent *event) override;
-    void dropEvent(QDropEvent *event) override;
-
-
-private slots:
-    void slotAbout();
-    void slotHelp();
-    void slotQuickstart();
-    void slotAddCanvas();
-    void slotCloneCanvas();
-    void slotTabCloseRequest(int i);
-    void slotCurrentTabCanvas(int i);
-    void slotCurrentTabMaps(int i);
-    void slotCurrentTabDem(int i);
-    void slotMousePosition(const QPointF& pos, qreal ele, qreal slope);
-    void slotUpdateCurrentWidget();
-    void slotSetupMapFont();
-    void slotSetupMapBackground();
-    void slotSetupGrid();
-    void slotSetupMapPath();
-    void slotSetupDemPath();
-    void slotSetupMapView();
-    void slotSetupTimeZone();
-    void slotSetupUnits();
-    void slotSetupWorkspace();
-    void slotSetupCoordFormat();
-    void slotSetupToolbar();
-    void slotImportDatabase();
-    void slotLoadGISData();
-    void slotBuildVrt();
-    void slotStoreView();
-    void slotLoadView();
-    void slotSetProfileMode(bool on);
-    void slotCreateRoutinoDatabase();
-    void slotPrintMap();
-    void slotSetupWptIcons();
-    void slotLinkActivated(const QString& link);
-    void slotSanityTest();
-    void slotCloseTab();
-    void slotToggleDocks();
-    void slotDockVisibilityChanged(bool visible);
-    void slotFullScreen();
-
-private:
-    friend int main(int argc, char ** argv);
-    CMainWindow();
-    void prepareMenuForMac();
-    void testForNoView();
-    bool docksVisible() const;
-    void showDocks() const;
-    void hideDocks();
-    void displayRegular();
-    void displayFullscreen();
-    CCanvas * addView(const QString &name);
-
-    static CMainWindow * pSelf;
-
-    /// status bar label
-    QLabel * lblPosWGS84;
-    QLabel * lblElevation;
-    QLabel * lblSlope;
-    QLabel * lblPosGrid;
-
-    QFont mapFont;
-
-    CGisWorkspace * widgetGisWorkspace;
-    CGisDatabase * widgetGisDatabase;
-
-    CToolBarConfig * toolBarConfig;
-
-    QList<QDockWidget *> docks;
-    QList<QDockWidget *> activeDocks;
-    Qt::WindowStates displayMode = Qt::WindowMaximized;
-    QByteArray dockStates;
-    bool menuVisible = false;
-
-    static QMutex mutex;
-};
-
-#endif //CMAINWINDOW_H
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
deleted file mode 100644
index 8fdae64..0000000
--- a/src/CMakeLists.txt
+++ /dev/null
@@ -1,890 +0,0 @@
-# Prevent custom commands/targets outputs to be deleted by make clean
-# We need this to prevent .ts files from being deleted with make clean, when
-# UPDATE_TRANSLATIONS=ON
-# WARNING: Only works with Makefile generator.
-# See: https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=15c454fe
-set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
-
-# Find includes in corresponding build directories
-set(CMAKE_INCLUDE_CURRENT_DIR ON)
-# Instruct CMake to run moc automatically when needed.
-set(CMAKE_AUTOMOC ON)
-
-option(BUILD_FOR_LOCAL_SYSTEM "Build for local system ONLY (resulting binary might not work on other systems!)" OFF)
-
-if(BUILD_FOR_LOCAL_SYSTEM)
-    set(flag "-march=native")
-    CHECK_CXX_COMPILER_FLAG(${flag} Flag:${flag})
-    if(Flag:${flag})
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
-
-        message(WARNING [=[ 
- BUILDING FOR LOCAL SYSTEM ONLY
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Specifying -DBUILD_FOR_LOCAL_SYSTEM=ON will pass -march=native to the compiler.
- The generated binary will exhibit higher performance,
- but will not be portable (e.g., might not work on other CPUs)]=])
-    else(Flag:${flag})
-        message(WARNING [=[
- Your compiler does not support -march=native.
- Ignoring -DBUILD_FOR_LOCAL_SYSTEM=ON!]=])
-    endif(Flag:${flag})
-
-
-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
-endif(BUILD_FOR_LOCAL_SYSTEM)
-
-# Find the QtWidgets library
-find_package(Qt5Widgets REQUIRED)
-find_package(Qt5Core REQUIRED)
-find_package(Qt5Xml REQUIRED)
-find_package(Qt5Script REQUIRED)
-find_package(Qt5Sql REQUIRED)
-find_package(Qt5WebKitWidgets REQUIRED)
-find_package(Qt5LinguistTools REQUIRED)
-find_package(Qt5PrintSupport REQUIRED)
-find_package(Qt5UiTools REQUIRED)
-find_package(GDAL REQUIRED)
-find_package(PROJ REQUIRED)
-find_package(ROUTINO REQUIRED)
-find_package(QuaZip REQUIRED)
-
-if(USE_QT5DBus)
-    find_package(Qt5DBus REQUIRED)
-    if(Qt5DBus_FOUND)
-        add_definitions(-DHAVE_DBUS)
-    endif(Qt5DBus_FOUND)
-endif(USE_QT5DBus)
-
-
-if(${Qt5Widgets_VERSION} MATCHES "5\\.[0-2]{1}\\..*")
-    message( SEND_ERROR "You need at least Qt5.3 or newer.")
-endif()
-
-function(cxx_add_flag_if_supported flag)
-    CHECK_CXX_COMPILER_FLAG(${flag} Flag:${flag})
-    if(Flag:${flag})
-        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" PARENT_SCOPE)
-    endif(Flag:${flag})
-endfunction(cxx_add_flag_if_supported)
-
-if(UNIX)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lstdc++ -lm")
-endif(UNIX)
-
-if (APPLE)
-     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -framework Foundation -framework DiskArbitration")
-     SET(LINK_FLAGS "${LINK_FLAGS} -framework Foundation -framework DiskArbitration")
-endif(APPLE)
-
-if(APPLE)
-     FIND_LIBRARY(DiskArbitration_LIBRARY DiskArbitration)
-     FIND_LIBRARY(Foundation_LIBRARY Foundation)
-endif(APPLE)
-
-
-set( SRCS    
-    CAbout.cpp
-    CMainWindow.cpp
-    CSingleInstanceProxy.cpp
-    GeoMath.cpp
-    canvas/CCanvas.cpp
-    canvas/CCanvasSetup.cpp
-    canvas/IDrawContext.cpp
-    canvas/IDrawObject.cpp
-    dem/CDemDraw.cpp
-    dem/CDemItem.cpp
-    dem/CDemList.cpp
-    dem/CDemPathSetup.cpp
-    dem/CDemPropSetup.cpp
-    dem/CDemVRT.cpp
-    dem/IDem.cpp
-    dem/IDemProp.cpp
-    device/CDeviceGarmin.cpp
-    device/CDeviceGarminArchive.cpp
-    device/CDeviceTwoNav.cpp
-    device/IDevice.cpp
-    device/IDeviceWatcher.cpp
-    gis/CGisDatabase.cpp
-    gis/CGisDraw.cpp
-    gis/CGisListDB.cpp
-    gis/CGisListWks.cpp
-    gis/CGisWorkspace.cpp
-    gis/CSelDevices.cpp
-    gis/CSetupFilter.cpp
-    gis/IGisItem.cpp
-    gis/IGisLine.cpp
-    gis/WptIcons.cpp
-    gis/db/CDBFolderGroup.cpp
-    gis/db/CDBFolderLostFound.cpp
-    gis/db/CDBFolderMysql.cpp
-    gis/db/CDBFolderOther.cpp
-    gis/db/CDBFolderProject.cpp
-    gis/db/CDBFolderSqlite.cpp
-    gis/db/CDBItem.cpp
-    gis/db/CDBProject.cpp
-    gis/db/CExportDatabase.cpp
-    gis/db/CExportDatabaseThread.cpp
-    gis/db/CLostFoundProject.cpp
-    gis/db/CSearchDatabase.cpp
-    gis/db/CSelectDBFolder.cpp
-    gis/db/CSelectSaveAction.cpp
-    gis/db/CSetupDatabase.cpp
-    gis/db/CSetupFolder.cpp
-    gis/db/CSetupWorkspace.cpp
-    gis/db/IDB.cpp
-    gis/db/IDBFolder.cpp
-    gis/db/IDBFolderSql.cpp
-    gis/db/IDBMysql.cpp
-    gis/db/IDBSqlite.cpp
-    gis/fit/CFitProject.cpp
-    gis/fit/CFitStream.cpp
-    gis/fit/decoder/CFitByteDataTransformer.cpp
-    gis/fit/decoder/CFitCrcState.cpp
-    gis/fit/decoder/CFitDecoder.cpp
-    gis/fit/decoder/CFitDefinitionMessage.cpp
-    gis/fit/decoder/CFitDevFieldDefinition.cpp
-    gis/fit/decoder/CFitDevFieldDefinitionState.cpp
-    gis/fit/decoder/CFitField.cpp
-    gis/fit/decoder/CFitFieldBuilder.cpp
-    gis/fit/decoder/CFitFieldDataState.cpp
-    gis/fit/decoder/CFitFieldDefinition.cpp
-    gis/fit/decoder/CFitFieldDefinitionState.cpp
-    gis/fit/decoder/CFitHeaderState.cpp
-    gis/fit/decoder/CFitMessage.cpp
-    gis/fit/decoder/CFitRecordContentState.cpp
-    gis/fit/decoder/CFitRecordHeaderState.cpp
-    gis/fit/decoder/IFitDecoderState.cpp
-    gis/fit/defs/CFitBaseType.cpp
-    gis/fit/defs/CFitFieldProfile.cpp
-    gis/fit/defs/CFitProfile.cpp
-    gis/fit/defs/CFitProfileLookup.cpp
-    gis/fit/serialization.cpp
-    gis/gpx/CGpxProject.cpp
-    gis/gpx/serialization.cpp
-    gis/ovl/CDetailsOvlArea.cpp
-    gis/ovl/CGisItemOvlArea.cpp
-    gis/ovl/CScrOptOvlArea.cpp
-    gis/prj/CDetailsPrj.cpp
-    gis/prj/IGisProject.cpp
-    gis/qlb/CQlbProject.cpp
-    gis/qms/CQmsProject.cpp
-    gis/qms/serialization.cpp
-    gis/rte/CCreateRouteFromWpt.cpp
-    gis/rte/CDetailsRte.cpp
-    gis/rte/CGisItemRte.cpp
-    gis/rte/CScrOptRte.cpp
-    gis/rte/router/CRouterBRouter.cpp
-    gis/rte/router/CRouterMapQuest.cpp
-    gis/rte/router/CRouterRoutino.cpp
-    gis/rte/router/CRouterSetup.cpp
-    gis/rte/router/IRouter.cpp
-    gis/rte/router/brouter/CRouterBRouterInfo.cpp
-    gis/rte/router/brouter/CRouterBRouterSetup.cpp
-    gis/rte/router/brouter/CRouterBRouterSetupPage.cpp
-    gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
-    gis/rte/router/brouter/CRouterBRouterTilesPage.cpp
-    gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp
-    gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp
-    gis/rte/router/brouter/CRouterBRouterToolShell.cpp
-    gis/rte/router/routino/CRouterRoutinoPathSetup.cpp
-    gis/search/CSearchGoogle.cpp
-    gis/slf/CSlfProject.cpp
-    gis/slf/CSlfReader.cpp
-    gis/suunto/CLogProject.cpp
-    gis/suunto/CSmlProject.cpp
-    gis/suunto/ISuuntoProject.cpp
-    gis/tcx/CTcxProject.cpp
-    gis/tcx/serialization.cpp
-    gis/tnv/CTwoNavProject.cpp
-    gis/tnv/serialization.cpp
-    gis/trk/CActivityTrk.cpp
-    gis/trk/CCombineTrk.cpp
-    gis/trk/CCutTrk.cpp
-    gis/trk/CDetailsTrk.cpp
-    gis/trk/CGisItemTrk.cpp
-    gis/trk/CKnownExtension.cpp
-    gis/trk/CPropertyTrk.cpp
-    gis/trk/CScrOptTrk.cpp
-    gis/trk/CSelectActivityColor.cpp
-    gis/trk/CTableTrk.cpp
-    gis/trk/CTrackData.cpp
-    gis/trk/filter/CFilterDelete.cpp
-    gis/trk/filter/CFilterDeleteExtension.cpp
-    gis/trk/filter/CFilterDouglasPeuker.cpp
-    gis/trk/filter/CFilterInterpolateElevation.cpp
-    gis/trk/filter/CFilterInvalid.cpp
-    gis/trk/filter/CFilterMedian.cpp
-    gis/trk/filter/CFilterNewDate.cpp
-    gis/trk/filter/CFilterObscureDate.cpp
-    gis/trk/filter/CFilterOffsetElevation.cpp
-    gis/trk/filter/CFilterReplaceElevation.cpp
-    gis/trk/filter/CFilterReset.cpp
-    gis/trk/filter/CFilterSpeed.cpp
-    gis/trk/filter/CFilterSplitSegment.cpp
-    gis/trk/filter/CFilterSubPt2Pt.cpp
-    gis/trk/filter/CFilterTerrainSlope.cpp
-    gis/trk/filter/filter.cpp
-    gis/wpt/CDetailsGeoCache.cpp
-    gis/wpt/CDetailsWpt.cpp
-    gis/wpt/CGisItemWpt.cpp
-    gis/wpt/CProjWpt.cpp
-    gis/wpt/CScrOptWpt.cpp
-    gis/wpt/CScrOptWptRadius.cpp
-    gis/wpt/CSetupNewWpt.cpp
-    grid/CGrid.cpp
-    grid/CGridSetup.cpp
-    grid/CProjWizard.cpp
-    grid/mitab.cpp
-    helpers/CDraw.cpp
-    helpers/CElevationDialog.cpp
-    helpers/CInputDialog.cpp
-    helpers/CLimit.cpp
-    helpers/CLinksDialog.cpp
-    helpers/CPhotoViewer.cpp
-    helpers/CPositionDialog.cpp
-    helpers/CProgressDialog.cpp
-    helpers/CSelectCopyAction.cpp
-    helpers/CSelectProjectDialog.cpp
-    helpers/CToolBarConfig.cpp
-    helpers/CToolBarSetupDialog.cpp
-    helpers/CValue.cpp
-    helpers/CWptIconDialog.cpp
-    main.cpp
-    map/CMapDraw.cpp
-    map/CMapGEMF.cpp
-    map/CMapIMG.cpp
-    map/CMapItem.cpp
-    map/CMapJNX.cpp
-    map/CMapList.cpp
-    map/CMapMAP.cpp
-    map/CMapPathSetup.cpp
-    map/CMapPropSetup.cpp
-    map/CMapRMAP.cpp
-    map/CMapTMS.cpp
-    map/CMapVRT.cpp
-    map/CMapWMTS.cpp
-    map/IMap.cpp
-    map/IMapOnline.cpp
-    map/IMapProp.cpp
-    map/cache/CDiskCache.cpp
-    map/garmin/CGarminPoint.cpp
-    map/garmin/CGarminPolygon.cpp
-    map/garmin/CGarminStrTbl6.cpp
-    map/garmin/CGarminStrTbl8.cpp
-    map/garmin/CGarminStrTblUtf8.cpp
-    map/garmin/CGarminTyp.cpp
-    map/garmin/IGarminStrTbl.cpp
-    map/mapsforge/types.cpp
-    mouse/CMouseDummy.cpp
-    mouse/CMouseEditArea.cpp
-    mouse/CMouseEditRte.cpp
-    mouse/CMouseEditTrk.cpp
-    mouse/CMouseMoveWpt.cpp
-    mouse/CMouseNormal.cpp
-    mouse/CMousePrint.cpp
-    mouse/CMouseRadiusWpt.cpp
-    mouse/CMouseRangeTrk.cpp
-    mouse/CMouseSelect.cpp
-    mouse/CMouseWptBubble.cpp
-    mouse/CScrOptPrint.cpp
-    mouse/CScrOptRangeTrk.cpp
-    mouse/CScrOptSelect.cpp
-    mouse/CScrOptUnclutter.cpp
-    mouse/IMouse.cpp
-    mouse/IMouseSelect.cpp
-    mouse/IScrOpt.cpp
-    mouse/line/CLineOpAddPoint.cpp
-    mouse/line/CLineOpDeletePoint.cpp
-    mouse/line/CLineOpMovePoint.cpp
-    mouse/line/CLineOpSelectRange.cpp
-    mouse/line/CScrOptEditLine.cpp
-    mouse/line/CScrOptRangeLine.cpp
-    mouse/line/ILineOp.cpp
-    mouse/line/IMouseEditLine.cpp
-    plot/CPlot.cpp
-    plot/CPlotAxis.cpp
-    plot/CPlotAxisTime.cpp
-    plot/CPlotData.cpp
-    plot/CPlotProfile.cpp
-    plot/CPlotTrack.cpp
-    plot/IPlot.cpp
-    plot/ITrack.cpp
-    print/CPrintDialog.cpp
-    qlgt/CQlb.cpp
-    qlgt/CQlgtDb.cpp
-    qlgt/CQlgtDiary.cpp
-    qlgt/CQlgtFolder.cpp
-    qlgt/CQlgtRoute.cpp
-    qlgt/CQlgtTrack.cpp
-    qlgt/CQlgtWpt.cpp
-    qlgt/CQmsDb.cpp
-    qlgt/IItem.cpp
-    qlgt/IQlgtOverlay.cpp
-    qlgt/converter.cpp
-    setup/CAppSetupLinux.cpp
-    setup/CAppSetupMac.cpp
-    setup/CAppSetupWin.cpp
-    setup/CCommandProcessor.cpp
-    setup/CLogHandler.cpp
-    setup/IAppSetup.cpp
-    tool/CImportDatabase.cpp
-    tool/CMapVrtBuilder.cpp
-    tool/CRoutinoDatabaseBuilder.cpp
-    tool/IToolShell.cpp
-    units/CCoordFormatSetup.cpp
-    units/CTimeZoneSetup.cpp
-    units/CUnitImperial.cpp
-    units/CUnitMetric.cpp
-    units/CUnitNautic.cpp
-    units/CUnitsSetup.cpp
-    units/IUnit.cpp
-    widgets/CColorChooser.cpp
-    widgets/CColorLegend.cpp
-    widgets/CDoubleSpinBox.cpp
-    widgets/CFadingIcon.cpp
-    widgets/CHistoryListWidget.cpp
-    widgets/CLineEdit.cpp
-    widgets/CPhotoAlbum.cpp
-    widgets/CSelectDoubleListWidget.cpp
-    widgets/CTemplateWidget.cpp
-    widgets/CTextEdit.cpp
-    widgets/CTextEditWidget.cpp
-    widgets/CTextEditWidgetSelMenu.cpp
-    widgets/CTinySpinBox.cpp
-)
-
-
-if(Qt5DBus_FOUND)
-set( SRCS
-    ${SRCS}
-    device/CDeviceWatcherLinux.cpp
-)
-endif(Qt5DBus_FOUND)
-
-
-if (APPLE)
-set( SRCS
-    ${SRCS}
-    device/CDeviceWatcherMac.cpp
-)
-endif(APPLE)
-
-if(WIN32)
-set( SRCS
-    ${SRCS}
-    device/CDeviceWatcherWindows.cpp
-)
-endif(WIN32)
-
-
-set( HDRS
-        CAbout.h
-        CMainWindow.h
-        CSingleInstanceProxy.h
-        GeoMath.h
-        canvas/CCanvas.h
-        canvas/CCanvasSetup.h
-        canvas/IDrawContext.h
-        canvas/IDrawObject.h
-        dem/CDemDraw.h
-        dem/CDemItem.h
-        dem/CDemList.h
-        dem/CDemPathSetup.h
-        dem/CDemPropSetup.h
-        dem/CDemVRT.h
-        dem/IDem.h
-        dem/IDemProp.h
-        device/CDeviceGarmin.h
-        device/CDeviceGarminArchive.h
-        device/CDeviceTwoNav.h
-        device/IDevice.h
-        device/IDeviceWatcher.h
-        gis/CGisDatabase.h
-        gis/CGisDraw.h
-        gis/CGisListDB.h
-        gis/CGisListWks.h
-        gis/CGisWorkspace.h
-        gis/CSelDevices.h
-        gis/CSetupFilter.h
-        gis/IGisItem.h
-        gis/IGisLine.h
-        gis/Poi.h
-        gis/WptIcons.h
-        gis/db/CDBFolderGroup.h
-        gis/db/CDBFolderLostFound.h
-        gis/db/CDBFolderMysql.h
-        gis/db/CDBFolderOther.h
-        gis/db/CDBFolderProject.h
-        gis/db/CDBFolderSqlite.h
-        gis/db/CDBItem.h
-        gis/db/CDBProject.h
-        gis/db/CExportDatabase.h
-        gis/db/CExportDatabaseThread.h
-        gis/db/CLostFoundProject.h
-        gis/db/CSearchDatabase.h
-        gis/db/CSelectDBFolder.h
-        gis/db/CSelectSaveAction.h
-        gis/db/CSetupDatabase.h
-        gis/db/CSetupFolder.h
-        gis/db/CSetupWorkspace.h
-        gis/db/IDB.h
-        gis/db/IDBFolder.h
-        gis/db/IDBFolderSql.h
-        gis/db/IDBMysql.h
-        gis/db/IDBSqlite.h
-        gis/db/macros.h
-        gis/fit/CFitProject.h
-        gis/fit/CFitStream.h
-        gis/fit/decoder/CFitByteDataTransformer.h
-        gis/fit/decoder/CFitCrcState.h
-        gis/fit/decoder/CFitDecoder.h
-        gis/fit/decoder/CFitDefinitionMessage.h
-        gis/fit/decoder/CFitDevFieldDefinition.h
-        gis/fit/decoder/CFitDevFieldDefinitionState.h
-        gis/fit/decoder/CFitField.h
-        gis/fit/decoder/CFitFieldBuilder.h
-        gis/fit/decoder/CFitFieldDataState.h
-        gis/fit/decoder/CFitFieldDefinition.h
-        gis/fit/decoder/CFitFieldDefinitionState.h
-        gis/fit/decoder/CFitHeaderState.h
-        gis/fit/decoder/CFitMessage.h
-        gis/fit/decoder/CFitRecordContentState.h
-        gis/fit/decoder/CFitRecordHeaderState.h
-        gis/fit/decoder/IFitDecoderState.h
-        gis/fit/defs/CFitBaseType.h
-        gis/fit/defs/CFitFieldProfile.h
-        gis/fit/defs/CFitProfile.h
-        gis/fit/defs/CFitProfileLookup.h
-        gis/fit/defs/fit_const.h
-        gis/fit/defs/fit_enums.h
-        gis/fit/defs/fit_fields.h
-        gis/gpx/CGpxProject.h
-        gis/ovl/CDetailsOvlArea.h
-        gis/ovl/CGisItemOvlArea.h
-        gis/ovl/CScrOptOvlArea.h
-        gis/prj/CDetailsPrj.h
-        gis/prj/IGisProject.h
-        gis/qlb/CQlbProject.h
-        gis/qms/CQmsProject.h
-        gis/rte/CCreateRouteFromWpt.h
-        gis/rte/CDetailsRte.h
-        gis/rte/CGisItemRte.h
-        gis/rte/CScrOptRte.h
-        gis/rte/router/CRouterBRouter.h
-        gis/rte/router/CRouterMapQuest.h
-        gis/rte/router/CRouterRoutino.h
-        gis/rte/router/CRouterSetup.h
-        gis/rte/router/IRouter.h
-        gis/rte/router/brouter/CRouterBRouterInfo.h
-        gis/rte/router/brouter/CRouterBRouterSetup.h
-        gis/rte/router/brouter/CRouterBRouterSetupPage.h
-        gis/rte/router/brouter/CRouterBRouterSetupWizard.h
-        gis/rte/router/brouter/CRouterBRouterTilesPage.h
-        gis/rte/router/brouter/CRouterBRouterTilesSelect.h
-        gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h
-        gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h
-        gis/rte/router/brouter/CRouterBRouterTilesStatus.h
-        gis/rte/router/brouter/CRouterBRouterToolShell.h
-        gis/rte/router/routino/CRouterRoutinoPathSetup.h
-        gis/search/CSearchGoogle.h
-        gis/slf/CSlfProject.h
-        gis/slf/CSlfReader.h
-        gis/suunto/CLogProject.h
-        gis/suunto/CSmlProject.h
-        gis/suunto/ISuuntoProject.h
-        gis/tcx/CTcxProject.h
-        gis/tnv/CTwoNavProject.h
-        gis/trk/CActivityTrk.h
-        gis/trk/CCombineTrk.h
-        gis/trk/CCutTrk.h
-        gis/trk/CDetailsTrk.h
-        gis/trk/CGisItemTrk.h
-        gis/trk/CKnownExtension.h
-        gis/trk/CPropertyTrk.h
-        gis/trk/CScrOptTrk.h
-        gis/trk/CSelectActivityColor.h
-        gis/trk/CTableTrk.h
-        gis/trk/CTrackData.h
-        gis/trk/filter/CFilterDelete.h
-        gis/trk/filter/CFilterDeleteExtension.h
-        gis/trk/filter/CFilterDouglasPeuker.h
-        gis/trk/filter/CFilterInterpolateElevation.h
-        gis/trk/filter/CFilterInvalid.h
-        gis/trk/filter/CFilterMedian.h
-        gis/trk/filter/CFilterNewDate.h
-        gis/trk/filter/CFilterObscureDate.h
-        gis/trk/filter/CFilterOffsetElevation.h
-        gis/trk/filter/CFilterReplaceElevation.h
-        gis/trk/filter/CFilterReset.h
-        gis/trk/filter/CFilterSpeed.h
-        gis/trk/filter/CFilterSplitSegment.h
-        gis/trk/filter/CFilterSubPt2Pt.h
-        gis/trk/filter/CFilterTerrainSlope.h
-        gis/wpt/CDetailsGeoCache.h
-        gis/wpt/CDetailsWpt.h
-        gis/wpt/CGisItemWpt.h
-        gis/wpt/CProjWpt.h
-        gis/wpt/CScrOptWpt.h
-        gis/wpt/CScrOptWptRadius.h
-        gis/wpt/CSetupNewWpt.h
-        grid/CGrid.h
-        grid/CGridSetup.h
-        grid/CProjWizard.h
-        grid/mitab.h
-        helpers/CDraw.h
-        helpers/CElevationDialog.h
-        helpers/CFileExt.h
-        helpers/CInputDialog.h
-        helpers/CLimit.h
-        helpers/CLinksDialog.h
-        helpers/CPhotoViewer.h
-        helpers/CPositionDialog.h
-        helpers/CProgressDialog.h
-        helpers/CSelectCopyAction.h
-        helpers/CSelectProjectDialog.h
-        helpers/CSettings.h
-        helpers/CToolBarConfig.h
-        helpers/CToolBarSetupDialog.h
-        helpers/CValue.h
-        helpers/CWptIconDialog.h
-        helpers/Platform.h
-        helpers/Signals.h
-        map/CMapDraw.h
-        map/CMapGEMF.h
-        map/CMapIMG.h
-        map/CMapItem.h
-        map/CMapJNX.h
-        map/CMapList.h
-        map/CMapMAP.h
-        map/CMapPathSetup.h
-        map/CMapPropSetup.h
-        map/CMapRMAP.h
-        map/CMapTMS.h
-        map/CMapVRT.h
-        map/CMapWMTS.h
-        map/IMap.h
-        map/IMapOnline.h
-        map/IMapProp.h
-        map/cache/CDiskCache.h
-        map/garmin/CGarminPoint.h
-        map/garmin/CGarminPolygon.h
-        map/garmin/CGarminStrTbl6.h
-        map/garmin/CGarminStrTbl8.h
-        map/garmin/CGarminStrTblUtf8.h
-        map/garmin/CGarminTyp.h
-        map/garmin/Garmin.h
-        map/garmin/IGarminStrTbl.h
-        map/mapsforge/types.h
-        mouse/CMouseDummy.h
-        mouse/CMouseEditArea.h
-        mouse/CMouseEditRte.h
-        mouse/CMouseEditTrk.h
-        mouse/CMouseMoveWpt.h
-        mouse/CMouseNormal.h
-        mouse/CMousePrint.h
-        mouse/CMouseRadiusWpt.h
-        mouse/CMouseRangeTrk.h
-        mouse/CMouseSelect.h
-        mouse/CMouseWptBubble.h
-        mouse/CScrOptPrint.h
-        mouse/CScrOptRangeTrk.h
-        mouse/CScrOptSelect.h
-        mouse/CScrOptUnclutter.h
-        mouse/IMouse.h
-        mouse/IMouseSelect.h
-        mouse/IScrOpt.h
-        mouse/line/CLineOpAddPoint.h
-        mouse/line/CLineOpDeletePoint.h
-        mouse/line/CLineOpMovePoint.h
-        mouse/line/CLineOpSelectRange.h
-        mouse/line/CScrOptEditLine.h
-        mouse/line/CScrOptRangeLine.h
-        mouse/line/ILineOp.h
-        mouse/line/IMouseEditLine.h
-        plot/CPlot.h
-        plot/CPlotAxis.h
-        plot/CPlotAxisTime.h
-        plot/CPlotData.h
-        plot/CPlotProfile.h
-        plot/CPlotTrack.h
-        plot/IPlot.h
-        plot/ITrack.h
-        print/CPrintDialog.h
-        qlgt/CQlb.h
-        qlgt/CQlgtDb.h
-        qlgt/CQlgtDiary.h
-        qlgt/CQlgtFolder.h
-        qlgt/CQlgtRoute.h
-        qlgt/CQlgtTrack.h
-        qlgt/CQlgtWpt.h
-        qlgt/CQmsDb.h
-        qlgt/IItem.h
-        qlgt/IQlgtOverlay.h
-        setup/CAppOpts.h
-        setup/CAppSetupLinux.h
-        setup/CAppSetupMac.h
-        setup/CAppSetupWin.h
-        setup/CCommandProcessor.h
-        setup/CLogHandler.h
-        setup/IAppSetup.h
-        tool/CImportDatabase.h
-        tool/CMapVrtBuilder.h
-        tool/CRoutinoDatabaseBuilder.h
-        tool/IToolShell.h
-        units/CCoordFormatSetup.h
-        units/CTimeZoneSetup.h
-        units/CUnitImperial.h
-        units/CUnitMetric.h
-        units/CUnitNautic.h
-        units/CUnitsSetup.h
-        units/IUnit.h
-        version.h
-        widgets/CColorChooser.h
-        widgets/CColorLegend.h
-        widgets/CDoubleSpinBox.h
-        widgets/CFadingIcon.h
-        widgets/CHistoryListWidget.h
-        widgets/CLineEdit.h
-        widgets/CPhotoAlbum.h
-        widgets/CSelectDoubleListWidget.h
-        widgets/CTemplateWidget.h
-        widgets/CTextEdit.h
-        widgets/CTextEditWidget.h
-        widgets/CTextEditWidgetSelMenu.h
-        widgets/CTinySpinBox.h
-)
-
-
-if(Qt5DBus_FOUND)
-set( HDRS
-    ${HDRS}
-    device/CDeviceWatcherLinux.h
-)
-endif(Qt5DBus_FOUND)
-
-
-if(APPLE)
-set( HDRS
-    ${HDRS}
-    device/CDeviceWatcherMac.h
-    )
-endif(APPLE)
-
-if(WIN32)
-set( HDRS
-    ${HDRS}
-    device/CDeviceWatcherWindows.h
-)
-endif(WIN32)
-
-set( UIS
-    IAbout.ui
-    IMainWindow.ui
-    canvas/ICanvasSetup.ui
-    dem/IDemList.ui
-    dem/IDemPathSetup.ui
-    dem/IDemPropSetup.ui
-    gis/IGisDatabase.ui
-    gis/IGisWorkspace.ui
-    gis/ISelDevices.ui
-    gis/ISetupFilter.ui
-    gis/db/IExportDatabase.ui
-    gis/db/ISearchDatabase.ui
-    gis/db/ISelectDBFolder.ui
-    gis/db/ISelectSaveAction.ui
-    gis/db/ISetupDatabase.ui
-    gis/db/ISetupFolder.ui
-    gis/db/ISetupWorkspace.ui
-    gis/ovl/IDetailsOvlArea.ui
-    gis/ovl/IScrOptOvlArea.ui
-    gis/prj/IDetailsPrj.ui
-    gis/rte/ICreateRouteFromWpt.ui
-    gis/rte/IDetailsRte.ui
-    gis/rte/IScrOptRte.ui
-    gis/rte/router/IRouterBRouter.ui
-    gis/rte/router/IRouterMapQuest.ui
-    gis/rte/router/IRouterRoutino.ui
-    gis/rte/router/IRouterSetup.ui
-    gis/rte/router/brouter/IRouterBRouterInfo.ui
-    gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
-    gis/rte/router/routino/IRouterRoutinoPathSetup.ui
-    gis/trk/ICombineTrk.ui
-    gis/trk/ICutTrk.ui
-    gis/trk/IDetailsTrk.ui
-    gis/trk/IScrOptTrk.ui
-    gis/trk/ISelectActivityColor.ui
-    gis/trk/filter/IFilterDelete.ui
-    gis/trk/filter/IFilterDeleteExtension.ui
-    gis/trk/filter/IFilterDouglasPeuker.ui
-    gis/trk/filter/IFilterInterpolateElevation.ui
-    gis/trk/filter/IFilterInvalid.ui
-    gis/trk/filter/IFilterMedian.ui
-    gis/trk/filter/IFilterNewDate.ui
-    gis/trk/filter/IFilterObscureDate.ui
-    gis/trk/filter/IFilterOffsetElevation.ui
-    gis/trk/filter/IFilterReplaceElevation.ui
-    gis/trk/filter/IFilterReset.ui
-    gis/trk/filter/IFilterSpeed.ui
-    gis/trk/filter/IFilterSplitSegment.ui
-    gis/trk/filter/IFilterSubPt2Pt.ui
-    gis/trk/filter/IFilterTerrainSlope.ui
-    gis/wpt/IDetailsGeoCache.ui
-    gis/wpt/IDetailsWpt.ui
-    gis/wpt/IProjWpt.ui
-    gis/wpt/IScrOptWpt.ui
-    gis/wpt/IScrOptWptRadius.ui
-    gis/wpt/ISetupNewWpt.ui
-    grid/IGridSetup.ui
-    grid/IProjWizard.ui
-    helpers/IElevationDialog.ui
-    helpers/IInputDialog.ui
-    helpers/ILinksDialog.ui
-    helpers/IPositionDialog.ui
-    helpers/IProgressDialog.ui
-    helpers/ISelectCopyAction.ui
-    helpers/ISelectProjectDialog.ui
-    helpers/IToolBarSetupDialog.ui
-    helpers/IWptIconDialog.ui
-    map/IMapList.ui
-    map/IMapPathSetup.ui
-    map/IMapPropSetup.ui
-    mouse/IScrOptPrint.ui
-    mouse/IScrOptRangeTrk.ui
-    mouse/IScrOptSelect.ui
-    mouse/line/IScrOptEditLine.ui
-    mouse/line/IScrOptRangeLine.ui
-    print/IPrintDialog.ui
-    templates/Hiking_Tour_Summary.ui
-    tool/IImportDatabase.ui
-    tool/IMapVrtBuilder.ui
-    tool/IRoutinoDatabaseBuilder.ui
-    units/ICoordFormatSetup.ui
-    units/ITimeZoneSetup.ui
-    units/IUnitsSetup.ui
-    widgets/IColorChooser.ui
-    widgets/IPhotoAlbum.ui
-    widgets/ISelectDoubleListWidget.ui
-    widgets/ITemplateWidget.ui
-    widgets/ITextEditWidget.ui
-    widgets/ITextEditWidgetSelMenu.ui
-)
-
-
-set( RCS
-    resources.qrc
-)
-
-
-qt5_wrap_ui(UI_HDRS ${UIS})
-qt5_add_resources(RC_SRCS ${RCS})
-
-# try to figure out which compiler flags are supported (and add them)
-cxx_add_flag_if_supported(-Wsuggest-override)
-cxx_add_flag_if_supported(-Woverloaded-virtual)
-
-if(UNIX)
-    add_definitions(-Wall -Wpedantic -Wno-switch -Wno-strict-aliasing)
-endif(UNIX)
-
-if(WIN32)
-    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-endif(WIN32)
-
-add_definitions(-DROUTINO_XML_PATH=${ROUTINO_XML_PATH})
-
-translate_ts(${APPLICATION_NAME}_QM_FILES
-    UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
-    UPDATE_OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}" "-no-obsolete"
-    SOURCES ${SRCS} ${HDRS} ${UIS}
-    TEMPLATE ${APPLICATION_NAME}
-    TRANSLATION_DIR "locale"
-)
-
-if (UNIX AND NOT WIN32 AND NOT APPLE)
-    translate_desktop(${APPLICATION_NAME}_DESKTOP_FILES
-        TRANSLATION_DIR "locale"
-        SOURCES "${PROJECT_SOURCE_DIR}/qmapshack.desktop.in"
-    )
-endif()
-
-set(MAININP
-        ${SRCS}
-        ${HDRS}
-        ${UI_HDRS}
-        ${RC_SRCS}
-        ${${APPLICATION_NAME}_QM_FILES}
-        ${${APPLICATION_NAME}_DESKTOP_FILES}
-)
-
-include_directories(
-    ${CMAKE_BINARY_DIR}
-)
-
-include_directories(
-    SYSTEM # this prevents warnings from non-QMS headers
-    ${GDAL_INCLUDE_DIRS}
-    ${PROJ_INCLUDE_DIRS}
-    ${ROUTINO_INCLUDE_DIRS}
-    ${ALGLIB_INCLUDE_DIRS}
-    ${QUAZIP_INCLUDE_DIRS}
-)
-
-if(APPLE)
-     INCLUDE_DIRECTORIES(/System/Library/Frameworks/Foundation.framework)
-     INCLUDE_DIRECTORIES(/System/Library/Frameworks/DiskArbitration.framework)
-endif(APPLE)
-
-add_executable(${APPLICATION_NAME} WIN32 ${MAININP})
-
-
-if(Qt5DBus_FOUND)
-    set(DBUS_LIB Qt5::DBus)
-else(Qt5DBus_FOUND)
-    set(DBUS_LIB)
-endif(Qt5DBus_FOUND)
-
-target_link_libraries(${APPLICATION_NAME}
-    Qt5::Widgets
-    Qt5::Xml
-    Qt5::Script
-    Qt5::Sql
-    Qt5::WebKitWidgets
-    Qt5::PrintSupport
-    Qt5::UiTools
-    ${DBUS_LIB}
-    ${GDAL_LIBRARIES}
-    ${PROJ_LIBRARIES}
-    ${ROUTINO_LIBRARIES}
-    ${ALGLIB_LIBRARIES}
-    ${QUAZIP_LIBRARIES}
-)
-
-if(APPLE)
-     target_link_libraries(${APPLICATION_NAME}
-     ${Foundation_LIBRARY}
-     ${DiskArbitration_LIBRARY}
-    )
-endif(APPLE)
-
-install(
-    TARGETS
-      ${APPLICATION_NAME}
-    DESTINATION
-      ${BIN_INSTALL_DIR}
-)
-
-if (UNIX AND NOT WIN32 AND NOT APPLE)
-install(
-    FILES
-        ${${APPLICATION_NAME}_QM_FILES}
-    DESTINATION
-        ${DATA_INSTALL_PREFIX}/${APPLICATION_NAME}/translations)
-
-install(
-    FILES
-        ${${APPLICATION_NAME}_DESKTOP_FILES}
-    DESTINATION
-        ${XDG_APPS_DIR}
-)
-endif (UNIX AND NOT WIN32 AND NOT APPLE)
diff --git a/src/IMainWindow.ui b/src/IMainWindow.ui
deleted file mode 100644
index c01edb9..0000000
--- a/src/IMainWindow.ui
+++ /dev/null
@@ -1,865 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IMainWindow</class>
- <widget class="QMainWindow" name="IMainWindow">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>800</width>
-    <height>600</height>
-   </rect>
-  </property>
-  <property name="acceptDrops">
-   <bool>true</bool>
-  </property>
-  <property name="windowTitle">
-   <string>QMapShack</string>
-  </property>
-  <property name="windowIcon">
-   <iconset resource="resources.qrc">
-    <normaloff>:/icons/48x48/QMapShack.png</normaloff>:/icons/48x48/QMapShack.png</iconset>
-  </property>
-  <widget class="QWidget" name="centralwidget">
-   <layout class="QVBoxLayout" name="verticalLayout">
-    <property name="spacing">
-     <number>0</number>
-    </property>
-    <property name="leftMargin">
-     <number>0</number>
-    </property>
-    <property name="topMargin">
-     <number>0</number>
-    </property>
-    <property name="rightMargin">
-     <number>0</number>
-    </property>
-    <property name="bottomMargin">
-     <number>0</number>
-    </property>
-    <item>
-     <widget class="QTabWidget" name="tabWidget">
-      <property name="currentIndex">
-       <number>-1</number>
-      </property>
-      <property name="tabsClosable">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QMenuBar" name="menubar">
-   <property name="geometry">
-    <rect>
-     <x>0</x>
-     <y>0</y>
-     <width>800</width>
-     <height>23</height>
-    </rect>
-   </property>
-   <widget class="QMenu" name="menuFile">
-    <property name="title">
-     <string>File</string>
-    </property>
-    <addaction name="actionLoadGISData"/>
-    <addaction name="actionSaveGISData"/>
-    <addaction name="separator"/>
-    <addaction name="actionLoadView"/>
-    <addaction name="actionStoreView"/>
-    <addaction name="separator"/>
-    <addaction name="actionSetupMapPaths"/>
-    <addaction name="actionSetupDEMPaths"/>
-    <addaction name="separator"/>
-    <addaction name="actionPrintMap"/>
-    <addaction name="separator"/>
-    <addaction name="actionClose"/>
-   </widget>
-   <widget class="QMenu" name="menuView">
-    <property name="title">
-     <string>View</string>
-    </property>
-    <addaction name="actionAddMapView"/>
-    <addaction name="actionCloneMapView"/>
-    <addaction name="separator"/>
-    <addaction name="actionShowScale"/>
-    <addaction name="actionShowGrid"/>
-    <addaction name="actionPOIText"/>
-    <addaction name="actionMapToolTip"/>
-    <addaction name="actionNightDay"/>
-    <addaction name="actionMinMaxTrackValues"/>
-    <addaction name="separator"/>
-    <addaction name="actionFlipMouseWheel"/>
-    <addaction name="actionProfileIsWindow"/>
-    <addaction name="actionSetupMapFont"/>
-    <addaction name="actionSetupMapBackground"/>
-    <addaction name="actionSetupUnits"/>
-    <addaction name="actionSetupGrid"/>
-    <addaction name="actionSetupMapView"/>
-    <addaction name="actionSetupTimeZone"/>
-    <addaction name="actionSetupCoordFormat"/>
-   </widget>
-   <widget class="QMenu" name="menuWindow">
-    <property name="title">
-     <string>Window</string>
-    </property>
-    <addaction name="actionCloseTab"/>
-    <addaction name="actionFullScreen"/>
-    <addaction name="actionToggleDocks"/>
-    <addaction name="separator"/>
-    <addaction name="actionSetupToolbar"/>
-   </widget>
-   <widget class="QMenu" name="menu">
-    <property name="title">
-     <string>?</string>
-    </property>
-    <addaction name="actionAbout"/>
-    <addaction name="actionHelp"/>
-    <addaction name="actionQuickstart"/>
-   </widget>
-   <widget class="QMenu" name="menuProject">
-    <property name="title">
-     <string>Workspace</string>
-    </property>
-    <addaction name="actionAddEmptyProject"/>
-    <addaction name="actionSearchGoogle"/>
-    <addaction name="actionCloseAllProjects"/>
-    <addaction name="separator"/>
-    <addaction name="actionSetupWorkspace"/>
-    <addaction name="actionSetupWaypointIcons"/>
-   </widget>
-   <widget class="QMenu" name="menuExtra">
-    <property name="title">
-     <string>Tool</string>
-    </property>
-    <addaction name="actionImportDatabase"/>
-    <addaction name="actionVrtBuilder"/>
-    <addaction name="actionCreateRoutinoDatabase"/>
-   </widget>
-   <addaction name="menuFile"/>
-   <addaction name="menuProject"/>
-   <addaction name="menuView"/>
-   <addaction name="menuExtra"/>
-   <addaction name="menuWindow"/>
-   <addaction name="menu"/>
-  </widget>
-  <widget class="QStatusBar" name="statusbar"/>
-  <widget class="QDockWidget" name="dockMaps">
-   <property name="features">
-    <set>QDockWidget::DockWidgetFeatureMask</set>
-   </property>
-   <property name="windowTitle">
-    <string>Maps</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>1</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents">
-    <layout class="QVBoxLayout" name="verticalLayout_2">
-     <property name="spacing">
-      <number>0</number>
-     </property>
-     <property name="leftMargin">
-      <number>0</number>
-     </property>
-     <property name="topMargin">
-      <number>0</number>
-     </property>
-     <property name="rightMargin">
-      <number>0</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QTabWidget" name="tabMaps">
-       <property name="currentIndex">
-        <number>-1</number>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </widget>
-  </widget>
-  <widget class="QDockWidget" name="dockDem">
-   <property name="features">
-    <set>QDockWidget::DockWidgetFeatureMask</set>
-   </property>
-   <property name="windowTitle">
-    <string>Dig. Elev. Model (DEM)</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>1</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents_3">
-    <layout class="QVBoxLayout" name="verticalLayout_3">
-     <property name="spacing">
-      <number>0</number>
-     </property>
-     <property name="leftMargin">
-      <number>0</number>
-     </property>
-     <property name="topMargin">
-      <number>0</number>
-     </property>
-     <property name="rightMargin">
-      <number>0</number>
-     </property>
-     <property name="bottomMargin">
-      <number>0</number>
-     </property>
-     <item>
-      <widget class="QTabWidget" name="tabDem"/>
-     </item>
-    </layout>
-   </widget>
-  </widget>
-  <widget class="QDockWidget" name="dockWorkspace">
-   <property name="features">
-    <set>QDockWidget::DockWidgetFeatureMask</set>
-   </property>
-   <property name="windowTitle">
-    <string>Workspace</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>2</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents_2"/>
-  </widget>
-  <widget class="QToolBar" name="toolBar">
-   <property name="windowTitle">
-    <string>Toolbar</string>
-   </property>
-   <attribute name="toolBarArea">
-    <enum>TopToolBarArea</enum>
-   </attribute>
-   <attribute name="toolBarBreak">
-    <bool>false</bool>
-   </attribute>
-  </widget>
-  <widget class="QDockWidget" name="dockDatabase">
-   <property name="features">
-    <set>QDockWidget::DockWidgetFeatureMask</set>
-   </property>
-   <property name="windowTitle">
-    <string>Database</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>2</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents_4"/>
-  </widget>
-  <widget class="QDockWidget" name="dockRte">
-   <property name="features">
-    <set>QDockWidget::DockWidgetFeatureMask</set>
-   </property>
-   <property name="windowTitle">
-    <string>Routing</string>
-   </property>
-   <attribute name="dockWidgetArea">
-    <number>2</number>
-   </attribute>
-   <widget class="QWidget" name="dockWidgetContents_6">
-    <layout class="QVBoxLayout" name="verticalLayout_4">
-     <item>
-      <widget class="CRouterSetup" name="widget_2" native="true"/>
-     </item>
-    </layout>
-   </widget>
-  </widget>
-  <action name="actionAddMapView">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/AddMapWorkspace.png</normaloff>:/icons/32x32/AddMapWorkspace.png</iconset>
-   </property>
-   <property name="text">
-    <string>Add Map View</string>
-   </property>
-   <property name="toolTip">
-    <string>Add Map View</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+T</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionShowScale">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Scale.png</normaloff>:/icons/32x32/Scale.png</iconset>
-   </property>
-   <property name="text">
-    <string>Show Scale</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupMapFont">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Font.png</normaloff>:/icons/32x32/Font.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Map Font</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionShowGrid">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Grid.png</normaloff>:/icons/32x32/Grid.png</iconset>
-   </property>
-   <property name="text">
-    <string>Show Grid</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+G</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupGrid">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/GridSetup.png</normaloff>:/icons/32x32/GridSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Grid</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Alt+G</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionFlipMouseWheel">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/MouseWheel.png</normaloff>:/icons/32x32/MouseWheel.png</iconset>
-   </property>
-   <property name="text">
-    <string>Flip Mouse Wheel</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupMapPaths">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/FolderMap.png</normaloff>:/icons/32x32/FolderMap.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Map Paths</string>
-   </property>
-   <property name="toolTip">
-    <string>Setup Map Paths</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionPOIText">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/POIText.png</normaloff>:/icons/32x32/POIText.png</iconset>
-   </property>
-   <property name="text">
-    <string>POI Text</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionNightDay">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/NightDay.png</normaloff>:/icons/32x32/NightDay.png</iconset>
-   </property>
-   <property name="text">
-    <string>Night / Day</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionMapToolTip">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/ToolTip.png</normaloff>:/icons/32x32/ToolTip.png</iconset>
-   </property>
-   <property name="text">
-    <string>Map Tool Tip</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+I</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupDEMPaths">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/FolderDEM.png</normaloff>:/icons/32x32/FolderDEM.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup DEM Paths</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionAbout">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Info.png</normaloff>:/icons/32x32/Info.png</iconset>
-   </property>
-   <property name="text">
-    <string>About</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::AboutRole</enum>
-   </property>
-  </action>
-  <action name="actionHelp">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
-   </property>
-   <property name="text">
-    <string>Help</string>
-   </property>
-   <property name="shortcut">
-    <string>F1</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupMapView">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SetupMapWorkspace.png</normaloff>:/icons/32x32/SetupMapWorkspace.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Map View</string>
-   </property>
-   <property name="toolTip">
-    <string>Setup Map View</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionLoadGISData">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/LoadGIS.png</normaloff>:/icons/32x32/LoadGIS.png</iconset>
-   </property>
-   <property name="text">
-    <string>Load GIS Data</string>
-   </property>
-   <property name="toolTip">
-    <string>Load projects from file</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+L</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSaveGISData">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SaveAllGIS.png</normaloff>:/icons/32x32/SaveAllGIS.png</iconset>
-   </property>
-   <property name="text">
-    <string>Save All GIS Data</string>
-   </property>
-   <property name="toolTip">
-    <string>Save all projects in the workspace</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+S</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupTimeZone">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/TimeZoneSetup.png</normaloff>:/icons/32x32/TimeZoneSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Time Zone</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionAddEmptyProject">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/AddProject.png</normaloff>:/icons/32x32/AddProject.png</iconset>
-   </property>
-   <property name="text">
-    <string>Add empty project</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSearchGoogle">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SearchGoogle.png</normaloff>:/icons/32x32/SearchGoogle.png</iconset>
-   </property>
-   <property name="text">
-    <string>Search Google</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionCloseAllProjects">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Close.png</normaloff>:/icons/32x32/Close.png</iconset>
-   </property>
-   <property name="text">
-    <string>Close all projects</string>
-   </property>
-   <property name="shortcut">
-    <string>F8</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupUnits">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/UnitSetup.png</normaloff>:/icons/32x32/UnitSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Units</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupWorkspace">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/DatabaseSetup.png</normaloff>:/icons/32x32/DatabaseSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Workspace</string>
-   </property>
-   <property name="toolTip">
-    <string>Setup save on exit.</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionImportDatabase">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/DatabaseConvert.png</normaloff>:/icons/32x32/DatabaseConvert.png</iconset>
-   </property>
-   <property name="text">
-    <string>Import Database from QLandkarte</string>
-   </property>
-   <property name="toolTip">
-    <string>Import QLandkarte GT database</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionVrtBuilder">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/VrtBuilder.png</normaloff>:/icons/32x32/VrtBuilder.png</iconset>
-   </property>
-   <property name="text">
-    <string>VRT Builder</string>
-   </property>
-   <property name="toolTip">
-    <string>GUI front end to gdalbuildvrt</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionStoreView">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SaveView.png</normaloff>:/icons/32x32/SaveView.png</iconset>
-   </property>
-   <property name="text">
-    <string>Store Map View</string>
-   </property>
-   <property name="toolTip">
-    <string>Write current active map and DEM list including the properties to a file</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionLoadView">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/LoadView.png</normaloff>:/icons/32x32/LoadView.png</iconset>
-   </property>
-   <property name="text">
-    <string>Load Map View</string>
-   </property>
-   <property name="toolTip">
-    <string>Restore view with active map and DEM list including the properties from a file</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </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>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionClose">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Off.png</normaloff>:/icons/32x32/Off.png</iconset>
-   </property>
-   <property name="text">
-    <string>Close</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Q</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::QuitRole</enum>
-   </property>
-  </action>
-  <action name="actionCloneMapView">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/CloneMapWorkspace.png</normaloff>:/icons/32x32/CloneMapWorkspace.png</iconset>
-   </property>
-   <property name="text">
-    <string>Clone Map View</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+Shift+T</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionCreateRoutinoDatabase">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/RouteSetup.png</normaloff>:/icons/32x32/RouteSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Create Routino Database</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionPrintMap">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/PrintSave.png</normaloff>:/icons/32x32/PrintSave.png</iconset>
-   </property>
-   <property name="text">
-    <string>Save(Print) Map Screenshot</string>
-   </property>
-   <property name="toolTip">
-    <string>Print a selected area of the map</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+P</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupCoordFormat">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SetupCoordFormat.png</normaloff>:/icons/32x32/SetupCoordFormat.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Coord. Format</string>
-   </property>
-   <property name="toolTip">
-    <string>Change the format coordinates are displayed</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupMapBackground">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Map Background</string>
-   </property>
-   <property name="menuRole">
-    <enum>QAction::NoRole</enum>
-   </property>
-  </action>
-  <action name="actionSetupWaypointIcons">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/SetupWptSym.png</normaloff>:/icons/32x32/SetupWptSym.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Waypoint Icons</string>
-   </property>
-   <property name="toolTip">
-    <string>Setup path to custom icons</string>
-   </property>
-  </action>
-  <action name="actionCloseTab">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Close.png</normaloff>:/icons/32x32/Close.png</iconset>
-   </property>
-   <property name="text">
-    <string>Close Tab</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+W</string>
-   </property>
-  </action>
-  <action name="actionQuickstart">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
-   </property>
-   <property name="text">
-    <string>Quickstart Help</string>
-   </property>
-  </action>
-  <action name="actionSetupToolbar">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/ToolBarSetup.png</normaloff>:/icons/32x32/ToolBarSetup.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Toolbar</string>
-   </property>
-  </action>
-  <action name="actionToggleDocks">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/ToggleDocks.png</normaloff>:/icons/32x32/ToggleDocks.png</iconset>
-   </property>
-   <property name="text">
-    <string>Toggle Docks</string>
-   </property>
-   <property name="toolTip">
-    <string>Toggle visibility of dockable windows</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+D</string>
-   </property>
-  </action>
-  <action name="actionFullScreen">
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/FullScreen.png</normaloff>:/icons/32x32/FullScreen.png</iconset>
-   </property>
-   <property name="text">
-    <string>Full Screen</string>
-   </property>
-   <property name="shortcut">
-    <string>F11</string>
-   </property>
-  </action>
-  <action name="actionMinMaxTrackValues">
-   <property name="checkable">
-    <bool>true</bool>
-   </property>
-   <property name="icon">
-    <iconset resource="resources.qrc">
-     <normaloff>:/icons/32x32/TrackMinMax.png</normaloff>:/icons/32x32/TrackMinMax.png</iconset>
-   </property>
-   <property name="text">
-    <string>Min./Max. Track Values</string>
-   </property>
-   <property name="toolTip">
-    <string>Show the minimum and maximum values of the track properties along the track in the map view.</string>
-   </property>
-   <property name="shortcut">
-    <string>Ctrl+N</string>
-   </property>
-  </action>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CRouterSetup</class>
-   <extends>QWidget</extends>
-   <header>gis/rte/router/CRouterSetup.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/canvas/CCanvas.cpp b/src/canvas/CCanvas.cpp
deleted file mode 100644
index b65765e..0000000
--- a/src/canvas/CCanvas.cpp
+++ /dev/null
@@ -1,1071 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "canvas/CCanvasSetup.h"
-#include "dem/CDemDraw.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/IGisLine.h"
-#include "gis/Poi.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "grid/CGrid.h"
-#include "grid/CGridSetup.h"
-#include "helpers/CDraw.h"
-#include "helpers/CSettings.h"
-#include "map/CMapDraw.h"
-#include "mouse/CMouseEditArea.h"
-#include "mouse/CMouseEditRte.h"
-#include "mouse/CMouseEditTrk.h"
-#include "mouse/CMouseMoveWpt.h"
-#include "mouse/CMouseNormal.h"
-#include "mouse/CMousePrint.h"
-#include "mouse/CMouseRadiusWpt.h"
-#include "mouse/CMouseRangeTrk.h"
-#include "mouse/CMouseSelect.h"
-#include "mouse/CMouseWptBubble.h"
-#include "plot/CPlotProfile.h"
-#include "units/IUnit.h"
-#include "widgets/CColorLegend.h"
-
-#include <QtWidgets>
-
-qreal CCanvas::gisLayerOpacity = 1.0;
-
-CCanvas::CCanvas(QWidget *parent, const QString &name)
-    : QWidget(parent)
-{
-    setFocusPolicy(Qt::WheelFocus);
-
-    if(name.isEmpty())
-    {
-        for(int count = 1;; ++count)
-        {
-            QString name = tr("View %1").arg(count);
-            if(nullptr == CMainWindow::self().findChild<CCanvas*>(name))
-            {
-                setObjectName(name);
-                break;
-            }
-        }
-    }
-    else
-    {
-        setObjectName(name);
-    }
-
-    setMouseTracking(true);
-
-    grabGesture(Qt::PinchGesture);
-
-    map     = new CMapDraw(this);
-    grid    = new CGrid(map);
-    dem     = new CDemDraw(this);
-    gis     = new CGisDraw(this);
-    mouse   = new CMouseNormal(gis, this);
-
-    connect(map, &CMapDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
-    connect(dem, &CDemDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
-    connect(gis, &CGisDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
-
-    timerToolTip = new QTimer(this);
-    timerToolTip->setSingleShot(true);
-    connect(timerToolTip, &QTimer::timeout, this, &CCanvas::slotToolTip);
-
-    loadIndicator1 = new QMovie("://animation/loader.gif", QByteArray(), this);
-    mapLoadIndicator = new QLabel(this);
-    mapLoadIndicator->setMovie(loadIndicator1);
-    loadIndicator1->start();
-    mapLoadIndicator->show();
-
-    loadIndicator2 = new QMovie("://animation/loader2.gif", QByteArray(), this);
-    demLoadIndicator = new QLabel(this);
-    demLoadIndicator->setMovie(loadIndicator2);
-    loadIndicator2->start();
-    demLoadIndicator->show();
-
-    labelStatusMessages = new QLabel(this);
-    labelStatusMessages->setWordWrap(true);
-    labelStatusMessages->setMinimumWidth(300);
-    labelStatusMessages->hide();
-
-    labelTrackStatistic = new QLabel(this);
-    labelTrackStatistic->setWordWrap(true);
-    labelTrackStatistic->setMinimumWidth(300);
-    labelTrackStatistic->hide();
-
-    connect(map, &CMapDraw::sigStartThread, mapLoadIndicator, &QLabel::show);
-    connect(map, &CMapDraw::sigStopThread,  mapLoadIndicator, &QLabel::hide);
-
-    connect(dem, &CDemDraw::sigStartThread, demLoadIndicator, &QLabel::show);
-    connect(dem, &CDemDraw::sigStopThread,  demLoadIndicator, &QLabel::hide);
-
-    timerTrackOnFocus = new QTimer(this);
-    timerTrackOnFocus->setSingleShot(false);
-    timerTrackOnFocus->start(1000);
-
-    connect(timerTrackOnFocus, &QTimer::timeout, this, &CCanvas::slotCheckTrackOnFocus);
-}
-
-CCanvas::~CCanvas()
-{
-    /* stop running drawing-threads and don't destroy unless they have finished*/
-    map->quit();
-    dem->quit();
-    gis->quit();
-    map->wait();
-    dem->wait();
-    gis->wait();
-    /*
-        Some mouse objects call methods from their canvas on destruction.
-        So they are better deleted now explicitly before any other object
-        in CCanvas is destroyed.
-     */
-    delete mouse;
-    saveSizeTrackProfile();
-}
-
-void CCanvas::setOverrideCursor(const QCursor &cursor, const QString&)
-{
-//    qDebug() << "setOverrideCursor" << src;
-    QApplication::setOverrideCursor(cursor);
-}
-
-void CCanvas::restoreOverrideCursor(const QString& src)
-{
-//    qDebug() << "restoreOverrideCursor" << src;
-    QApplication::restoreOverrideCursor();
-}
-
-void CCanvas::changeOverrideCursor(const QCursor& cursor, const QString &src)
-{
-//    qDebug() << "changeOverrideCursor" << src;
-    QApplication::changeOverrideCursor(cursor);
-}
-
-void CCanvas::triggerCompleteUpdate(CCanvas::redraw_e flags)
-{
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(flags);
-    }
-}
-
-void CCanvas::saveConfig(QSettings& cfg)
-{
-    map->saveConfig(cfg);
-    dem->saveConfig(cfg);
-    grid->saveConfig(cfg);
-    cfg.setValue("posFocus",  posFocus);
-    cfg.setValue("proj",      map->getProjection());
-    cfg.setValue("scales",    map->getScalesType());
-    cfg.setValue("backColor", backColor.name());
-}
-
-void CCanvas::loadConfig(QSettings& cfg)
-{
-    posFocus = cfg.value("posFocus", posFocus).toPointF();
-    setProjection(cfg.value("proj", map->getProjection()).toString());
-    setScales((CCanvas::scales_type_e)cfg.value("scales",  map->getScalesType()).toInt());
-
-    const QString &backColorStr = cfg.value("backColor", "#FFFFBF").toString();
-    backColor = QColor(backColorStr);
-
-    map->loadConfig(cfg);
-    dem->loadConfig(cfg);
-    grid->loadConfig(cfg);
-
-    dem->zoom(map->zoom());
-    gis->zoom(map->zoom());
-}
-
-void CCanvas::resetMouse()
-{
-    mouse->deleteLater();
-    mouse = new CMouseNormal(gis, this);
-    if(underMouse())
-    {
-        while(QApplication::overrideCursor())
-        {
-            CCanvas::restoreOverrideCursor("resetMouse");
-        }
-        CCanvas::setOverrideCursor(*mouse, "resetMouse");
-    }
-}
-
-void CCanvas::mouseTrackingLost()
-{
-    mouseLost = true;
-}
-
-void CCanvas::setMouseCursor(IMouse& mouse, const QString& src)
-{
-    if(underMouse())
-    {
-        CCanvas::restoreOverrideCursor(src);
-        CCanvas::setOverrideCursor(mouse, src);
-    }
-}
-
-void CCanvas::setMouseMoveWpt(CGisItemWpt& wpt)
-{
-    mouse->deleteLater();
-    mouse = new CMouseMoveWpt(wpt, gis, this);
-    setMouseCursor(*mouse, "setMouseMoveWpt");
-}
-
-void CCanvas::setMouseRadiusWpt(CGisItemWpt& wpt)
-{
-    mouse->deleteLater();
-    mouse = new CMouseRadiusWpt(wpt, gis, this);
-    setMouseCursor(*mouse, "setMouseWptRadius");
-}
-
-void CCanvas::setMouseEditTrk(const QPointF &pt)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditTrk(pt, gis, this);
-    setMouseCursor(*mouse, "setMouseEditTrk");
-}
-
-void CCanvas::setMouseEditRte(const QPointF &pt)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditRte(pt, gis, this);
-    setMouseCursor(*mouse, "setMouseEditRte");
-}
-
-void CCanvas::setMouseEditTrk(CGisItemTrk& trk)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditTrk(trk, gis, this);
-    setMouseCursor(*mouse, "setMouseEditTrk");
-}
-
-void CCanvas::setMouseRangeTrk(CGisItemTrk& trk)
-{
-    mouse->deleteLater();
-    mouse = new CMouseRangeTrk(trk, gis, this);
-    setMouseCursor(*mouse, "setMouseRangeTrk");
-}
-
-void CCanvas::setMouseEditArea(const QPointF& pt)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditArea(pt, gis, this);
-    setMouseCursor(*mouse, "setMouseEditArea");
-}
-
-void CCanvas::setMouseEditArea(CGisItemOvlArea& area)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditArea(area, gis, this);
-    setMouseCursor(*mouse, "setMouseEditArea");
-}
-
-void CCanvas::setMouseEditRte(CGisItemRte& rte)
-{
-    mouse->deleteLater();
-    mouse = new CMouseEditRte(rte, gis, this);
-    setMouseCursor(*mouse, "setMouseEditRte");
-}
-
-void CCanvas::setMouseWptBubble(const IGisItem::key_t& key)
-{
-    mouse->deleteLater();
-    mouse = new CMouseWptBubble(key, gis, this);
-    setMouseCursor(*mouse, "setMouseWptBubble");
-}
-
-void CCanvas::setMousePrint()
-{
-    mouse->deleteLater();
-    mouse = new CMousePrint(gis, this);
-    setMouseCursor(*mouse, "setMousePrint");
-}
-
-void CCanvas::setMouseSelect()
-{
-    mouse->deleteLater();
-    mouse = new CMouseSelect(gis, this);
-    setMouseCursor(*mouse, "setMouseSelect");
-}
-
-void CCanvas::reportStatus(const QString& key, const QString& msg)
-{
-    if(msg.isEmpty())
-    {
-        statusMessages.remove(key);
-    }
-    else
-    {
-        statusMessages[key] = msg;
-    }
-
-    QString report;
-    QStringList keys = statusMessages.keys();
-    keys.sort();
-    for(const QString &key : keys)
-    {
-        report += statusMessages[key] + "\n";
-    }
-
-    if(report.isEmpty())
-    {
-        labelStatusMessages->hide();
-    }
-    else
-    {
-        labelStatusMessages->show();
-        labelStatusMessages->setText(report);
-        labelStatusMessages->adjustSize();
-    }
-    update();
-}
-
-void CCanvas::resizeEvent(QResizeEvent * e)
-{
-    needsRedraw = eRedrawAll;
-
-    setDrawContextSize(e->size());
-    QWidget::resizeEvent(e);
-
-    const QRect& r = rect();
-
-    // move map loading indicator to new center of canvas
-    QPoint p1(mapLoadIndicator->width()>>1, mapLoadIndicator->height()>>1);
-    mapLoadIndicator->move(r.center() - p1);
-
-    QPoint p2(demLoadIndicator->width()>>1, demLoadIndicator->height()>>1);
-    demLoadIndicator->move(r.center() - p2);
-
-    labelStatusMessages->move(20,50);
-
-    slotUpdateTrackStatistic(CMainWindow::self().isMinMaxTrackValues());
-    setSizeTrackProfile();
-}
-
-void CCanvas::paintEvent(QPaintEvent*)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    QPainter p;
-    p.begin(this);
-    USE_ANTI_ALIASING(p,true);
-
-    // fill the background with default pattern
-    p.fillRect(rect(), backColor);
-
-    // ----- start to draw thread based content -----
-    // move coordinate system to center of the screen
-    p.translate(width() >> 1, height() >> 1);
-
-    map->draw(p, needsRedraw, posFocus);
-    dem->draw(p, needsRedraw, posFocus);
-    p.setOpacity(gisLayerOpacity);
-    gis->draw(p, needsRedraw, posFocus);
-    p.setOpacity(1.0);
-
-    // restore coordinate system to default
-    p.resetTransform();
-    // ----- start to draw fast content -----
-
-    grid->draw(p, rect());
-    if(map->isFinished() && dem->isFinished() && gis->isFinished())
-    {
-        gis->draw(p, rect());
-    }
-    mouse->draw(p, needsRedraw, rect());
-
-
-    drawStatusMessages(p);
-    drawTrackStatistic(p);
-    drawScale(p);
-
-    p.end();
-    needsRedraw = eRedrawNone;
-}
-
-void CCanvas::mousePressEvent(QMouseEvent * e)
-{
-    if(!mousePressMutex.tryLock())
-    {
-        return;
-    }
-
-    mouse->mousePressEvent(e);
-    QWidget::mousePressEvent(e);
-    e->accept();
-
-    mousePressMutex.unlock();
-}
-
-void CCanvas::mouseMoveEvent(QMouseEvent * e)
-{
-    QPointF pos = e->pos();
-    map->convertPx2Rad(pos);
-    qreal ele = dem->getElevationAt(pos);
-    qreal slope = dem->getSlopeAt(pos);
-    emit sigMousePosition(pos * RAD_TO_DEG, ele, slope);
-
-    mouse->mouseMoveEvent(e);
-    QWidget::mouseMoveEvent(e);
-    e->accept();
-}
-
-void CCanvas::mouseReleaseEvent(QMouseEvent *e)
-{
-    mouse->mouseReleaseEvent(e);
-    QWidget::mouseReleaseEvent(e);
-    e->accept();
-}
-
-void CCanvas::mouseDoubleClickEvent(QMouseEvent * e)
-{
-    mouse->mouseDoubleClickEvent(e);
-    QWidget::mouseDoubleClickEvent(e);
-}
-
-void CCanvas::wheelEvent(QWheelEvent * e)
-{
-    mouse->wheelEvent(e);
-
-    // angleDelta() returns the eighths of a degree
-    // of the mousewheel
-    // -> zoom in/out every 15 degrees = every 120 eights
-    const int EIGHTS_ZOOM = 15 * 8;
-    zoomAngleDelta += e->angleDelta().y();
-    if(abs(zoomAngleDelta) < EIGHTS_ZOOM)
-    {
-        return;
-    }
-
-    zoomAngleDelta = 0;
-
-    QPointF pos = e->posF();
-    QPointF pt1 = pos;
-
-    map->convertPx2Rad(pt1);
-    setZoom(CMainWindow::self().flipMouseWheel() ? (e->delta() < 0) : (e->delta() > 0), needsRedraw);
-    map->convertRad2Px(pt1);
-
-    map->convertRad2Px(posFocus);
-    posFocus -= (pos - pt1);
-    map->convertPx2Rad(posFocus);
-
-    update();
-}
-
-
-void CCanvas::enterEvent(QEvent * e)
-{
-    Q_UNUSED(e);
-    CCanvas::setOverrideCursor(*mouse, "enterEvent");
-
-    mouse->setMouseTracking(true);
-}
-
-
-void CCanvas::leaveEvent(QEvent *)
-{
-    // bad hack to stop bad number of override cursors.
-    while(QApplication::overrideCursor())
-    {
-        CCanvas::restoreOverrideCursor("leaveEvent");
-    }
-
-    mouse->setMouseTracking(false);
-}
-
-void CCanvas::keyPressEvent(QKeyEvent * e)
-{
-    qDebug() << hex << e->key();
-    bool doUpdate = true;
-
-    switch(e->key())
-    {
-    case Qt::Key_Plus:
-        setZoom(true, needsRedraw);
-        break;
-
-    case Qt::Key_Minus:
-        setZoom(false, needsRedraw);
-        break;
-
-    /* move the map with keys up, down, left and right */
-    case Qt::Key_Up:
-        moveMap(QPointF(0,  height()/4));
-        break;
-
-    case Qt::Key_Down:
-        moveMap(QPointF(0, -height()/4));
-        break;
-
-    case Qt::Key_Left:
-        moveMap(QPointF( width()/4, 0));
-        break;
-
-    case Qt::Key_Right:
-        moveMap(QPointF(-width()/4, 0));
-        break;
-
-    case Qt::Key_Escape:
-    {
-        IMouseEditLine *lineMouse = dynamic_cast<IMouseEditLine*>(mouse);
-        if(nullptr != lineMouse)
-        {
-            lineMouse->abortStep();
-        }
-        else
-        {
-            doUpdate = false;
-        }
-        break;
-    }
-
-    default:
-        doUpdate = false;
-    }
-
-    if(doUpdate)
-    {
-        mouse->keyPressEvent(e);
-        e->accept();
-        update();
-    }
-    else
-    {
-        QWidget::keyPressEvent(e);
-    }
-}
-
-void CCanvas::drawStatusMessages(QPainter& p)
-{
-    if(labelStatusMessages->isVisible())
-    {
-        QRect r = labelStatusMessages->frameGeometry();
-        r.adjust(-5, -5, 5, 5);
-        p.setPen(CDraw::penBorderGray);
-        p.setBrush(CDraw::brushBackWhite);
-        p.drawRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
-    }
-}
-
-void CCanvas::drawTrackStatistic(QPainter& p)
-{
-    if(labelTrackStatistic->isVisible())
-    {
-        QRect r = labelTrackStatistic->frameGeometry();
-        r.adjust(-5, -5, 5, 5);
-        p.setPen(CDraw::penBorderGray);
-        p.setBrush(CDraw::brushBackWhite);
-        p.drawRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
-    }
-}
-
-void CCanvas::drawScale(QPainter& p)
-{
-    if(!CMainWindow::self().isScaleVisible())
-    {
-        return;
-    }
-
-    // step I: get the approximate distance for 200px in the bottom right corner
-    QPointF brc(rect().bottomRight() - QPoint(50,30));
-    QPointF pt1 = brc;
-    QPointF pt2 = brc - QPoint(-200,0);
-
-    map->convertPx2Rad(pt1);
-    map->convertPx2Rad(pt2);
-
-    qreal d = GPS_Math_Distance(pt1.x(), pt1.y(), pt2.x(), pt2.y());
-
-    // step II: derive the actual scale length in [m]
-    qreal a = (int)log10(d);
-    qreal b = log10(d) - a;
-
-    if(0 <= b && b < log10(3.0f))
-    {
-        d = 1 * qPow(10,a);
-    }
-    else if(log10(3.0f) < b && b < log10(5.0f))
-    {
-        d = 3 * qPow(10,a);
-    }
-    else
-    {
-        d = 5 * qPow(10,a);
-    }
-
-    // step III: convert the scale length from [m] into [px]
-    pt1 = brc;
-    map->convertPx2Rad(pt1);
-    pt2 = GPS_Math_Wpt_Projection(pt1, d, -90 * DEG_TO_RAD);
-
-    map->convertRad2Px(pt1);
-    map->convertRad2Px(pt2);
-
-    p.setPen(QPen(Qt::white, 9));
-    p.drawLine(pt1, pt2 + QPoint(9,0));
-    p.setPen(QPen(Qt::black, 7));
-    p.drawLine(pt1, pt2 + QPoint(9,0));
-    p.setPen(QPen(Qt::white, 5));
-    p.drawLine(pt1, pt2 + QPoint(9,0));
-
-    QVector<qreal> pattern;
-    pattern << 2 << 4;
-    QPen pen(Qt::black, 5, Qt::CustomDashLine);
-    pen.setDashPattern(pattern);
-    p.setPen(pen);
-    p.drawLine(pt1, pt2 + QPoint(9,0));
-
-
-    QPoint pt3(pt2.x() + (pt1.x() - pt2.x())/2, pt2.y());
-
-    QString val, unit;
-    IUnit::self().meter2distance(d,val,unit);
-    CDraw::text(QString("%1 %2").arg(val).arg(unit), p, pt3, Qt::black);
-}
-
-void CCanvas::slotTriggerCompleteUpdate(CCanvas::redraw_e flags)
-{
-    needsRedraw = (redraw_e)(needsRedraw | flags);
-    update();
-}
-
-
-void CCanvas::slotToolTip()
-{
-    QString str;
-    map->getToolTip(posToolTip, str);
-    if(str.isEmpty())
-    {
-        return;
-    }
-    QPoint p = mapToGlobal(posToolTip + QPoint(32,0));
-    QToolTip::showText(p,str);
-}
-
-void CCanvas::slotCheckTrackOnFocus()
-{
-    const IGisItem::key_t& key = CGisItemTrk::getKeyUserFocus();
-
-    // any changes?
-    if(key != keyTrackOnFocus)
-    {
-        saveSizeTrackProfile();
-        // get access to current track object
-        delete plotTrackProfile;
-        delete colorLegend;
-        keyTrackOnFocus.clear();
-        labelTrackStatistic->clear();
-        labelTrackStatistic->hide();
-
-        // get access to next track object
-        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-        if(nullptr == trk2)
-        {
-            return;
-        }
-
-        // create new profile plot, the plot will register itself at the track
-        plotTrackProfile = new CPlotProfile(trk2, trk2->limitsGraph1, CMainWindow::self().profileIsWindow() ? IPlot::eModeWindow : IPlot::eModeIcon, this);
-        setSizeTrackProfile();
-        if(isVisible())
-        {
-            plotTrackProfile->show();
-        }
-
-        colorLegend = new CColorLegend(this, trk2);
-        colorLegend->setGeometry(20, 20, 40, 300);
-
-        // finally store the new key as track on focus
-        keyTrackOnFocus = key;
-
-        slotUpdateTrackStatistic(CMainWindow::self().isMinMaxTrackValues());
-    }
-}
-
-void CCanvas::slotUpdateTrackStatistic(bool show)
-{
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(keyTrackOnFocus));
-
-    if(show && trk)
-    {
-        QString text = trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity);
-        text += trk->getInfoLimits();
-
-        labelTrackStatistic->setMinimumWidth((trk->getActivities().getActivityCount() > 1) ? 450 : 350);
-        labelTrackStatistic->setText(text);
-        labelTrackStatistic->adjustSize();
-
-        labelTrackStatistic->move(rect().width() - labelTrackStatistic->width() - 20, rect().height() - labelTrackStatistic->height() - 60);
-        labelTrackStatistic->show();
-        update();
-    }
-    else
-    {
-        labelTrackStatistic->clear();
-        labelTrackStatistic->hide();
-    }
-}
-
-void CCanvas::moveMap(const QPointF& delta)
-{
-    map->convertRad2Px(posFocus);
-    posFocus -= delta;
-    map->convertPx2Rad(posFocus);
-
-    emit sigMove();
-
-    slotTriggerCompleteUpdate(eRedrawAll);
-}
-
-void CCanvas::zoomTo(const QRectF& rect)
-{
-    posFocus = rect.center();
-    map->zoom(rect);
-    dem->zoom(map->zoom());
-    gis->zoom(map->zoom());
-    slotTriggerCompleteUpdate(eRedrawAll);
-}
-
-void CCanvas::setupGrid()
-{
-    CGridSetup dlg(grid, map);
-    dlg.exec();
-    update();
-}
-
-void CCanvas::setupBackgroundColor()
-{
-    QColorDialog::setCustomColor(0, "#FFFFBF");
-    const QColor &selected = QColorDialog::getColor(backColor, this, tr("Setup Map Background"));
-
-    if(selected.isValid())
-    {
-        backColor = selected;
-        update();
-    }
-}
-
-void CCanvas::convertGridPos2Str(const QPointF& pos, QString& str, bool simple)
-{
-    grid->convertPos2Str(pos, str, simple);
-}
-
-void CCanvas::convertRad2Px(QPointF& pos) const
-{
-    map->convertRad2Px(pos);
-}
-
-void CCanvas::convertPx2Rad(QPointF& pos) const
-{
-    map->convertPx2Rad(pos);
-}
-
-void CCanvas::displayInfo(const QPoint& px)
-{
-    if(CMainWindow::self().isMapToolTip())
-    {
-        posToolTip = px;
-
-        timerToolTip->stop();
-        timerToolTip->start(500);
-    }
-    QToolTip::hideText();
-}
-
-poi_t CCanvas::findPOICloseBy(const QPoint& px) const
-{
-    return map->findPOICloseBy(px);
-}
-
-void CCanvas::setup()
-{
-    CCanvasSetup dlg(this);
-    dlg.exec();
-}
-
-QString CCanvas::getProjection()
-{
-    return map->getProjection();
-}
-
-void CCanvas::setProjection(const QString& proj)
-{
-    map->setProjection(proj);
-    dem->setProjection(proj);
-    gis->setProjection(proj);
-}
-void CCanvas::setScales(const scales_type_e type)
-{
-    map->setScales(type);
-    dem->setScales(type);
-    gis->setScales(type);
-}
-
-CCanvas::scales_type_e CCanvas::getScalesType()
-{
-    return map->getScalesType();
-}
-
-
-qreal CCanvas::getElevationAt(const QPointF& pos) const
-{
-    return dem->getElevationAt(pos);
-}
-
-void CCanvas::getElevationAt(const QPolygonF& pos, QPolygonF& ele) const
-{
-    return dem->getElevationAt(pos, ele);
-}
-
-qreal CCanvas::getSlopeAt(const QPointF& pos) const
-{
-    return dem->getSlopeAt(pos);
-}
-
-void CCanvas::getSlopeAt(const QPolygonF& pos, QPolygonF& slope) const
-{
-    return dem->getSlopeAt(pos, slope);
-}
-
-void CCanvas::getElevationAt(SGisLine& line) const
-{
-    return dem->getElevationAt(line);
-}
-
-void CCanvas::setZoom(bool in, redraw_e& needsRedraw)
-{
-    map->zoom(in, needsRedraw);
-    dem->zoom(map->zoom());
-    gis->zoom(map->zoom());
-
-    emit sigZoom();
-}
-
-bool CCanvas::findPolylineCloseBy(const QPointF& pt1, const QPointF& pt2, qint32 threshold, QPolygonF& polyline)
-{
-    return map->findPolylineCloseBy(pt1, pt2, threshold, polyline);
-}
-
-void CCanvas::saveSizeTrackProfile()
-{
-    if(plotTrackProfile.isNull())
-    {
-        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.isNull())
-    {
-        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();
-
-        CGisWorkspace::self().focusTrkByKey(true, key);
-    }
-}
-
-void CCanvas::showProfile(bool yes)
-{
-    if(nullptr != plotTrackProfile)
-    {
-        plotTrackProfile->setVisible(yes);
-    }
-}
-
-void CCanvas::setDrawContextSize(const QSize& s)
-{
-    if(map)
-    {
-        map->resize(s);
-    }
-    if(dem)
-    {
-        dem->resize(s);
-    }
-    if(gis)
-    {
-        gis->resize(s);
-    }
-}
-
-void CCanvas::print(QPainter& p, const QRectF& area, const QPointF& focus)
-{
-    const QSize oldSize = size();
-    const QSize newSize(area.size().toSize());
-
-    setDrawContextSize(newSize);
-
-    // ----- start to draw thread based content -----
-    // move coordinate system to center of the screen
-    p.translate(newSize.width() >> 1, newSize.height() >> 1);
-
-    redraw_e redraw = eRedrawAll;
-
-    map->draw(p, redraw, focus);
-    dem->draw(p, redraw, focus);
-    gis->draw(p, redraw, focus);
-
-    map->wait();
-    dem->wait();
-    gis->wait();
-
-    map->draw(p, redraw, focus);
-    dem->draw(p, redraw, focus);
-    gis->draw(p, redraw, focus);
-
-    // restore coordinate system to default
-    p.resetTransform();
-    // ----- start to draw fast content -----
-
-    QRect r(QPoint(0,0), area.size().toSize());
-
-    grid->draw(p, r);
-    gis->draw(p, r);
-
-    setDrawContextSize(oldSize);
-}
-
-bool CCanvas::event(QEvent *event)
-{
-    if (event->type() == QEvent::Gesture)
-    {
-        return gestureEvent(static_cast<QGestureEvent*>(event));
-    }
-    else if (mouseLost)
-    {
-        QMouseEvent * me = dynamic_cast<QMouseEvent*>(event);
-        if (me != nullptr)
-        {
-            // notify IMouse that the upcomming QMouseEvent needs special treatment
-            // as some mouse-events may have been lost
-            mouse->afterMouseLostEvent(me);
-            mouseLost = false;
-        }
-    }
-    return QWidget::event(event);
-}
-
-bool CCanvas::gestureEvent(QGestureEvent* e)
-{
-    if (QPinchGesture *pinch = dynamic_cast<QPinchGesture *>(e->gesture(Qt::PinchGesture)))
-    {
-        if (pinch->changeFlags() & QPinchGesture::CenterPointChanged)
-        {
-            const QPointF & move = pinch->centerPoint() - pinch->lastCenterPoint();
-            if (!move.isNull())
-            {
-                moveMap(move);
-            }
-        }
-        if (pinch->changeFlags() & QPinchGesture::ScaleFactorChanged)
-        {
-            qreal pscale = pinch->totalScaleFactor();
-            if (pscale < 0.8f || pscale > 1.25f)
-            {
-                const QPointF & center = pinch->centerPoint();
-                const QPointF & pos = mapFromGlobal(QPoint(center.x(),center.y()));
-                QPointF pt1 = pos;
-                map->convertPx2Rad(pt1);
-                setZoom(pscale > 1.0f, needsRedraw);
-                map->convertRad2Px(pt1);
-                const QPointF & move = pos - pt1;
-                if (!move.isNull())
-                {
-                    moveMap(move);
-                }
-                pinch->setTotalScaleFactor(1.0f);
-                slotTriggerCompleteUpdate(needsRedraw);
-            }
-        }
-        mouseLost = true;
-        mouse->pinchGestureEvent(pinch);
-    }
-    return true;
-}
diff --git a/src/canvas/CCanvas.h b/src/canvas/CCanvas.h
deleted file mode 100644
index b2ebf94..0000000
--- a/src/canvas/CCanvas.h
+++ /dev/null
@@ -1,247 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CCANVAS_H
-#define CCANVAS_H
-
-#include <QMap>
-#include <QPainter>
-#include <QPointer>
-#include <QWidget>
-#include <proj_api.h>
-
-#include "gis/IGisItem.h"
-
-class CMapDraw;
-class CGrid;
-class CDemDraw;
-class QGestureEvent;
-class CGisDraw;
-class CGisItemWpt;
-class CGisItemTrk;
-class CGisItemRte;
-class CGisItemOvlArea;
-class CColorLegend;
-class QSettings;
-class QPointF;
-class IMouse;
-class QTimer;
-class QMovie;
-class QLabel;
-class IPlot;
-struct SGisLine;
-struct poi_t;
-
-class CCanvas : public QWidget
-{
-    Q_OBJECT
-public:
-    CCanvas(QWidget * parent, const QString& name);
-    virtual ~CCanvas();
-
-    static void setOverrideCursor(const QCursor &cursor, const QString&);
-    static void restoreOverrideCursor(const QString &src);
-    static void changeOverrideCursor(const QCursor& cursor, const QString &src);
-
-
-    void saveConfig(QSettings& cfg);
-    void loadConfig(QSettings& cfg);
-
-    void setupGrid();
-    void convertGridPos2Str(const QPointF& pos, QString& str, bool simple);
-    void convertRad2Px(QPointF &pos) const;
-    void convertPx2Rad(QPointF& pos) const;
-
-    void setupBackgroundColor();
-
-    void setup();
-    QString getProjection();
-    void  setProjection(const QString& proj);
-
-    enum scales_type_e
-    {
-        eScalesDefault
-        , eScalesSquare
-    };
-
-    void  setScales(const scales_type_e type);
-    scales_type_e getScalesType();
-
-    qreal getElevationAt(const QPointF &pos) const;
-    void  getElevationAt(const QPolygonF& pos, QPolygonF &ele) const;
-    void  getElevationAt(SGisLine &line) const;
-
-    qreal getSlopeAt(const QPointF &pos) const;
-    void getSlopeAt(const QPolygonF& pos, QPolygonF& slope) const;
-
-    void moveMap(const QPointF &delta);
-    void zoomTo(const QRectF& rect);
-    void displayInfo(const QPoint& px);
-    poi_t findPOICloseBy(const QPoint& px) const;
-
-    enum redraw_e
-    {
-        eRedrawNone = 0
-        , eRedrawMap = 0x01
-        , eRedrawDem = 0x02
-        , eRedrawGis = 0x04
-        , eRedrawMouse = 0x08
-        , eRedrawAll = 0xFFFFFFFF
-    };
-
-    static void triggerCompleteUpdate(CCanvas::redraw_e flags);
-
-
-    void resetMouse();
-    void mouseTrackingLost();
-    void setMouseMoveWpt(CGisItemWpt& wpt);
-    void setMouseRadiusWpt(CGisItemWpt& wpt);
-    void setMouseEditTrk(CGisItemTrk& trk);
-    void setMouseRangeTrk(CGisItemTrk& trk);
-    void setMouseEditTrk(const QPointF& pt);
-    void setMouseEditRte(const QPointF& pt);
-    void setMouseEditRte(CGisItemRte& rte);
-    void setMouseEditArea(CGisItemOvlArea& area);
-    void setMouseEditArea(const QPointF& pt);
-    void setMouseWptBubble(const IGisItem::key_t& key);
-    void setMousePrint();
-    void setMouseSelect();
-
-    void showProfileAsWindow(bool yes);
-    void showProfile(bool yes);
-
-    /**
-       @brief Add a message by key to be reported on the canvas
-
-       Messages from various sources will be collected in a list and displayed in the top left corner
-       of the widget.
-
-       @note The object reporting has to take care to remove the message by reporting an empty string.
-
-       @param key   the key to identify the reporting object
-       @param msg   the message to report
-     */
-    void reportStatus(const QString& key, const QString& msg);
-
-    /**
-       @brief Find a matching street polyline
-
-       The polyline must be close enough in terms of pixel to point 1 and 2. "Close enough" is defined by
-       the threshold. The returned polyline uses lon/lat as coordinates.
-
-       @param pt1           first point in [rad]
-       @param pt2           second point in [rad]
-       @param threshold     the "close enough" threshold in [pixel]
-       @param polyline      the resulting polyline, if any, in [rad]
-       @return              Return true if a line has been found.
-     */
-    bool findPolylineCloseBy(const QPointF& pt1, const QPointF& pt2, qint32 threshold, QPolygonF& polyline);
-
-    void print(QPainter &p, const QRectF& area, const QPointF &focus);
-
-    static qreal gisLayerOpacity;
-signals:
-    void sigMousePosition(const QPointF& pos, qreal ele, qreal slope);
-    void sigZoom();
-    void sigMove();
-
-public slots:
-    void slotTriggerCompleteUpdate(CCanvas::redraw_e flags);
-    void slotUpdateTrackStatistic(bool show);
-
-protected:
-    bool event(QEvent *) override;
-    bool gestureEvent(QGestureEvent *e);
-    void resizeEvent(QResizeEvent *e) override;
-    void paintEvent(QPaintEvent  *e) override;
-    void mousePressEvent(QMouseEvent  *e) override;
-    void mouseMoveEvent(QMouseEvent  *e) override;
-    void mouseReleaseEvent(QMouseEvent  *e) override;
-    void mouseDoubleClickEvent(QMouseEvent  *e) override;
-    void wheelEvent(QWheelEvent  *e) override;
-    void enterEvent(QEvent       *e) override;
-    void leaveEvent(QEvent       *e) override;
-    void keyPressEvent(QKeyEvent    *e) override;
-
-
-private slots:
-    void slotToolTip();
-    void slotCheckTrackOnFocus();
-
-
-private:
-    void drawStatusMessages(QPainter& p);
-    void drawTrackStatistic(QPainter& p);
-    void drawScale(QPainter& p);
-    void setZoom(bool in, redraw_e &needsRedraw);
-    void setSizeTrackProfile();
-    void saveSizeTrackProfile();
-    void setDrawContextSize(const QSize& s);
-    void setMouseCursor(IMouse& mouse, const QString& src);
-
-
-    QColor backColor = "#FFFFBF";       //< the background color used in case of missing map tiles
-    redraw_e needsRedraw = eRedrawAll;  //< set true to initiate a complete redraw of the screen content
-    CMapDraw * map;                     //< the map object attached to this canvas
-    CDemDraw * dem;                     //< the elevation data layer attached to this canvas
-    CGisDraw * gis;                     //< the GIS data layer attached to this canvas
-    CGrid * grid;                       //< the grid attached to this canvas
-
-    /// the current point of focus (usually the canvas center)
-    QPointF posFocus {12.00 * DEG_TO_RAD, 49.00 * DEG_TO_RAD};
-
-    /// the current mouse handler
-    IMouse * mouse;
-
-    /// tool tip timer for vector map tool tips
-    QTimer * timerToolTip;
-    /// the position of the tool tip
-    QPoint posToolTip;
-
-    /// load indicator for maps
-    QMovie * loadIndicator1;
-    QLabel * mapLoadIndicator;
-
-    /// load indicator for DEM
-    QMovie * loadIndicator2;
-    QLabel * demLoadIndicator;
-
-    QPointer<CColorLegend> colorLegend;
-
-    /// current accumulated angleDelta, used/required for zooming on trackpads
-    int zoomAngleDelta = 0;
-
-    /// timer to poll for track gaining/loosing focus
-    QTimer * timerTrackOnFocus;
-    /// the key of the currently focused track
-    IGisItem::key_t keyTrackOnFocus;
-    /// the track profile plot
-    QPointer<IPlot>  plotTrackProfile;
-    /// a label with a track
-    QLabel * labelTrackStatistic;
-
-    QLabel * labelStatusMessages;
-    QMap<QString, QString> statusMessages;
-
-    QMutex mousePressMutex;
-    bool mouseLost = false;
-};
-
-#endif //CCANVAS_H
-
diff --git a/src/canvas/CCanvasSetup.cpp b/src/canvas/CCanvasSetup.cpp
deleted file mode 100644
index fd99d9e..0000000
--- a/src/canvas/CCanvasSetup.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "canvas/CCanvasSetup.h"
-#include "grid/CProjWizard.h"
-
-CCanvasSetup::CCanvasSetup(CCanvas * canvas)
-    : QDialog(canvas)
-    , canvas(canvas)
-{
-    setupUi(this);
-
-    lineProjection->setText(canvas->getProjection());
-    lineProjection->setCursorPosition(0);
-
-    switch(canvas->getScalesType())
-    {
-    case CCanvas::eScalesDefault:
-        radioScalesDefault->setChecked(true);
-        break;
-
-    case CCanvas::eScalesSquare:
-        radioScalesSquare->setChecked(true);
-        break;
-    }
-
-    connect(toolWizard, &QToolButton::clicked, this, &CCanvasSetup::slotProjWizard);
-}
-
-CCanvasSetup::~CCanvasSetup()
-{
-}
-
-void CCanvasSetup::slotProjWizard()
-{
-    CProjWizard dlg(*lineProjection);
-    dlg.exec();
-}
-
-
-void CCanvasSetup::accept()
-{
-    if(!CProjWizard::validProjStr(lineProjection->text()))
-    {
-        return;
-    }
-    canvas->setProjection(lineProjection->text());
-    if(radioScalesDefault->isChecked())
-    {
-        canvas->setScales(CCanvas::eScalesDefault);
-    }
-    else if(radioScalesSquare->isChecked())
-    {
-        canvas->setScales(CCanvas::eScalesSquare);
-    }
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
-    QDialog::accept();
-}
diff --git a/src/canvas/ICanvasSetup.ui b/src/canvas/ICanvasSetup.ui
deleted file mode 100644
index 8629d62..0000000
--- a/src/canvas/ICanvasSetup.ui
+++ /dev/null
@@ -1,141 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ICanvasSetup</class>
- <widget class="QDialog" name="ICanvasSetup">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>446</width>
-    <height>196</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Setup Map View...</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Projection & Datum</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLineEdit" name="lineProjection"/>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolWizard">
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../resources.qrc">
-         <normaloff>:/icons/32x32/GridWizzard.png</normaloff>:/icons/32x32/GridWizzard.png</iconset>
-       </property>
-       <property name="iconSize">
-        <size>
-         <width>22</width>
-         <height>22</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QVBoxLayout" name="verticalLayout">
-     <item>
-      <widget class="QGroupBox" name="groupBox">
-       <property name="title">
-        <string>Scales</string>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout_3">
-        <item>
-         <widget class="QRadioButton" name="radioScalesDefault">
-          <property name="text">
-           <string>Logarithmic</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QRadioButton" name="radioScalesSquare">
-          <property name="text">
-           <string>Square (optimized for TMS and WMTS tiles)</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>9</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <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>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>ICanvasSetup</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>ICanvasSetup</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/cursors/cursorPointAdd.png b/src/cursors/cursorPointAdd.png
index cacc878..fddc501 100644
Binary files a/src/cursors/cursorPointAdd.png and b/src/cursors/cursorPointAdd.png differ
diff --git a/src/cursors/cursorPointDel.png b/src/cursors/cursorPointDel.png
index a2a616a..79e7ef1 100644
Binary files a/src/cursors/cursorPointDel.png and b/src/cursors/cursorPointDel.png differ
diff --git a/src/cursors/cursorPointMove.png b/src/cursors/cursorPointMove.png
index 0ace063..8783378 100644
Binary files a/src/cursors/cursorPointMove.png and b/src/cursors/cursorPointMove.png differ
diff --git a/src/device/IDevice.cpp b/src/device/IDevice.cpp
deleted file mode 100644
index c609878..0000000
--- a/src/device/IDevice.cpp
+++ /dev/null
@@ -1,404 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "device/CDeviceGarmin.h"
-#include "device/IDevice.h"
-#include "gis/CGisListWks.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/rte/router/IRouter.h"
-#include "helpers/CSelectCopyAction.h"
-
-#ifdef HAVE_DBUS
-#include <QtDBus>
-#endif
-
-int IDevice::cnt = 0;
-
-IDevice::IDevice(const QString &path, type_e type, const QString &key, QTreeWidget *parent)
-    : QTreeWidgetItem(parent, type)
-    , dir(path)
-    , key(key)
-{
-    setIcon(CGisListWks::eColumnIcon, QIcon("://icons/32x32/Device.png"));
-    cnt++;
-}
-
-IDevice::IDevice(const QString &path, type_e type, const QString &key, CDeviceGarmin *parent)
-    : QTreeWidgetItem(parent, type)
-    , dir(path)
-    , key(key)
-{
-    setIcon(CGisListWks::eColumnIcon, QIcon("://icons/32x32/PathGreen.png"));
-}
-
-IDevice::~IDevice()
-{
-    cnt--;
-}
-
-void IDevice::mount(const QString& path)
-{
-#ifdef HAVE_DBUS
-    QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",path,"org.freedesktop.UDisks2.Filesystem","Mount");
-    QVariantMap args;
-    args.insert("options", "sync");
-    message << args;
-#if defined(Q_OS_FREEBSD)
-    // XXX Hunc sint race conditions - call bsdisks (UDisks2) too fast,
-    // get a malformed reply, crash.
-    QThread::sleep(1);
-#endif
-    QDBusConnection::systemBus().call(message);
-#endif
-}
-
-void IDevice::umount(const QString &path)
-{
-#ifdef HAVE_DBUS
-    QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",path,"org.freedesktop.UDisks2.Filesystem","Unmount");
-    QVariantMap args;
-    message << args;
-    QDBusConnection::systemBus().call(message);
-#endif
-}
-
-
-QString IDevice::getName() const
-{
-    return text(CGisListWks::eColumnName);
-}
-
-void IDevice::getItemsByPos(const QPointF& pos, QList<IGisItem *> &items)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->getItemsByPos(pos, items);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->getItemsByPos(pos, items);
-        }
-    }
-}
-
-void IDevice::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->getItemsByArea(area, flags, items);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->getItemsByArea(area, flags, items);
-        }
-    }
-}
-
-void IDevice::getNogoAreas(QVector<IRouter::circle_t> & areas)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->getNogoAreas(areas);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->getNogoAreas(areas);
-        }
-    }
-}
-
-IGisItem * IDevice::getItemByKey(const IGisItem::key_t& key)
-{
-    IGisItem * item = nullptr;
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            if(project->getKey() != key.project)
-            {
-                continue;
-            }
-
-            item = project->getItemByKey(key);
-            if(item != nullptr)
-            {
-                break;
-            }
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            item = device->getItemByKey(key);
-            if(item != nullptr)
-            {
-                break;
-            }
-        }
-    }
-    return item;
-}
-
-void IDevice::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->getItemsByKeys(keys, items);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->getItemsByKeys(keys, items);
-        }
-    }
-}
-
-IGisProject * IDevice::getProjectByKey(const QString& key)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            if(project->getKey() != key)
-            {
-                continue;
-            }
-
-            return project;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            project = device->getProjectByKey(key);
-            if(project != nullptr)
-            {
-                return project;
-            }
-        }
-    }
-    return nullptr;
-}
-
-void IDevice::editItemByKey(const IGisItem::key_t& key)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->editItemByKey(key);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->editItemByKey(key);
-        }
-    }
-}
-
-
-void IDevice::insertCopyOfProject(IGisProject * project, int& lastResult)
-{
-    IGisProject * project2 = getProjectByKey(project->getKey());
-    if(project2)
-    {
-        int result = lastResult;
-        if(lastResult == CSelectCopyAction::eResultNone)
-        {
-            CSelectCopyAction dlg(project, project2, CMainWindow::getBestWidgetForParent());
-            dlg.exec();
-            result = dlg.getResult();
-            if(dlg.allOthersToo())
-            {
-                lastResult = result;
-            }
-        }
-
-        if(result == CSelectCopyAction::eResultSkip)
-        {
-            return;
-        }
-        if(result == CSelectCopyAction::eResultNone)
-        {
-            return;
-        }
-
-        if(project2->remove())
-        {
-            delete project2;
-        }
-        else
-        {
-            return;
-        }
-    }
-
-    insertCopyOfProject(project);
-}
-
-void IDevice::updateProject(IGisProject * project)
-{
-    IGisProject * project2 = getProjectByKey(project->getKey());
-    if(project2)
-    {
-        if(project2->remove())
-        {
-            delete project2;
-        }
-        else
-        {
-            return;
-        }
-    }
-
-    project->blockUpdateItems(true);
-    insertCopyOfProject(project);
-    project->blockUpdateItems(false);
-}
-
-bool IDevice::testForExternalProject(const QString& filename)
-{
-    if(QDir(filename).exists() || QFile::exists(filename))
-    {
-        QString msg = tr("There is another project with the same name. If you press 'ok' it will be removed and replaced.");
-        int res = QMessageBox::warning(CMainWindow::getBestWidgetForParent(), getName(), msg, QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
-        if(res != QMessageBox::Ok)
-        {
-            return true;
-        }
-
-        if(QDir(filename).exists())
-        {
-            QDir(filename).removeRecursively();
-        }
-        else if(QFile::exists(filename))
-        {
-            QFile(filename).remove();
-        }
-
-        QFileInfo fi(filename);
-
-        const int N = childCount();
-        for(int n = 0; n < N; n++)
-        {
-            QTreeWidgetItem * item = child(n);
-            if(item->text(CGisListWks::eColumnName) == fi.fileName())
-            {
-                delete item;
-                break;
-            }
-        }
-    }
-    return false;
-}
-
-void IDevice::drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->drawItem(p, viewport, blockedAreas, gis);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->drawItem(p, viewport, blockedAreas, gis);
-        }
-    }
-}
-
-void IDevice::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->drawLabel(p, viewport, blockedAreas, fm, gis);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->drawLabel(p, viewport, blockedAreas, fm, gis);
-        }
-    }
-}
-
-void IDevice::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-{
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
-        if(project != nullptr)
-        {
-            project->drawItem(p, viewport, gis);
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(child(n));
-        if(device != nullptr)
-        {
-            device->drawItem(p, viewport, gis);
-        }
-    }
-}
diff --git a/src/device/IDevice.h b/src/device/IDevice.h
deleted file mode 100644
index d433258..0000000
--- a/src/device/IDevice.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef IDEVICE_H
-#define IDEVICE_H
-
-#include <QDir>
-#include <QTreeWidgetItem>
-
-#include "gis/IGisItem.h"
-#include "gis/rte/router/IRouter.h"
-class CGisDraw;
-class CGisItemWpt;
-class CDeviceGarmin;
-
-class IDevice : public QTreeWidgetItem
-{
-    Q_DECLARE_TR_FUNCTIONS(IDevice)
-public:
-    enum type_e
-    {
-        eTypeNone       = 0
-        ,eTypeGarmin    = 1
-        ,eTypeTwoNav    = 2
-    };
-
-    IDevice(const QString& path, type_e type, const QString& key, QTreeWidget * parent);
-    IDevice(const QString &path, type_e type, const QString &key, CDeviceGarmin *parent);
-    virtual ~IDevice();
-
-
-    static void mount(const QString& path);
-    static void umount(const QString &path);
-    static int count()
-    {
-        return cnt;
-    }
-
-    void mount()
-    {
-        mount(key);
-    }
-    void umount()
-    {
-        umount(key);
-    }
-
-    const QString& getKey() const
-    {
-        return key;
-    }
-
-    QString getName() const;
-
-    void getItemsByPos(const QPointF& pos, QList<IGisItem *> &items);
-    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
-    void getNogoAreas(QVector<IRouter::circle_t> &areas);
-    IGisItem * getItemByKey(const IGisItem::key_t& key);
-    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
-    void editItemByKey(const IGisItem::key_t& key);
-
-    void drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis);
-    void drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis);
-    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis);
-
-    void insertCopyOfProject(IGisProject * project, int& lastResult);
-    void updateProject(IGisProject * project);
-
-    virtual void startSavingProject(IGisProject * project)
-    {
-    }
-    virtual void saveImages(CGisItemWpt& wpt)
-    {
-    }
-    virtual void loadImages(CGisItemWpt& wpt)
-    {
-    }
-    virtual void aboutToRemoveProject(IGisProject * project)
-    {
-    }
-
-    IGisProject * getProjectByKey(const QString& key);
-
-protected:
-    virtual void insertCopyOfProject(IGisProject * project) = 0;
-    /**
-       @brief Test if a project's filename/path is already used
-
-       This can happen if there is already a project with the same name
-       but different or no key.
-
-       @param filename
-       @return If the current operation should be aborted return true.
-     */
-    bool testForExternalProject(const QString& filename);
-
-    static int cnt;
-
-    QDir dir;
-    QString key;
-};
-
-#endif //IDEVICE_H
-
diff --git a/src/gis/CGisDatabase.cpp b/src/gis/CGisDatabase.cpp
deleted file mode 100644
index c4308da..0000000
--- a/src/gis/CGisDatabase.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 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 "gis/CGisDatabase.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-CGisDatabase * CGisDatabase::pSelf = nullptr;
-
-CGisDatabase::CGisDatabase(QWidget *parent)
-    : QWidget(parent)
-{
-    pSelf = this;
-    setupUi(this);
-
-    SETTINGS;
-    treeDB->header()->restoreState(cfg.value("Database/treeDB/state", treeDB->header()->saveState()).toByteArray());
-
-    connect(treeDB,  &CGisListDB::sigChanged,  this, &CGisDatabase::slotHelpText);
-
-
-    QTimer::singleShot(1, this, SLOT(slotHelpText()));
-}
-
-CGisDatabase::~CGisDatabase()
-{
-    SETTINGS;
-    cfg.setValue("Database/treeDB/state", treeDB->header()->saveState());
-}
-
-void CGisDatabase::slotHelpText()
-{
-    frameHelp->setVisible(treeDB->topLevelItemCount() == 0);
-}
-
-void CGisDatabase::postEventForDb(QEvent * event)
-{
-    QCoreApplication::postEvent(treeDB, event);
-}
-
-void CGisDatabase::sendEventForDb(QEvent * event)
-{
-    QCoreApplication::sendEvent(treeDB, event);
-}
diff --git a/src/gis/CGisDatabase.h b/src/gis/CGisDatabase.h
deleted file mode 100644
index 9964af3..0000000
--- a/src/gis/CGisDatabase.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISDATABASE_H
-#define CGISDATABASE_H
-
-#include "ui_IGisDatabase.h"
-
-class CGisDatabase : public QWidget, private Ui::IGisDatabase
-{
-    Q_OBJECT
-public:
-    static CGisDatabase& self()
-    {
-        return *pSelf;
-    }
-
-    virtual ~CGisDatabase();
-
-    void postEventForDb(QEvent * event);
-    void sendEventForDb(QEvent * event);
-
-private slots:
-    void slotHelpText();
-
-private:
-    friend class CMainWindow;
-    CGisDatabase(QWidget * parent);
-
-    static CGisDatabase * pSelf;
-};
-
-#endif //CGISDATABASE_H
-
diff --git a/src/gis/CGisDraw.cpp b/src/gis/CGisDraw.cpp
deleted file mode 100644
index ee9ab33..0000000
--- a/src/gis/CGisDraw.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/**********************************************************************************************
-    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 "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "helpers/CDraw.h"
-
-#include <QtWidgets>
-
-CGisDraw::CGisDraw(CCanvas *parent)
-    : IDrawContext("gis", CCanvas::eRedrawGis, parent)
-{
-    connect(&CGisWorkspace::self(), &CGisWorkspace::sigChanged, this, &CGisDraw::emitSigCanvasUpdate);
-}
-
-CGisDraw::~CGisDraw()
-{
-}
-
-void CGisDraw::draw(QPainter& p, const QRect& rect)
-{
-    CGisWorkspace::self().fastDraw(p, rect, this);
-}
-
-void CGisDraw::drawt(buffer_t& currentBuffer)
-{
-    QPointF pt1 = currentBuffer.ref1;
-    QPointF pt2 = currentBuffer.ref2;
-    QPointF pt3 = currentBuffer.ref3;
-    QPointF pt4 = currentBuffer.ref4;
-
-    qreal left, right, top, bottom;
-    left     = (pt1.x() < pt4.x() ? pt1.x() : pt4.x());
-    right    = (pt2.x() > pt3.x() ? pt2.x() : pt3.x());
-    top      = (pt1.y() < pt2.y() ? pt1.y() : pt2.y());
-    bottom   = (pt4.y() > pt3.y() ? pt4.y() : pt3.y());
-
-    QPointF pp = currentBuffer.ref1;
-    convertRad2Px(pp);
-
-
-    QRectF rect(QPointF(left,top), QPointF(right, bottom));
-
-    QPolygonF viewport;
-    viewport << pt1 << pt2 << pt3 << pt4;
-
-    QPainter p(&currentBuffer.image);
-    USE_ANTI_ALIASING(p,true);
-    p.translate(-pp);
-
-    CGisWorkspace::self().draw(p,viewport, this);
-}
diff --git a/src/gis/CGisDraw.h b/src/gis/CGisDraw.h
deleted file mode 100644
index 6350c48..0000000
--- a/src/gis/CGisDraw.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISDRAW_H
-#define CGISDRAW_H
-
-#include "canvas/IDrawContext.h"
-
-class CCanvas;
-
-class CGisDraw : public IDrawContext
-{
-public:
-    CGisDraw(CCanvas *parent);
-    virtual ~CGisDraw();
-
-    using IDrawContext::draw;
-    void draw(QPainter& p, const QRect& rect);
-
-protected:
-    void drawt(buffer_t& currentBuffer) override;
-};
-
-#endif //CGISDRAW_H
-
diff --git a/src/gis/CGisListDB.cpp b/src/gis/CGisListDB.cpp
deleted file mode 100644
index 8ca3ba7..0000000
--- a/src/gis/CGisListDB.cpp
+++ /dev/null
@@ -1,1082 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "config.h"
-#include "gis/CGisListDB.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/db/CDBFolderLostFound.h"
-#include "gis/db/CDBFolderMysql.h"
-#include "gis/db/CDBFolderSqlite.h"
-#include "gis/db/CDBItem.h"
-#include "gis/db/CDBProject.h"
-#include "gis/db/CSearchDatabase.h"
-#include "gis/db/CSelectDBFolder.h"
-#include "gis/db/CSetupDatabase.h"
-#include "gis/db/CSetupFolder.h"
-#include "gis/db/macros.h"
-#include "helpers/CSettings.h"
-
-#include <QtNetwork>
-#include <QtSql>
-#include <QtWidgets>
-
-class CGisListDBEditLock
-{
-public:
-    CGisListDBEditLock(bool waitCursor, CGisListDB * widget, const QString& src) : widget(widget), waitCursor(waitCursor), src(src)
-    {
-        if(waitCursor)
-        {
-            CCanvas::setOverrideCursor(Qt::WaitCursor, "CGisListDBEditLock: " + src);
-        }
-        widget->isInternalEdit++;
-    }
-    ~CGisListDBEditLock()
-    {
-        if(waitCursor)
-        {
-            CCanvas::restoreOverrideCursor("~CGisListDBEditLock: " + src);
-        }
-        widget->isInternalEdit--;
-    }
-private:
-    CGisListDB * widget;
-    bool waitCursor;
-    QString src;
-};
-
-
-CGisListDB::CGisListDB(QWidget *parent)
-    : QTreeWidget(parent)
-    , socket(nullptr)
-{
-    SETTINGS;
-    cfg.beginGroup("Database");
-    QString path = cfg.value("lastDatabasePath", QDir::homePath()).toString();
-    QStringList names = cfg.value("names").toStringList();
-    cfg.beginGroup("Entries");
-    for(const QString &name : names)
-    {
-        cfg.beginGroup(name);
-        QString type = cfg.value("type", "SQLite").toString();
-        if(type == "SQLite")
-        {
-            QString filename = cfg.value("filename","").toString();
-            if(filename.isEmpty())
-            {
-                QMessageBox::information(this, name, tr("Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.").arg(name), QMessageBox::Ok);
-                filename = QFileDialog::getOpenFileName(this, tr("Select database file."), path, "QMapShack Database (*.db)");
-                if(filename.isEmpty())
-                {
-                    cfg.endGroup(); // name;
-                    continue;
-                }
-            }
-            CDBFolderSqlite *folder = new CDBFolderSqlite(filename, name, this);
-            folder->setToolTip(eColumnName, folder->getDBInfo());
-        }
-        if(type == "MySQL")
-        {
-            QString server  = cfg.value("server",   "").toString();
-            QString port    = cfg.value("port",     "").toString();
-            QString user    = cfg.value("user",     "").toString();
-            QString passwd  = cfg.value("passwd",   "").toString();
-            bool noPasswd   = cfg.value("noPasswd", false).toBool();
-
-            if(server.isEmpty() || user.isEmpty())
-            {
-                cfg.endGroup(); // name
-                continue;
-            }
-            CDBFolderMysql *folder = new CDBFolderMysql(server, port, user, passwd, noPasswd, name, this);
-            folder->setToolTip(eColumnName, folder->getDBInfo());
-        }
-        cfg.endGroup(); // name
-    }
-    cfg.endGroup(); // Entries
-    cfg.endGroup(); // Database
-
-
-    menuNone            = new QMenu(this);
-    actionAddDatabase   = menuNone->addAction(QIcon("://icons/32x32/Add.png"), tr("Add Database"), this, SLOT(slotAddDatabase()));
-
-    menuFolder          = new QMenu(this);
-    actionAddFolder     = menuFolder->addAction(QIcon("://icons/32x32/Add.png"), tr("Add Folder"), this, SLOT(slotAddFolder()));
-    actionRenameFolder  = menuFolder->addAction(QIcon("://icons/32x32/A.png"), tr("Rename Folder"), this, SLOT(slotRenameFolder()));
-    actionCopyFolder    = menuFolder->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy Folder"), this, SLOT(slotCopyFolder()));
-    actionMoveFolder    = menuFolder->addAction(QIcon("://icons/32x32/Move.png"), tr("Move Folder"), this, SLOT(slotMoveFolder()));
-    actionDelFolder     = menuFolder->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Folder"), this, SLOT(slotDelFolder()));
-    menuFolder->addSeparator();
-    actionImport        = menuFolder->addAction(QIcon("://icons/32x32/LoadGIS.png"), tr("Import from Files..."), this, SLOT(slotImport()));
-    actionExportToGpx   = menuFolder->addAction(QIcon("://icons/32x32/SaveGIS.png"), tr("Export to GPX..."), this, SLOT(slotExportToGpx()));
-
-    menuItem            = new QMenu(this);
-    actionDelItem       = menuItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelItem()));
-
-    menuDatabase        = new QMenu(this);
-    menuDatabase->addAction(actionAddFolder);
-    actionSearch        = menuDatabase->addAction(QIcon("://icons/32x32/Zoom.png"), tr("Search Database"), this, SLOT(slotSearchDatabase()));
-    actionUpdate        = menuDatabase->addAction(QIcon("://icons/32x32/DatabaseSync.png"), tr("Sync. with Database"), this, SLOT(slotUpdateDatabase()));
-    actionDelDatabase   = menuDatabase->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Remove Database"), this, SLOT(slotDelDatabase()));
-    menuDatabase->addSeparator();
-    menuDatabase->addAction(actionImport);
-    menuDatabase->addAction(actionExportToGpx);
-
-
-    menuLostFound       = new QMenu(this);
-    actionDelLostFound  = menuLostFound->addAction(QIcon("://icons/32x32/Empty.png"), tr("Empty"), this, SLOT(slotDelLostFound()));
-
-    menuLostFoundItem       = new QMenu(this);
-    actionDelLostFoundItem  = menuLostFoundItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelLostFoundItem()));
-
-    connect(this, &CGisListDB::customContextMenuRequested, this, &CGisListDB::slotContextMenu);
-    connect(this, &CGisListDB::itemExpanded,               this, &CGisListDB::slotItemExpanded);
-    connect(this, &CGisListDB::itemChanged,                this, &CGisListDB::slotItemChanged);
-
-    bool enabled = cfg.value("Database/listenUpdate", false).toBool();
-    if(enabled)
-    {
-        quint16 port = cfg.value("Database/port", UDP_PORT).toUInt();
-
-        socket = new QUdpSocket(this);
-        if(!socket->bind(QHostAddress::Any, port, QUdpSocket::ShareAddress))
-        {
-            qDebug() << socket->errorString();
-        }
-        connect(socket, &QUdpSocket::readyRead, this, &CGisListDB::slotReadyRead);
-    }
-}
-
-CGisListDB::~CGisListDB()
-{
-    saveDatabaseConfiguration();
-}
-
-void CGisListDB::saveDatabaseConfiguration()
-{
-    QStringList names;
-
-    SETTINGS;
-    cfg.beginGroup("Database");
-
-    cfg.beginGroup("Entries");
-    cfg.remove("");
-
-    const int N = topLevelItemCount();
-    for(int n = 0; n < N; n++)
-    {
-        CDBFolderSqlite * sqlite = dynamic_cast<CDBFolderSqlite*>(topLevelItem(n));
-        if(sqlite)
-        {
-            QString name = sqlite->text(CGisListDB::eColumnName);
-            names << name;
-
-            cfg.beginGroup(name);
-            cfg.setValue("type", "SQLite");
-            cfg.setValue("filename", sqlite->getFilename());
-            cfg.endGroup(); // name
-        }
-        CDBFolderMysql * mysql = dynamic_cast<CDBFolderMysql*>(topLevelItem(n));
-        if(mysql)
-        {
-            QString name = mysql->text(CGisListDB::eColumnName);
-            names << name;
-
-            cfg.beginGroup(name);
-            cfg.setValue("type", "MySQL");
-            cfg.setValue("server", mysql->getServer());
-            cfg.setValue("port", mysql->getPort());
-            cfg.setValue("user", mysql->getUser());
-            cfg.setValue("passwd", mysql->getPasswd());
-            cfg.setValue("noPasswd",mysql->hasNoPasswd());
-            cfg.endGroup(); // name
-        }
-    }
-
-    cfg.endGroup(); // Entries
-    cfg.setValue("names", names);
-    cfg.endGroup(); // Database
-}
-
-IDBFolderSql * CGisListDB::getDataBase(const QString& name, const QString &host)
-{
-    CGisListDBEditLock lock(true, this, "getDataBase");
-    const int N = topLevelItemCount();
-    for(int n = 0; n < N; n++)
-    {
-        IDBFolderSql * database = dynamic_cast<IDBFolderSql*>(topLevelItem(n));
-        if(database && (database->getDBName() == name))
-        {
-            if(!host.isEmpty())
-            {
-                if(database->getDBHost() != host)
-                {
-                    continue;
-                }
-            }
-
-            return database;
-        }
-    }
-    return nullptr;
-}
-
-bool CGisListDB::hasDatabase(const QString& name)
-{
-    CGisListDBEditLock lock(true, this, "hasDatabase");
-    const int N = topLevelItemCount();
-    for(int i = 0; i < N; i++)
-    {
-        IDBFolderSql * folder = dynamic_cast<IDBFolderSql*>(topLevelItem(i));
-        if(folder && (folder->text(CGisListDB::eColumnName) == name))
-        {
-            return true;
-        }
-    }
-    return false;
-}
-
-
-bool CGisListDB::event(QEvent * e)
-{
-    if(!dlgSearch.isNull())
-    {
-        dlgSearch->event(e);
-    }
-
-    switch(e->type())
-    {
-    case eEvtW2DAckInfo:
-    {
-        CGisListDBEditLock lock(true, this, "event");
-        CEvtW2DAckInfo * evt    = (CEvtW2DAckInfo*)e;
-        IDBFolderSql * folder   = getDataBase(evt->db, evt->host);
-        if(folder)
-        {
-            folder->update(evt);
-            if(evt->updateLostFound)
-            {
-                folder->updateLostFound();
-                folder->announceChange();
-            }
-        }
-        e->accept();
-        return true;
-    }
-
-    case eEvtW2DCreate:
-    {
-        CGisListDBEditLock lock(true, this, "event");
-        CEvtW2DCreate * evt = (CEvtW2DCreate*)e;
-        IDBFolderSql * db   = getDataBase(evt->db, evt->host);
-        if(db)
-        {
-            quint64 idChild = 0;
-            IDBFolder * folder = db->getFolder(evt->idParent);
-            if(folder)
-            {
-                idChild = folder->addFolder(evt->type, evt->name);
-            }
-            else
-            {
-                idChild = IDBFolder::addFolderToDb(evt->type, evt->name, evt->idParent, db->getDb());
-            }
-
-            if(idChild)
-            {
-                if(folder)
-                {
-                    folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-                }
-
-                evt->idChild = idChild;
-                CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(idChild, evt->db);
-                CGisWorkspace::self().postEventForWks(evt1);
-            }
-
-            db->announceChange();
-        }
-        e->accept();
-        return true;
-    }
-    }
-
-    return QTreeWidget::event(e);
-}
-
-void CGisListDB::slotContextMenu(const QPoint& point)
-{
-    QPoint p = mapToGlobal(point);
-
-    if(selectedItems().isEmpty())
-    {
-        menuNone->exec(p);
-        return;
-    }
-
-    bool isSingleSelection  = selectedItems().count() == 1;
-
-    actionUpdate->setEnabled(true);
-    actionAddFolder->setEnabled(isSingleSelection);
-    actionExportToGpx->setEnabled(isSingleSelection);
-    actionImport->setEnabled(isSingleSelection);
-
-    IDBFolderSql * database = dynamic_cast<IDBFolderSql*>(currentItem());
-    if(database)
-    {
-        bool enabled = database->getDb().isOpen();
-        actionUpdate->setEnabled(enabled);
-        actionAddFolder->setEnabled(enabled);
-        actionSearch->setEnabled(enabled);
-
-        menuDatabase->exec(p);
-
-        return;
-    }
-
-    CDBFolderLostFound * lostFound = dynamic_cast<CDBFolderLostFound*>(currentItem());
-    if(lostFound)
-    {
-        menuLostFound->exec(p);
-        return;
-    }
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder)
-    {
-        bool isGroupFolder      = folder->type() == IDBFolder::eTypeGroup;
-        actionRenameFolder->setVisible(isGroupFolder);
-        menuFolder->exec(p);
-        return;
-    }
-
-    CDBItem * item = dynamic_cast<CDBItem*>(currentItem());
-    if(item)
-    {
-        CDBFolderLostFound * lostFound = dynamic_cast<CDBFolderLostFound*>(item->parent());
-        if(lostFound)
-        {
-            menuLostFoundItem->exec(p);
-        }
-        else
-        {
-            menuItem->exec(p);
-        }
-
-        return;
-    }
-}
-
-void CGisListDB::slotAddDatabase()
-{
-    CSetupDatabase dlg(*this);
-    if(dlg.exec() != QDialog::Accepted)
-    {
-        return;
-    }
-
-    QString name = dlg.getName();
-
-    IDBFolder * folder = nullptr;
-    bool isUsable = true;
-
-    if(dlg.isSqlite())
-    {
-        QString filename = dlg.getFilename();
-        CDBFolderSqlite *sfolder = new CDBFolderSqlite(filename, name, this);
-        sfolder->setToolTip(eColumnName, sfolder->getDBInfo());
-        isUsable = sfolder->isUsable();
-        folder = sfolder;
-    }
-    else if(dlg.isMysql())
-    {
-        QString server  = dlg.getServer();
-        QString port    = dlg.getPort();
-        QString user    = dlg.getUser();
-        QString passwd  = dlg.getPasswd();
-        bool noPasswd   = dlg.noPasswd();
-
-        CDBFolderMysql *mfolder = new CDBFolderMysql(server, port, user, passwd, noPasswd, name, this);
-        mfolder->setToolTip(eColumnName, mfolder->getDBInfo());
-        isUsable = mfolder->isUsable();
-        folder = mfolder;
-    }
-    else
-    {
-        return;
-    }
-
-    if(isUsable)
-    {
-        folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-    }
-
-    emit sigChanged();
-
-    saveDatabaseConfiguration();
-}
-
-void CGisListDB::slotDelDatabase()
-{
-    IDBFolderSql *folder = dynamic_cast<IDBFolderSql*>(currentItem());
-    if(nullptr == folder)
-    {
-        return;
-    }
-
-    int res = QMessageBox::question(this, tr("Remove database..."), tr("Do you really want to remove '%1' from the list?").arg(folder->text(CGisListDB::eColumnName)), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
-    if(res != QMessageBox::Ok)
-    {
-        return;
-    }
-
-    delete folder;
-
-    emit sigChanged();
-
-    saveDatabaseConfiguration();
-}
-
-void CGisListDB::slotAddFolder()
-{
-    CGisListDBEditLock lock(false, this, "slotAddFolder");
-
-    IDBFolder *folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(nullptr == folder)
-    {
-        return;
-    }
-
-    IDBFolder::type_e type = IDBFolder::eTypeProject;
-    QString name;
-    CSetupFolder dlg(type, name, true, this);
-    if(dlg.exec() != QDialog::Accepted)
-    {
-        return;
-    }
-
-    if(folder->addFolder(type, name) == 0)
-    {
-        return;
-    }
-
-    if(!folder->isExpanded())
-    {
-        folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-        folder->setExpanded(true);
-    }
-
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder)
-    {
-        dbfolder->announceChange();
-    }
-}
-
-void CGisListDB::slotDelFolder()
-{
-    CGisListDBEditLock lock(false, this, "slotDelFolder");
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder == nullptr)
-    {
-        return;
-    }
-
-    int res = QMessageBox::question(this, tr("Delete database folder..."), tr("Are you sure you want to delete selected folders and all subfolders from the database?"), QMessageBox::Ok|QMessageBox::No);
-    if(res != QMessageBox::Ok)
-    {
-        return;
-    }
-
-    QList<QTreeWidgetItem*> itemsToDelete;
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        // only pick the project/other folders to copy
-        folder = dynamic_cast<IDBFolder*>(item);
-        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
-        {
-            continue;
-        }
-
-
-        folder->remove();
-        // Because some items can be parent of other selected items
-        // it's a bad idea to delete them asap. Better collect them first.
-        itemsToDelete << folder;
-    }
-
-    // iterate over all items to be deleted.
-    for(QTreeWidgetItem * item : itemsToDelete)
-    {
-        // Test if the item's parent is also in the list.
-        // If it is skip it because it will be deleted together with its parent.
-        if(itemsToDelete.contains(item->parent()))
-        {
-            continue;
-        }
-
-        delete item;
-    }
-
-    dbfolder->updateLostFound();
-    dbfolder->announceChange();
-}
-
-void CGisListDB::slotCopyFolder()
-{
-    CGisListDBEditLock lock(false, this, "slotCopyFolder");
-
-    // no way to continue if the current item is not a folder (we need the database it is attached to)
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    // get the database the folder is attached to
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder == nullptr)
-    {
-        return;
-    }
-
-    // next we need to get the target folder
-    // NOTE: By pre-setting db and host, we limit the selection to the current database
-    quint64 idTarget    = 0;
-    QString db          = folder->getDBName();
-    QString host        = folder->getDBHost();
-
-    CSelectDBFolder dlg(idTarget, db, host, this);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return;
-    }
-
-    // get a pointer to the parent folder for later use.
-    IDBFolder * target = dbfolder->getFolder(idTarget);
-    if(target == nullptr)
-    {
-        return;
-    }
-
-    // --- at this point we should have all data to perform the copy without interruption ---
-
-    // now iterate over all selected items
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        // only pick the project/other folders to copy
-        folder = dynamic_cast<IDBFolder*>(item);
-        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
-        {
-            continue;
-        }
-
-        IDBFolder * parent = dynamic_cast<IDBFolder*>(folder->parent());
-        if((parent == nullptr) || (parent->getId() == idTarget) || (folder->getId() == idTarget))
-        {
-            // skip operation if the current parent is the same as the traget parent
-            continue;
-        }
-
-
-        dbfolder->copyFolder(folder->getId(), idTarget);
-    }
-
-    // tell the parent folder to show all changes
-    target->update();
-    // tell other clients to show changes
-    dbfolder->announceChange();
-}
-
-void CGisListDB::slotMoveFolder()
-{
-    CGisListDBEditLock lock(false, this, "slotMoveFolder");
-
-    // no way to continue if the current item is not a folder (we need the database it is attached to)
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    // get the database the folder is attached to
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder == nullptr)
-    {
-        return;
-    }
-
-    // next we need to get the target folder
-    // NOTE: By pre-setting db and host, we limit the selection to the current database
-    quint64 idTarget    = 0;
-    QString db          = folder->getDBName();
-    QString host        = folder->getDBHost();
-
-    CSelectDBFolder dlg(idTarget, db, host, this);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return;
-    }
-
-    // get a pointer to the parent folder for later use.
-    IDBFolder * target = dbfolder->getFolder(idTarget);
-    if(target == nullptr)
-    {
-        return;
-    }
-
-    // --- at this point we should have all data to perform the copy without interruption ---
-
-    // now iterate over all selected items
-    QList<IDBFolder*> foldersToDelete;
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        // only pick the project/other folders to copy
-        folder = dynamic_cast<IDBFolder*>(item);
-        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
-        {
-            continue;
-        }
-
-        IDBFolder * parent = dynamic_cast<IDBFolder*>(folder->parent());
-        if((parent == nullptr) || (parent->getId() == idTarget))
-        {
-            // skip operation if the current parent is the same as the target parent
-            continue;
-        }
-
-        if(target->isSiblingFrom(folder))
-        {
-            QMessageBox::warning(this, tr("Bad operation...."), tr("The target folder is a subfolder of the one to move. This will not work."), QMessageBox::Abort);
-            continue;
-        }
-
-        // copy to new location
-        dbfolder->copyFolder(folder->getId(), idTarget);
-        // Because some items can be parent of other selected items
-        // it's a bad idea to delete them asap. Better collect them first.
-        foldersToDelete << folder;
-    }
-
-    // iterate over all items to be deleted.
-    for(IDBFolder * folder : foldersToDelete)
-    {
-        // Test if the item's parent is also in the list.
-        // If it is skip it because it will be deleted together with it's parent.
-        if(foldersToDelete.contains(dynamic_cast<IDBFolder*>(folder->parent())))
-        {
-            continue;
-        }
-
-        folder->remove();
-        delete folder;
-    }
-
-    // tell the parent folder to show all changes
-    target->update();
-    // tell other clients to show changes
-    dbfolder->announceChange();
-}
-
-void CGisListDB::slotRenameFolder()
-{
-    CGisListDBEditLock lock(false, this, "slotRenameFolder");
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    // get the database the folder is attached to
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder == nullptr)
-    {
-        return;
-    }
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        folder = dynamic_cast<IDBFolder*>(item);
-        if((folder == nullptr) || (folder->type() != IDBFolder::eTypeGroup))
-        {
-            continue;
-        }
-
-
-        QString name1 = folder->getName();
-        QString name2 = QInputDialog::getText(this, tr("Folder name..."), tr("Rename folder:"), QLineEdit::Normal, name1);
-
-        if(!name2.isEmpty() && (name1 != name2))
-        {
-            folder->setName(name2);
-        }
-    }
-
-    // tell other clients to show changes
-    dbfolder->announceChange();
-}
-
-void CGisListDB::slotDelLostFound()
-{
-    CGisListDBEditLock lock(false, this, "slotDelLostFound");
-    CDBFolderLostFound * folder = dynamic_cast<CDBFolderLostFound*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    int res = QMessageBox::question(this, tr("Remove items..."), tr("Are you sure you want to delete all items from Lost&Found? This will remove them permanently."), QMessageBox::Ok|QMessageBox::No);
-    if(res != QMessageBox::Ok)
-    {
-        return;
-    }
-
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotDelLostFound");
-    folder->clear();
-    CCanvas::restoreOverrideCursor("slotDelLostFound");
-
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder)
-    {
-        dbfolder->announceChange();
-    }
-}
-
-void CGisListDB::slotDelLostFoundItem()
-{
-    CGisListDBEditLock lock(false, this, "slotDelLostFoundItem");
-
-    int res = QMessageBox::question(this, tr("Remove items..."), tr("Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently."), QMessageBox::Ok|QMessageBox::No);
-    if(res != QMessageBox::Ok)
-    {
-        return;
-    }
-
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotDelLostFoundItem");
-    QSet<CDBFolderLostFound*> folders;
-    QList<QTreeWidgetItem*> delItems;
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        CDBItem * dbItem            = dynamic_cast<CDBItem*>(item);
-        if(dbItem == nullptr)
-        {
-            continue;
-        }
-
-        CDBFolderLostFound * folder = dynamic_cast<CDBFolderLostFound*>(dbItem->parent());
-        if(folder == nullptr)
-        {
-            continue;
-        }
-
-        if(folder->delItem(dbItem))
-        {
-            delItems << dbItem;
-            folders << folder;
-        }
-    }
-
-    qDeleteAll(delItems);
-    for(CDBFolderLostFound* folder : folders)
-    {
-        folder->update();
-
-        IDBFolderSql * dbfolder = folder->getDBFolder();
-        if(dbfolder)
-        {
-            dbfolder->announceChange();
-        }
-    }
-    CCanvas::restoreOverrideCursor("slotDelLostFoundItem");
-}
-
-
-void CGisListDB::slotItemExpanded(QTreeWidgetItem * item)
-{
-    CGisListDBEditLock lock(true, this, "slotItemExpanded");
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    folder->expanding();
-}
-
-void CGisListDB::slotDelItem()
-{
-    CGisListDBEditLock lock(false, this, "slotDelItem");
-
-    int last = QMessageBox::NoButton;
-
-    QSet<IDBFolder*>        folders;
-    QList<QTreeWidgetItem*> dbItems;
-    QSet<IDBFolderSql*>     dbFolders;
-
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
-        if(dbItem == nullptr)
-        {
-            continue;
-        }
-
-        IDBFolder * folder = dynamic_cast<IDBFolder*>(dbItem->parent());
-        if(folder == nullptr)
-        {
-            continue;
-        }
-
-        if(last != QMessageBox::YesToAll)
-        {
-            QString msg = tr("Are you sure you want to delete '%1' from folder '%2'?").arg(dbItem->text(CGisListDB::eColumnName)).arg(folder->text(CGisListDB::eColumnName));
-            last = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
-        }
-        if(last == QMessageBox::No)
-        {
-            continue;
-        }
-        if(last == QMessageBox::Cancel)
-        {
-            return;
-        }
-
-        dbItem->remove();
-
-        folders << folder;
-        dbItems << dbItem;
-        dbFolders << folder->getDBFolder();
-    }
-
-    qDeleteAll(dbItems);
-    for(IDBFolderSql * dbFolder : dbFolders)
-    {
-        dbFolder->updateLostFound();
-        dbFolder->announceChange();
-    }
-
-    // tell all folders to update their statistics and waypoint/track correlations
-    for(IDBFolder * folder : folders)
-    {
-        folder->updateItemsOnWks();
-    }
-}
-
-void CGisListDB::slotItemChanged(QTreeWidgetItem * item, int column)
-{
-    if(isInternalEdit)
-    {
-        return;
-    }
-    CGisListDBEditLock lock(true, this, "slotItemChanged");
-
-    if(column == CGisListDB::eColumnCheckbox)
-    {
-        IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
-        if(folder != nullptr)
-        {
-            folder->toggle();
-
-            // tell folder to update its statistics and waypoint/track correlations
-            folder->updateItemsOnWks();
-            return;
-        }
-
-        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
-        if(dbItem != nullptr)
-        {
-            dbItem->toggle();
-
-            // tell folder to update its statistics and waypoint/track correlations
-            folder = dynamic_cast<IDBFolder*>(dbItem->parent());
-            if(folder)
-            {
-                folder->updateItemsOnWks();
-            }
-            return;
-        }
-    }
-}
-
-void CGisListDB::slotUpdateDatabase()
-{
-    CGisListDBEditLock lock(true, this, "slotUpdateDatabase");
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem* item : items)
-    {
-        IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
-        if(folder == nullptr)
-        {
-            continue;
-        }
-
-        if(folder->type() == IDBFolder::eTypeDatabase)
-        {
-            folder->update();
-
-            CEvtD2WReload * evt = new CEvtD2WReload(folder->getDBName());
-            CGisWorkspace::self().postEventForWks(evt);
-        }
-    }
-}
-
-void CGisListDB::slotSearchDatabase()
-{
-    CGisListDBEditLock lock(false, this, "slotSearchDatabase");
-
-    IDBFolder * db = dynamic_cast<IDBFolder*>(currentItem());
-    if(db == nullptr)
-    {
-        return;
-    }
-
-    isInternalEdit--;
-    dlgSearch = new CSearchDatabase(*db,this);
-    connect(dlgSearch.data(), &CSearchDatabase::sigItemChanged, this, &CGisListDB::slotItemChanged);
-    dlgSearch->exec();
-    delete dlgSearch;
-    isInternalEdit++;
-}
-
-
-void CGisListDB::slotReadyRead()
-{
-    CGisListDBEditLock lock(true, this, "slotReadyRead");
-
-    while(socket->hasPendingDatagrams())
-    {
-        QByteArray datagram;
-        datagram.resize(socket->pendingDatagramSize());
-        QHostAddress sender;
-        quint16 senderPort;
-
-        socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
-
-        QDataStream stream(&datagram, QIODevice::ReadOnly);
-        stream.setByteOrder(QDataStream::LittleEndian);
-        stream.setVersion(QDataStream::Qt_5_2);
-
-        quint32 msgId;
-        quint32 tan;
-        qint32 id;
-        QString driver;
-        QString dbName;
-        QString dbHost;
-
-        stream >> msgId >> tan >> id >> driver >> dbName >> dbHost;
-
-        if((lastTan == tan) || (msgId != 0))
-        {
-            continue;
-        }
-
-        lastTan = tan;
-
-        // check for our own message
-        if(id == CMainWindow::self().id)
-        {
-            continue;
-        }
-
-        qDebug() << "Receive database update from:" << sender << senderPort;
-        qDebug() << "with" << "tan:" << lastTan << "app ID:" << id << "driver:" << driver << "DB name:" << dbName << "DB host:" << dbHost;
-
-        IDBFolderSql * folder = getDataBase(dbName, dbHost);
-        if(folder)
-        {
-            folder->update();
-
-            CEvtD2WReload * evt = new CEvtD2WReload(folder->getDBName());
-            CGisWorkspace::self().postEventForWks(evt);
-        }
-    }
-}
-
-void CGisListDB::slotExportToGpx()
-{
-    CGisListDBEditLock lock(false, this, "slotExportToGpx");
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    folder->exportToGpx();
-}
-
-void CGisListDB::slotImport()
-{
-    CGisListDBEditLock lock(false, this, "slotImport");
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
-    if(folder == nullptr)
-    {
-        return;
-    }
-
-    SETTINGS;
-    QString path   = cfg.value("Paths/lastGisPath",   QDir::homePath()).toString();
-    QString filter = cfg.value("Paths/lastGisFilter", IGisProject::filedialogAllSupported).toString();
-
-    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Import GIS Data..."), path, IGisProject::filedialogLoadFilters, &filter);
-
-    if(filenames.isEmpty())
-    {
-        return;
-    }
-
-    for(const QString& filename : filenames)
-    {
-        CDBProject * prjDb = new CDBProject(filename, folder, nullptr);
-        if(prjDb->isValid())
-        {
-            prjDb->save();
-        }
-
-        delete prjDb;
-    }
-
-    IDBFolderSql * dbfolder = folder->getDBFolder();
-    if(dbfolder)
-    {
-        dbfolder->announceChange();
-    }
-
-    path = QFileInfo(filenames.first()).absolutePath();
-    cfg.setValue("Paths/lastGisPath",   path);
-    cfg.setValue("Paths/lastGisFilter", filter);
-}
diff --git a/src/gis/CGisListDB.h b/src/gis/CGisListDB.h
deleted file mode 100644
index 9d7c9db..0000000
--- a/src/gis/CGisListDB.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISLISTDB_H
-#define CGISLISTDB_H
-
-#include <QPointer>
-#include <QSqlDatabase>
-#include <QTreeWidget>
-
-struct action_t;
-class QMenu;
-class IDBFolderSql;
-class QUdpSocket;
-class CSearchDatabase;
-
-class CGisListDB : public QTreeWidget
-{
-    Q_OBJECT
-public:
-    CGisListDB(QWidget * parent);
-    virtual ~CGisListDB();
-
-    enum column_e
-    {
-        eColumnCheckbox = 0
-        ,eColumnName = 1
-        ,eColumnTime = 2
-    };
-
-    bool hasDatabase(const QString& name);
-    bool event(QEvent * e) override;
-
-signals:
-    void sigChanged();
-
-private slots:
-    void slotContextMenu(const QPoint& point);
-    void slotAddFolder();
-    void slotDelFolder();
-    void slotDelLostFound();
-    void slotDelLostFoundItem();
-    void slotItemExpanded(QTreeWidgetItem * item);
-    void slotItemChanged(QTreeWidgetItem * item, int column);
-    void slotAddDatabase();
-    void slotDelDatabase();
-    void slotDelItem();
-    void slotUpdateDatabase();
-    void slotSearchDatabase();
-    void slotRenameFolder();
-    void slotCopyFolder();
-    void slotMoveFolder();
-    void slotReadyRead();
-    void slotExportToGpx();
-    void slotImport();
-
-private:
-    friend class CGisListDBEditLock;
-
-    IDBFolderSql *getDataBase(const QString& name, const QString& host);
-    void saveDatabaseConfiguration();
-
-    int isInternalEdit = 0;
-
-    QMenu * menuNone;
-    QAction * actionAddDatabase;
-
-    QMenu * menuFolder;
-    QAction * actionAddFolder;
-    QAction * actionRenameFolder;
-    QAction * actionCopyFolder;
-    QAction * actionMoveFolder;
-    QAction * actionDelFolder;
-    QAction * actionExportToGpx;
-    QAction * actionImport;
-
-    QMenu * menuDatabase;
-    QAction * actionDelDatabase;
-    QAction * actionUpdate;
-    QAction * actionSearch;
-
-
-    QMenu * menuItem;
-    QAction * actionDelItem;
-
-    QMenu * menuLostFound;
-    QAction * actionDelLostFound;
-
-    QMenu * menuLostFoundItem;
-    QAction * actionDelLostFoundItem;
-
-    QUdpSocket * socket;
-
-    quint32 lastTan;
-
-    QPointer<CSearchDatabase> dlgSearch;
-};
-
-#endif //CGISLISTDB_H
-
diff --git a/src/gis/CGisListWks.cpp b/src/gis/CGisListWks.cpp
deleted file mode 100644
index b8723b9..0000000
--- a/src/gis/CGisListWks.cpp
+++ /dev/null
@@ -1,2102 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
-#include "device/CDeviceWatcherLinux.h"
-#endif
-#ifdef Q_OS_WIN
-#include "device/CDeviceWatcherWindows.h"
-#endif
-#ifdef Q_OS_MAC
-#include "device/CDeviceWatcherMac.h"
-#endif
-#include "device/IDevice.h"
-#include "gis/CGisDatabase.h"
-#include "gis/CGisListWks.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/CSelDevices.h"
-#include "gis/IGisItem.h"
-#include "gis/db/CDBProject.h"
-#include "gis/db/CLostFoundProject.h"
-#include "gis/db/CSelectDBFolder.h"
-#include "gis/db/CSetupFolder.h"
-#include "gis/db/macros.h"
-#include "gis/fit/CFitProject.h"
-#include "gis/gpx/CGpxProject.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/qlb/CQlbProject.h"
-#include "gis/qms/CQmsProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/search/CSearchGoogle.h"
-#include "gis/slf/CSlfProject.h"
-#include "gis/suunto/CLogProject.h"
-#include "gis/suunto/CSmlProject.h"
-#include "gis/tcx/CTcxProject.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSelectCopyAction.h"
-#include "helpers/CSelectProjectDialog.h"
-#include "helpers/CSettings.h"
-#include "helpers/CWptIconDialog.h"
-#include "setup/IAppSetup.h"
-
-#include <QApplication>
-#include <QtSql>
-#include <QtWidgets>
-
-using std::bind;
-
-#undef  DB_VERSION
-#define DB_VERSION 3
-
-class CGisListWksEditLock
-{
-public:
-    CGisListWksEditLock(bool waitCursor, QMutex& mutex) : mutex(mutex), waitCursor(waitCursor)
-    {
-        if(waitCursor)
-        {
-            CCanvas::setOverrideCursor(Qt::WaitCursor, "CGisListWksEditLock");
-        }
-        mutex.lock();
-    }
-    ~CGisListWksEditLock()
-    {
-        if(waitCursor)
-        {
-            CCanvas::restoreOverrideCursor("~CGisListWksEditLock");
-        }
-        mutex.unlock();
-    }
-private:
-    QMutex& mutex;
-    bool waitCursor;
-};
-
-CGisListWks::CGisListWks(QWidget *parent)
-    : QTreeWidget(parent)
-{
-    db = QSqlDatabase::addDatabase("QSQLITE","Workspace1");
-    QString config = QDir(IAppSetup::getPlatformInstance()->userDataPath()).filePath("workspace.db");
-    db.setDatabaseName(config);
-    db.open();
-    configDB();
-
-    menuProjectWks   = new QMenu(this);
-    actionEditPrj    = menuProjectWks->addAction(QIcon("://icons/32x32/EditDetails.png"), tr("Edit.."         ), this, SLOT(slotEditPrj()));
-    actionCopyPrj    = menuProjectWks->addAction(QIcon("://icons/32x32/Copy.png"       ), tr("Copy to..."     ), this, SLOT(slotCopyProject()));
-    actionShowOnMap  = menuProjectWks->addAction(QIcon("://icons/32x32/ShowAll.png"    ), tr("Show on Map"    ), this, SLOT(slotShowOnMap()));
-    actionHideFrMap  = menuProjectWks->addAction(QIcon("://icons/32x32/ShowNone.png"   ), tr("Hide from Map"  ), this, SLOT(slotHideFrMap()));
-
-    menuProjectWks->addSeparator();
-    actionGroup = new QActionGroup(menuProjectWks);
-    actionGroup->setExclusive(true);
-    actionSortByTime = addSortAction(menuProjectWks, actionGroup, "://icons/32x32/Time.png", tr("Sort by Time"), IGisProject::eSortFolderTime);
-    actionSortByName = addSortAction(menuProjectWks, actionGroup, "://icons/32x32/SortName.png", tr("Sort by Name"), IGisProject::eSortFolderName);
-
-    menuProjectWks->addSeparator();
-    actionAutoSave   = menuProjectWks->addAction(QIcon("://icons/32x32/AutoSave.png"), tr("Autom. Save"));
-    actionAutoSave->setCheckable(true);
-
-    menuProjectWks->addSeparator();
-    actionSave       = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGIS.png"    ), tr("Save"           ), this, SLOT(slotSaveProject()));
-    actionSaveAs     = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGISAs.png"  ), tr("Save as..."     ), this, SLOT(slotSaveAsProject()));
-    actionSaveAsStrict = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGISAsGpx11.png"), tr("Save as GPX 1.1 w/o ext..."), this, SLOT(slotSaveAsStrictGpx11Project()));
-
-    menuProjectWks->addSeparator();
-    actionSyncWksDev = menuProjectWks->addAction(QIcon("://icons/32x32/Device.png"     ), tr("Send to Devices"), this, SLOT(slotSyncWksDev()));
-    actionSyncDB     = menuProjectWks->addAction(QIcon("://icons/32x32/DatabaseSync.png"      ), tr("Sync. with Database"), this, SLOT(slotSyncDB()));
-
-    menuProjectWks->addSeparator();
-    actionCloseProj = menuProjectWks->addAction(QIcon("://icons/32x32/Close.png"       ), tr("Close"          ), this, SLOT(slotCloseProject()));
-
-    menuProjectDev  = new QMenu(this);
-    menuProjectDev->addAction(actionEditPrj);
-    menuProjectDev->addAction(actionCopyPrj);
-    menuProjectDev->addAction(actionShowOnMap);
-    menuProjectDev->addAction(actionHideFrMap);
-    menuProjectDev->addSeparator();
-    menuProjectDev->addSeparator();
-    actionSyncDevWks= menuProjectDev->addAction(QIcon("://icons/32x32/Device.png"),tr("Update Project on Device"), this, SLOT(slotSyncDevWks()));
-    menuProjectDev->addSeparator();
-    actionDelProj   = menuProjectDev->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"),                this, SLOT(slotDeleteProject()));
-
-    menuProjectTrash= new QMenu(this);
-    menuProjectTrash->addAction(actionSaveAs);
-    menuProjectTrash->addAction(actionSaveAsStrict);
-    menuProjectTrash->addAction(actionCloseProj);
-
-    connect(this, &CGisListWks::customContextMenuRequested, this, &CGisListWks::slotContextMenu);
-    connect(this, &CGisListWks::itemDoubleClicked,          this, &CGisListWks::slotItemDoubleClicked);
-    connect(this, &CGisListWks::itemChanged,                this, &CGisListWks::slotItemChanged);
-
-    menuItemTrk      = new QMenu(this);
-    actionEditDetails = menuItemTrk->addAction(QIcon("://icons/32x32/EditDetails.png"),tr("Edit..."), this, SLOT(slotEditItem()));
-    actionCopyItem    = menuItemTrk->addAction(QIcon("://icons/32x32/Copy.png"),tr("Copy to..."),     this, SLOT(slotCopyItem()));
-    menuItemTrk->addSeparator();
-    actionFocusTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/TrkProfile.png"),tr("Track Profile"));
-    actionFocusTrk->setCheckable(true);
-    actionRangeTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/SelectRange.png"), tr("Select Range"           ), this, SLOT(slotRangeTrk()));
-    actionEditTrk    = menuItemTrk->addAction(QIcon("://icons/32x32/LineMove.png"),    tr("Edit Track Points"      ), this, SLOT(slotEditTrk()));
-    actionReverseTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Reverse.png"),     tr("Reverse Track"          ), this, SLOT(slotReverseTrk()));
-    actionCombineTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Combine.png"),     tr("Combine Tracks"         ), this, SLOT(slotCombineTrk()));
-    actionActivityTrk= menuItemTrk->addAction(QIcon("://icons/32x32/Activity.png"), tr("Set Track Activity"), this, SLOT(slotActivityTrk()));
-    actionCopyTrkWithWpt = menuItemTrk->addAction(QIcon("://icons/32x32/CopyTrkWithWpt.png"), tr("Copy Track with Waypoints"), this, SLOT(slotCopyTrkWithWpt()));
-    menuItemTrk->addSeparator();
-    actionDelete    = menuItemTrk->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"), this, SLOT(slotDeleteItem()));
-    connect(menuItemTrk, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
-
-    menuItemWpt     = new QMenu(this);
-    menuItemWpt->addAction(actionEditDetails);
-    menuItemWpt->addAction(actionCopyItem);
-    menuItemWpt->addSeparator();
-    actionBubbleWpt = menuItemWpt->addAction(QIcon("://icons/32x32/Bubble.png"),  tr("Show Bubble"),       this, SLOT(slotBubbleWpt()));
-    actionBubbleWpt->setCheckable(true);
-    actionMoveWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptMove.png"), tr("Move Waypoint"),     this, SLOT(slotMoveWpt()));
-    actionProjWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptProj.png"), tr("Proj. Waypoint..."), this, SLOT(slotProjWpt()));
-    actionEditRadiusWpt = menuItemWpt->addAction(QIcon("://icons/32x32/WptEditProx.png"), tr("Change Radius"), this, SLOT(slotEditRadiusWpt()));
-    actionNogoAreaWpt = menuItemWpt->addAction(QIcon("://icons/32x32/WptAvoid.png"), tr("Toggle Nogo-Area"), this, SLOT(slotNogoAreaWpt()));
-    actionNogoAreaWpt->setCheckable(true);
-    actionDelRadiusWpt = menuItemWpt->addAction(QIcon("://icons/32x32/WptDelProx.png"), tr("Delete Radius"), this, SLOT(slotDelRadiusWpt()));
-    menuItemWpt->addSeparator();
-    menuItemWpt->addAction(actionDelete);
-    connect(menuItemWpt, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
-
-    menuItemRte     = new QMenu(this);
-    menuItemRte->addAction(actionEditDetails);
-    menuItemRte->addAction(actionCopyItem);
-    menuItemRte->addSeparator();
-    actionFocusRte  = menuItemRte->addAction(QIcon("://icons/32x32/RteInstr.png"), tr("Route Instructions"));
-    actionFocusRte->setCheckable(true);
-    actionCalcRte   = menuItemRte->addAction(QIcon("://icons/32x32/Apply.png"),    tr("Calculate Route"), this, SLOT(slotCalcRte()));
-    actionResetRte  = menuItemRte->addAction(QIcon("://icons/32x32/Reset.png"),    tr("Reset Route"),     this, SLOT(slotResetRte()));
-    actionEditRte   = menuItemRte->addAction(QIcon("://icons/32x32/LineMove.png"), tr("Edit Route"),      this, SLOT(slotEditRte()));
-    actionRte2Trk   = menuItemRte->addAction(QIcon("://icons/32x32/Track.png"),    tr("Convert to Track"),this, SLOT(slotRte2Trk()));
-    menuItemRte->addSeparator();
-    menuItemRte->addAction(actionDelete);
-    connect(menuItemRte, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
-
-
-    menuItemOvl     = new QMenu(this);
-    menuItemOvl->addAction(actionEditDetails);
-    menuItemOvl->addAction(actionCopyItem);
-    menuItemOvl->addSeparator();
-    actionEditArea  = menuItemOvl->addAction(QIcon("://icons/32x32/AreaMove.png"),tr("Edit Area Points"), this, SLOT(slotEditArea()));
-    menuItemOvl->addSeparator();
-    menuItemOvl->addAction(actionDelete);
-    connect(menuItemOvl, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
-
-
-    menuItem        = new QMenu(this);
-    menuItem->addAction(actionCopyItem);
-    actionRteFromWpt = menuItem->addAction(QIcon("://icons/32x32/Route.png"), tr("Create Route"), this, SLOT(slotRteFromWpt()));
-    actionSymWpt    = menuItem->addAction(QIcon("://icons/waypoints/32x32/PinBlue.png"), tr("Change Icon (sel. waypt. only)"), this, SLOT(slotSymWpt()));
-    menuItem->addAction(actionCombineTrk);
-    menuItem->addAction(actionActivityTrk);
-    menuItem->addAction(actionDelete);
-    connect(menuItem, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
-
-    connect(actionFocusTrk, &QAction::triggered, this, &CGisListWks::slotFocusTrk);
-    connect(actionFocusRte, &QAction::triggered, this, &CGisListWks::slotFocusRte);
-    connect(actionAutoSave, &QAction::triggered, this, &CGisListWks::slotAutoSaveProject);
-    connect(qApp, &QApplication::aboutToQuit, this, &CGisListWks::slotSaveWorkspace);
-
-    SETTINGS;
-    saveOnExit  = cfg.value("Database/saveOnExit", saveOnExit).toBool();
-    saveEvery   = cfg.value("Database/saveEvery",  saveEvery).toInt();
-
-    if(saveOnExit && (saveEvery > 0))
-    {
-        QTimer::singleShot(saveEvery * 60000, this, SLOT(slotSaveWorkspace()));
-    }
-
-#ifdef Q_OS_MAC
-    deviceWatcher = new CDeviceWatcherMac(this);
-    connect(deviceWatcher, &CDeviceWatcherMac::sigChanged, this, &CGisListWks::sigChanged);
-#else
-    #ifdef Q_OS_WIN
-    deviceWatcher = new CDeviceWatcherWindows(this);
-    connect(deviceWatcher, &CDeviceWatcherWindows::sigChanged, this, &CGisListWks::sigChanged);
-    #else
-        #ifdef HAVE_DBUS
-    deviceWatcher = new CDeviceWatcherLinux(this);
-    connect(deviceWatcher, &CDeviceWatcherLinux::sigChanged, this, &CGisListWks::sigChanged);
-        #endif // HAVE_DBUS
-    #endif // Q_OS_WIN
-#endif // Q_OS_MAC
-}
-
-CGisListWks::~CGisListWks()
-{
-}
-
-void CGisListWks::configDB()
-{
-    QSqlQuery query(db);
-
-    QUERY_RUN("PRAGMA locking_mode=EXCLUSIVE", return )
-    QUERY_RUN("PRAGMA synchronous=OFF",        return )
-    QUERY_RUN("PRAGMA temp_store=MEMORY",      return )
-    QUERY_RUN("PRAGMA default_cache_size=50",  return )
-    QUERY_RUN("PRAGMA page_size=8192",         return )
-
-    // When migrating the database these tables are used.
-    // Due to caching they can't be dropped right after the
-    // migration. That is why we look for them on startup.
-    // And delete them as a second chance.
-    if(query.exec("select * from tmp_workspace"))
-    {
-        QUERY_RUN("DROP TABLE tmp_workspace;", return );
-    }
-
-
-    if(!query.exec("SELECT version FROM versioninfo"))
-    {
-        initDB();
-    }
-    else if(query.next())
-    {
-        int version = query.value(0).toInt();
-        if(version != DB_VERSION)
-        {
-            migrateDB(version);
-        }
-    }
-    else
-    {
-        initDB();
-    }
-}
-
-void CGisListWks::initDB()
-{
-    QSqlQuery query(db);
-
-    if(query.exec( "CREATE TABLE versioninfo ( version TEXT )"))
-    {
-        query.prepare( "INSERT INTO versioninfo (version) VALUES(:version)");
-        query.bindValue(":version", DB_VERSION);
-        QUERY_EXEC();
-    }
-
-    QUERY_RUN("CREATE TABLE workspace ("
-              "id             INTEGER PRIMARY KEY AUTOINCREMENT,"
-              "type           INTEGER NOT NULL,"
-              "name           TEXT NOT NULL,"
-              "keyqms         TEXT NOT NULL,"
-              "changed        BOOLEAN DEFAULT FALSE,"
-              "visible        BOOLEAN DEFAULT TRUE,"
-              "data           BLOB NOT NULL"
-              ")", NO_CMD)
-}
-
-void CGisListWks::migrateDB(int version)
-{
-    qDebug() << "workspace.db has version " << version << ", migration to version " << DB_VERSION << " required";
-
-    // try to migrate between the database versions step by step (as soon as applicable)
-    if(version < 2)
-    {
-        migrateDB1to2();
-    }
-    if(version < 3)
-    {
-        migrateDB2to3();
-    }
-
-    // save the new version to the database
-    QSqlQuery query(db);
-    query.prepare( "UPDATE versioninfo set version=:version");
-    query.bindValue(":version", DB_VERSION);
-    QUERY_EXEC();
-}
-
-void CGisListWks::migrateDB1to2()
-{
-    qDebug() << "migrating workspace.db from version 1 to version 2";
-    // add a new column `visible` to the database
-    // the default value is `true`, as - by default in older versions of QMS - all saved projects
-    // have been loaded and shown on the map directly after starting
-    QSqlQuery query(db);
-    QUERY_RUN("ALTER TABLE workspace ADD COLUMN visible BOOLEAN DEFAULT TRUE;", NO_CMD)
-}
-
-void CGisListWks::migrateDB2to3()
-{
-    QSqlQuery query(db);
-
-    QUERY_RUN("BEGIN TRANSACTION;",                             return )
-    QUERY_RUN("ALTER TABLE workspace RENAME TO tmp_workspace;", return )
-    QUERY_RUN("CREATE TABLE workspace ("
-              "id             INTEGER PRIMARY KEY AUTOINCREMENT,"
-              "type           INTEGER NOT NULL,"
-              "name           TEXT NOT NULL,"
-              "keyqms         TEXT NOT NULL,"
-              "changed        BOOLEAN DEFAULT FALSE,"
-              "visible        BOOLEAN DEFAULT TRUE,"
-              "data           BLOB NOT NULL"
-              ")", return );
-    QUERY_RUN("INSERT INTO workspace(id,type,name,keyqms,changed,visible,data) SELECT * FROM tmp_workspace;", return )
-    QUERY_RUN("COMMIT;",                                                                                      return )
-    QUERY_RUN("DROP TABLE tmp_workspace;",                                                                    return )
-}
-
-void CGisListWks::setExternalMenu(QMenu * project)
-{
-    menuNone = project;
-    connect(CMainWindow::self().findChild<QAction*>("actionAddEmptyProject"),  &QAction::triggered, this, &CGisListWks::slotAddEmptyProject);
-    connect(CMainWindow::self().findChild<QAction*>("actionCloseAllProjects"), &QAction::triggered, this, &CGisListWks::slotCloseAllProjects);
-    connect(CMainWindow::self().findChild<QAction*>("actionSearchGoogle"),     &QAction::triggered, this, &CGisListWks::slotSearchGoogle);
-}
-
-QAction * CGisListWks::addSortAction(QMenu * menu, QActionGroup * actionGroup, const QString& icon, const QString& text, IGisProject::sorting_folder_e mode)
-{
-    QAction * action = menu->addAction(QIcon(icon), text);
-    action->setCheckable(true);
-
-    auto func = std::bind(&CGisListWks::slotSetSortMode, this, mode, std::placeholders::_1);
-    connect(action, &QAction::toggled, this, func);
-
-    actionGroup->addAction(action);
-
-    return action;
-}
-
-void CGisListWks::dragMoveEvent(QDragMoveEvent  * e )
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QTreeWidgetItem * item1 = currentItem();
-    QTreeWidgetItem * item2 = itemAt(e->pos());
-
-    // changing the item order is only valid for single selected items
-    if(selectedItems().count() == 1)
-    {
-        /*
-            What's happening here?
-
-            1) Cast current item and item under cursor to GIS item type
-            2) If type matches for both test for common parent
-            2.1) common parent->  move
-            2.1) different parent -> copy
-            3) go on with dragMoveEvent();
-
-         */
-        CGisItemTrk * trk1 = dynamic_cast<CGisItemTrk*>(item1);
-        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(item2);
-
-        if(trk1 && trk2)
-        {
-            e->setDropAction( trk1->parent() == trk2->parent() ? Qt::MoveAction : Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-
-        CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(item1);
-        CGisItemWpt * wpt2 = dynamic_cast<CGisItemWpt*>(item2);
-
-        if(wpt1 && wpt2)
-        {
-            e->setDropAction( wpt1->parent() == wpt2->parent() ? Qt::MoveAction : Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-
-        CGisItemRte * rte1 = dynamic_cast<CGisItemRte*>(item1);
-        CGisItemRte * rte2 = dynamic_cast<CGisItemRte*>(item2);
-
-        if(rte1 && rte2)
-        {
-            e->setDropAction( rte1->parent() == rte2->parent() ? Qt::MoveAction : Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-
-        CGisItemOvlArea * area1 = dynamic_cast<CGisItemOvlArea*>(item1);
-        CGisItemOvlArea * area2 = dynamic_cast<CGisItemOvlArea*>(item2);
-
-        if(area1 && area2)
-        {
-            e->setDropAction( area1->parent() == area2->parent() ? Qt::MoveAction : Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-
-        /*
-            Never move/copy projects on devices. Data has to be removed or changed
-            to store a project and it's items on a device. Moving it back to the
-            workspace would conflict with the original project. To much hassle to
-            resolve this properly.
-         */
-        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
-        if(proj1 && proj1->isOnDevice())
-        {
-            e->setDropAction(Qt::IgnoreAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-    }
-
-    /*
-        Test for other project, to change project order. But if other project
-        is on a device block the request. A project has to be copied to the
-        device via it's device item.
-     */
-    IGisProject * proj2 = dynamic_cast<IGisProject*>(item2);
-    if(proj2)
-    {
-        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
-        if(proj1)
-        {
-            e->setDropAction(proj2->isOnDevice() ? Qt::IgnoreAction : Qt::MoveAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-
-        IGisItem * gisItem1 = dynamic_cast<IGisItem*>(item1);
-        if(gisItem1)
-        {
-            e->setDropAction(Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-    }
-
-    /*
-        Test for device as drop target. A device will copy the project into
-        it's own supported format.
-     */
-    IDevice * device = dynamic_cast<IDevice*>(item2);
-    if(device)
-    {
-        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
-        if(proj1 && !proj1->isOnDevice())
-        {
-            e->setDropAction(Qt::CopyAction);
-            QTreeWidget::dragMoveEvent(e);
-            return;
-        }
-    }
-
-    e->setDropAction(Qt::IgnoreAction);
-    QTreeWidget::dragMoveEvent(e);
-}
-
-void CGisListWks::dropEvent( QDropEvent  * e )
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items   = selectedItems();
-    if(items.isEmpty())
-    {
-        return;
-    }
-
-    int lastResult = CSelectCopyAction::eResultNone;
-
-    // go on with item insertion
-    /*
-        What's happening here?
-
-        for single selected items do:
-        1) Test if item will be inserted above ore below item under cursor.
-        2) Cast current item and item under cursor to GIS item type
-        3) If type matches for both test for common parent
-        3.1) common parent-> go on with default drop event
-        3.1) different parent -> create a copy and insert it index
-        4) signal change of project
-
-        for single and multiple selected items, do:
-        5) Test if item under cursor is a project
-        6) If project and project is not item's project create a copy
-
-     */
-    if(items.size() == 1)
-    {
-        // calc. index offset (below/above item)
-        QRect r = visualItemRect(itemAt(e->pos()));
-        int y1 = r.top() + r.height()/2;
-        int y2 = e->pos().y();
-        int off = y2 > y1 ? 1 : 0;
-
-        IGisProject * prj1 = dynamic_cast<IGisProject*>(currentItem());
-        IGisProject * prj2 = dynamic_cast<IGisProject*>(itemAt(e->pos()));
-        if(prj1 && prj2)
-        {
-            prj2->setFlags(prj2->flags() & ~Qt::ItemIsDropEnabled);
-            QTreeWidget::dropEvent(e);
-            prj2->setFlags(prj2->flags() |  Qt::ItemIsDropEnabled);
-            emit sigChanged();
-            return;
-        }
-
-        CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(currentItem());
-        CGisItemWpt * wpt2 = dynamic_cast<CGisItemWpt*>(itemAt(e->pos()));
-
-        if(wpt1 && wpt2)
-        {
-            if(wpt1->parent() == wpt2->parent())
-            {
-                QTreeWidget::dropEvent(e);
-            }
-            else
-            {
-                IGisProject * project = dynamic_cast<IGisProject*>(wpt2->parent());
-                if(project)
-                {
-                    project->insertCopyOfItem(wpt1, off, lastResult);
-                }
-            }
-            emit sigChanged();
-            return;
-        }
-
-        CGisItemTrk * trk1 = dynamic_cast<CGisItemTrk*>(currentItem());
-        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(itemAt(e->pos()));
-
-        if(trk1 && trk2)
-        {
-            if(trk1->parent() == trk2->parent())
-            {
-                QTreeWidget::dropEvent(e);
-            }
-            else
-            {
-                IGisProject * project = dynamic_cast<IGisProject*>(trk2->parent());
-                if(project)
-                {
-                    project->insertCopyOfItem(trk1, off, lastResult);
-                }
-            }
-            emit sigChanged();
-            return;
-        }
-
-        CGisItemRte * rte1 = dynamic_cast<CGisItemRte*>(currentItem());
-        CGisItemRte * rte2 = dynamic_cast<CGisItemRte*>(itemAt(e->pos()));
-
-        if(rte1 && rte2)
-        {
-            if(rte1->parent() == rte2->parent())
-            {
-                QTreeWidget::dropEvent(e);
-            }
-            else
-            {
-                IGisProject * project = dynamic_cast<IGisProject*>(rte2->parent());
-                if(project)
-                {
-                    project->insertCopyOfItem(rte1, off, lastResult);
-                }
-            }
-            emit sigChanged();
-            return;
-        }
-
-        CGisItemOvlArea * area1 = dynamic_cast<CGisItemOvlArea*>(currentItem());
-        CGisItemOvlArea * area2 = dynamic_cast<CGisItemOvlArea*>(itemAt(e->pos()));
-
-        if(area1 && area2)
-        {
-            if(area1->parent() == area2->parent())
-            {
-                QTreeWidget::dropEvent(e);
-            }
-            else
-            {
-                IGisProject * project = dynamic_cast<IGisProject*>(area2->parent());
-                if(project)
-                {
-                    project->insertCopyOfItem(area1, off, lastResult);
-                }
-            }
-            emit sigChanged();
-            return;
-        }
-    }
-
-    // check if item at position is a project and insert a copy of all selected items
-    IGisProject * project = dynamic_cast<IGisProject*>(itemAt(e->pos()));
-    if(project)
-    {
-        project->blockUpdateItems(true);
-
-        int cnt = 1;
-        int N   = items.size();
-        PROGRESS_SETUP(tr("Drop items..."), 0, N, this);
-
-        for(QTreeWidgetItem * item : items)
-        {
-            PROGRESS(cnt++, break);
-
-            IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
-            if(gisItem)
-            {
-                project->insertCopyOfItem(gisItem, NOIDX, lastResult);
-            }
-        }
-
-        project->blockUpdateItems(false);
-    }
-
-    IDevice * device = dynamic_cast<IDevice*>(itemAt(e->pos()));
-    if(device)
-    {
-        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", "");
-            }
-        }
-    }
-
-    emit sigChanged();
-}
-
-void CGisListWks::addProject(IGisProject *proj)
-{
-    if(!proj->isValid())
-    {
-        return;
-    }
-
-    addTopLevelItem(proj);
-
-    // move project up the list until there a re only projects, no devices
-    int newIdx      = NOIDX;
-    const int myIdx = topLevelItemCount() - 1;
-    for(int i = myIdx - 1; i >= 0; i--)
-    {
-        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(i));
-        if(nullptr == device)
-        {
-            break;
-        }
-
-        newIdx = i;
-    }
-
-    if(newIdx != NOIDX)
-    {
-        takeTopLevelItem(myIdx);
-        insertTopLevelItem(newIdx, proj);
-    }
-}
-
-void CGisListWks::removeDevice(const QString& key)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    for(int i = 0; i < topLevelItemCount(); i++)
-    {
-        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(i));
-        if(device && device->getKey() == key)
-        {
-            delete device;
-            emit sigChanged();
-            return;
-        }
-    }
-}
-
-bool CGisListWks::hasProject(IGisProject * project)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QString key = project->getKey();
-
-    for(int i = 0; i < topLevelItemCount(); i++)
-    {
-        IGisProject * item = dynamic_cast<IGisProject*>(topLevelItem(i));
-        if(item && item->getKey() == key && item != project)
-        {
-            return true;
-        }
-    }
-    return false;
-}
-
-IGisProject * CGisListWks::getProjectByKey(const QString& key)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    for(int i = 0; i < topLevelItemCount(); i++)
-    {
-        IGisProject * item = dynamic_cast<IGisProject*>(topLevelItem(i));
-        if(item && item->getKey() == key)
-        {
-            return item;
-        }
-    }
-    return nullptr;
-}
-
-CDBProject * CGisListWks::getProjectById(quint64 id, const QString& db)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    for(int i = 0; i < topLevelItemCount(); i++)
-    {
-        CDBProject * item = dynamic_cast<CDBProject*>(topLevelItem(i));
-        if(item && item->getId() == id && item->getDBName() == db)
-        {
-            return item;
-        }
-    }
-    return nullptr;
-}
-
-void CGisListWks::slotSaveWorkspace()
-{
-    CGisListWksEditLock lock(true,IGisItem::mutexItems);
-
-    if(!saveOnExit)
-    {
-        return;
-    }
-
-    QSqlQuery query(db);
-    QUERY_RUN("DELETE FROM workspace", return )
-
-    qDebug() << "slotSaveWorkspace()";
-
-    const int total = topLevelItemCount();
-    PROGRESS_SETUP(tr("Saving workspace. Please wait."), 0, total, this);
-
-    for(int i = 0; i < total; i++)
-    {
-        PROGRESS(i, return );
-
-        IGisProject * project = dynamic_cast<IGisProject*>(topLevelItem(i));
-        if(nullptr == project)
-        {
-            continue;
-        }
-
-        QByteArray data;
-        QDataStream stream(&data, QIODevice::WriteOnly);
-        stream.setVersion(QDataStream::Qt_5_2);
-        stream.setByteOrder(QDataStream::LittleEndian);
-
-        project->IGisProject::operator>>(stream);
-
-        query.prepare("INSERT INTO workspace (type, keyqms, name, changed, visible, data) VALUES (:type, :keyqms, :name, :changed, :visible, :data)");
-        query.bindValue(":type",    project->getType());
-        query.bindValue(":keyqms",  project->getKey());
-        query.bindValue(":name",    project->getName());
-        query.bindValue(":changed", project->isChanged());
-
-        bool visible = (project->checkState(CGisListDB::eColumnCheckbox) == Qt::Checked);
-        query.bindValue(":visible", visible);
-        query.bindValue(":data",    data);
-        QUERY_EXEC(continue);
-    }
-
-    if(saveEvery)
-    {
-        QTimer::singleShot(saveEvery * 60000, this, SLOT(slotSaveWorkspace()));
-    }
-}
-
-void CGisListWks::slotLoadWorkspace()
-{
-    CGisListWksEditLock lock(true,IGisItem::mutexItems);
-
-    QSqlQuery query(db);
-
-    QUERY_RUN("SELECT type, keyqms, name, changed, visible, data FROM workspace", return )
-
-    const int total = query.size();
-    PROGRESS_SETUP(tr("Loading workspace. Please wait."), 0, total, this);
-    quint32 progCnt = 0;
-
-    while(query.next())
-    {
-        PROGRESS(progCnt++, return );
-
-        int type               = query.value(0).toInt();
-        QString name           = query.value(2).toString();
-        bool changed           = query.value(3).toBool();
-        Qt::CheckState visible = query.value(4).toBool() ? Qt::Checked : Qt::Unchecked;
-        QByteArray data        = query.value(5).toByteArray();
-
-        QDataStream stream(&data, QIODevice::ReadOnly);
-        stream.setVersion(QDataStream::Qt_5_2);
-        stream.setByteOrder(QDataStream::LittleEndian);
-
-        IGisProject *project = nullptr;
-        switch(type)
-        {
-        case IGisProject::eTypeQms:
-        {
-            project = new CQmsProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1a)
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeQlb:
-        {
-            project = new CQlbProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1a)
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeGpx:
-        {
-            project = new CGpxProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1b)
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeDb:
-        {
-            CDBProject * dbProject;
-            project = dbProject = new CDBProject(this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1c)
-
-            project->IGisProject::operator<<(stream);
-            dbProject->restoreDBLink();
-
-            if(!project->isValid())
-            {
-                delete project;
-                project = nullptr;
-            }
-            else
-            {
-                dbProject->postStatus(false);
-            }
-            break;
-        }
-
-        case IGisProject::eTypeSlf:
-        {
-            project = new CSlfProject(name, false);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1d)
-            *project << stream;
-
-            // the CSlfProject does not - as the other C*Project - register itself in the list
-            // of currently opened projects. This is done manually here.
-            addProject(project);
-            break;
-        }
-
-        case IGisProject::eTypeFit:
-        {
-            project = new CFitProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeTcx:
-        {
-            project = new CTcxProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeSml:
-        {
-            project = new CSmlProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
-            *project << stream;
-            break;
-        }
-
-        case IGisProject::eTypeLog:
-        {
-            project = new CSmlProject(name, this);
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
-            *project << stream;
-            break;
-        }
-        }
-
-        if(nullptr != project)
-        {
-            // Hiding the individual projects from the map (1a, 1b, 1c) could be done here within a single statement,
-            // but this results in a visible `the checkbox is being unchecked`, especially in case the project
-            // is large and takes some time to load.
-            // When done directly after construction there is no `blinking` of the check mark
-
-            project->setToolTip(eColumnName,project->getInfo());
-            if(changed)
-            {
-                project->setChanged();
-            }
-        }
-    }
-
-    emit sigChanged();
-}
-
-void CGisListWks::slotContextMenu(const QPoint& point)
-{
-    QPoint p = mapToGlobal(point);
-    if(selectedItems().isEmpty() && menuNone)
-    {
-        menuNone->exec(p);
-        return;
-    }
-
-    // check whether all projects are checked or unchecked...
-    bool allChecked   = true;
-    bool allUnchecked = true;
-    bool allCantSave  = true;
-
-    for(QTreeWidgetItem *item : selectedItems())
-    {
-        IGisProject *project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            // as soon as we find an unchecked element, not all elements are checked (and vice versa)
-            if(project->checkState(CGisListDB::eColumnCheckbox) == Qt::Unchecked)
-            {
-                allChecked = false;
-            }
-            else
-            {
-                allUnchecked = false;
-            }
-
-            if(project->canSave())
-            {
-                allCantSave = false;
-            }
-        }
-    }
-
-    // ...and disable entries without any effect
-    actionShowOnMap->setEnabled(!allChecked);
-    actionHideFrMap->setEnabled(!allUnchecked);
-    actionSave->setEnabled(!allCantSave);
-
-    if(selectedItems().count() > 1)
-    {
-        IGisProject *project = dynamic_cast<IGisProject*>(currentItem());
-        if(nullptr != project)
-        {
-            if(project->isOnDevice())
-            {
-                menuProjectDev->exec(p);
-            }
-            else
-            {
-                actionGroup->setEnabled(false);
-                actionSyncWksDev->setEnabled(IDevice::count());
-                actionSyncDB->setEnabled(project->getType() == IGisProject::eTypeDb);
-                actionAutoSave->setVisible(false);
-                menuProjectWks->exec(p);
-            }
-            return;
-        }
-
-        IGisItem *gisItem = dynamic_cast<IGisItem*>(currentItem());
-        if(nullptr != gisItem)
-        {
-            bool hasWpts  = false;
-            bool onlyWpts = true;
-            bool onlyTrks = true;
-            for(QTreeWidgetItem *item : selectedItems())
-            {
-                if(item->type() != IGisItem::eTypeWpt)
-                {
-                    onlyWpts = false;
-                }
-                else
-                {
-                    hasWpts = true;
-                }
-
-                if(item->type() != IGisItem::eTypeTrk)
-                {
-                    onlyTrks = false;
-                }
-
-                if(!onlyTrks && !onlyWpts)
-                {
-                    break;
-                }
-            }
-
-            actionRteFromWpt->setEnabled(onlyWpts);
-            actionCombineTrk->setEnabled(onlyTrks);
-            actionActivityTrk->setEnabled(onlyTrks);
-            actionSymWpt->setEnabled(hasWpts);
-
-            menuItem->exec(p);
-            return;
-        }
-        return;
-    }
-
-    if(selectedItems().count() == 1)
-    {
-        IGisProject *project = dynamic_cast<IGisProject*>(currentItem());
-        if(nullptr != project)
-        {
-            if(project->getType() == IGisProject::eTypeLostFound)
-            {
-                menuProjectTrash->exec(p);
-            }
-            else
-            {
-                if(project->isOnDevice())
-                {
-                    menuProjectDev->exec(p);
-                }
-                else
-                {
-                    actionGroup->setEnabled(true);
-                    actionSyncWksDev->setEnabled(IDevice::count());
-                    actionSyncDB->setEnabled(project->getType() == IGisProject::eTypeDb);
-
-                    blockSorting = true;
-                    switch(project->getSortingFolder())
-                    {
-                    case IGisProject::eSortFolderName:
-                        actionSortByName->setChecked(true);
-                        break;
-
-                    case IGisProject::eSortFolderTime:
-                        actionSortByTime->setChecked(true);
-                        break;
-                    }
-
-                    blockSorting = false;
-
-                    actionAutoSave->setVisible(true);
-                    actionAutoSave->setEnabled(project->canSave());
-                    actionAutoSave->setChecked(project->isAutoSave());
-
-                    menuProjectWks->exec(p);
-                }
-            }
-            return;
-        }
-
-        IGisItem *gisItem = dynamic_cast<IGisItem*>(currentItem());
-        if(nullptr != gisItem)
-        {
-            bool isOnDevice = gisItem->isOnDevice();
-
-            switch(gisItem->type())
-            {
-            case IGisItem::eTypeTrk:
-            {
-                CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gisItem);
-                IGisProject * project = gisItem->getParentProject();
-                if(project != nullptr)
-                {
-                    actionCombineTrk->setEnabled(project->getItemCountByType(IGisItem::eTypeTrk) > 1);
-                }
-                else
-                {
-                    actionCombineTrk->setEnabled(false);
-                }
-                actionRangeTrk->setDisabled(isOnDevice);
-                actionReverseTrk->setDisabled(isOnDevice);
-                actionEditTrk->setDisabled(isOnDevice);
-                actionCopyTrkWithWpt->setEnabled(trk->getNumberOfAttachedWpt() != 0);
-                actionFocusTrk->setChecked(gisItem->hasUserFocus());
-                menuItemTrk->exec(p);
-                break;
-            }
-
-            case IGisItem::eTypeWpt:
-            {
-                CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(gisItem);
-                actionBubbleWpt->setChecked(wpt->hasBubble());
-                bool radius = wpt->hasRadius();
-                actionDelRadiusWpt->setEnabled(radius);
-                actionNogoAreaWpt->setEnabled(radius);
-                actionNogoAreaWpt->setChecked(radius && wpt->isNogoArea());
-                actionMoveWpt->setDisabled(isOnDevice);
-                actionProjWpt->setDisabled(isOnDevice);
-                menuItemWpt->exec(p);
-                break;
-            }
-
-            case IGisItem::eTypeRte:
-                actionFocusRte->setChecked(gisItem->hasUserFocus());
-                menuItemRte->exec(p);
-                break;
-
-            case IGisItem::eTypeOvl:
-                actionEditArea->setDisabled(isOnDevice);
-                menuItemOvl->exec(p);
-                break;
-            }
-
-            return;
-        }
-    }
-}
-
-void CGisListWks::setVisibilityOnMap(bool visible)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem *item : items)
-    {
-        IGisProject *project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->setCheckState(CGisListDB::eColumnCheckbox, visible ? Qt::Checked : Qt::Unchecked);
-        }
-    }
-    emit sigChanged();
-}
-
-void CGisListWks::slotShowOnMap()
-{
-    setVisibilityOnMap(true);
-}
-
-void CGisListWks::slotHideFrMap()
-{
-    setVisibilityOnMap(false);
-}
-
-static void closeProjects(const QList<QTreeWidgetItem*> &items)
-{
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisProject *project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            if(project->askBeforClose())
-            {
-                break;
-            }
-
-            if(IGisProject::eTypeGoogle == project->getType())
-            {
-                CMainWindow::self().findChild<QAction*>("actionSearchGoogle")->setChecked(false);
-            }
-            delete project;
-        }
-    }
-}
-
-void CGisListWks::slotCloseProject()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    closeProjects(selectedItems());
-    emit sigChanged();
-}
-
-void CGisListWks::slotCloseAllProjects()
-{
-    int res = QMessageBox::question(this, tr("Close all projects..."), tr("This will remove all projects from the workspace."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
-    if(res != QMessageBox::Ok)
-    {
-        return;
-    }
-
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-    closeProjects(findItems("*", Qt::MatchWildcard));
-
-    CGisWorkspace::self().slotWksItemSelectionReset();
-
-    emit sigChanged();
-}
-
-
-void CGisListWks::slotDeleteProject()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            CCanvas::setOverrideCursor(Qt::ArrowCursor, "slotDeleteProject");
-            int res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete project..."), tr("Do you really want to delete %1?").arg(project->getFilename()), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok);
-            CCanvas::restoreOverrideCursor("slotDeleteProject");
-            if(res != QMessageBox::Ok)
-            {
-                continue;
-            }
-
-
-            if(project->remove())
-            {
-                delete project;
-            }
-        }
-    }
-    emit sigChanged();
-}
-
-void CGisListWks::slotSaveProject()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            if(project->canSave())
-            {
-                project->save();
-            }
-            else
-            {
-                project->saveAs();
-            }
-        }
-    }
-}
-
-void CGisListWks::slotSaveAsProject()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->saveAs();
-        }
-    }
-}
-
-void CGisListWks::slotSaveAsStrictGpx11Project()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->saveAsStrictGpx11();
-        }
-    }
-}
-
-void CGisListWks::slotAutoSaveProject(bool on)
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
-    if(project != nullptr)
-    {
-        project->setAutoSave(on);
-    }
-}
-
-void CGisListWks::slotEditPrj()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
-    if(project != nullptr)
-    {
-        project->edit();
-    }
-}
-
-void CGisListWks::slotItemDoubleClicked(QTreeWidgetItem * item, int )
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().slotWksItemSelectionReset();
-        CMainWindow::self().zoomCanvasTo(gisItem->getBoundingRect());
-        CGisWorkspace::self().focusTrkByKey(true, gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotItemChanged(QTreeWidgetItem * item, int column)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    if(column == eColumnCheckBox)
-    {
-        emit sigChanged();
-    }
-}
-
-void CGisListWks::slotEditItem()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().editItemByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotDeleteItem()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QList<QTreeWidgetItem*> items       = selectedItems();
-    QList<IGisItem::key_t>  keys;
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
-        if(gisItem != nullptr)
-        {
-            keys << gisItem->getKey();
-        }
-    }
-
-    CGisWorkspace::self().delItemsByKey(keys);
-}
-
-void CGisListWks::slotCopyItem()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    /*
-     * Item selection is reset when the target project is a new database
-     * project. Additionally the list of selected items pointers seems
-     * to get invalid, causing a segfault when used.
-     *
-     * As a fix the keys of the selected items are stored temporarily and
-     * later used to retrieve the item on the workspace via CGisWorkspace::getItemByKey()
-     * again. This is always safe.
-     */
-    QList<QTreeWidgetItem*> items = selectedItems();
-    QList<IGisItem::key_t>  keys;
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
-        if(gisItem != nullptr)
-        {
-            keys << gisItem->getKey();
-        }
-    }
-
-    CGisWorkspace::self().copyItemsByKey(keys);
-}
-
-void CGisListWks::slotProjWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().projWptByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotBubbleWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().toggleWptBubble(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotNogoAreaWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().toggleWptNogoArea(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotDelRadiusWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().deleteWptRadius(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotEditRadiusWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().editWptRadius(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotMoveWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().moveWptByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotFocusTrk(bool on)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().focusTrkByKey(on, gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotEditTrk()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().editTrkByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotReverseTrk()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().reverseTrkByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotCombineTrk()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QList<IGisItem::key_t>  keys;
-    QList<QTreeWidgetItem*> items = selectedItems();
-    for(QTreeWidgetItem * item : items)
-    {
-        CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(item);
-        if(gisItem)
-        {
-            keys << gisItem->getKey();
-        }
-    }
-
-    if(!keys.isEmpty())
-    {
-        if(keys.size() == 1)
-        {
-            CGisWorkspace::self().combineTrkByKey(keys.first());
-        }
-        else
-        {
-            CGisWorkspace::self().combineTrkByKey(keys, keys);
-        }
-    }
-}
-
-void CGisListWks::slotActivityTrk()
-{
-    quint32 flags = CActivityTrk::selectActivity(this);
-    if(0xFFFFFFFF != flags)
-    {
-        CGisListWksEditLock lock(true, IGisItem::mutexItems);
-        QList<QTreeWidgetItem*> items = selectedItems();
-        for(QTreeWidgetItem * item : items)
-        {
-            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
-            if(trk)
-            {
-                trk->setActivity(flags);
-            }
-        }
-    }
-}
-
-void CGisListWks::slotRangeTrk()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().rangeTrkByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotCopyTrkWithWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().copyTrkWithWptByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotFocusRte(bool on)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().focusRteByKey(on, gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotCalcRte()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().calcRteByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotResetRte()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().resetRteByKey(gisItem->getKey());
-    }
-}
-
-
-void CGisListWks::slotEditRte()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().editRteByKey(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotRte2Trk()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().convertRouteToTrack(gisItem->getKey());
-    }
-}
-
-void CGisListWks::slotEditArea()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    CGisItemOvlArea * gisItem = dynamic_cast<CGisItemOvlArea*>(currentItem());
-    if(gisItem != nullptr)
-    {
-        CGisWorkspace::self().editAreaByKey(gisItem->getKey());
-    }
-}
-
-
-void CGisListWks::slotAddEmptyProject()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QString key, name;
-    IGisProject::type_e type;
-    CSelectProjectDialog dlg(key, name, type, nullptr);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return;
-    }
-    if(name.isEmpty() && (type != IGisProject::eTypeDb))
-    {
-        return;
-    }
-
-    if(type == IGisProject::eTypeGpx)
-    {
-        new CGpxProject(name, this);
-    }
-    else if(type == IGisProject::eTypeQms)
-    {
-        new CQmsProject(name, this);
-    }
-    else if(type == IGisProject::eTypeDb)
-    {
-        quint64 idParent;
-        QString db;
-        QString host;
-        IDBFolder::type_e type;
-
-        CSelectDBFolder dlg1(idParent, db, host, this);
-        if(dlg1.exec() == QDialog::Rejected)
-        {
-            return;
-        }
-
-        CSetupFolder dlg2(type, name, false, this);
-        if(dlg2.exec() == QDialog::Rejected)
-        {
-            return;
-        }
-
-        CEvtW2DCreate * evt = new CEvtW2DCreate(name, type, idParent, db, host);
-        CGisDatabase::self().postEventForDb(evt);
-    }
-}
-
-void CGisListWks::slotSearchGoogle(bool on)
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    delete searchGoogle;
-    if(on)
-    {
-        searchGoogle = new CSearchGoogle(this);
-    }
-
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CGisListWks::slotSyncWksDev()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    if(IDevice::count() == 0)
-    {
-        return;
-    }
-
-    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    const int N = topLevelItemCount();
-    QSet<QString> keys;
-    if(IDevice::count() > 1)
-    {
-        CSelDevices dlg(project, this);
-        if(dlg.exec() != QDialog::Accepted)
-        {
-            return;
-        }
-        dlg.getSlectedDevices(keys);
-    }
-    else
-    {
-        for(int n = 0; n < N; n++)
-        {
-            IDevice *device = dynamic_cast<IDevice*>(topLevelItem(n));
-            if(nullptr != device)
-            {
-                keys << device->getKey();
-                break;
-            }
-        }
-    }
-
-    CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
-    for(int n = 0; n < N; n++)
-    {
-        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(n));
-        if(nullptr == device || keys.isEmpty() || !keys.contains(device->getKey()))
-        {
-            continue;
-        }
-        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);
-        }
-
-        device->updateProject(project);
-    }
-    if(canvas)
-    {
-        canvas->reportStatus("device", "");
-    }
-    emit sigChanged();
-}
-
-void CGisListWks::slotSyncDevWks()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    IDevice * device = dynamic_cast<IDevice*>(project->parent());
-    if(nullptr == device)
-    {
-        return;
-    }
-
-    QString key = project->getKey();
-
-    project = getProjectByKey(key);
-    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);
-        }
-
-        device->updateProject(project);
-
-        if(canvas)
-        {
-            canvas->reportStatus("device", "");
-        }
-        emit sigChanged();
-    }
-}
-
-
-bool CGisListWks::event(QEvent * e)
-{
-    if(e->type() > QEvent::User)
-    {
-        const bool doWaitCursoer = (eEvtA2WCutTrk != event_types_e(e->type()));
-        CGisListWksEditLock lock(doWaitCursoer, IGisItem::mutexItems);
-
-        switch(e->type())
-        {
-        case eEvtD2WReqInfo:
-        {
-            CEvtD2WReqInfo * evt = (CEvtD2WReqInfo*)e;
-            CDBProject * project =  getProjectById(evt->id, evt->db);
-            if(nullptr != project)
-            {
-                project->postStatus(false);
-            }
-            e->accept();
-            emit sigChanged();
-            return true;
-        }
-
-        case eEvtD2WShowFolder:
-        {
-            CEvtD2WShowFolder * evt = (CEvtD2WShowFolder*)e;
-            CDBProject * project =  getProjectById(evt->id, evt->db);
-            if(nullptr == project)
-            {
-                if(evt->id == 0)
-                {
-                    project = new CLostFoundProject(evt->db, this);
-                }
-                else
-                {
-                    project = new CDBProject(evt->db, evt->id, this);
-                }
-                if(!project->isValid())
-                {
-                    delete project;
-                }
-            }
-            e->accept();
-            emit sigChanged();
-            return true;
-        }
-
-        case eEvtD2WHideFolder:
-        {
-            CEvtD2WHideFolder * evt = (CEvtD2WHideFolder*)e;
-            CDBProject * project =  getProjectById(evt->id, evt->db);
-            if(project && project->askBeforClose())
-            {
-                /*
-                    Tell the DB view that we aborted to hide the folder by posting it's
-                    current status.
-                 */
-                project->postStatus(false);
-                return false;
-            }
-            delete project;
-
-            e->accept();
-            emit sigChanged();
-            emit sigItemDeleted();
-            return true;
-        }
-
-        case eEvtD2WShowItems:
-        {
-            CEvtD2WShowItems * evt = (CEvtD2WShowItems*)e;
-            CDBProject * project =  getProjectById(evt->id, evt->db);
-            if(project)
-            {
-                project->showItems(evt);
-            }
-            e->accept();
-            emit sigChanged();
-            return true;
-        }
-
-        case eEvtD2WHideItems:
-        {
-            CEvtD2WHideItems * evt = (CEvtD2WHideItems*)e;
-            CDBProject * project =  getProjectById(evt->id, evt->db);
-            if(project)
-            {
-                project->hideItems(evt);
-            }
-            e->accept();
-            emit sigChanged();
-            emit sigItemDeleted();
-            return true;
-        }
-
-        case eEvtD2WUpdateLnF:
-        {
-            CEvtD2WUpdateLnF * evt = (CEvtD2WUpdateLnF*)e;
-            CLostFoundProject * project = dynamic_cast<CLostFoundProject*>(getProjectById(evt->id, evt->db));
-            if(project)
-            {
-                project->updateFromDb();
-            }
-            e->accept();
-            emit sigChanged();
-            return true;
-        }
-
-        case eEvtD2WUpdateItems:
-        {
-            CEvtD2WUpdateItems * evt = (CEvtD2WUpdateItems*)e;
-            IGisProject * project = dynamic_cast<IGisProject*>(getProjectById(evt->id, evt->db));
-            if(project)
-            {
-                project->blockUpdateItems(false);
-            }
-            e->accept();
-            emit sigChanged();
-            return true;
-        }
-
-        case eEvtD2WReload:
-        {
-            CEvtD2WReload * evt = (CEvtD2WReload*)e;
-            QList<CDBProject*> projects;
-
-            const int N = topLevelItemCount();
-            for(int i = 0; i < N; i++)
-            {
-                CDBProject * project = dynamic_cast<CDBProject*>(topLevelItem(i));
-
-                if(project && (project->getDBName() == evt->db))
-                {
-                    project->update();
-                    projects << project;
-                }
-            }
-
-            for(CDBProject * project : projects)
-            {
-                project->blockUpdateItems(false);
-            }
-            e->accept();
-            return true;
-        }
-
-        case eEvtA2WCutTrk:
-        {
-            CEvtA2WCutTrk * evt = (CEvtA2WCutTrk*)e;
-            CGisWorkspace::self().cutTrkByKey(evt->key);
-            e->accept();
-            return true;
-        }
-
-        case eEvtA2WSave:
-        {
-            CEvtA2WSave * evt = (CEvtA2WSave*)e;
-
-            IGisProject * project = getProjectByKey(evt->key);
-            if(project)
-            {
-                project->save();
-                project->confirmPendingAutoSave();
-            }
-            e->accept();
-            return true;
-        }
-        }
-    }
-    return QTreeWidget::event(e);
-}
-
-
-
-void CGisListWks::slotRteFromWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-
-    QList<IGisItem::key_t> keys;
-    for(QTreeWidgetItem * item : selectedItems())
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
-        if(nullptr != wpt)
-        {
-            keys << wpt->getKey();
-        }
-    }
-
-    if(!keys.isEmpty())
-    {
-        CGisWorkspace::self().makeRteFromWpt(keys);
-    }
-}
-
-void CGisListWks::slotSyncDB()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    for(QTreeWidgetItem * item : selectedItems())
-    {
-        CDBProject * project = dynamic_cast<CDBProject*>(item);
-        if(project == nullptr)
-        {
-            continue;
-        }
-
-        project->update();
-    }
-}
-
-void CGisListWks::slotSetSortMode(IGisProject::sorting_folder_e mode, bool checked)
-{
-    if(!checked || blockSorting)
-    {
-        return;
-    }
-
-
-    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
-    if(project != nullptr)
-    {
-        project->setSortingFolder(mode);
-    }
-}
-
-
-void CGisListWks::slotCopyProject()
-{
-    CGisListWksEditLock lock(true, IGisItem::mutexItems);
-
-    QList<IGisItem::key_t>  keys;
-
-    for(QTreeWidgetItem * item : selectedItems())
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project == nullptr)
-        {
-            continue;
-        }
-
-        const int N = project->childCount();
-        for(int i = 0; i < N; i++)
-        {
-            IGisItem * item = dynamic_cast<IGisItem*>(project->child(i));
-            if(item != nullptr)
-            {
-                keys << item->getKey();
-            }
-        }
-    }
-
-    CGisWorkspace::self().copyItemsByKey(keys);
-}
-
-
-void CGisListWks::slotSymWpt()
-{
-    CGisListWksEditLock lock(false, IGisItem::mutexItems);
-    QToolButton tb;
-    CWptIconDialog dlg(&tb);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return;
-    }
-
-    QList<IGisItem::key_t> keys;
-    for(QTreeWidgetItem * item : selectedItems())
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
-        if(wpt == nullptr)
-        {
-            continue;
-        }
-
-        keys << wpt->getKey();
-    }
-
-    CGisWorkspace::self().changeWptSymByKey(keys, tb.objectName());
-}
diff --git a/src/gis/CGisListWks.h b/src/gis/CGisListWks.h
deleted file mode 100644
index 799efad..0000000
--- a/src/gis/CGisListWks.h
+++ /dev/null
@@ -1,203 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISLISTWKS_H
-#define CGISLISTWKS_H
-
-#include "gis/prj/IGisProject.h"
-
-#include <QPointer>
-#include <QSqlDatabase>
-#include <QTreeWidget>
-
-struct action_t;
-class QAction;
-class CSearchGoogle;
-class IGisProject;
-class CDBProject;
-class IDeviceWatcher;
-class QActionGroup;
-
-class CGisListWks : public QTreeWidget
-{
-    Q_OBJECT
-public:
-    CGisListWks(QWidget * parent);
-    virtual ~CGisListWks();
-
-    enum column_e
-    {
-        eColumnIcon = 0
-        ,eColumnCheckBox = eColumnIcon
-        ,eColumnDecoration = eColumnIcon
-        ,eColumnName = 1
-    };
-
-
-    void setExternalMenu(QMenu * project);
-    bool hasProject(IGisProject *project);
-
-    IGisProject * getProjectByKey(const QString& key);
-    CDBProject * getProjectById(quint64 id, const QString& db);
-
-    bool event(QEvent * e) override;
-
-    void addProject(IGisProject *proj);
-
-    void removeDevice(const QString& key);
-
-public slots:
-    void slotLoadWorkspace();
-
-signals:
-    void sigChanged();
-    void sigItemDeleted();
-
-protected:
-    void dragMoveEvent(QDragMoveEvent *e) override;
-    void dropEvent(QDropEvent     *e) override;
-
-private slots:
-    void slotSaveWorkspace();
-    void slotContextMenu(const QPoint& point);
-    void slotSaveProject();
-    void slotSaveAsProject();
-    void slotSaveAsStrictGpx11Project();
-    void slotEditPrj();
-    void slotCloseProject();
-    void slotDeleteProject();
-    void slotShowOnMap();
-    void slotHideFrMap();
-    void slotItemDoubleClicked(QTreeWidgetItem * item, int);
-    void slotItemChanged(QTreeWidgetItem * item, int column);
-    void slotEditItem();
-    void slotDeleteItem();
-    void slotBubbleWpt();
-    void slotNogoAreaWpt();
-    void slotDelRadiusWpt();
-    void slotEditRadiusWpt();
-    void slotProjWpt();
-    void slotMoveWpt();
-    void slotFocusTrk(bool on);
-    void slotEditTrk();
-    void slotReverseTrk();
-    void slotCombineTrk();
-    void slotRangeTrk();
-    void slotActivityTrk();
-    void slotCopyTrkWithWpt();
-    void slotFocusRte(bool on);
-    void slotCalcRte();
-    void slotResetRte();
-    void slotEditRte();
-    void slotRte2Trk();
-    void slotEditArea();
-    void slotAddEmptyProject();
-    void slotCloseAllProjects();
-    void slotSearchGoogle(bool on);
-    void slotCopyItem();
-    void slotSyncWksDev();
-    void slotSyncDevWks();
-    void slotRteFromWpt();
-    void slotSyncDB();
-    void slotSetSortMode(IGisProject::sorting_folder_e mode, bool checked);
-    void slotCopyProject();
-    void slotSymWpt();
-    void slotAutoSaveProject(bool on);
-
-
-private:
-    void configDB();
-    void initDB();
-    void migrateDB(int version);
-    void migrateDB1to2();
-    void migrateDB2to3();
-    void setVisibilityOnMap(bool visible);
-    QAction * addSortAction(QMenu * menu, QActionGroup *actionGroup, const QString& icon, const QString& text, IGisProject::sorting_folder_e mode);
-
-    QSqlDatabase db;
-
-    QMenu * menuProjectWks;
-    QAction  * actionSave;
-    QAction  * actionSaveAs;
-    QAction  * actionSaveAsStrict;
-    QAction  * actionAutoSave;
-    QAction  * actionCopyPrj;
-    QAction  * actionEditPrj;
-    QAction  * actionCloseProj;
-    QAction  * actionShowOnMap;
-    QAction  * actionHideFrMap;
-    QAction  * actionSyncWksDev;
-    QAction  * actionSyncDB;
-    QAction  * actionSortByTime;
-    QAction  * actionSortByName;
-
-
-
-    QActionGroup * actionGroup;
-
-    QMenu * menuProjectDev;
-    QAction  * actionDelProj;
-    QAction  * actionSyncDevWks;
-
-    QMenu * menuProjectTrash;
-
-    QMenu * menuItem;
-    QMenu * menuItemTrk;
-    QMenu * menuItemWpt;
-    QMenu * menuItemRte;
-    QMenu * menuItemOvl;
-    QAction * actionEditDetails;
-    QAction * actionCopyItem;
-    QAction * actionDelete;
-    QAction * actionBubbleWpt;
-    QAction * actionDelRadiusWpt;
-    QAction * actionNogoAreaWpt;
-    QAction * actionEditRadiusWpt;
-    QAction * actionProjWpt;
-    QAction * actionMoveWpt;
-    QAction * actionFocusTrk;
-    QAction * actionEditTrk;
-    QAction * actionReverseTrk;
-    QAction * actionCombineTrk;
-    QAction * actionRangeTrk;
-    QAction * actionActivityTrk;
-    QAction * actionCopyTrkWithWpt;
-    QAction * actionFocusRte;
-    QAction * actionCalcRte;
-    QAction * actionResetRte;
-    QAction * actionEditRte;
-    QAction * actionRte2Trk;
-    QAction * actionEditArea;
-    QAction * actionRteFromWpt;
-    QAction * actionSymWpt;
-
-    QMenu * menuNone = nullptr;
-
-    QPointer<CSearchGoogle> searchGoogle;
-
-    bool saveOnExit = true;
-    qint32 saveEvery = 5;
-
-    IDeviceWatcher * deviceWatcher = nullptr;
-
-    bool blockSorting = false;
-};
-
-#endif //CGISLISTWKS_H
-
diff --git a/src/gis/CGisWorkspace.cpp b/src/gis/CGisWorkspace.cpp
deleted file mode 100644
index ecd134c..0000000
--- a/src/gis/CGisWorkspace.cpp
+++ /dev/null
@@ -1,1128 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "device/IDevice.h"
-#include "gis/CGisDatabase.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/CSetupFilter.h"
-#include "gis/IGisItem.h"
-#include "gis/db/CDBProject.h"
-#include "gis/db/CSelectDBFolder.h"
-#include "gis/db/CSetupFolder.h"
-#include "gis/gpx/CGpxProject.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/qms/CQmsProject.h"
-#include "gis/rte/CCreateRouteFromWpt.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/router/IRouter.h"
-#include "gis/trk/CCombineTrk.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "gis/wpt/CProjWpt.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSelectCopyAction.h"
-#include "helpers/CSelectProjectDialog.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-#include <QtXml>
-
-CGisWorkspace * CGisWorkspace::pSelf = nullptr;
-
-CGisWorkspace::CGisWorkspace(QMenu *menuProject, QWidget *parent)
-    : QWidget(parent)
-{
-    pSelf = this;
-    setupUi(this);
-
-    lineFilter->addAction(actionClearFilter,QLineEdit::TrailingPosition);
-    lineFilter->addAction(actionSetupFilter, QLineEdit::LeadingPosition);
-
-    treeWks->setExternalMenu(menuProject);
-
-    SETTINGS;
-    treeWks->header()->restoreState(cfg.value("Workspace/treeWks/state", treeWks->header()->saveState()).toByteArray());
-    IGisProject::filterMode = IGisProject::filter_mode_e(cfg.value("Workspace/projects/filterMode", IGisProject::filterMode).toInt());
-
-    connect(treeWks, &CGisListWks::sigChanged, this, &CGisWorkspace::sigChanged);
-    connect(sliderOpacity, &QSlider::valueChanged, this, &CGisWorkspace::slotSetGisLayerOpacity);
-    connect(lineFilter, &QLineEdit::textChanged, this, &CGisWorkspace::slotFilter);
-    connect(actionSetupFilter, &QAction::triggered, this, &CGisWorkspace::slotSetupFilter);
-    connect(treeWks, &CGisListWks::itemPressed, this, &CGisWorkspace::slotWksItemPressed);
-    connect(treeWks, &CGisListWks::itemSelectionChanged, this, &CGisWorkspace::slotWksItemSelectionChanged);
-    connect(treeWks, &CGisListWks::sigItemDeleted, this, &CGisWorkspace::slotWksItemSelectionChanged);
-
-    // [Issue #265] Delay the loading of the workspace to make sure the complete IUnit system
-    //              is up and running.
-    QTimer::singleShot(500, treeWks, SLOT(slotLoadWorkspace()));
-}
-
-CGisWorkspace::~CGisWorkspace()
-{
-    SETTINGS;
-    cfg.setValue("Workspace/treeWks/state", treeWks->header()->saveState());
-    cfg.setValue("Workspace/projects/filterMode", IGisProject::filterMode);
-    /*
-        Explicitly delete workspace here, as database projects use
-        CGisWorkspace upon destruction to signal the database their destruction.
-
-     */
-    delete treeWks;
-}
-
-void CGisWorkspace::setOpacity(qreal val)
-{
-    sliderOpacity->setValue(val * 100);
-}
-
-void CGisWorkspace::postEventForWks(QEvent * event)
-{
-    QCoreApplication::postEvent(treeWks, event);
-}
-
-void CGisWorkspace::loadGisProject(const QString& filename)
-{
-    // add project to workspace
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "loadGisProject");
-    treeWks->blockSignals(true);
-
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    IGisProject * item = IGisProject::create(filename, treeWks);
-    // skip if project is already loaded
-    if(item && treeWks->hasProject(item))
-    {
-        QMessageBox::information(this, tr("Load project..."), tr("The project \"%1\" is already in the workspace.").arg(item->getName()), QMessageBox::Abort);
-
-        delete item;
-        item = nullptr;
-    }
-
-    treeWks->blockSignals(false);
-    CCanvas::restoreOverrideCursor("loadGisProject");
-
-    emit sigChanged();
-}
-
-
-void CGisWorkspace::slotSetGisLayerOpacity(int val)
-{
-    CCanvas::gisLayerOpacity = qreal(val)/100;
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas != nullptr)
-    {
-        canvas->update();
-    }
-}
-
-void CGisWorkspace::applyFilter()
-{
-    slotFilter(lineFilter->text());
-}
-
-void CGisWorkspace::slotFilter(const QString& str)
-{
-    actionClearFilter->setIcon(str.isEmpty() ? QIcon("://icons/32x32/Filter.png") : QIcon("://icons/32x32/Cancel.png"));
-
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotFilter");
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    const int N = treeWks->topLevelItemCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisProject * item = dynamic_cast<IGisProject*>(treeWks->topLevelItem(n));
-        if(item == nullptr)
-        {
-            continue;
-        }
-
-        item->filter(str.toUpper());
-        item->setExpanded(!str.isEmpty());
-    }
-
-    CCanvas::restoreOverrideCursor("slotFilter");
-
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CGisWorkspace::slotSetupFilter()
-{
-    CSetupFilter * setupFilter = new CSetupFilter(this);
-    setupFilter->adjustSize();
-    setupFilter->move(lineFilter->geometry().topLeft());
-    setupFilter->show();
-}
-
-void CGisWorkspace::slotSaveAll()
-{
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotSaveAll");
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        IGisProject * item = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-        if(item->canSave())
-        {
-            item->save();
-        }
-        else
-        {
-            item->saveAs();
-        }
-    }
-
-    CCanvas::restoreOverrideCursor("slotSaveAll");
-}
-
-
-void CGisWorkspace::slotWksItemSelectionChanged()
-{
-    slotWksItemPressed(treeWks->currentItem());
-}
-
-void CGisWorkspace::slotWksItemPressed(QTreeWidgetItem * i)
-{
-    IGisItem * item     = dynamic_cast<IGisItem*>(i);
-    if(item != nullptr)
-    {
-        keyWksSelection = item->getKey();
-        for(CCanvas * canvas : CMainWindow::self().getCanvas())
-        {
-            canvas->reportStatus("WksSelection", tr("<b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior."));
-        }
-    }
-    else
-    {
-        slotWksItemSelectionReset();
-    }
-}
-
-void CGisWorkspace::slotWksItemSelectionReset()
-{
-    keyWksSelection.clear();
-    for(CCanvas * canvas : CMainWindow::self().getCanvas())
-    {
-        canvas->reportStatus("WksSelection", "");
-    }
-}
-
-
-IGisProject * CGisWorkspace::selectProject()
-{
-    QString key, name;
-    IGisProject::type_e type = IGisProject::eTypeQms;
-
-    CSelectProjectDialog dlg(key, name, type, treeWks);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return nullptr;
-    }
-
-    IGisProject *project = nullptr;
-    if(!key.isEmpty())
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-        {
-            project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
-            if(nullptr == project)
-            {
-                continue;
-            }
-            if(key == project->getKey())
-            {
-                break;
-            }
-        }
-    }
-    else if(type == IGisProject::eTypeDb)
-    {
-        quint64 idParent;
-        QString db;
-        QString host;
-        IDBFolder::type_e type;
-
-        CSelectDBFolder dlg1(idParent, db, host, this);
-        if(dlg1.exec() == QDialog::Rejected)
-        {
-            return nullptr;
-        }
-
-        CSetupFolder dlg2(type, name, false, this);
-        if(dlg2.exec() == QDialog::Rejected)
-        {
-            return nullptr;
-        }
-
-        QMutexLocker lock(&IGisItem::mutexItems);
-        CEvtW2DCreate evt(name, type, idParent, db, host);
-        CGisDatabase::self().sendEventForDb(&evt);
-
-        if(evt.idChild)
-        {
-            CDBProject * p = nullptr;
-            while(nullptr == p)
-            {
-                QApplication::processEvents(QEventLoop::WaitForMoreEvents|QEventLoop::ExcludeUserInputEvents, 100);
-                p = dynamic_cast<CDBProject*>(treeWks->getProjectById(evt.idChild, db));
-            }
-            /*
-               Creating a project usually does initiate an info request. However as the project isn't in the workspace
-               the moment we create it, the request will fail. That is why we send the info now.
-             */
-            p->postStatus(false);
-            project = p;
-        }
-    }
-    else if(!name.isEmpty())
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        if(type == IGisProject::eTypeGpx)
-        {
-            project = new CGpxProject(name, treeWks);
-        }
-        else if (type == IGisProject::eTypeQms)
-        {
-            project = new CQmsProject(name, treeWks);
-        }
-    }
-
-    return project;
-}
-
-void CGisWorkspace::getItemsByPos(const QPointF& pos, QList<IGisItem*>& items)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project)
-        {
-            project->getItemsByPos(pos, items);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(device)
-        {
-            device->getItemsByPos(pos, items);
-            continue;
-        }
-    }
-
-    /*
-        If there is an item selected by the workspace limit
-        the list of items to this item. But only if the item
-        is part of the items close to position.
-     */
-    if(!keyWksSelection.item.isEmpty() && !items.isEmpty())
-    {
-        IGisItem * item = getItemByKey(keyWksSelection);
-        if(item && items.contains(item))
-        {
-            items.clear();
-            items << item;
-        }
-        else
-        {
-            items.clear();
-        }
-    }
-}
-
-void CGisWorkspace::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project)
-        {
-            project->getItemsByKeys(keys, items);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(device)
-        {
-            device->getItemsByKeys(keys, items);
-            continue;
-        }
-    }
-}
-
-void CGisWorkspace::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project)
-        {
-            project->getItemsByArea(area, flags, items);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(device)
-        {
-            device->getItemsByArea(area, flags, items);
-            continue;
-        }
-    }
-}
-
-void CGisWorkspace::getNogoAreas(QVector<IRouter::circle_t> &areas)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project)
-        {
-            project->getNogoAreas(areas);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(device)
-        {
-            device->getNogoAreas(areas);
-            continue;
-        }
-    }
-}
-
-void CGisWorkspace::mouseMove(const QPointF& pos)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(project)
-        {
-            project->mouseMove(pos);
-            continue;
-        }
-    }
-}
-
-IGisItem * CGisWorkspace::getItemByKey(const IGisItem::key_t& key)
-{
-    IGisItem *item = nullptr;
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item1 = treeWks->topLevelItem(i);
-        IGisProject * project = dynamic_cast<IGisProject*>(item1);
-        if(project)
-        {
-            if(project->getKey() != key.project)
-            {
-                continue;
-            }
-
-            item = project->getItemByKey(key);
-            if(nullptr != item)
-            {
-                break;
-            }
-
-            continue;
-        }
-
-        IDevice * device = dynamic_cast<IDevice*>(item1);
-        if(device)
-        {
-            if(device->getKey() != key.device)
-            {
-                continue;
-            }
-
-            item = device->getItemByKey(key);
-            if(nullptr != item)
-            {
-                break;
-            }
-        }
-    }
-
-    return item;
-}
-
-void CGisWorkspace::delItemByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    QMessageBox::StandardButtons last = QMessageBox::NoButton;
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
-        if(nullptr == project)
-        {
-            continue;
-        }
-
-        if(project->delItemByKey(key, last))
-        {
-            // update database tree if that is a database project
-            CDBProject * dbp = dynamic_cast<CDBProject*>(project);
-            if(dbp)
-            {
-                dbp->postStatus(true);
-            }
-        }
-
-        if(last == QMessageBox::Cancel)
-        {
-            break;
-        }
-    }
-
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::delItemsByKey(const QList<IGisItem::key_t> &keys)
-{
-    QMessageBox::StandardButtons last   = QMessageBox::NoButton;
-
-    QSet<CDBProject*>   projects;
-    QSet<IGisProject*>  projectsAll;
-
-    for(const IGisItem::key_t key : keys)
-    {
-        IGisItem * gisItem = getItemByKey(key);
-        if(nullptr != gisItem)
-        {
-            bool yes = false;
-            IGisProject *project = dynamic_cast<IGisProject*>(gisItem->parent());
-            if(nullptr != project)
-            {
-                project->blockUpdateItems(true);
-                yes = project->delItemByKey(gisItem->getKey(), last);
-
-
-                /*
-                    collect database projects to update their counterpart in
-                    the database view, after all operations are done.
-                 */
-                if(yes && project->getType() == IGisProject::eTypeDb)
-                {
-                    projects << dynamic_cast<CDBProject*>(project);
-                }
-
-                /*
-                    Collect all projects to unblock update later on.
-                 */
-                projectsAll << project;
-            }
-
-            if(last == QMessageBox::Cancel)
-            {
-                break;
-            }
-        }
-    }
-
-    // make all database projects that are changed to post their new status
-    // this will update the database view.
-    for(CDBProject * project : projects)
-    {
-        project->postStatus(true);
-    }
-    // unblock update for all projects seen
-    for(IGisProject * project : projectsAll)
-    {
-        project->blockUpdateItems(false);
-    }
-
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CGisWorkspace::editItemByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem *item = treeWks->topLevelItem(i);
-        IGisProject *project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->editItemByKey(key);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(nullptr != device)
-        {
-            device->editItemByKey(key);
-            continue;
-        }
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::copyItemByKey(const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    IGisItem *item = getItemByKey(key);
-    if(nullptr == item)
-    {
-        return;
-    }
-
-    IGisProject *project = selectProject();
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    int lastResult = CSelectCopyAction::eResultNone;
-    project->insertCopyOfItem(item, NOIDX, lastResult);
-
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::copyItemsByKey(const QList<IGisItem::key_t> &keys)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    IGisProject * project = selectProject();
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    int lastResult = CSelectCopyAction::eResultNone;
-
-    project->blockUpdateItems(true);
-    int cnt = 1;
-    PROGRESS_SETUP(tr("Copy items..."), 0, keys.count(), this);
-    for(const IGisItem::key_t& key : keys)
-    {
-        PROGRESS(cnt++, break);
-        IGisItem * gisItem = getItemByKey(key);
-        if(nullptr != gisItem)
-        {
-            project->insertCopyOfItem(gisItem, NOIDX, lastResult);
-        }
-    }
-    project->blockUpdateItems(false);
-
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CGisWorkspace::changeWptSymByKey(const QList<IGisItem::key_t>& keys, const QString& sym)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    PROGRESS_SETUP(tr("Change waypoint symbols."), 0, keys.count(), this);
-    int cnt = 0;
-    for(const IGisItem::key_t& key : keys)
-    {
-        PROGRESS(cnt++, break);
-        CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-        if(nullptr != wpt)
-        {
-            wpt->setIcon(sym);
-        }
-    }
-
-    emit sigChanged();
-}
-
-
-void CGisWorkspace::projWptByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-    if(nullptr != wpt)
-    {
-        CProjWpt dlg(*wpt, 0);
-        dlg.exec();
-    }
-
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::moveWptByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-    if(nullptr != wpt)
-    {
-        if(!wpt->setReadOnlyMode(false))
-        {
-            return;
-        }
-
-        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
-        if(nullptr != canvas)
-        {
-            canvas->setMouseMoveWpt(*wpt);
-        }
-    }
-}
-
-void CGisWorkspace::toggleWptBubble(const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-    if(nullptr != wpt)
-    {
-        wpt->toggleBubble();
-    }
-}
-
-void CGisWorkspace::deleteWptRadius(const IGisItem::key_t &key)
-{
-    IGisItem * item = getItemByKey(key);
-    if(nullptr != item)
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt *>(item);
-        wpt->setProximity(NOFLOAT);
-    }
-}
-
-void CGisWorkspace::toggleWptNogoArea(const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-    if(nullptr != wpt)
-    {
-        wpt->toggleNogoArea();
-    }
-}
-
-void CGisWorkspace::editWptRadius(const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
-    if(nullptr != wpt)
-    {
-        if(!wpt->setReadOnlyMode(false))
-        {
-            return;
-        }
-
-        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
-        if(nullptr != canvas)
-        {
-            canvas->setMouseRadiusWpt(*wpt);
-        }
-    }
-}
-
-void CGisWorkspace::addWptByPos(QPointF pt, const QString& label, const QString& desc) const
-{
-    QString name = label;
-    QString icon;
-    if(!CGisItemWpt::getNewWptData(pt, icon, name))
-    {
-        return;
-    }
-
-    IGisProject * project = CGisWorkspace::self().selectProject();
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemWpt * wpt = new CGisItemWpt(pt, name, icon, project);
-    if(!desc.isEmpty())
-    {
-        wpt->setDescription(desc);
-    }
-    wpt->edit();
-}
-
-void CGisWorkspace::focusTrkByKey(bool yes, const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-    if(nullptr != trk)
-    {
-        trk->gainUserFocus(yes);
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::focusRteByKey(bool yes, const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
-    if(nullptr != rte)
-    {
-        rte->gainUserFocus(yes);
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::convertRouteToTrack(const IGisItem::key_t &key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
-    if(nullptr != rte)
-    {
-        rte->toTrack();
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::cutTrkByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-    if(nullptr != trk && trk->cut())
-    {
-        int res = QMessageBox::question(this, tr("Cut Track..."), tr("Do you want to delete the original track?"), QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
-        if(res == QMessageBox::Ok)
-        {
-            delete trk;
-        }
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::reverseTrkByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-    if(nullptr != trk)
-    {
-        trk->reverse();
-    }
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::combineTrkByKey(const IGisItem::key_t& keyTrk)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    QList<IGisItem::key_t> keys;
-    IGisItem * item = dynamic_cast<IGisItem*>(getItemByKey(keyTrk));
-    if(item == nullptr)
-    {
-        return;
-    }
-
-    keys << keyTrk;
-
-    IGisProject * project = dynamic_cast<IGisProject*>(item->parent());
-    if(project == nullptr)
-    {
-        return;
-    }
-
-    const int N = project->childCount();
-    for(int i = 0; i < N; i++)
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(project->child(i));
-        if(trk != nullptr)
-        {
-            const IGisItem::key_t& key = trk->getKey();
-            if(key != keyTrk)
-            {
-                keys << key;
-            }
-        }
-    }
-
-    combineTrkByKey(keys, {keyTrk});
-}
-
-void CGisWorkspace::combineTrkByKey(const QList<IGisItem::key_t>& keys, const QList<IGisItem::key_t>& keysPreSel)
-{
-    if(keys.isEmpty())
-    {
-        return;
-    }
-
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CCombineTrk dlg(keys, keysPreSel, this);
-    dlg.exec();
-
-    emit sigChanged();
-}
-
-void CGisWorkspace::activityTrkByKey(const QList<IGisItem::key_t>& keys)
-{
-    if(keys.isEmpty())
-    {
-        return;
-    }
-
-    quint32 flags = CActivityTrk::selectActivity(this);
-    if(0xFFFFFFFF != flags)
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        for(const IGisItem::key_t& key : keys)
-        {
-            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-            if(trk != nullptr)
-            {
-                trk->setActivity(flags);
-            }
-        }
-    }
-}
-
-void CGisWorkspace::editTrkByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-    if(nullptr != trk)
-    {
-        if(!trk->setReadOnlyMode(false))
-        {
-            return;
-        }
-
-        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-        if(nullptr != canvas)
-        {
-            canvas->setMouseEditTrk(*trk);
-        }
-    }
-}
-
-void CGisWorkspace::rangeTrkByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
-    if(nullptr != trk)
-    {
-        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-        if(nullptr != canvas)
-        {
-            canvas->setMouseRangeTrk(*trk);
-        }
-    }
-}
-
-void CGisWorkspace::copyTrkWithWptByKey(const IGisItem::key_t &key)
-{
-    QList<IGisItem::key_t> keys;
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(nullptr != trk)
-    {
-        keys << key;
-
-        const CTrackData& t = trk->getTrackData();
-        for(const CTrackData::trkpt_t& trkpt : t)
-        {
-            if(trkpt.isHidden() || trkpt.keyWpt.item.isEmpty())
-            {
-                continue;
-            }
-
-            keys << trkpt.keyWpt;
-        }
-
-        copyItemsByKey(keys);
-    }
-}
-
-void CGisWorkspace::editRteByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
-    if(nullptr != rte)
-    {
-        if(!rte->setReadOnlyMode(false))
-        {
-            return;
-        }
-
-        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
-        if(nullptr != canvas)
-        {
-            canvas->setMouseEditRte(*rte);
-        }
-    }
-}
-
-void CGisWorkspace::calcRteByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
-    if(nullptr != rte)
-    {
-        rte->calc();
-    }
-}
-
-void CGisWorkspace::resetRteByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
-    if(rte != nullptr)
-    {
-        rte->reset();
-    }
-}
-
-
-void CGisWorkspace::editAreaByKey(const IGisItem::key_t& key)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(getItemByKey(key));
-    if(area != nullptr)
-    {
-        if(!area->setReadOnlyMode(false))
-        {
-            return;
-        }
-
-        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-        if(canvas != nullptr)
-        {
-            canvas->setMouseEditArea(*area);
-        }
-    }
-}
-
-void CGisWorkspace::makeRteFromWpt(const QList<IGisItem::key_t>& keys)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CCreateRouteFromWpt dlg(keys, this);
-    dlg.exec();
-}
-
-
-void CGisWorkspace::draw(QPainter& p, const QPolygonF& viewport, CGisDraw * gis)
-{
-    QFontMetricsF fm(CMainWindow::self().getMapFont());
-    QList<QRectF> blockedAreas;
-
-    QMutexLocker lock(&IGisItem::mutexItems);
-    // draw mandatory stuff first
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        if(gis->needsRedraw())
-        {
-            break;
-        }
-
-        QTreeWidgetItem *item = treeWks->topLevelItem(i);
-
-        IGisProject *project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->drawItem(p, viewport, blockedAreas, gis);
-            continue;
-        }
-        IDevice *device = dynamic_cast<IDevice*>(item);
-        if(nullptr != device)
-        {
-            device->drawItem(p, viewport, blockedAreas, gis);
-            continue;
-        }
-    }
-
-    // draw optional labels second
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        if(gis->needsRedraw())
-        {
-            break;
-        }
-
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->drawLabel(p, viewport, blockedAreas, fm, gis);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(nullptr != device)
-        {
-            device->drawLabel(p, viewport, blockedAreas, fm, gis);
-            continue;
-        }
-    }
-}
-
-void CGisWorkspace::fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis)
-{
-    /*
-        Mutex locking will make map moving very slow if there are many GIS items
-        visible. Remove it for now. But I am not sure if that is a good idea.
-     */
-    //QMutexLocker lock(&IGisItem::mutexItems);
-    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
-    {
-        QTreeWidgetItem * item = treeWks->topLevelItem(i);
-
-        IGisProject * project = dynamic_cast<IGisProject*>(item);
-        if(nullptr != project)
-        {
-            project->drawItem(p, viewport, gis);
-            continue;
-        }
-        IDevice * device = dynamic_cast<IDevice*>(item);
-        if(nullptr != device)
-        {
-            device->drawItem(p, viewport, gis);
-            continue;
-        }
-    }
-
-
-    IGisItem * item = getItemByKey(keyWksSelection);
-    if(item != nullptr)
-    {
-        item->drawHighlight(p);
-    }
-}
-
-
diff --git a/src/gis/CGisWorkspace.h b/src/gis/CGisWorkspace.h
deleted file mode 100644
index 9931a42..0000000
--- a/src/gis/CGisWorkspace.h
+++ /dev/null
@@ -1,448 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISWORKSPACE_H
-#define CGISWORKSPACE_H
-
-#include "ui_IGisWorkspace.h"
-#include <QEvent>
-#include <QSqlDatabase>
-#include <QWidget>
-
-#include "db/IDBFolder.h"
-#include "gis/IGisItem.h"
-#include "gis/rte/router/IRouter.h"
-
-class CGisDraw;
-class IGisProject;
-
-enum event_types_e
-{
-    eEvtD2WReqInfo     = QEvent::User + 1
-    ,eEvtD2WShowFolder  = QEvent::User + 2
-    ,eEvtD2WHideFolder  = QEvent::User + 3
-    ,eEvtD2WShowItems   = QEvent::User + 4
-    ,eEvtD2WHideItems   = QEvent::User + 5
-    ,eEvtD2WUpdateLnF   = QEvent::User + 6
-    ,eEvtD2WUpdateItems = QEvent::User + 7
-    ,eEvtD2WReload      = QEvent::User + 8
-
-    ,eEvtW2DAckInfo     = QEvent::User + 100
-    ,eEvtW2DCreate      = QEvent::User + 101
-
-    ,eEvtA2WCutTrk      = QEvent::User + 200
-    ,eEvtA2WSave        = QEvent::User + 201
-};
-
-struct evt_item_t
-{
-    evt_item_t(quint64 id, quint32 type) : id(id), type(type)
-    {
-    }
-    quint64 id;
-    quint32 type;
-};
-
-class CEvtD2WReqInfo : public QEvent
-{
-public:
-    CEvtD2WReqInfo(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WReqInfo)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-};
-
-class CEvtD2WShowFolder : public QEvent
-{
-public:
-    CEvtD2WShowFolder(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WShowFolder)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-};
-
-class CEvtD2WHideFolder : public QEvent
-{
-public:
-    CEvtD2WHideFolder(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WHideFolder)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-};
-
-class CEvtD2WShowItems : public QEvent
-{
-public:
-    CEvtD2WShowItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WShowItems)), id(id), db(db)
-    {
-    }
-
-    /// if true only the items in the list are loaded. Any other item loaded but not part of the list will be removed.
-    bool addItemsExclusively = false;
-    quint64 id;
-    QString db;
-    QList<evt_item_t> items;
-};
-
-class CEvtD2WHideItems : public QEvent
-{
-public:
-    CEvtD2WHideItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WHideItems)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-    QSet<QString> keys;
-};
-
-class CEvtW2DAckInfo : public QEvent
-{
-public:
-    CEvtW2DAckInfo(Qt::CheckState checkState, quint64 id, const QString& db, const QString& host)
-        : QEvent(QEvent::Type(eEvtW2DAckInfo))
-        , checkState(checkState)
-        , id(id)
-        , db(db)
-        , host(host)
-    {
-    }
-
-    CEvtW2DAckInfo(quint64 id, const QString& db, const QString& host)
-        : QEvent(QEvent::Type(eEvtW2DAckInfo))
-        , id(id)
-        , db(db)
-        , host(host)
-    {
-    }
-
-    Qt::CheckState checkState = Qt::Unchecked;
-    bool updateLostFound = false;
-    quint64 id;
-    QString db;
-    QString host;
-    QSet<QString> keysChildren;
-};
-
-class CEvtD2WUpdateLnF : public QEvent
-{
-public:
-    CEvtD2WUpdateLnF(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WUpdateLnF)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-};
-
-class CEvtW2DCreate : public QEvent
-{
-public:
-    CEvtW2DCreate(const QString& name, IDBFolder::type_e type, quint64 id, const QString& db, const QString& host)
-        : QEvent(QEvent::Type(eEvtW2DCreate))
-        , name(name)
-        , type(type)
-        , idParent(id)
-        , db(db)
-        , host(host)
-    {
-    }
-
-    QString name;
-    IDBFolder::type_e type;
-    quint64 idParent;
-    quint64 idChild = 0;
-    QString db;
-    QString host;
-};
-
-class CEvtD2WUpdateItems : public QEvent
-{
-public:
-    CEvtD2WUpdateItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WUpdateItems)), id(id), db(db)
-    {
-    }
-
-    quint64 id;
-    QString db;
-};
-
-class CEvtD2WReload : public QEvent
-{
-public:
-    CEvtD2WReload(const QString& db) : QEvent(QEvent::Type(eEvtD2WReload)), db(db)
-    {
-    }
-
-    QString db;
-};
-
-
-class CEvtA2WCutTrk : public QEvent
-{
-public:
-    CEvtA2WCutTrk(const IGisItem::key_t& key) : QEvent(QEvent::Type(eEvtA2WCutTrk)), key(key)
-    {
-    }
-
-    const IGisItem::key_t key;
-};
-
-class CEvtA2WSave : public QEvent
-{
-public:
-    CEvtA2WSave(const QString& key) : QEvent(QEvent::Type(eEvtA2WSave)), key(key)
-    {
-    }
-
-    const QString key;
-};
-
-
-class CGisWorkspace : public QWidget, private Ui::IGisWorkspace
-{
-    Q_OBJECT
-public:
-    static CGisWorkspace& self()
-    {
-        return *pSelf;
-    }
-    virtual ~CGisWorkspace();
-
-    void loadGisProject(const QString& filename);
-    /**
-       @brief Draw all loaded data in the workspace that is visible
-
-       This method is called from The CGisDraw thread. The thread has to make sure
-       that everything is thread safe.
-
-       @param p         the painter to be used
-       @param viewport  the viewport in units of rad
-       @param gis       the draw context to be used
-     */
-    void draw(QPainter& p, const QPolygonF &viewport, CGisDraw *gis);
-
-    /**
-       @brief Receive the current mouse position
-
-       Iterate over all projects and pass the position
-
-       @param pos   the mouse position on the screen in pixel
-     */
-    void mouseMove(const QPointF& pos);
-    /**
-       @brief Draw all data that is time variant and can't wait for a full update
-
-       This method is called directly from the main thread's paintEvent() method.
-
-       @param p         the painter to be used
-       @param viewport  the viewport in units of rad
-       @param gis       the draw context to be used
-     */
-    void fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis);
-
-    /**
-       @brief Get items close to the given point
-
-       Note: Do not store the pointers of items permanently as they can become invalid
-       once you reach the main event loop again. Store the key instead.
-
-       @param pos       the position in pixel
-       @param items     an empty item list that will get filled with temporary pointers
-     */
-    void getItemsByPos(const QPointF& pos, QList<IGisItem *> &items);
-
-    /**
-       @brief Get items matching the given area
-
-       @param area      a rectangle in screen pixel coordinates
-       @param flags     flag field with IGisItem::selection_e flags set
-       @param items     a list to receive the temporary pointers to the found items
-     */
-    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
-
-    /**
-       @brief Find first item with matching key
-       @param key       the item's key as it is returned from IGisItem::getKey()
-       @return If no item is found 0 is returned.
-     */
-    IGisItem * getItemByKey(const IGisItem::key_t &key);
-
-    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
-
-    void getNogoAreas(QVector<IRouter::circle_t> &areas);
-    /**
-       @brief Delete all items with matching key from workspace
-
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void delItemByKey(const IGisItem::key_t &key);
-
-    void delItemsByKey(const QList<IGisItem::key_t> &keys);
-
-    /**
-       @brief Edit / view item details
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void editItemByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Select a project and add a copy of the item to the project
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void copyItemByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Select a project and add a copy of all items in the list
-       @param keys      a list of item keys to copy
-     */
-    void copyItemsByKey(const QList<IGisItem::key_t> &keys);
-
-    /**
-       @brief Clone waypoint and move clone
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void projWptByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Move waypoint via mouse
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void moveWptByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Add a new waypoint by Position
-       @param pt    the position in [?]
-     */
-    void addWptByPos(QPointF pt, const QString& label = QString::Null(), const QString& desc = QString::Null()) const;
-
-    void toggleWptBubble(const IGisItem::key_t &key);
-
-    void deleteWptRadius(const IGisItem::key_t &key);
-
-    void toggleWptNogoArea(const IGisItem::key_t &key);
-
-    void editWptRadius(const IGisItem::key_t &key);
-
-    /**
-       @brief Set user focus to track
-       @param yes       true if focus is set
-       @param key       the item's key as it is returned from IGisItem::getKey()
-     */
-    void focusTrkByKey(bool yes, const IGisItem::key_t &key);
-
-    void focusRteByKey(bool yes, const IGisItem::key_t &key);
-
-    void convertRouteToTrack(const IGisItem::key_t &key);
-
-
-    void cutTrkByKey(const IGisItem::key_t &key);
-
-    void editTrkByKey(const IGisItem::key_t &key);
-
-    void reverseTrkByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Combine all tracks in a given track's project
-
-       This will collect all tracks in a project and pass them
-       to the track combine dialog.
-
-       @param keyTrk    the key of the first track
-     */
-    void combineTrkByKey(const IGisItem::key_t &keyTrk);
-
-    /**
-       @brief Combine al tracks in the given list of keys.
-
-       @param keys  a list of GIS item keys
-     */
-    void combineTrkByKey(const QList<IGisItem::key_t>& keys, const QList<IGisItem::key_t> &keysPreSel);
-
-    void activityTrkByKey(const QList<IGisItem::key_t>& keys);
-
-    void rangeTrkByKey(const IGisItem::key_t &key);
-
-    void copyTrkWithWptByKey(const IGisItem::key_t &key);
-
-    void editRteByKey(const IGisItem::key_t& key);
-
-    void calcRteByKey(const IGisItem::key_t& key);
-
-    void resetRteByKey(const IGisItem::key_t& key);
-
-    void editAreaByKey(const IGisItem::key_t &key);
-
-    void makeRteFromWpt(const QList<IGisItem::key_t>& keys);
-
-    void changeWptSymByKey(const QList<IGisItem::key_t>& keys, const QString& sym);
-    /**
-       @brief Select a project via dialog
-
-       If a new project name is entered a new project is created. Else the pointer
-       to an existing project is passed back.
-
-       @return 0 if no project was selected.
-     */
-    IGisProject * selectProject();
-
-    void postEventForWks(QEvent * event);
-
-    void setOpacity(qreal val);
-
-    void applyFilter();
-
-signals:
-    void sigChanged();
-
-public slots:
-    void slotSaveAll();
-    void slotWksItemSelectionReset();
-
-private slots:
-    void slotSetGisLayerOpacity(int val);
-    void slotFilter(const QString& str);
-    void slotSetupFilter();
-
-    void slotWksItemSelectionChanged();
-    void slotWksItemPressed(QTreeWidgetItem * item);
-
-
-private:
-    friend class CMainWindow;
-    CGisWorkspace(QMenu * menuProject, QWidget * parent);
-
-    static CGisWorkspace * pSelf;
-
-    /**
-        The item key of last item pressed in the workspace list.
-        The key will be reset by getItemsByPos() which is used by
-        the mouse object to find items close by for highlight.
-     */
-    IGisItem::key_t keyWksSelection;
-};
-
-#endif //CGISWORKSPACE_H
-
diff --git a/src/gis/IGisDatabase.ui b/src/gis/IGisDatabase.ui
deleted file mode 100644
index 85af5ab..0000000
--- a/src/gis/IGisDatabase.ui
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IGisDatabase</class>
- <widget class="QWidget" name="IGisDatabase">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>345</width>
-    <height>297</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="CGisListDB" name="treeDB">
-     <property name="contextMenuPolicy">
-      <enum>Qt::CustomContextMenu</enum>
-     </property>
-     <property name="selectionMode">
-      <enum>QAbstractItemView::ExtendedSelection</enum>
-     </property>
-     <property name="selectionBehavior">
-      <enum>QAbstractItemView::SelectRows</enum>
-     </property>
-     <property name="iconSize">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-     <property name="indentation">
-      <number>10</number>
-     </property>
-     <column>
-      <property name="text">
-       <string notr="true">-</string>
-      </property>
-     </column>
-     <column>
-      <property name="text">
-       <string>Name</string>
-      </property>
-     </column>
-     <column>
-      <property name="text">
-       <string>Age</string>
-      </property>
-     </column>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="frameHelp">
-     <property name="frameShape">
-      <enum>QFrame::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Raised</enum>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <widget class="QLabel" name="labelHelp1">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="text">
-         <string/>
-        </property>
-        <property name="pixmap">
-         <pixmap resource="../resources.qrc">:/icons/48x48/Help.png</pixmap>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLabel" name="labelHelp2">
-        <property name="text">
-         <string>To add a database do a right click on the database list above.</string>
-        </property>
-        <property name="alignment">
-         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CGisListDB</class>
-   <extends>QTreeWidget</extends>
-   <header>gis/CGisListDB.h</header>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/IGisItem.cpp b/src/gis/IGisItem.cpp
deleted file mode 100644
index ec1748c..0000000
--- a/src/gis/IGisItem.cpp
+++ /dev/null
@@ -1,902 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "device/IDevice.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisListWks.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/IGisItem.h"
-#include "gis/db/macros.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CDraw.h"
-#include "helpers/CSettings.h"
-#include "units/IUnit.h"
-
-#include <QtSql>
-#include <QtWidgets>
-#include <QtXml>
-
-QMutex IGisItem::mutexItems(QMutex::Recursive);
-
-const QString IGisItem::noKey;
-
-const QString IGisItem::noName = IGisItem::tr("[no name]");
-
-const IGisItem::color_t IGisItem::colorMap[] =
-{
-    {"Black",        QColor(Qt::black),       QString("://icons/8x8/bullet_black.png")}
-    ,{"DarkRed",     QColor(Qt::darkRed),     QString("://icons/8x8/bullet_dark_red.png")}
-    ,{"DarkGreen",   QColor(Qt::darkGreen),   QString("://icons/8x8/bullet_dark_green.png")}
-    ,{"DarkYellow",  QColor(Qt::darkYellow),  QString("://icons/8x8/bullet_dark_yellow.png")}
-    ,{"DarkBlue",    QColor(Qt::darkBlue),    QString("://icons/8x8/bullet_dark_blue.png")}
-    ,{"DarkMagenta", QColor(Qt::darkMagenta), QString("://icons/8x8/bullet_dark_magenta.png")}
-    ,{"DarkCyan",    QColor(Qt::darkCyan),    QString("://icons/8x8/bullet_dark_cyan.png")}
-    ,{"LightGray",   QColor(Qt::lightGray),   QString("://icons/8x8/bullet_gray.png")}
-    ,{"DarkGray",    QColor(Qt::darkGray),    QString("://icons/8x8/bullet_dark_gray.png")}
-    ,{"Red",         QColor(Qt::red),         QString("://icons/8x8/bullet_red.png")}
-    ,{"Green",       QColor(Qt::green),       QString("://icons/8x8/bullet_green.png")}
-    ,{"Yellow",      QColor(Qt::yellow),      QString("://icons/8x8/bullet_yellow.png")}
-    ,{"Blue",        QColor(Qt::blue),        QString("://icons/8x8/bullet_blue.png")}
-    ,{"Magenta",     QColor(Qt::magenta),     QString("://icons/8x8/bullet_magenta.png")}
-    ,{"Cyan",        QColor(Qt::cyan),        QString("://icons/8x8/bullet_cyan.png")}
-    ,{"White",       QColor(Qt::white),       QString("://icons/8x8/bullet_white.png")}
-    ,{"Transparent", QColor(Qt::transparent), QString()}
-};
-
-const size_t IGisItem::colorMapSize = sizeof(colorMap) / sizeof(color_t);
-
-IGisItem::IGisItem(IGisProject *parent, type_e typ, int idx)
-    : QTreeWidgetItem(parent, typ)
-{
-    int n = -1;
-    setFlags(QTreeWidgetItem::flags() & ~Qt::ItemIsDropEnabled);
-
-    if(nullptr == parent)
-    {
-        return;
-    }
-
-    key.project = parent->getKey();
-    key.device  = parent->getDeviceKey();
-
-    if(idx >= 0)
-    {
-        parent->removeChild(this);
-        parent->insertChild(idx, this);
-    }
-    else
-    {
-        if(type() == eTypeTrk)
-        {
-            for(n = parent->childCount() - 2; n >= 0; n--)
-            {
-                /** @note   The order of item types to test is given by the order items read from
-                            the GPX file in the CGpxProject constructor.  */
-
-                int childType = parent->child(n)->type();
-                if(childType == eTypeTrk)
-                {
-                    parent->removeChild(this);
-                    parent->insertChild(n+1, this);
-                    break;
-                }
-            }
-        }
-        else if(type() == eTypeRte)
-        {
-            for(n = parent->childCount() - 2; n >= 0; n--)
-            {
-                /** @note   The order of item types to test is given by the order items read from
-                            the GPX file in the CGpxProject constructor.  */
-
-                int childType = parent->child(n)->type();
-                if( childType == eTypeRte || childType == eTypeTrk)
-                {
-                    parent->removeChild(this);
-                    parent->insertChild(n+1, this);
-                    break;
-                }
-            }
-        }
-        else if(type() == eTypeWpt)
-        {
-            for(n = parent->childCount() - 2; n >= 0; n--)
-            {
-                /** @note   The order of item types to test is given by the order items read from
-                            the GPX file in the CGpxProject constructor.  */
-
-                int childType = parent->child(n)->type();
-                if(childType == eTypeWpt || childType == eTypeRte || childType == eTypeTrk)
-                {
-                    parent->removeChild(this);
-                    parent->insertChild(n+1, this);
-                    break;
-                }
-            }
-        }
-        else if(type() == eTypeOvl)
-        {
-            for(n = parent->childCount() - 2; n >= 0; n--)
-            {
-                /** @note   The order of item types to test is given by the order items read from
-                            the GPX file in the CGpxProject constructor.  */
-
-                int childType = parent->child(n)->type();
-                if(childType == eTypeOvl || childType == eTypeWpt || childType == eTypeRte || childType == eTypeTrk)
-                {
-                    parent->removeChild(this);
-                    parent->insertChild(n+1, this);
-                    break;
-                }
-            }
-        }
-
-        if(n < 0)
-        {
-            parent->removeChild(this);
-            parent->insertChild(0, this);
-        }
-    }
-}
-
-IGisItem::~IGisItem()
-{
-}
-
-IGisProject * IGisItem::getParentProject() const
-{
-    return dynamic_cast<IGisProject*>(parent());
-}
-
-void IGisItem::genKey() const
-{
-    if(key.item.isEmpty())
-    {
-        QByteArray buffer;
-        QDataStream stream(&buffer, QIODevice::WriteOnly);
-        stream.setByteOrder(QDataStream::LittleEndian);
-        stream.setVersion(QDataStream::Qt_5_2);
-
-        *this >> stream;
-
-        QCryptographicHash md5(QCryptographicHash::Md5);
-        md5.addData(buffer);
-        key.item = md5.result().toHex();
-    }
-    if(key.project.isEmpty())
-    {
-        IGisProject * project = getParentProject();
-        if(project)
-        {
-            key.project = project->getKey();
-        }
-    }
-}
-
-void IGisItem::loadFromDb(quint64 id, QSqlDatabase& db)
-{
-    QSqlQuery query(db);
-    query.prepare("SELECT data, keyqms, hash FROM items WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    if(query.next())
-    {
-        QByteArray data(query.value(0).toByteArray());
-        QDataStream in(&data, QIODevice::ReadOnly);
-        in.setByteOrder(QDataStream::LittleEndian);
-        in.setVersion(QDataStream::Qt_5_2);
-        in >> history;
-        loadHistory(history.histIdxCurrent);
-
-        if(key.item.isEmpty())
-        {
-            QString keyFromDB = query.value(1).toString();
-            /*[Issue #72] Database/Workspace inconsistency in QMS 1.4.0
-
-               The root cause is a missing key in the serialized data. This is fixed by calling getKey() in setupHistory().
-
-               As the database has a valid key the complete history data has to be fixed with that key.
-             */
-            const int N = history.events.size();
-            for(int i = 0; i < N; i++)
-            {
-                loadHistory(i);
-                key.item = keyFromDB;
-                updateHistory();
-            }
-        }
-
-        lastDatabaseHash = query.value(2).toString();
-    }
-}
-
-void IGisItem::updateFromDB(quint64 id, QSqlDatabase& db)
-{
-    QSqlQuery query(db);
-
-    query.prepare("SELECT hash FROM items WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-
-    /*
-        Test on the hash stored in the database. If the hash is
-        equal to the one stored in this item the item is up-to-date
-     */
-
-    if(query.next())
-    {
-        if(query.value(0).toString() == lastDatabaseHash)
-        {
-            return;
-        }
-    }
-    else
-    {
-        // no hash? better leave...
-        return;
-    }
-
-    // reset history and load item again
-    history.reset();
-    loadFromDb(id, db);
-}
-
-QString IGisItem::getNameEx() const
-{
-    QString str = getName();
-    IGisProject * project = getParentProject();
-    if(project)
-    {
-        str += " @ " + project->getName();
-    }
-    IDevice * device = dynamic_cast<IDevice*>(parent()->parent());
-    if(device)
-    {
-        str += " @ " + device->getName();
-    }
-
-    return str;
-}
-
-
-void IGisItem::updateDecoration(quint32 enable, quint32 disable)
-{
-    // update text and icon
-    setToolTip(CGisListWks::eColumnName,getInfo(IGisItem::eFeatureShowName));
-    setText(CGisListWks::eColumnName, getName());
-    setSymbol();
-
-    // update project if necessary
-    IGisProject * project = getParentProject();
-    if(project && (enable & (eMarkChanged|eMarkNotPart|eMarkNotInDB)))
-    {
-        project->setChanged();
-    }
-
-    // test for lost & found folder
-    if(project && project->getType() == IGisProject::eTypeLostFound)
-    {
-        setText(CGisListWks::eColumnDecoration, QString());
-        setToolTip(CGisListWks::eColumnDecoration, QString());
-        return;
-    }
-
-    // set marks in column 1
-    quint32 mask = data(1,Qt::UserRole).toUInt();
-    mask |=  enable;
-    mask &= ~disable;
-    setData(1, Qt::UserRole, mask);
-
-    QString tt;
-    QString str;
-    if(mask & eMarkNotPart)
-    {
-        tt  += tt.isEmpty() ? "" : "\n";
-        tt  += tr("The item is not part of the project in the database.");
-        tt  += tr("\nIt is either a new item or it has been deleted in the database by someone else.");
-        str += "?";
-    }
-    if(mask & eMarkNotInDB)
-    {
-        tt  += tt.isEmpty() ? "" : "\n";
-        tt  += tr("The item is not in the database.");
-        str += "X";
-    }
-    if(mask & eMarkChanged)
-    {
-        tt  += tt.isEmpty() ? "" : "\n";
-        tt  += tr("The item might need to be saved");
-        str += "*";
-    }
-    setText(CGisListWks::eColumnDecoration, str);
-    setToolTip(CGisListWks::eColumnDecoration, tt);
-}
-
-
-void IGisItem::changed(const QString &what, const QString &icon)
-{
-    /*
-        If item gets changed but if it's origin is not QMapShack
-        then it is assumed to be tainted, as imported data should
-        never be changed without notice.
-     */
-    if(!(flags & eFlagCreatedInQms))
-    {
-        flags |= eFlagTainted;
-    }
-
-    // forget all history entries after the current entry
-    for(int i = history.events.size() - 1; i > history.histIdxCurrent; i--)
-    {
-        history.events.pop_back();
-    }
-
-    // append history by new entry
-    history.events << history_event_t();
-    history_event_t& event = history.events.last();
-    event.time      = QDateTime::currentDateTimeUtc();
-    event.comment   = what;
-    event.icon      = icon;
-    event.who       = CMainWindow::getUser();
-
-    QDataStream stream(&event.data, QIODevice::WriteOnly);
-    stream.setByteOrder(QDataStream::LittleEndian);
-    stream.setVersion(QDataStream::Qt_5_2);
-
-    *this >> stream;
-
-    QCryptographicHash md5(QCryptographicHash::Md5);
-    md5.addData(event.data);
-    event.hash = md5.result().toHex();
-
-    history.histIdxCurrent = history.events.size() - 1;
-
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-void IGisItem::updateHistory()
-{
-    if(history.histIdxCurrent == NOIDX)
-    {
-        return;
-    }
-
-    history_event_t& event = history.events[history.histIdxCurrent];
-    event.data.clear();
-
-    QDataStream stream(&event.data, QIODevice::WriteOnly);
-    stream.setByteOrder(QDataStream::LittleEndian);
-    stream.setVersion(QDataStream::Qt_5_2);
-
-    *this >> stream;
-
-    QCryptographicHash md5(QCryptographicHash::Md5);
-    md5.addData(event.data);
-    event.hash = md5.result().toHex();
-
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-void IGisItem::setupHistory()
-{
-    getKey();
-    history.histIdxInitial = NOIDX;
-    history.histIdxCurrent = NOIDX;
-
-    // if history is empty setup an initial item
-    if(history.events.isEmpty())
-    {
-        history.events << history_event_t();
-        history_event_t& event = history.events.last();
-        event.time      = QDateTime::currentDateTimeUtc();
-        event.comment   = tr("Initial version.");
-        event.icon      = "://icons/48x48/Start.png";
-    }
-
-    // search for the first item with data
-    for(int i = 0; i < history.events.size(); i++)
-    {
-        if(!history.events[i].data.isEmpty())
-        {
-            history.histIdxInitial = i;
-            break;
-        }
-    }
-
-    // if no initial item can be found fill the last item with data
-    // and make it the initial item
-    if(history.histIdxInitial == NOIDX)
-    {
-        history_event_t& event = history.events.last();
-
-        QDataStream stream(&event.data, QIODevice::WriteOnly);
-        stream.setByteOrder(QDataStream::LittleEndian);
-        stream.setVersion(QDataStream::Qt_5_2);
-        *this >> stream;
-
-        QCryptographicHash md5(QCryptographicHash::Md5);
-        md5.addData(event.data);
-        event.hash = md5.result().toHex();
-
-        history.histIdxInitial = history.events.size() - 1;
-    }
-
-    history.histIdxCurrent = history.events.size() - 1;
-}
-
-void IGisItem::loadHistory(int idx)
-{
-    // test for bad index
-    if((idx >= history.events.size()) || (idx < 0))
-    {
-        return;
-    }
-
-    history_event_t& event = history.events[idx];
-
-    // test for no data
-    if(event.data.isEmpty())
-    {
-        return;
-    }
-
-    // restore item from history entry
-    QDataStream stream(&event.data, QIODevice::ReadOnly);
-    stream.setByteOrder(QDataStream::LittleEndian);
-    stream.setVersion(QDataStream::Qt_5_2);
-    *this << stream;
-
-    history.histIdxCurrent = idx;
-}
-
-void IGisItem::cutHistoryAfter()
-{
-    while(history.events.size() > (history.histIdxCurrent + 1))
-    {
-        history.events.pop_back();
-    }
-}
-
-void IGisItem::cutHistoryBefore()
-{
-    for (int i = 0; i < history.histIdxCurrent; i++)
-    {
-        history.events[i].data.clear();
-    }
-}
-
-bool IGisItem::isReadOnly() const
-{
-    return !(flags & eFlagWriteAllowed) || isOnDevice();
-}
-
-bool IGisItem::isTainted() const
-{
-    return flags & eFlagTainted;
-}
-
-qint32 IGisItem::isOnDevice() const
-{
-    IGisProject * project = getParentProject();
-    if(nullptr == project)
-    {
-        return false;
-    }
-    return project->isOnDevice();
-}
-
-bool IGisItem::setReadOnlyMode(bool readOnly)
-{
-    // if the item is on a device no change is allowed
-    if(isOnDevice())
-    {
-        return false;
-    }
-
-    // test if it is a change at all
-    if(isReadOnly() == readOnly)
-    {
-        return true;
-    }
-
-    // warn if item is external and read only
-    if(!(flags & (eFlagCreatedInQms|eFlagTainted)))
-    {
-        SETTINGS;
-        bool doNotAsk = cfg.value("Dialog/Items/ReadOnly/doNotAsk", false).toBool();
-
-        if(isReadOnly() && !readOnly && !doNotAsk)
-        {
-            CCanvas::setOverrideCursor(Qt::ArrowCursor, "setReadOnlyMode");
-
-            QCheckBox * checkBox = new QCheckBox(tr("Never ask again."), 0);
-            QString msg = tr("<h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.").arg(getName());
-            QMessageBox box(QMessageBox::Warning, tr("Read Only Mode..."), msg, QMessageBox::Ok|QMessageBox::Abort, CMainWindow::getBestWidgetForParent());
-            box.setDefaultButton(QMessageBox::Ok);
-            box.setCheckBox(checkBox);
-            int res = box.exec();
-
-            CCanvas::restoreOverrideCursor("setReadOnlyMode");
-
-            if(res != QMessageBox::Ok)
-            {
-                return false;
-            }
-
-            cfg.setValue("Dialog/Items/ReadOnly/doNotAsk", checkBox->isChecked());
-        }
-    }
-
-    // finally change flag
-    if(readOnly)
-    {
-        flags &= ~eFlagWriteAllowed;
-    }
-    else
-    {
-        flags |= eFlagWriteAllowed;
-    }
-
-    updateHistory();
-    return true;
-}
-
-
-const IGisItem::key_t &IGisItem::getKey() const
-{
-    if(key.item.isEmpty() || key.project.isEmpty())
-    {
-        genKey();
-    }
-    return key;
-}
-
-const QString& IGisItem::getHash()
-{
-    if(history.histIdxCurrent == NOIDX)
-    {
-        return noKey;
-    }
-    return history.events[history.histIdxCurrent].hash;
-}
-
-
-const QString& IGisItem::getLastDatabaseHash()
-{
-    if(lastDatabaseHash.isEmpty())
-    {
-        lastDatabaseHash = getHash();
-    }
-
-    return lastDatabaseHash;
-}
-
-void IGisItem::setLastDatabaseHash(quint64 id, QSqlDatabase& db)
-{
-    lastDatabaseHash = getHash();
-}
-
-QColor IGisItem::str2color(const QString& name)
-{
-    for(size_t i = 0; i < colorMapSize; i++)
-    {
-        if(QString(colorMap[i].name).toUpper() == name.toUpper())
-        {
-            return colorMap[i].color;
-        }
-    }
-
-    return QColor(name);
-}
-
-QString IGisItem::color2str(const QColor& color)
-{
-    for(size_t i = 0; i < colorMapSize; i++)
-    {
-        if(colorMap[i].color == color)
-        {
-            return colorMap[i].name;
-        }
-    }
-
-    return "";
-}
-
-void IGisItem::splitLineToViewport(const QPolygonF& line, const QRectF& extViewport, QList<QPolygonF>& lines)
-{
-    if(line.isEmpty())
-    {
-        return;
-    }
-
-    QPointF ptt;
-    QPointF pt = line[0];
-
-    QPolygonF subline;
-    subline << pt;
-
-    const int size = line.size();
-    for(int i = 1; i < size; i++)
-    {
-        QPointF pt1 = line[i];
-
-        if(!GPS_Math_LineCrossesRect(pt, pt1, extViewport))
-        {
-            pt = pt1;
-            if(subline.size() > 1)
-            {
-                lines << subline;
-            }
-            subline.clear();
-            subline << pt;
-            continue;
-        }
-
-        ptt = pt1 - pt;
-        if(ptt.manhattanLength() >= 5)
-        {
-            subline << pt1;
-            pt = pt1;
-        }
-    }
-
-    if(subline.size() > 1)
-    {
-        lines << subline;
-    }
-}
-
-QString IGisItem::removeHtml(const QString &str)
-{
-    QTextDocument html;
-    html.setHtml(str);
-    return html.toPlainText();
-}
-
-QString IGisItem::html2Dev(const QString& str, bool strictGpx11)
-{
-    // device or not, an empty text should never be enclosed in HTML tags
-    if(removeHtml(str).simplified().isEmpty())
-    {
-        return "";
-    }
-
-    return (isOnDevice() == IDevice::eTypeGarmin) || strictGpx11 ? removeHtml(str) : str;
-}
-
-QString IGisItem::toLink(bool isReadOnly, const QString& href, const QString& str, const QString &key)
-{
-    if(isReadOnly)
-    {
-        return QString("%1").arg(str);
-    }
-    if(key.isEmpty())
-    {
-        return QString("<a href='%1'>%2</a>").arg(href).arg(str);
-    }
-    else
-    {
-        return QString("<a href='%1?key=%3'>%2</a>").arg(href).arg(str).arg(key);
-    }
-}
-
-QString IGisItem::createText(bool isReadOnly, const QString& cmt, const QString& desc, const QList<link_t>& links, const QString &key)
-{
-    QString str;
-    bool isEmpty;
-
-    isEmpty = removeHtml(desc).simplified().isEmpty();
-    if(!isReadOnly || !isEmpty)
-    {
-        str += toLink(isReadOnly, "description", tr("<h4>Description:</h4>"), key);
-        if(removeHtml(desc).simplified().isEmpty())
-        {
-            str += tr("<p>--- no description ---</p>");
-        }
-        else
-        {
-            str += desc;
-        }
-    }
-
-    isEmpty = removeHtml(cmt).simplified().isEmpty();
-    if(!isReadOnly || !isEmpty)
-    {
-        str += toLink(isReadOnly, "comment", tr("<h4>Comment:</h4>"), key);
-        if(isEmpty)
-        {
-            str += tr("<p>--- no comment ---</p>");
-        }
-        else
-        {
-            str += cmt;
-        }
-    }
-
-    isEmpty = links.isEmpty();
-    if(!isReadOnly || !isEmpty)
-    {
-        str += toLink(isReadOnly, "links", tr("<h4>Links:</h4>"), key);
-        if(isEmpty)
-        {
-            str += tr("<p>--- no links ---</p>");
-        }
-        else
-        {
-            for(const link_t &link : links)
-            {
-                str += QString("<p><a href='%1'>%2</a></p>").arg(link.uri.toString())
-                       .arg(link.text.isEmpty() ? link.uri.toString() : link.text);
-            }
-        }
-    }
-    return str;
-}
-
-QString IGisItem::createText(bool isReadOnly, const QString& desc, const QList<link_t>& links, const QString& key)
-{
-    QString str;
-    bool isEmpty;
-
-    isEmpty = removeHtml(desc).simplified().isEmpty();
-    if(!isReadOnly || !isEmpty)
-    {
-        str += toLink(isReadOnly, "description", tr("<h4>Description:</h4>"), key);
-        if(removeHtml(desc).simplified().isEmpty())
-        {
-            str += tr("<p>--- no description ---</p>");
-        }
-        else
-        {
-            str += desc;
-        }
-    }
-
-    isEmpty = links.isEmpty();
-    if(!isReadOnly || !isEmpty)
-    {
-        str += toLink(isReadOnly, "links", tr("<h4>Links:</h4>"), key);
-        if(isEmpty)
-        {
-            str += tr("<p>--- no links ---</p>");
-        }
-        else
-        {
-            for(const link_t &link : links)
-            {
-                str += QString("<p><a href='%1'>%2</a></p>").arg(link.uri.toString())
-                       .arg(link.text.isEmpty() ? link.uri.toString() : link.text);
-            }
-        }
-    }
-    return str;
-}
-
-bool IGisItem::isVisible(const QRectF &rect, const QPolygonF& viewport, CGisDraw *gis)
-{
-    QPolygonF tmp1;
-    tmp1 << rect.topLeft();
-    tmp1 << rect.topRight();
-    tmp1 << rect.bottomRight();
-    tmp1 << rect.bottomLeft();
-
-    gis->convertRad2Px(tmp1);
-
-    QPolygonF tmp2 = viewport;
-    gis->convertRad2Px(tmp2);
-
-    return tmp2.boundingRect().intersects(tmp1.boundingRect());
-}
-
-bool IGisItem::isVisible(const QPointF& point, const QPolygonF& viewport, CGisDraw * gis)
-{
-    QPolygonF tmp2 = viewport;
-    gis->convertRad2Px(tmp2);
-
-    QPointF pt = point;
-    gis->convertRad2Px(pt);
-
-    return tmp2.boundingRect().contains(pt);
-}
-
-bool IGisItem::isChanged() const
-{
-    return text(CGisListWks::eColumnDecoration).contains('*');
-}
-
-bool IGisItem::isWithin(const QRectF& area, selflags_t flags, const QPolygonF& points)
-{
-    if(points.isEmpty())
-    {
-        return false;
-    }
-
-    if(flags & eSelectionExact)
-    {
-        for(const QPointF &point : points)
-        {
-            if(!area.contains(point))
-            {
-                return false;
-            }
-        }
-        return true;
-    }
-    else if(flags & eSelectionIntersect)
-    {
-        for(const QPointF &point : points)
-        {
-            if(area.contains(point))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    return false;
-}
-
-bool IGisItem::getNameAndProject(QString &name, IGisProject *&project, const QString& itemtype)
-{
-    name = QInputDialog::getText(CMainWindow::getBestWidgetForParent(), tr("Edit name..."), tr("Enter new %1 name.").arg(itemtype), QLineEdit::Normal, name);
-    if(name.isEmpty())
-    {
-        return false;
-    }
-
-    project = CGisWorkspace::self().selectProject();
-    return nullptr != project;
-}
-
-IGisItem * IGisItem::newGisItem(quint32 type, quint64 id, QSqlDatabase& db, IGisProject * project)
-{
-    IGisItem *item = nullptr;
-
-    // load item from database
-    switch(type)
-    {
-    case IGisItem::eTypeWpt:
-        item = new CGisItemWpt(id, db, project);
-        break;
-
-    case IGisItem::eTypeTrk:
-        item = new CGisItemTrk(id, db, project);
-        break;
-
-    case IGisItem::eTypeRte:
-        item = new CGisItemRte(id, db, project);
-        break;
-
-    case IGisItem::eTypeOvl:
-        item = new CGisItemOvlArea(id, db, project);
-        break;
-
-    default:
-        ;
-    }
-
-    return item;
-}
diff --git a/src/gis/IGisItem.h b/src/gis/IGisItem.h
deleted file mode 100644
index 0d8c797..0000000
--- a/src/gis/IGisItem.h
+++ /dev/null
@@ -1,618 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef IGISITEM_H
-#define IGISITEM_H
-
-#include <QTreeWidgetItem>
-
-#include <QColor>
-#include <QCoreApplication>
-#include <QDateTime>
-#include <QDomNode>
-#include <QMap>
-#include <QMutex>
-#include <QString>
-#include <QStringList>
-#include <QUrl>
-#include <QVariant>
-
-#include "units/IUnit.h"
-
-class CGisDraw;
-class IScrOpt;
-class IMouse;
-class QSqlDatabase;
-class IGisProject;
-
-
-class IGisItem : public QTreeWidgetItem
-{
-    Q_DECLARE_TR_FUNCTIONS(IGisItem)
-public:
-    struct history_event_t
-    {
-        QDateTime time;
-        QString hash;
-        QString who = "QMapShack";
-        QString icon;
-        QString comment;
-        QByteArray data;
-    };
-
-    struct history_t
-    {
-        history_t() : histIdxInitial(NOIDX), histIdxCurrent(NOIDX)
-        {
-        }
-
-        void reset()
-        {
-            histIdxInitial = NOIDX;
-            histIdxCurrent = NOIDX;
-            events.clear();
-        }
-
-        qint32 histIdxInitial;
-        qint32 histIdxCurrent;
-        QList<history_event_t> events;
-    };
-
-
-    struct link_t
-    {
-        QUrl uri;
-        QString text;
-        QString type;
-    };
-
-    struct wpt_t
-    {
-        wpt_t() :
-            lat(NOFLOAT),
-            lon(NOFLOAT),
-            ele(NOINT),
-            magvar(NOINT),
-            geoidheight(NOINT),
-            sat(NOINT),
-            hdop(NOINT),
-            vdop(NOINT),
-            pdop(NOINT),
-            ageofdgpsdata(NOINT),
-            dgpsid(NOINT)
-        {
-        }
-        // -- all gpx tags - start
-        qreal lat;
-        qreal lon;
-        qint32 ele;
-        QDateTime time;
-        qint32 magvar;
-        qint32 geoidheight;
-        QString name;
-        QString cmt;
-        QString desc;
-        QString src;
-        QList<link_t> links;
-        QString sym;
-        QString type;
-        QString fix;
-        qint32 sat;
-        qint32 hdop;
-        qint32 vdop;
-        qint32 pdop;
-        qint32 ageofdgpsdata;
-        qint32 dgpsid;
-        // -- all gpx tags - stop
-        QMap<QString, QVariant> extensions;
-    };
-
-    /// never ever change these numbers. it will break binary data files
-    enum type_e
-    {
-        eTypeWpt = 1
-        , eTypeTrk = 2
-        , eTypeRte = 3
-        , eTypeOvl = 4
-        , eTypeMax = 5
-    };
-
-    enum mark_e
-    {
-        eMarkNone      = 0
-        ,eMarkChanged   = 0x00000001
-        ,eMarkNotPart   = 0x00000002
-        ,eMarkNotInDB   = 0x00000004
-    };
-
-    enum selection_e
-    {
-        eSelectionNone          = 0
-        , eSelectionExact       = 0x00000001
-        , eSelectionIntersect   = 0x00000002
-        , eSelectionTrk         = 0x80000000
-        , eSelectionWpt         = 0x40000000
-        , eSelectionRte         = 0x20000000
-        , eSelectionOvl         = 0x10000000
-    };
-
-    using selflags_t = quint32;
-
-    struct key_t
-    {
-        bool operator==(const key_t& k) const
-        {
-            return (item == k.item) && (project == k.project) && (device == k.device);
-        }
-        bool operator!=(const key_t& k) const
-        {
-            return (item != k.item) || (project != k.project) || (device != k.device);
-        }
-        void clear()
-        {
-            item.clear();
-            project.clear();
-            device.clear();
-        }
-        QString item;
-        QString project;
-        QString device;
-    };
-
-    IGisItem(IGisProject *parent, type_e typ, int idx);
-    virtual ~IGisItem();
-
-    /// this mutex has to be locked when ever the item list is accessed.
-    static QMutex mutexItems;
-
-    /**
-       @brief If the item is part of a database project it will update itself with the database content
-     */
-    virtual void updateFromDB(quint64 id, QSqlDatabase& db);
-
-    /**
-       @brief Update the visual representation of the QTreeWidgetItem
-       @param enable
-       @param disable
-     */
-    virtual void updateDecoration(quint32 enable, quint32 disable);
-
-    /**
-       @brief Save the item's data into a GPX structure
-       @param gpx       the files <gpx> tag to attach the data to
-     */
-    virtual void save(QDomNode& gpx, bool strictGpx11) = 0;
-
-    /**
-       @brief Get key string to identify object
-       @return
-     */
-    const key_t& getKey() const;
-
-    /**
-       @brief Get a hash over the items data.
-
-       Every entry in the history has a hash over the item's serialized data. If the
-       data changes a new history entry is created and a new hash calculated. Thus the
-       has can be used to detect if an item has been changed between the last time the
-       hash was read.
-
-       @return The hash as a string reference.
-     */
-    const QString& getHash();
-
-    /**
-       @brief Get the hash stored in the database when the item was loaded
-
-       @return The hash as a string
-     */
-    const QString& getLastDatabaseHash();
-
-    /**
-       @brief Read the hash stored in the database
-     */
-    void setLastDatabaseHash(quint64 id, QSqlDatabase& db);
-
-    /**
-       @brief Get the icon attached to object
-       @return
-     */
-    virtual const QPixmap& getIcon() const
-    {
-        return icon;
-    }
-    /**
-       @brief Get name of this item.
-       @return A reference to the internal string object
-     */
-    virtual const QString& getName() const = 0;
-
-    /**
-       @brief Get name of this item extended by the project name
-       @return A string object.
-     */
-    virtual QString getNameEx() const;
-
-
-    enum features_e
-    {
-        eFeatureNone            = 0
-        , eFeatureShowName      = 0x00000001
-        , eFeatureShowFullText  = 0x00000002
-        , eFeatureShowActivity  = 0x00000004
-    };
-
-    /**
-       @brief Get a short string with the items properties to be displayed in tool tips or similar
-
-       @param showName          set true if the first line should be the item's name
-       @param features          a combination of features_e types
-
-       @return A string object.
-     */
-    virtual QString getInfo(quint32 features) const = 0;
-
-    virtual const QString& getComment() const = 0;
-    virtual const QString& getDescription() const = 0;
-    virtual const QList<link_t>& getLinks() const = 0;
-    virtual QDateTime getTimestamp() const = 0;
-
-
-    virtual void setComment(const QString& str) = 0;
-    virtual void setDescription(const QString& str) = 0;
-    virtual void setLinks(const QList<link_t>& links) = 0;
-
-    /**
-        @brief Edit content of item.
-
-        This is quite dependent on the item. The default implementation does nothing. It has to be
-        overwritten and the item has to generate what ever is needed to edit/view it's details.
-
-     */
-    virtual void edit()
-    {
-    }
-
-    /**
-       @brief Get the dimension of the item
-
-       All coordinates are in Rad. Items with no
-
-       @return
-     */
-    virtual const QRectF& getBoundingRect() const
-    {
-        return boundingRect;
-    }
-
-    /**
-       @brief Get screen option object to display and handle actions for this item.
-       @param mouse     a pointer to the mouse object initiating the action
-       @return A null pointer is returned if no screen option are available
-     */
-    virtual IScrOpt* getScreenOptions(const QPoint& origin, IMouse * mouse)
-    {
-        return nullptr;
-    }
-
-    /**
-       @brief Get a point of the item that is close by the given screen pixel coordinate
-       @param point     a point in screen pixels
-       @return If no point is found NOPOINTF is returned.
-     */
-    virtual QPointF getPointCloseBy(const QPoint& point)
-    {
-        return NOPOINTF;
-    }
-
-    /**
-       @brief Test if the item is close to a given pixel coordinate of the screen
-
-       @param pos       the coordinate on the screen in pixel
-       @return If no point can be found NOPOINTF is returned.
-     */
-    virtual bool isCloseTo(const QPointF& pos) = 0;
-
-    virtual bool isWithin(const QRectF& area, selflags_t mode) = 0;
-
-    /**
-       @brief Receive the current mouse position
-
-       The default does nothing. Override if needed.
-
-       @param pos   the mouse position on the screen in pixel
-     */
-    virtual void mouseMove(const QPointF& pos)
-    {
-        Q_UNUSED(pos);
-    }
-    void mousePress(const QPointF& pos)
-    {
-        Q_UNUSED(pos);
-    }
-    void mouseRelease(const QPointF& pos)
-    {
-        Q_UNUSED(pos);
-    }
-
-
-    /**
-       @brief Query if this item is read only
-       @return True if it is read only.
-     */
-    bool isReadOnly() const;
-
-    /**
-       @brief Query if the item is imported and was changed
-       @return True if content was changed.
-     */
-    bool isTainted() const;
-
-    /**
-       @brief Check if item is on a GPS device
-       @return The device type (IDevice::type_e). IDevice::eTypeNone if the item is not stored on a device.
-     */
-    qint32 isOnDevice() const;
-
-    /**
-       @brief Check if there are any pending unsaved changes
-       @return True if the are changes to be saved
-     */
-    bool isChanged() const;
-
-    /**
-       @brief Set the read only mode.
-
-       This is quite dependent on the item. The default implementation will display a
-       message box with a warning and ask the user to confirm.
-
-       @param readOnly      set true to make item read only
-
-       @return Return true if the mode change has been accepted.
-     */
-    virtual bool setReadOnlyMode(bool readOnly);
-
-    virtual void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) = 0;
-    virtual void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-    {
-    }
-    virtual void drawLabel(QPainter& p, const QPolygonF& viewport,QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) = 0;
-    virtual void drawHighlight(QPainter& p) = 0;
-
-    virtual void gainUserFocus(bool yes) = 0;
-
-    /**
-       @brief Check for user focus
-
-       @return True if the item has user focus. The default implementation is always false.
-     */
-    virtual bool hasUserFocus() const
-    {
-        return false;
-    }
-
-
-    /**
-       @brief Serialize object out of a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    virtual QDataStream& operator<<(QDataStream& stream) = 0;
-    /**
-       @brief Serialize object into a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    virtual QDataStream& operator>>(QDataStream& stream) const = 0;
-
-    /**
-       @brief Get read access to history of changes
-
-       @return A reference to the history structure.
-     */
-    const history_t& getHistory() const
-    {
-        return history;
-    }
-
-    /**
-       @brief Load a given state of change from the history
-       @param idx
-     */
-    void loadHistory(int idx);
-
-    /**
-       @brief Remove all history entries younger than the current selected one.
-     */
-    void cutHistoryAfter();
-
-    /**
-       @brief Remove all history entries older than the current selected one.
-     */
-    void cutHistoryBefore();
-
-    /**
-       @brief Create a clone of itself and pass back the pointer
-
-       Add the cloned item to the project with the same index as the original
-
-       @return The pointer of the cloned item
-     */
-    virtual IGisItem * createClone() = 0;
-
-
-    IGisProject * getParentProject() const;
-
-    /**
-       @brief Remove all HTML tags from a string
-       @param str the string
-       @return A string without HTML tags
-     */
-    static QString removeHtml(const QString &str);
-    /**
-       @brief Create a HTML formatted text with comment, description and link section.
-
-       Depending on the isReadOnly flag the section headers are links to trigger a function
-
-       @param isReadOnly    true if the text should have no active links
-       @param cmt           the comment string
-       @param desc          the description string
-       @param links         a list of links
-       @param key           some key to be sent with the header links
-       @return The formatted text ready to be used.
-     */
-    static QString createText(bool isReadOnly, const QString& cmt, const QString& desc, const QList<link_t>& links, const QString& key = "");
-    /**
-       @brief Create a HTML formatted text with description and link section.
-
-       Depending on the isReadOnly flag the section headers are links to trigger a function
-
-       @param isReadOnly    true if the text should have no active links
-       @param desc          the description string
-       @param links         a list of links
-       @param key           some key to be sent with the header links
-       @return The formatted text ready to be used.
-     */
-    static QString createText(bool isReadOnly, const QString& desc, const QList<link_t>& links, const QString& key = "");
-    /**
-       @brief Create a HTML formatted text with a link.
-
-       Depending on the isReadOnly flag the section headers are links to trigger a function
-
-       @param isReadOnly    true if the text should have no active links
-       @param href          the link address
-       @param str           the link's string
-       @param key           some key to be sent with the link
-       @return The formated text ready to be used.
-     */
-    static QString toLink(bool isReadOnly, const QString& href, const QString& str, const QString& key);
-
-    /**
-       @brief Unified handler to get a new item name and a pointer to the traget project
-
-       @param name      a reference to a string object with the default name and to receive the name
-       @param project   a reference to a IGisProject pointer. On success it will point to the project instance
-       @param itemtype  a string to be used for the item type in the dialogs
-
-
-       @return Returns true on success. Otherwise false.
-     */
-    static bool getNameAndProject(QString &name, IGisProject *&project, const QString &itemtype);
-
-
-    static IGisItem * newGisItem(quint32 type, quint64 id, QSqlDatabase& db, IGisProject * project);
-
-
-    /// a no key value that can be used to nullify references.
-    const static QString noKey;
-
-    const static QString noName;
-
-    struct color_t
-    {
-        const char   *name;
-        const QColor color;
-        const QString bullet;
-    };
-
-    static const color_t colorMap[];
-    static const size_t colorMapSize;
-
-protected:
-    /// set icon of QTreeWidgetItem
-    virtual void setSymbol() = 0;
-    /// read waypoint data from an XML snippet
-    void readWpt(const QDomNode& xml, wpt_t &wpt);
-    /// write waypoint data to an XML snippet
-    void writeWpt(QDomElement &xml, const wpt_t &wpt, bool strictGpx11);
-    /// generate a unique key from item's data
-    virtual void genKey() const;
-    /// setup the history structure right after the creation of the item
-    void setupHistory();
-    /// update current history entry (e.g. to save the flags)
-    virtual void updateHistory();
-    /// convert a color string from GPX to a QT color
-    QColor str2color(const QString& name);
-    /// convert a QT color to a string to be used in a GPX file
-    QString color2str(const QColor &color);
-    /// to optimize drawing of large polylines split the line into sections that are visible
-    void splitLineToViewport(const QPolygonF& line, const QRectF& extViewport, QList<QPolygonF>& lines);
-    /// call when ever you make a change to the item's data
-    virtual void changed(const QString& what, const QString& icon);
-
-    void loadFromDb(quint64 id, QSqlDatabase& db);
-    bool isVisible(const QRectF& rect, const QPolygonF& viewport, CGisDraw * gis);
-    bool isVisible(const QPointF& point, const QPolygonF& viewport, CGisDraw * gis);
-    bool isWithin(const QRectF& area, selflags_t flags, const QPolygonF& points);
-
-    /**
-       @brief Converts a string with HTML tags to a string without HTML depending on the device
-
-       Some devices e.g. Garmin can not handle HTML.
-
-       @param str   a string
-       @return A string with HTML removed depending on the device
-     */
-    QString html2Dev(const QString& str, bool strictGpx11);
-
-    /// see flags_e for possible flags
-    quint32 flags = 0;
-    /// the item's unique key
-    mutable key_t key;
-    /// each item has an icon for the tree widget
-    QPixmap icon;
-    /// the dimensions of the item
-    QRectF boundingRect;
-    /// that's where the real data is. An item is completely defined by it's history
-    history_t history;
-    /// the hash in the database when the item was loaded/saved
-    QString lastDatabaseHash;
-
-    enum flags_e
-    {
-        eFlagCreatedInQms   = 0x00000001
-        ,eFlagWriteAllowed  = 0x00000002
-        ,eFlagTainted       = 0x00000004
-        ,eFlagWptBubble     = 0x00000100
-        ,eFlagWptNogo      = 0x00000200
-    };
-
-    static inline bool isBlocked(const QRectF& rect, const QList<QRectF> &blockedAreas)
-    {
-        for(const QRectF &r : blockedAreas)
-        {
-            if(rect.intersects(r))
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-};
-
-QDataStream& operator>>(QDataStream& stream, IGisItem::history_t& h);
-QDataStream& operator<<(QDataStream& stream, const IGisItem::history_t& h);
-
-#endif //IGISITEM_H
-
diff --git a/src/gis/IGisLine.h b/src/gis/IGisLine.h
deleted file mode 100644
index f0d1320..0000000
--- a/src/gis/IGisLine.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef IGISLINE_H
-#define IGISLINE_H
-
-#include "units/IUnit.h"
-#include <QPointF>
-#include <QVector>
-
-class QPolygonF;
-class CGisDraw;
-class CDemDraw;
-struct SGisLine;
-
-class IGisLine
-{
-public:
-    IGisLine() = default;
-    virtual ~IGisLine() = default;
-
-    struct subpt_t
-    {
-        subpt_t() = default;
-        subpt_t(const QPointF& pt) : coord(pt) {}
-        subpt_t(const QPointF& pt, const QString &name) : coord(pt), name(name) {}
-        QPointF coord;
-        QPointF pixel;
-        QString name;
-        qint32 ele = NOINT;
-    };
-
-    struct point_t : public subpt_t
-    {
-        point_t() = default;
-        point_t(const QPointF &pt) : subpt_t(pt) {}
-        point_t(const QPointF &pt, const QString &name) : subpt_t(pt, name) {}
-        void resetElevation();
-        QVector<subpt_t> subpts;
-    };
-
-    virtual void setDataFromPolyline(const SGisLine& line) = 0;
-    virtual void getPolylineFromData(SGisLine& line) = 0;
-};
-
-struct SGisLine : public QVector<IGisLine::point_t>
-{
-    void updateElevation(CDemDraw * dem);
-    void updatePixel(CGisDraw * gis);
-};
-
-
-#endif //IGISLINE_H
-
diff --git a/src/gis/IGisWorkspace.ui b/src/gis/IGisWorkspace.ui
deleted file mode 100644
index 2de5785..0000000
--- a/src/gis/IGisWorkspace.ui
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IGisWorkspace</class>
- <widget class="QWidget" name="IGisWorkspace">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>402</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <layout class="QFormLayout" name="formLayout">
-     <property name="horizontalSpacing">
-      <number>3</number>
-     </property>
-     <property name="verticalSpacing">
-      <number>3</number>
-     </property>
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Opacity</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QSlider" name="sliderOpacity">
-       <property name="toolTip">
-        <string>Change the opacity of all GIS Items on the map.</string>
-       </property>
-       <property name="maximum">
-        <number>100</number>
-       </property>
-       <property name="singleStep">
-        <number>10</number>
-       </property>
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string>Filter</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLineEdit" name="lineFilter">
-       <property name="clearButtonEnabled">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QSplitter" name="splitter">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <widget class="CGisListWks" name="treeWks">
-      <property name="contextMenuPolicy">
-       <enum>Qt::CustomContextMenu</enum>
-      </property>
-      <property name="dragEnabled">
-       <bool>true</bool>
-      </property>
-      <property name="dragDropMode">
-       <enum>QAbstractItemView::InternalMove</enum>
-      </property>
-      <property name="selectionMode">
-       <enum>QAbstractItemView::ExtendedSelection</enum>
-      </property>
-      <property name="iconSize">
-       <size>
-        <width>20</width>
-        <height>20</height>
-       </size>
-      </property>
-      <property name="indentation">
-       <number>14</number>
-      </property>
-      <attribute name="headerDefaultSectionSize">
-       <number>100</number>
-      </attribute>
-      <column>
-       <property name="text">
-        <string notr="true"/>
-       </property>
-      </column>
-      <column>
-       <property name="text">
-        <string>Name</string>
-       </property>
-      </column>
-     </widget>
-    </widget>
-   </item>
-  </layout>
-  <action name="actionClearFilter">
-   <property name="icon">
-    <iconset resource="../resources.qrc">
-     <normaloff>:/icons/32x32/Filter.png</normaloff>:/icons/32x32/Filter.png</iconset>
-   </property>
-   <property name="text">
-    <string>Clear Filter</string>
-   </property>
-  </action>
-  <action name="actionSetupFilter">
-   <property name="icon">
-    <iconset resource="../resources.qrc">
-     <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
-   </property>
-   <property name="text">
-    <string>Setup Filter</string>
-   </property>
-  </action>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CGisListWks</class>
-   <extends>QTreeWidget</extends>
-   <header>gis/CGisListWks.h</header>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections>
-  <connection>
-   <sender>actionClearFilter</sender>
-   <signal>triggered()</signal>
-   <receiver>lineFilter</receiver>
-   <slot>clear()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>-1</x>
-     <y>-1</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>228</x>
-     <y>34</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>
diff --git a/src/gis/db/CDBFolderMysql.cpp b/src/gis/db/CDBFolderMysql.cpp
deleted file mode 100644
index 6d1a24c..0000000
--- a/src/gis/db/CDBFolderMysql.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "gis/CGisListDB.h"
-#include "gis/db/CDBFolderMysql.h"
-#include "gis/db/macros.h"
-
-#include <QtSql>
-
-CDBFolderMysql::CDBFolderMysql(const QString &server, const QString &port, const QString &user, const QString & passwd, bool noPasswd, const QString &name, QTreeWidget *parent)
-    : IDBFolderSql(IDB::db, parent)
-    , server(server)
-    , port(port)
-    , user(user)
-    , passwd(passwd)
-    , noPasswd(noPasswd)
-{
-    setToolTip(CGisListDB::eColumnName, tr("All your data grouped by folders."));
-    setText(CGisListDB::eColumnName, name);
-
-    if(setupDB(server, port, user, passwd, noPasswd, name, name))
-    {
-        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/MySQL.png"));
-
-        setupFromDB();
-
-        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-    }
-    else
-    {
-        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/MySQLNoConn.png"));
-    }
-}
-
-QString CDBFolderMysql::getDBInfo() const
-{
-    QString str = "<div style='font-weight: bold;'>" + IDB::db.connectionName() + "</div><br />";
-    str += tr("MySQL Database") + "<br />";
-    if(!port.isEmpty())
-    {
-        str += tr("Server: ") + QString("<i>%1:%2</i>").arg(server).arg(port);
-    }
-    else
-    {
-        str += tr("Server: ") + QString("<i>%1</i>").arg(server);
-    }
-
-    if(noPasswd)
-    {
-        str += tr(" (No PW)");
-    }
-
-    if(!isUsable())
-    {
-        const QString &dbError = IDB::db.lastError().databaseText();
-        const QString &drError = IDB::db.lastError().driverText();
-
-        str += "<br />" + tr("Error: ") + QString("<span style=\"color:#f00; font-weight:bold;\">%1</span>").arg(dbError.isEmpty() ? drError : dbError);
-    }
-
-    return str;
-}
-
-bool CDBFolderMysql::search(const QString& str, QSqlQuery &query)
-{
-    query.prepare("SELECT id FROM items WHERE MATCH(comment) AGAINST (:str IN BOOLEAN MODE)");
-    query.bindValue(":str", str);
-    QUERY_EXEC(return false);
-
-    return true;
-}
-
-void CDBFolderMysql::copyFolder(quint64 child, quint64 parent) //override;
-{
-    QSqlQuery query(IDB::db);
-    query.prepare("INSERT INTO folder2folder (parent, child) SELECT :parent, :child FROM DUAL WHERE NOT EXISTS (SELECT id FROM folder2folder WHERE parent=:parent AND child=:child)");
-    query.bindValue(":parent", parent);
-    query.bindValue(":child", child);
-    QUERY_EXEC(return );
-}
diff --git a/src/gis/db/CDBFolderMysql.h b/src/gis/db/CDBFolderMysql.h
deleted file mode 100644
index 34ac641..0000000
--- a/src/gis/db/CDBFolderMysql.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CDBFOLDERMYSQL_H
-#define CDBFOLDERMYSQL_H
-
-#include "gis/db/IDBFolderSql.h"
-#include "gis/db/IDBMysql.h"
-
-
-class CDBFolderMysql : public IDBFolderSql, public IDBMysql
-{
-    Q_DECLARE_TR_FUNCTIONS(CDBFolderMysql)
-public:
-    CDBFolderMysql(const QString &server, const QString &port, const QString &user, const QString &passwd, bool noPasswd, const QString &name, QTreeWidget *parent);
-    virtual ~CDBFolderMysql() = default;
-
-    const QString& getServer() const {return server; }
-    const QString& getPort() const {return port; }
-    const QString& getUser() const {return user; }
-    const QString& getPasswd() const {return passwd; }
-    bool hasNoPasswd() const
-    {
-        return noPasswd;
-    }
-
-    QString getDBInfo() const;
-
-    bool search(const QString& str, QSqlQuery& query) override;
-
-    void copyFolder(quint64 child, quint64 parent) override;
-private:
-    const QString server;
-    const QString port;
-    const QString user;
-    const QString passwd;
-    const bool noPasswd;
-};
-
-#endif //CDBFOLDERMYSQL_H
-
diff --git a/src/gis/db/CDBFolderSqlite.cpp b/src/gis/db/CDBFolderSqlite.cpp
deleted file mode 100644
index e7c9515..0000000
--- a/src/gis/db/CDBFolderSqlite.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "gis/CGisListDB.h"
-#include "gis/db/CDBFolderSqlite.h"
-#include "gis/db/macros.h"
-
-#include <QtSql>
-#include <QtWidgets>
-
-CDBFolderSqlite::CDBFolderSqlite(const QString& filename, const QString& name, QTreeWidget *parent)
-    : IDBFolderSql(IDB::db, parent)
-    , filename(filename)
-{
-    setToolTip(CGisListDB::eColumnName, tr("All your data grouped by folders."));
-
-    setText(CGisListDB::eColumnName, name);
-
-    if(setupDB(filename, name, error))
-    {
-        setupFromDB();
-
-        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/SQLite.png"));
-        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-    }
-    else
-    {
-        IDB::db.close();
-
-        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/SQLiteNoConn.png"));
-    }
-}
-
-QString CDBFolderSqlite::getDBInfo() const
-{
-    QString str = "<div style='font-weight: bold;'>" + IDB::db.connectionName() + "</div><br />";
-    str += tr("SQLite Database") + "<br />";
-
-    QString path = IDB::db.databaseName();
-    #ifndef Q_OS_WIN
-    if(path.startsWith(QDir::homePath()))
-    {
-        path = "~" + path.remove(0, QDir::homePath().length());
-    }
-    #endif
-
-    str += tr("File: ") + QString("<i>%1</i>").arg(path);
-
-    if(!isUsable())
-    {
-        str += "<br />" + tr("Error: ") + QString("<span style=\"color:#f00; font-weight:bold;\">%1</span>").arg(error);
-    }
-
-    return str;
-}
-
-
-bool CDBFolderSqlite::search(const QString& str, QSqlQuery& query)
-{
-    query.prepare("SELECT id FROM searchindex WHERE comment MATCH :str");
-    query.bindValue(":str", str);
-    QUERY_EXEC(return false);
-
-    return true;
-}
-
-void CDBFolderSqlite::copyFolder(quint64 child, quint64 parent) //override;
-{
-    QSqlQuery query(IDB::db);
-    query.prepare("INSERT INTO folder2folder (parent, child) SELECT :parent, :child WHERE NOT EXISTS (SELECT parent, child FROM folder2folder WHERE parent=:parent AND child=:child)");
-    query.bindValue(":parent", parent);
-    query.bindValue(":child", child);
-    QUERY_EXEC(return );
-}
diff --git a/src/gis/db/CDBFolderSqlite.h b/src/gis/db/CDBFolderSqlite.h
deleted file mode 100644
index 0b0c2e5..0000000
--- a/src/gis/db/CDBFolderSqlite.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CDBFOLDERSQLITE_H
-#define CDBFOLDERSQLITE_H
-
-#include "gis/db/IDBFolderSql.h"
-#include "gis/db/IDBSqlite.h"
-
-
-class CDBFolderSqlite : public IDBFolderSql, public IDBSqlite
-{
-    Q_DECLARE_TR_FUNCTIONS(CDBFolderSqlite)
-public:
-    CDBFolderSqlite(const QString &filename, const QString &name, QTreeWidget *parent);
-    virtual ~CDBFolderSqlite() {}
-
-    const QString& getFilename()
-    {
-        return filename;
-    }
-
-    QString getDBInfo() const;
-
-    bool search(const QString& str, QSqlQuery &query) override;
-
-    void copyFolder(quint64 child, quint64 parent) override;
-private:
-    QString filename;
-    QString error;
-};
-#endif //CDBFOLDERSQLITE_H
-
diff --git a/src/gis/db/CDBProject.cpp b/src/gis/db/CDBProject.cpp
deleted file mode 100644
index 0262b34..0000000
--- a/src/gis/db/CDBProject.cpp
+++ /dev/null
@@ -1,877 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/CGisDatabase.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/db/CDBProject.h"
-#include "gis/db/CSelectSaveAction.h"
-#include "gis/db/IDB.h"
-#include "gis/db/macros.h"
-#include "gis/gpx/CGpxProject.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/CDetailsPrj.h"
-#include "gis/qms/CQmsProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSettings.h"
-
-
-
-#include <QtSql>
-#include <QtWidgets>
-CDBProject::CDBProject(CGisListWks * parent)
-    : IGisProject(eTypeDb, "", parent)
-    , id(0)
-{
-    setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/DBProject.png"));
-}
-
-CDBProject::CDBProject(const QString& dbName, quint64 id, CGisListWks *parent)
-    : IGisProject(eTypeDb, dbName, parent)
-    , id(id)
-{
-    setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/DBProject.png"));
-    db = QSqlDatabase::database(dbName);
-
-    QSqlQuery query(db);
-    query.prepare("SELECT date, name, data FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    query.next();
-
-    QString date    = query.value(0).toString();
-    QString name    = query.value(1).toString();
-    QByteArray data = query.value(2).toByteArray();
-
-    if(data.isEmpty())
-    {
-        // Make sure the key is reset
-        key.clear();
-        metadata.name = name;
-
-        // The time format can differ by database type
-        if(date.contains('T'))
-        {
-            metadata.time = QDateTime::fromString(date,"yyyy-MM-ddThh:mm:ss");
-        }
-        else
-        {
-            metadata.time = QDateTime::fromString(date,"yyyy-MM-dd hh:mm:ss");
-        }
-
-        // Still no valid date? Bad as we need it to produce an unique key.
-        if(!metadata.time.isValid())
-        {
-            metadata.time = QDateTime::currentDateTimeUtc();
-        }
-
-        query.prepare("UPDATE folders SET keyqms=:keyqms WHERE id=:id");
-        query.bindValue(":keyqms", getKey());
-        query.bindValue(":id", id);
-        QUERY_EXEC(return );
-    }
-    else
-    {
-        QDataStream in(&data, QIODevice::ReadOnly);
-        in.setByteOrder(QDataStream::LittleEndian);
-        in.setVersion(QDataStream::Qt_5_2);
-        *this << in;
-        filename = dbName;
-    }
-
-    setupName(name);
-    setToolTip(CGisListWks::eColumnName, getInfo());
-    updateItems();
-
-    valid = true;
-}
-
-CDBProject::CDBProject(const QString& filename, IDBFolder * parentFolder, CGisListWks *parent)
-    : IGisProject(eTypeDb, parentFolder->getDBName(), parent)
-    , db(parentFolder->getDb())
-{
-    IGisProject * prjIn = IGisProject::create(filename, nullptr);
-    if(prjIn == nullptr)
-    {
-        QMessageBox::information(CMainWindow::self().getBestWidgetForParent(), tr("Failed to load..."),
-                                 tr("Can't load file \"%1\" . It will be skipped.").arg(QFileInfo(filename).completeBaseName()),
-                                 QMessageBox::Ok);
-        return;
-    }
-
-
-    // test if the project has been imported already
-    QSqlQuery query(db);
-    query.prepare("SELECT id FROM folders WHERE keyqms=:keyqms");
-    query.bindValue(":keyqms", prjIn->getKey());
-    QUERY_EXEC(return );
-    if(query.next())
-    {
-        QMessageBox::information(CMainWindow::self().getBestWidgetForParent(), tr("Project already in database..."),
-                                 tr("The project \"%1\" has already been imported into the database. It will be skipped.").arg(prjIn->getName()),
-                                 QMessageBox::Ok);
-        return;
-    }
-
-    // create a new folder in the database
-    id = parentFolder->addFolder(IDBFolder::eTypeProject, prjIn->getName());
-    query.prepare("UPDATE folders SET keyqms=:keyqms WHERE id=:id");
-    query.bindValue(":keyqms", prjIn->getKey());
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-
-
-    // copy data
-    key         = prjIn->getKey();
-    metadata    = prjIn->getMetadata();
-
-    QList<QTreeWidgetItem*> items = prjIn->takeChildren();
-    addChildren(items);
-
-    // set change indication else the item will not be saved
-    for(QTreeWidgetItem * item : items)
-    {
-        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
-        if(gisItem)
-        {
-            gisItem->updateDecoration(IGisItem::eMarkChanged, IGisItem::eMarkNone);
-        }
-    }
-
-    valid = true;
-}
-
-CDBProject::~CDBProject()
-{
-    CEvtW2DAckInfo * info = new CEvtW2DAckInfo(Qt::Unchecked, getId(), getDBName(), getDBHost());
-    CGisDatabase::self().postEventForDb(info);
-}
-
-void CDBProject::restoreDBLink()
-{
-    db = QSqlDatabase::database(filename);
-
-    QSqlQuery query(db);
-    query.prepare("SELECT id FROM folders WHERE keyqms=:keyqms");
-    query.bindValue(":keyqms", getKey());
-    QUERY_EXEC(return );
-    if(query.next())
-    {
-        id = query.value(0).toULongLong();
-        setupName("----");
-        valid = true;
-    }
-}
-
-void CDBProject::setupName(const QString &defaultName)
-{
-    IGisProject::setupName(defaultName);
-
-    // look for a parent folder's name to be used as suffix
-    QSqlQuery query(db);
-    query.prepare("SELECT t1.name FROM folders AS t1 WHERE id=(SELECT parent FROM folder2folder WHERE child=:id) AND (t1.type=:type1 OR t1.type=:type2)");
-    query.bindValue(":id", id);
-    query.bindValue(":type1", IDBFolder::eTypeGroup);
-    query.bindValue(":type2", IDBFolder::eTypeProject);
-    QUERY_EXEC();
-    if(query.next())
-    {
-        nameSuffix   = query.value(0).toString();
-    }
-    setText(CGisListWks::eColumnName, getNameEx());
-}
-
-
-void CDBProject::postStatus(bool updateLostFound)
-{
-    // collect the keys of all child items and post them to the database view
-    CEvtW2DAckInfo * info = new CEvtW2DAckInfo(getId(), getDBName(), getDBHost());
-
-    bool changedItems   = false;
-    const int N         = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(n));
-        if(item)
-        {
-            info->keysChildren << item->getKey().item;
-            changedItems |= item->isChanged();
-        }
-    }
-
-    // check if all items are loaded
-    if(type != eTypeLostFound)
-    {
-        QSqlQuery query(db);
-        query.prepare("SELECT COUNT(*) FROM folder2item WHERE parent=:parent");
-        query.bindValue(":parent", getId());
-        QUERY_EXEC();
-        query.next();
-
-        const int nChildrenAttached = query.value(0).toInt();
-
-        if((nChildrenAttached != 0) && (nChildrenAttached != info->keysChildren.count()))
-        {
-            checkState = Qt::PartiallyChecked;
-        }
-        else
-        {
-            checkState = Qt::Checked;
-        }
-    }
-    else
-    {
-        checkState = Qt::Checked;
-    }
-    info->checkState        = checkState;
-    info->updateLostFound   = updateLostFound;
-
-    // update item counters and track/waypoint correlation
-    // updateItems(); <--- don't! this is causing a crash
-    if(!changedItems)
-    {
-        setText(CGisListWks::eColumnDecoration,autoSave ? "A" : "");
-    }
-
-    CGisDatabase::self().postEventForDb(info);
-}
-
-
-int CDBProject::checkForAction2(IGisItem * item, quint64 &itemId, QString& hashItem, QSqlQuery &query)
-{
-    int action = eActionNone;
-
-    query.prepare("SELECT hash, last_user, last_change FROM items WHERE id=:id");
-    query.bindValue(":id", itemId);
-    QUERY_EXEC(throw eReasonQueryFail);
-
-    if(query.next())
-    {
-        QString hash    = query.value(0).toString();
-        QString user    = query.value(1).toString();
-        QString date    = query.value(2).toString();
-
-        if(hash == hashItem)
-        {
-            // there seems to be no difference
-            return action;
-        }
-
-        hashItem = hash;
-
-        QString msg = tr(
-            "The item %1 has been changed by %2 (%3). \n\n"
-            "To solve this conflict you can create and save a clone, force your version or drop "
-            "your version and take the one from the database"
-            ).arg(item->getNameEx()).arg(user).arg(date);
-
-        QMessageBox msgBox(QMessageBox::Question, tr("Conflict with database..."), msg, QMessageBox::NoButton, CMainWindow::self().getBestWidgetForParent());
-        QAbstractButton* pButClone  = msgBox.addButton(tr("Clone && Save"), QMessageBox::YesRole);
-        QAbstractButton* pButForce  = msgBox.addButton(tr("Force Save"),    QMessageBox::ApplyRole);
-        QAbstractButton* pButUpdate = msgBox.addButton(tr("Take remote"),   QMessageBox::DestructiveRole);
-        msgBox.addButton(QMessageBox::Abort);
-
-        CProgressDialog::setAllVisible(false);
-        msgBox.exec();
-        CProgressDialog::setAllVisible(true);
-
-        if(msgBox.clickedButton() == pButClone)
-        {
-            action = eActionClone;
-        }
-        else if(msgBox.clickedButton() == pButForce)
-        {
-            action = eActionUpdate;
-        }
-        else if(msgBox.clickedButton() == pButUpdate)
-        {
-            action = eActionReload;
-        }
-    }
-    else
-    {
-        // item has been removed. By throwing eReasonConflict
-        // the save procedure is restarted for the item and
-        // the item should be inserted into the database.
-        throw eReasonConflict;
-    }
-
-
-    return action;
-}
-
-void CDBProject::updateItem(IGisItem *&item, quint64 idItem, QSqlQuery &query)
-{
-    // serialize complete history of item
-    QByteArray data;
-    QDataStream in(&data, QIODevice::WriteOnly);
-    in.setByteOrder(QDataStream::LittleEndian);
-    in.setVersion(QDataStream::Qt_5_2);
-    in << item->getHistory();
-
-    // prepare icon to be saved
-    QBuffer buffer;
-    buffer.open(QIODevice::ReadWrite);
-    QPixmap pixmap = item->getIcon();
-    pixmap.save(&buffer, "PNG");
-    buffer.seek(0);
-
-    QString hashInDb = item->getLastDatabaseHash();
-
-    query.prepare("UPDATE items SET type=:type, keyqms=:keyqms, icon=:icon, name=:name, date=:date, comment=:comment, data=:data, hash=:hash WHERE id=:id AND hash=:oldhash");
-    query.bindValue(":type",    item->type());
-    query.bindValue(":keyqms",  item->getKey().item);
-    query.bindValue(":icon",    buffer.data());
-    query.bindValue(":name",    item->getName());
-    query.bindValue(":date",    item->getTimestamp());
-    query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
-    query.bindValue(":data",    data);
-    query.bindValue(":hash",    item->getHash());
-    query.bindValue(":id",      idItem);
-    query.bindValue(":oldhash", hashInDb);
-    QUERY_EXEC(throw eReasonQueryFail);
-
-    if(query.numRowsAffected())
-    {
-        // the update has been successful.
-        // set current hash as database hash.
-        item->setLastDatabaseHash(idItem, db);
-    }
-    else
-    {
-        // there are two reasons why an update does not affect a row
-        // 1) the hash is different because another user changed the item
-        // 2) the id was not found because another user removed the item
-        // 3) the items was completely identical, therefore no row was affected.
-        int action = checkForAction2(item, idItem, hashInDb, query);
-
-        switch(action)
-        {
-        case eActionClone:
-        {
-            IGisItem * item2    = item->createClone();
-            quint64 idItem      = insertItem(item2, query);
-
-            delete item;
-            item = item2;
-
-            query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
-            query.bindValue(":parent", id);
-            query.bindValue(":child", idItem);
-            QUERY_EXEC(throw eReasonQueryFail);
-            break;
-        }
-
-        case eActionUpdate:
-        {
-            // hashInDb has been updated by checkForAction2() by the one stored in the database
-            // therefore the update should succeed now.
-            query.prepare("UPDATE items SET type=:type, keyqms=:keyqms, icon=:icon, name=:name, date=:date, comment=:comment, data=:data, hash=:hash WHERE id=:id AND hash=:oldhash");
-            query.bindValue(":type",    item->type());
-            query.bindValue(":keyqms",  item->getKey().item);
-            query.bindValue(":icon",    buffer.data());
-            query.bindValue(":name",    item->getName());
-            query.bindValue(":date",    item->getTimestamp());
-            query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
-            query.bindValue(":data",    data);
-            query.bindValue(":hash",    item->getHash());
-            query.bindValue(":id",      idItem);
-            query.bindValue(":oldhash", hashInDb);
-            QUERY_EXEC(throw eReasonQueryFail);
-
-            if(query.numRowsAffected())
-            {
-                item->setLastDatabaseHash(idItem, db);
-            }
-            else
-            {
-                // in the case someone updated the item between calling
-                // checkForAction2() and this update our update fails.
-                // In this case we throw eReasonConflict to restart the
-                // save procedure for this item.
-                throw eReasonConflict;
-            }
-            break;
-        }
-
-        case eActionReload:
-            item->updateFromDB(idItem, db);
-            break;
-        }
-    }
-}
-
-quint64 CDBProject::insertItem(IGisItem * item, QSqlQuery &query)
-{
-    quint64 idItem = 0;
-
-    // serialize complete history of item
-    QByteArray data;
-    QDataStream in(&data, QIODevice::WriteOnly);
-    in.setByteOrder(QDataStream::LittleEndian);
-    in.setVersion(QDataStream::Qt_5_2);
-    in << item->getHistory();
-
-    // prepare icon to be saved
-    QBuffer buffer;
-    buffer.open(QIODevice::ReadWrite);
-    QPixmap pixmap = item->getIcon();
-    pixmap.save(&buffer, "PNG");
-    buffer.seek(0);
-
-    query.prepare("INSERT INTO items (type, keyqms, icon, name, date, comment, data, hash) VALUES (:type, :keyqms, :icon, :name, :date, :comment, :data, :hash)");
-    query.bindValue(":type",    item->type());
-    query.bindValue(":keyqms",  item->getKey().item);
-    query.bindValue(":icon",    buffer.data());
-    query.bindValue(":name",    item->getName());
-    query.bindValue(":date",    item->getTimestamp());
-    query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
-    query.bindValue(":data",    data);
-    query.bindValue(":hash",    item->getHash());
-    QUERY_EXEC(throw eReasonQueryFail);
-
-    if(query.numRowsAffected())
-    {
-        idItem = IDB::getLastInsertID(db, "items");
-        if(idItem == 0)
-        {
-            qDebug() << "childId equals 0. bad.";
-            throw eReasonUnexpected;
-        }
-        item->setLastDatabaseHash(idItem, db);
-    }
-    else
-    {
-        throw eReasonConflict;
-    }
-
-    return idItem;
-}
-
-int CDBProject::checkForAction1(IGisItem * item, quint64& itemId, int& lastResult, QSqlQuery &query)
-{
-    int action = eActionNone;
-
-    // test if item exists in database
-    quint32 itemType = 0;
-    query.prepare("SELECT id, type FROM items WHERE keyqms=:keyqms");
-    query.bindValue(":keyqms", item->getKey().item);
-    QUERY_EXEC(throw eReasonQueryFail);
-
-
-    if(query.next())
-    {
-        itemId      = query.value(0).toULongLong();
-        itemType    = query.value(1).toUInt();
-
-        // check if relation already exists.
-        query.prepare("SELECT id FROM folder2item WHERE parent=:parent AND child=:child");
-        query.bindValue(":parent", id);
-        query.bindValue(":child", itemId);
-        QUERY_EXEC(throw eReasonQueryFail);
-
-        if(!query.next())
-        {
-            // item is already in database but folder relation does not exit
-            int result  = lastResult;
-
-            if(lastResult == CSelectSaveAction::eResultNone)
-            {
-                // Build the dialog to ask for user action
-                IGisItem * item1 = IGisItem::newGisItem(itemType, itemId, db, nullptr);
-
-                if(nullptr == item1)
-                {
-                    qDebug() << "no item to compare!?.";
-                    throw eReasonUnexpected;
-                }
-
-                CSelectSaveAction dlg(item, item1, CMainWindow::self().getBestWidgetForParent());
-                dlg.exec();
-
-                result = dlg.getResult();
-                if(dlg.allOthersToo())
-                {
-                    lastResult = result;
-                }
-            }
-
-            if(result == CSelectSaveAction::eResultNone)
-            {
-                // no decision by user, cancel operation.
-                // this is different to a skip as a skip will
-                // just skip saving the data, but the item to folder
-                // link will be still processed.
-                return eActionNone;
-            }
-
-            // the item is in the database and has no relation to the folder -> update only if the user confirms.
-            action = eActionLink;
-
-            switch(result)
-            {
-            case CSelectSaveAction::eResultSave:
-                action |= eActionUpdate;
-                break;
-
-            case CSelectSaveAction::eResultSkip:
-                action |= eActionReload;
-                break;
-
-            case CSelectSaveAction::eResultClone:
-                action |= eActionClone;
-                break;
-            }
-        }
-        else
-        {
-            // the item is in the database and has a relation to the folder -> simply update item
-            action = eActionUpdate;
-        }
-    }
-    else
-    {
-        action = eActionInsert|eActionLink;
-    }
-
-    return action;
-}
-
-
-bool CDBProject::save()
-{
-    QSqlQuery query(db);
-    bool stop       = false;
-    bool success    = true;
-    int lastResult  = CSelectSaveAction::eResultNone;
-
-    // check if project is still part of the database
-    query.prepare("SELECT keyqms FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return false);
-    if(!query.next())
-    {
-        QMessageBox::critical(CMainWindow::self().getBestWidgetForParent()
-                              , tr("Missing folder...")
-                              , tr("Failed to save project. The folder has been deleted in the database.")
-                              , QMessageBox::Abort
-                              );
-        return false;
-    }
-
-    int N = childCount();
-    PROGRESS_SETUP(tr("Save ..."), 0, N, CMainWindow::getBestWidgetForParent());
-
-    for(int i = 0; (i < N) && !stop; i++)
-    {
-        try
-        {
-            PROGRESS(i, throw eReasonCancel);
-
-            IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-            if(nullptr == item)
-            {
-                continue;
-            }
-
-            // skip unchanged items
-            if(!item->isChanged())
-            {
-                continue;
-            }
-
-            quint64 idItem = 0;
-
-            int action = checkForAction1(item, idItem, lastResult, query);
-
-            if(action & eActionInsert)
-            {
-                idItem = insertItem(item, query);
-            }
-
-            if(action & eActionUpdate)
-            {
-                updateItem(item, idItem, query);
-            }
-
-            if(action & eActionReload)
-            {
-                item->updateFromDB(idItem, db);
-            }
-
-
-            if(action & eActionClone)
-            {
-                IGisItem * item2 = item->createClone();
-                idItem = insertItem(item2, query);
-
-                delete item;
-                item = item2;
-            }
-
-            if((action & eActionLink) && (idItem != 0))
-            {
-                query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
-                query.bindValue(":parent", id);
-                query.bindValue(":child", idItem);
-                QUERY_EXEC(throw eReasonQueryFail);
-            }
-            item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged|IGisItem::eMarkNotPart|IGisItem::eMarkNotInDB);
-        }
-        catch(reasons_e reason)
-        {
-            CProgressDialog::setAllVisible(false);
-            switch(reason)
-            {
-            case eReasonQueryFail:
-                QMessageBox::critical(&progress, tr("Error"), tr("There was an unexpected database error:\n\n%1").arg(query.lastError().text()), QMessageBox::Abort);
-
-            case eReasonCancel:
-            case eReasonUnexpected:
-                stop    = true;
-                success = false;
-                break;
-
-            case eReasonConflict:
-                i--;
-                break;
-            }
-
-            CProgressDialog::setAllVisible(true);
-        }
-    }
-
-    // serialize metadata of project
-    QByteArray data;
-    QDataStream in(&data, QIODevice::WriteOnly);
-    in.setByteOrder(QDataStream::LittleEndian);
-    in.setVersion(QDataStream::Qt_5_2);
-    *this >> in;
-
-    // update folder entry in database
-    query.prepare("UPDATE folders SET name=:name, comment=:comment, data=:data, sortmode=:sortmode WHERE id=:id");
-    query.bindValue(":name", getName());
-    query.bindValue(":comment", getInfo());
-    query.bindValue(":data", data);
-    query.bindValue(":sortmode", getSortingFolder());
-    query.bindValue(":id", getId());
-    QUERY_EXEC(return false);
-
-    postStatus(true);
-    // update change flag
-    updateDecoration();
-    return success;
-}
-
-
-void CDBProject::showItems(CEvtD2WShowItems * evt)
-{
-    bool restoreDlgDetails = false;
-    if(evt->addItemsExclusively)
-    {
-        restoreDlgDetails = !dlgDetails.isNull();
-        delete dlgDetails;
-
-        qDeleteAll(takeChildren());
-    }
-
-    for(const evt_item_t &item : evt->items)
-    {
-        IGisItem * gisItem = IGisItem::newGisItem(item.type, item.id, db, this);
-
-        /* [Issue #72] Database/Workspace inconsistency in QMS 1.4.0
-
-           When an item with no key is loaded it is "healed". The healing
-           will mark it as changed. To avoid this save all items that are
-           marked as changed right after loading from the database.
-
-         */
-        if(gisItem && gisItem->isChanged())
-        {
-            bool success = true;
-            try
-            {
-                QSqlQuery query(db);
-                updateItem(gisItem, item.id, query);
-            }
-            catch(int)
-            {
-                success = false;
-            }
-
-            if(success)
-            {
-                gisItem->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
-            }
-        }
-    }
-
-    sortItems();
-    postStatus(false);
-    setToolTip(CGisListWks::eColumnName, getInfo());
-
-    if(restoreDlgDetails)
-    {
-        edit();
-    }
-}
-
-void CDBProject::hideItems(CEvtD2WHideItems * evt)
-{
-    IGisItem::key_t key;
-    key.project = getKey();
-
-    QMessageBox::StandardButtons last = QMessageBox::YesToAll;
-
-    for(const QString &k : evt->keys)
-    {
-        key.item = k;
-        delItemByKey(key, last);
-    }
-
-    postStatus(false);
-    setToolTip(CGisListWks::eColumnName, getInfo());
-}
-
-
-void CDBProject::update()
-{
-    Qt::CheckState state = checkState;
-
-    if(isChanged())
-    {
-        QString msg = tr("The project '%1' is about to update itself from the database. However there are changes not saved.").arg(getName());
-        int res = QMessageBox::question(CMainWindow::self().getBestWidgetForParent(), tr("Save changes?"), msg, QMessageBox::Save|QMessageBox::Ignore|QMessageBox::Abort, QMessageBox::Save);
-
-        if(res == QMessageBox::Abort)
-        {
-            return;
-        }
-        if(res == QMessageBox::Save)
-        {
-            if(!save())
-            {
-                return;
-            }
-        }
-    }
-
-    // read project properties
-    QSqlQuery query(db);
-    query.prepare("SELECT date, name, data FROM folders WHERE id=:id");
-    query.bindValue(":id", getId());
-    QUERY_EXEC(return );
-    query.next();
-
-    QString name    = query.value(1).toString();
-    QByteArray data = query.value(2).toByteArray();
-
-    if(!data.isEmpty())
-    {
-        QDataStream in(&data, QIODevice::ReadOnly);
-        in.setByteOrder(QDataStream::LittleEndian);
-        in.setVersion(QDataStream::Qt_5_2);
-        *this << in;
-        filename = getDBName();
-    }
-
-    setupName(name);
-    setToolTip(CGisListWks::eColumnName, getInfo());
-
-    /*
-        The further proceeding depends on the check state of the project. If the project
-        is partially loaded we simply update all items. If it is completely loaded we
-        reload it.
-     */
-
-    if(state == Qt::Checked)
-    {
-        // get keys of all children attached to the project in the database
-        query.prepare("SELECT id, type FROM items WHERE id IN (SELECT child FROM folder2item WHERE parent=:parent)");
-        query.bindValue(":parent", getId());
-        QUERY_EXEC(return );
-
-        CEvtD2WShowItems * evt = new CEvtD2WShowItems(getId(), getDBName());
-        evt->addItemsExclusively = true;
-
-        while(query.next())
-        {
-            evt->items << evt_item_t(query.value(0).toULongLong(), query.value(1).toUInt());
-        }
-
-        CGisWorkspace::self().postEventForWks(evt);
-    }
-    else
-    {
-        // Iterate over all children and update
-        const int N = childCount();
-        for(int i = 0; i < N; i++)
-        {
-            IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-            if(item == nullptr)
-            {
-                continue;
-            }
-
-            const IGisItem::key_t& key = item->getKey();
-            // update item from database
-            query.prepare("SELECT id FROM items WHERE keyqms=:keyqms");
-            query.bindValue(":keyqms", key.item);
-            QUERY_EXEC(return );
-
-            if(query.next())
-            {
-                // item is in the database
-                quint64 idItem = query.value(0).toULongLong();
-
-                QSqlQuery query2(db);
-                query2.prepare("SELECT id FROM folder2item WHERE parent=:parent AND child=:child");
-                query2.bindValue(":parent", getId());
-                query2.bindValue(":child", idItem);
-                query2.exec();
-
-                if(query2.next())
-                {
-                    // item is connected to this project
-                    item->updateFromDB(idItem, db);
-                    item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
-                }
-                else
-                {
-                    // item is not connected to this project
-                    item->updateFromDB(idItem, db);
-                    item->updateDecoration(IGisItem::eMarkNotPart|IGisItem::eMarkChanged, IGisItem::eMarkNone);
-                }
-            }
-            else
-            {
-                // item is not in the database at all.
-                item->updateDecoration(IGisItem::eMarkNotInDB|IGisItem::eMarkChanged, IGisItem::eMarkNone);
-            }
-        }
-
-        postStatus(false);
-    }
-
-
-    updateDecoration();
-}
-
diff --git a/src/gis/db/CDBProject.h b/src/gis/db/CDBProject.h
deleted file mode 100644
index 2e747bd..0000000
--- a/src/gis/db/CDBProject.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CDBPROJECT_H
-#define CDBPROJECT_H
-
-#include "gis/prj/IGisProject.h"
-#include <QSqlDatabase>
-
-class CEvtD2WShowItems;
-class CEvtD2WHideItems;
-class CQlgtFolder;
-class IDBFolder;
-
-class CDBProject : public IGisProject
-{
-    Q_DECLARE_TR_FUNCTIONS(CDBProject)
-public:
-    CDBProject(CGisListWks * parent);
-    CDBProject(const QString &dbName, quint64 id, CGisListWks * parent);
-    CDBProject(const QString &filename, IDBFolder *parentFolder, CGisListWks *parent);
-    CDBProject(CQlgtFolder& folder);
-    virtual ~CDBProject();
-
-    /**
-       @brief Restore database link after the project has been restored from binary storage.
-
-       Typically this is done after the project has been restored in the workspace on application's startup.
-
-     */
-    void restoreDBLink();
-
-    bool canSave() const override
-    {
-        return true;
-    }
-
-    bool save() override;
-
-    quint64 getId() const
-    {
-        return id;
-    }
-    QString getDBName() const
-    {
-        return db.connectionName();
-    }
-    QString getDBHost() const
-    {
-        return db.hostName();
-    }
-
-    /**
-       @brief Serialize object out of a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    QDataStream& operator<<(QDataStream& stream) override;
-
-    /**
-       @brief Serialize object into a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    QDataStream& operator>>(QDataStream& stream) const override;
-
-    /**
-       @brief Send a CEvtW2DAckInfo event to the database view
-     */
-    void postStatus(bool updateLostFound);
-
-    /**
-       @brief Load items from the database into the project
-
-       @param evt   the event sent by the database view
-     */
-    void showItems(CEvtD2WShowItems * evt);
-    /**
-       @brief Remove items from the project
-
-       Note: This is not the same as for the other projects. The relation in the database
-       is still valid. The item is just not selected to be shown.
-
-       @param evt   the event sent by the database view
-     */
-    void hideItems(CEvtD2WHideItems * evt);
-
-    void update();
-
-protected:
-    /**
-       @brief Setup the items text with the name and suffix
-
-       @param defaultName
-     */
-    void setupName(const QString &defaultName) override;
-
-    /**
-     * @brief Save item's data into an existing database entry
-     *
-     * @param item      the item itself
-     * @param idItem    the 64bit database key
-     */
-    void updateItem(IGisItem *&item, quint64 idItem, QSqlQuery& query);
-
-
-    int checkForAction1(IGisItem * item, quint64 &itemId, int &lastResult, QSqlQuery& query);
-    int checkForAction2(IGisItem * item, quint64 &itemId, QString &hashItem, QSqlQuery& query);
-
-    /**
-     * @brief Add item to database
-     * @param item      the item itself
-     * @return The new 64bit database key
-     */
-    quint64 insertItem(IGisItem * item, QSqlQuery& query);
-
-    QSqlDatabase db;
-    quint64 id = 0;
-
-    enum reasons_e
-    {
-        eReasonCancel     = 0
-        , eReasonQueryFail  = -1
-        , eReasonUnexpected = -2
-        , eReasonConflict   = -3
-    };
-
-    enum action_e
-    {
-        eActionNone = 0x00
-        , eActionLink = 0x01
-        , eActionUpdate = 0x02
-        , eActionInsert = 0x04
-        , eActionClone  = 0x08
-        , eActionReload = 0x10
-    };
-
-    Qt::CheckState checkState = Qt::Unchecked;
-};
-
-#endif //CDBPROJECT_H
-
diff --git a/src/gis/db/CSelectDBFolder.cpp b/src/gis/db/CSelectDBFolder.cpp
deleted file mode 100644
index ec33cc4..0000000
--- a/src/gis/db/CSelectDBFolder.cpp
+++ /dev/null
@@ -1,105 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/db/CDBFolderMysql.h"
-#include "gis/db/CDBFolderSqlite.h"
-#include "gis/db/CSelectDBFolder.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-CSelectDBFolder::CSelectDBFolder(quint64 &id, QString &db, QString &host, QWidget *parent)
-    : QDialog(parent)
-    , id(id)
-    , db(db)
-    , host(host)
-{
-    setupUi(this);
-
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-
-    SETTINGS;
-    cfg.beginGroup("Database");
-    QStringList names = cfg.value("names").toStringList();
-    cfg.beginGroup("Entries");
-    for(const QString &name : names)
-    {
-        if(!db.isEmpty() && (db != name))
-        {
-            continue;
-        }
-
-        cfg.beginGroup(name);
-        QString type = cfg.value("type", "SQLite").toString();
-        if(type == "SQLite")
-        {
-            QString filename = cfg.value("filename","").toString();
-            new CDBFolderSqlite(filename, name, treeWidget);
-        }
-
-        if(type == "MySQL")
-        {
-            QString server  = cfg.value("server","").toString();
-            QString port    = cfg.value("port","").toString();
-            QString user    = cfg.value("user","").toString();
-            QString passwd  = cfg.value("passwd","").toString();
-            bool noPasswd   = cfg.value("noPasswd",false).toBool();
-            new CDBFolderMysql(server, port, user, passwd, noPasswd, name, treeWidget);
-        }
-        cfg.endGroup(); // name
-    }
-    cfg.endGroup(); // Database
-
-    connect(treeWidget, &QTreeWidget::itemExpanded,         this, &CSelectDBFolder::slotItemExpanded);
-    connect(treeWidget, &QTreeWidget::itemSelectionChanged, this, &CSelectDBFolder::slotItemSelectionChanged);
-
-    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectDBFolder");
-}
-
-CSelectDBFolder::~CSelectDBFolder()
-{
-    CCanvas::restoreOverrideCursor("~CSelectDBFolder");
-}
-
-void CSelectDBFolder::slotItemExpanded(QTreeWidgetItem * item)
-{
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
-    if(nullptr != folder)
-    {
-        folder->expanding();
-    }
-}
-
-void CSelectDBFolder::slotItemSelectionChanged()
-{
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(treeWidget->currentItem());
-    if(folder)
-    {
-        id      = folder->getId();
-        db      = folder->getDBName();
-        host    = folder->getDBHost();
-        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
-    }
-    else
-    {
-        id = -1;
-        db.clear();
-        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-    }
-}
diff --git a/src/gis/db/CSelectDBFolder.h b/src/gis/db/CSelectDBFolder.h
deleted file mode 100644
index 43601a8..0000000
--- a/src/gis/db/CSelectDBFolder.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CSELECTDBFOLDER_H
-#define CSELECTDBFOLDER_H
-
-#include "ui_ISelectDBFolder.h"
-#include <QDialog>
-
-class CSelectDBFolder : public QDialog, private Ui::ISelectDBFolder
-{
-    Q_OBJECT
-public:
-    CSelectDBFolder(quint64& id, QString& db, QString& host, QWidget * parent);
-    virtual ~CSelectDBFolder();
-
-private slots:
-    void slotItemExpanded(QTreeWidgetItem * item);
-    void slotItemSelectionChanged();
-
-private:
-    quint64& id;
-    QString& db;
-    QString& host;
-};
-
-#endif //CSELECTDBFOLDER_H
-
diff --git a/src/gis/db/CSelectSaveAction.cpp b/src/gis/db/CSelectSaveAction.cpp
deleted file mode 100644
index 3ac7219..0000000
--- a/src/gis/db/CSelectSaveAction.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/IGisItem.h"
-#include "gis/db/CSelectSaveAction.h"
-#include "helpers/CProgressDialog.h"
-
-CSelectSaveAction::CSelectSaveAction(const IGisItem *src, const IGisItem *tar, QWidget *parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-
-    labelIcon1->setPixmap(src->getIcon());
-    labelInfo1->setText(src->getInfo(IGisItem::eFeatureShowName));
-    labelIcon2->setPixmap(tar->getIcon());
-    labelInfo2->setText(tar->getInfo(IGisItem::eFeatureShowName));
-
-    adjustSize();
-
-    connect(pushSave,  &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
-    connect(pushSkip,  &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
-    connect(pushClone, &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
-
-    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectSaveAction");
-    CProgressDialog::setAllVisible(false);
-}
-
-CSelectSaveAction::~CSelectSaveAction()
-{
-    CCanvas::restoreOverrideCursor("~CSelectSaveAction");
-    CProgressDialog::setAllVisible(true);
-}
-
-bool CSelectSaveAction::allOthersToo()
-{
-    return checkAllOtherToo->isChecked();
-}
-
-void CSelectSaveAction::slotSelectResult()
-{
-    if(sender() == pushSave)
-    {
-        result = eResultSave;
-    }
-    else if(sender() == pushSkip)
-    {
-        result = eResultSkip;
-    }
-    else if(sender() == pushClone)
-    {
-        result = eResultClone;
-    }
-
-    accept();
-}
diff --git a/src/gis/db/CSetupDatabase.cpp b/src/gis/db/CSetupDatabase.cpp
deleted file mode 100644
index 3466671..0000000
--- a/src/gis/db/CSetupDatabase.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/CGisListDB.h"
-#include "gis/db/CSetupDatabase.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-CSetupDatabase::CSetupDatabase(CGisListDB &parent)
-    : QDialog(&parent)
-    , list(parent)
-{
-    setupUi(this);
-
-    lineUser->setText(CMainWindow::getUser());
-
-    connect(toolNewDB,   &QToolButton::clicked,   this, &CSetupDatabase::slotNewDB);
-    connect(toolAddDB,   &QToolButton::clicked,   this, &CSetupDatabase::slotOpenDB);
-    connect(lineName,    &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
-    connect(lineServer,  &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
-    connect(lineUser,    &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
-    connect(radioSqlite, &QRadioButton::clicked,  this, &CSetupDatabase::slotUpdateButtonBox);
-    connect(radioMysql,  &QRadioButton::clicked,  this, &CSetupDatabase::slotUpdateButtonBox);
-    connect(checkMySQLNoPasswd, &QCheckBox::clicked, linePasswd, &QLineEdit::setDisabled);
-
-    if(!QSqlDatabase::isDriverAvailable("QMYSQL"))
-    {
-        gridLayout->removeWidget(frameMysql);
-
-        QString errorTitle = tr("Missing Requirement");
-        QString errorText  = tr("MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href=\"%1\">a look at the wiki</a>.").arg("https://bitbucket.org/maproom/qmapshack/wiki/DocGisDatabaseAddRemove#markdown-header-mysql-565");
-
-        QLabel *errorMissingMySQL = new QLabel(QString("<b>%1</b><br /><br />%2").arg(errorTitle).arg(errorText));
-        errorMissingMySQL->setOpenExternalLinks(true);
-        errorMissingMySQL->setWordWrap(true);
-        gridLayout->addWidget(errorMissingMySQL, 4, 1, Qt::AlignTop);
-
-        radioSqlite->setChecked(true);
-        radioMysql->setDisabled(true);
-    }
-
-    slotUpdateButtonBox();
-}
-
-CSetupDatabase::~CSetupDatabase()
-{
-}
-
-void CSetupDatabase::slotUpdateButtonBox()
-{
-    bool enable = !lineName->text().isEmpty();
-
-    if(radioSqlite->isChecked())
-    {
-        if(labelFilename->text() == "-")
-        {
-            enable = false;
-        }
-        frameSqlite->setEnabled(true);
-        frameMysql->setEnabled(false);
-    }
-    else if(radioMysql->isChecked())
-    {
-        if(lineServer->text().isEmpty())
-        {
-            enable = false;
-        }
-        if(lineUser->text().isEmpty())
-        {
-            enable = false;
-        }
-        frameSqlite->setEnabled(false);
-        frameMysql->setEnabled(true);
-    }
-
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(enable);
-}
-
-
-void CSetupDatabase::accept()
-{
-    QString name = lineName->text();
-    if(list.hasDatabase(name))
-    {
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("There is already a database with name '%1'").arg(name), QMessageBox::Abort);
-        return;
-    }
-
-    QDialog::accept();
-}
-
-
-void CSetupDatabase::slotNewDB()
-{
-    SETTINGS;
-    QString path = cfg.value("Database/lastDatabasePath", QDir::homePath()).toString();
-
-    QString filename = QFileDialog::getSaveFileName(this, tr("New database..."), path, "QMapShack Database (*.db)");
-    if(filename.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(filename);
-    if(fi.suffix().toLower() != "db")
-    {
-        filename += ".db";
-    }
-
-
-    cfg.setValue("Database/lastDatabasePath", fi.absolutePath());
-
-    labelFilename->setText(filename);
-
-    slotUpdateButtonBox();
-}
-
-void CSetupDatabase::slotOpenDB()
-{
-    SETTINGS;
-    QString path = cfg.value("Database/lastDatabasePath", QDir::homePath()).toString();
-
-    QString filename = QFileDialog::getOpenFileName(this, tr("Open database..."), path, "QMapShack Database (*.db)");
-    if(filename.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(filename);
-    if(fi.suffix().toLower() != "db")
-    {
-        filename += ".db";
-    }
-
-
-    cfg.setValue("Database/lastDatabasePath", fi.absolutePath());
-
-    labelFilename->setText(filename);
-
-    slotUpdateButtonBox();
-}
-
-
-bool CSetupDatabase::noPasswd() const
-{
-    return radioMysql->isChecked() && checkMySQLNoPasswd->isChecked();
-}
diff --git a/src/gis/db/IDBFolder.cpp b/src/gis/db/IDBFolder.cpp
deleted file mode 100644
index 7cc8bce..0000000
--- a/src/gis/db/IDBFolder.cpp
+++ /dev/null
@@ -1,640 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/CGisListDB.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/IGisItem.h"
-#include "gis/db/CDBFolderGroup.h"
-#include "gis/db/CDBFolderOther.h"
-#include "gis/db/CDBFolderProject.h"
-#include "gis/db/CDBItem.h"
-#include "gis/db/CExportDatabase.h"
-#include "gis/db/IDB.h"
-#include "gis/db/IDBFolder.h"
-#include "gis/db/IDBFolderSql.h"
-#include "gis/db/macros.h"
-
-#include <QtSql>
-
-IDBFolder::IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidgetItem *parent)
-    : QTreeWidgetItem(parent, type)
-    , db(db)
-    , id(id)
-    , isLoadable(isLoadable)
-{
-}
-
-IDBFolder::IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidget * parent)
-    : QTreeWidgetItem(parent, type)
-    , db(db)
-    , id(id)
-    , isLoadable(isLoadable)
-{
-}
-
-IDBFolder::~IDBFolder()
-{
-}
-
-bool IDBFolder::operator<(const QTreeWidgetItem &other) const
-{
-    const IDBFolder * folder = dynamic_cast<const IDBFolder*>(&other);
-    if(nullptr == folder)
-    {
-        return false;
-    }
-
-
-    return text(CGisListDB::eColumnName) < folder->text(CGisListDB::eColumnName);
-}
-
-IDBFolder * IDBFolder::createFolderByType(QSqlDatabase& db, int type, quint64 id, QTreeWidgetItem * parent)
-{
-    switch(type)
-    {
-    case eTypeGroup:
-        return new CDBFolderGroup(db, id, parent);
-
-    case eTypeProject:
-        return new CDBFolderProject(db, id, parent);
-
-    case eTypeOther:
-        return new CDBFolderOther(db, id, parent);
-
-    default:
-        return nullptr;
-    }
-}
-
-QString IDBFolder::getDBName() const
-{
-    return db.connectionName();
-}
-
-QString IDBFolder::getDBHost() const
-{
-    return db.hostName();
-}
-
-QString IDBFolder::getName() const
-{
-    return text(CGisListDB::eColumnName);
-}
-
-void IDBFolder::setName(const QString& name)
-{
-    QSqlQuery query(db);
-    query.prepare("UPDATE folders SET name=:name WHERE id=:id");
-    query.bindValue(":name", name);
-    query.bindValue(":id", getId());
-    QUERY_EXEC(return );
-
-    setupFromDB();
-}
-
-IDBFolderSql *IDBFolder::getDBFolder()
-{
-    if(type() == eTypeDatabase)
-    {
-        return dynamic_cast<IDBFolderSql*>(this);
-    }
-
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(parent());
-    if(nullptr != folder)
-    {
-        return folder->getDBFolder();
-    }
-    return nullptr;
-}
-
-IDBFolder * IDBFolder::getFolder(quint64 idFolder)
-{
-    if(id == idFolder)
-    {
-        return this;
-    }
-
-    const int N = childCount();
-    for(int n = 0; n < N; n++)
-    {
-        IDBFolder * folder1 = dynamic_cast<IDBFolder*>(child(n));
-        if(nullptr == folder1)
-        {
-            return nullptr;
-        }
-
-        IDBFolder * folder2 = folder1->getFolder(idFolder);
-        if(nullptr != folder2)
-        {
-            return folder2;
-        }
-    }
-
-    return nullptr;
-}
-
-quint64 IDBFolder::addFolder(type_e type, const QString& name)
-{
-    quint64 idChild = IDBFolder::addFolderToDb(type, name, id, db);
-    if(idChild != 0)
-    {
-        createFolderByType(db, type, idChild, this);
-        expanding();
-    }
-    return idChild;
-}
-
-quint64 IDBFolder::addFolderToDb(type_e type, const QString& name, quint64 idParent, QSqlDatabase& db)
-{
-    QSqlQuery query(db);
-    query.prepare("INSERT INTO folders (name, type) VALUES (:name, :type)");
-    query.bindValue(":name", name);
-    query.bindValue(":type", type);
-    QUERY_EXEC(return 0);
-
-    quint64 idChild = IDB::getLastInsertID(db, "folders");
-    if(idChild == 0)
-    {
-        qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
-        return 0;
-    }
-
-    query.prepare("INSERT INTO folder2folder (parent, child) VALUES (:parent, :child)");
-    query.bindValue(":parent", idParent);
-    query.bindValue(":child", idChild);
-    QUERY_EXEC(return 0);
-
-    return idChild;
-}
-
-void IDBFolder::expanding()
-{
-    qDeleteAll(takeChildren());
-    addChildren(QSet<QString>(), false);
-
-    CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
-    CGisWorkspace::self().postEventForWks(evt);
-}
-
-void IDBFolder::update(CEvtW2DAckInfo * info)
-{
-    if(info->id != id)
-    {
-        // forward call if not for local ID
-        for(int i = 0; i < childCount(); i++)
-        {
-            IDBFolder * folder = dynamic_cast<IDBFolder*>(child(i));
-            if(folder)
-            {
-                folder->update(info);
-            }
-        }
-        return;
-    }
-
-    setCheckState(CGisListDB::eColumnCheckbox, info->checkState);
-
-    QSqlQuery query(db);
-    // update text and tooltip
-    query.prepare("SELECT name, comment, sortmode FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    query.next();
-
-    setText(CGisListDB::eColumnName, query.value(0).toString());
-    setToolTip(CGisListDB::eColumnName, query.value(1).toString());
-    sortMode = query.value(2).toUInt();
-
-
-    setChildIndicator();
-
-    if(isExpanded())
-    {
-        qDeleteAll(takeChildren());
-        addChildren(info->keysChildren, false);
-    }
-}
-
-bool IDBFolder::update()
-{
-    QSqlQuery query(db);
-
-    // Step 0: check if folder is still in the database
-    query.prepare("SELECT COUNT(*) FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return false);
-
-    if(!query.next() || query.value(0).toInt() == 0)
-    {
-        qDebug() << text(CGisListDB::eColumnName) << query.value(0).toInt() << id;
-        // return false to mark folder to be deleted
-        return false;
-    }
-
-    // Step 1: get basic properties like name and key
-    query.prepare("SELECT keyqms, name, comment, sortmode FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return false);
-    query.next();
-
-    // update items look on the gui.
-    key = query.value(0).toString();
-    setText(CGisListDB::eColumnName, query.value(1).toString());
-    setToolTip(CGisListDB::eColumnName, query.value(2).toString());
-    sortMode = query.value(3).toUInt();
-
-    // Step 2: Test for children.
-    setChildIndicator();
-
-    // Nothing to do for folders not expanded
-    if(!isExpanded())
-    {
-        return true;
-    }
-
-    /* Step 3: Iterate over all child items.
-     *
-     * There might be new folders to add. This is done collecting all sub-folder IDs in
-     * dbFoldersAdd. Remove every existing folder while iterating over all items. The
-     * left overs are the folders to add.
-     *
-     * Update existing folders. If the update return s false the folder was removed from
-     * the database or an error occurred. In both cases remove the folder item.
-     *
-     * Collect all items in dbItems. They will be removed and the item list is rebuilt
-     * from scratch.
-     */
-    QSet<QString>       activeChildren;
-    QList<CDBItem*>     dbItems;
-    QList<IDBFolder*>   dbFoldersDel;
-
-    // get all folder IDs attached to this folder
-    QList<quint64> dbFoldersAdd;
-    query.prepare("SELECT child FROM folder2folder WHERE parent=:parent");
-    query.bindValue(":parent", id);
-    QUERY_EXEC(return false);
-    while(query.next())
-    {
-        dbFoldersAdd << query.value(0).toULongLong();
-    }
-
-    const int N = childCount();
-    for(int i = 0; i < N; i++)
-    {
-        QTreeWidgetItem * item = child(i);
-
-        // test for folder and update folder
-        // remove the folder from the add list as it is already known
-        // if the update returns false register it for removal
-        IDBFolder * dbFolder = dynamic_cast<IDBFolder*>(item);
-        if(dbFolder != nullptr)
-        {
-            dbFoldersAdd.removeAll(dbFolder->getId());
-            if(dbFolder->update() == false)
-            {
-                dbFoldersDel << dbFolder;
-            }
-            continue;
-        }
-
-        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
-        if(dbItem != nullptr)
-        {
-            if(dbItem->checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
-            {
-                activeChildren << dbItem->getKey();
-            }
-            dbItems << dbItem;
-            continue;
-        }
-    }
-
-    // Step 4: Remove items and folders registered for removal. Add missing folders. Rebuild list of items.
-    qDeleteAll(dbFoldersDel);
-    qDeleteAll(dbItems);
-
-    // add folders
-    query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return false);
-    while(query.next())
-    {
-        quint64 idChild     = query.value(0).toULongLong();
-        quint32 typeChild   = query.value(1).toInt();
-        if(dbFoldersAdd.contains(idChild))
-        {
-            createFolderByType(db, typeChild, idChild, this);
-        }
-    }
-    sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
-
-    // add children
-    addChildren(activeChildren, true);
-    return true;
-}
-
-void IDBFolder::toggle()
-{
-    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
-    {
-        CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(getId(), getDBName());
-        CGisWorkspace::self().postEventForWks(evt1);
-
-        QSqlQuery query(db);
-        if(getId() == 0)
-        {
-            query.prepare("SELECT id, type FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
-        }
-        else
-        {
-            query.prepare("SELECT t1.child, t2.type FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
-            query.bindValue(":id", getId());
-        }
-        QUERY_EXEC(return );
-
-        CEvtD2WShowItems * evt2 = new CEvtD2WShowItems(getId(), getDBName());
-        evt2->addItemsExclusively = true;
-
-        while(query.next())
-        {
-            evt2->items << evt_item_t(query.value(0).toULongLong(), query.value(1).toUInt());
-        }
-        CGisWorkspace::self().postEventForWks(evt2);
-    }
-    else
-    {
-        CEvtD2WHideFolder * evt1 = new CEvtD2WHideFolder(getId(), getDBName());
-        CGisWorkspace::self().postEventForWks(evt1);
-    }
-}
-
-void IDBFolder::remove()
-{
-    IDBFolder * folder = dynamic_cast<IDBFolder*>(parent());
-    if(nullptr == folder)
-    {
-        return;
-    }
-    remove(folder->getId(), getId());
-
-    CEvtD2WHideFolder * evt1 = new CEvtD2WHideFolder(getId(), getDBName());
-    CGisWorkspace::self().postEventForWks(evt1);
-}
-
-
-void IDBFolder::setupFromDB()
-{
-    if(id == 0)
-    {
-        return;
-    }
-
-    QSqlQuery query(db);
-
-    // get basic properties like name and key
-    query.prepare("SELECT keyqms, name, comment, sortmode FROM folders WHERE id=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    query.next();
-
-    key = query.value(0).toString();
-    setText(CGisListDB::eColumnName, query.value(1).toString());
-    setToolTip(CGisListDB::eColumnName, query.value(2).toString());
-    sortMode = query.value(3).toUInt();
-
-    // check if folder has child folders (to set expand indicator)
-    setChildIndicator();
-
-    // if the folder is loadable the checkbox has to be displayed and
-    // an event to query the state has to be sent to the workspace
-    if(isLoadable)
-    {
-        setCheckState(CGisListDB::eColumnCheckbox, Qt::Unchecked);
-        CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
-        CGisWorkspace::self().postEventForWks(evt);
-    }
-}
-
-void IDBFolder::addChildren(const QSet<QString>& activeChildren, bool skipFolders)
-{
-    QSqlQuery query(db);
-
-    if(!skipFolders)
-    {
-        // folders 1st
-        query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
-        query.bindValue(":id", id);
-        QUERY_EXEC(return );
-        while(query.next())
-        {
-            quint64 idChild     = query.value(0).toULongLong();
-            quint32 typeChild   = query.value(1).toInt();
-            createFolderByType(db, typeChild, idChild, this);
-        }
-
-        sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
-    }
-
-    QList<CDBItem*> items;
-    // tracks 2nd
-    query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
-    query.bindValue(":id", id);
-    query.bindValue(":type", IGisItem::eTypeTrk);
-    QUERY_EXEC(return );
-    while(query.next())
-    {
-        quint64 idChild = query.value(0).toULongLong();
-        CDBItem * item = new CDBItem(db, idChild, nullptr);
-        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
-        items << item;
-    }
-    addItemsSorted(items);
-
-    // routes 3rd
-    query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
-    query.bindValue(":id", id);
-    query.bindValue(":type", IGisItem::eTypeRte);
-    QUERY_EXEC(return );
-    while(query.next())
-    {
-        quint64 idChild = query.value(0).toULongLong();
-        CDBItem * item = new CDBItem(db, idChild, nullptr);
-        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
-        items << item;
-    }
-    addItemsSorted(items);
-
-    //waypoints 4th
-    query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
-    query.bindValue(":id", id);
-    query.bindValue(":type", IGisItem::eTypeWpt);
-    QUERY_EXEC(return );
-    while(query.next())
-    {
-        quint64 idChild = query.value(0).toULongLong();
-        CDBItem * item = new CDBItem(db, idChild, nullptr);
-        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
-        items << item;
-    }
-    addItemsSorted(items);
-
-    // overlays 5th
-    query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
-    query.bindValue(":id", id);
-    query.bindValue(":type", IGisItem::eTypeOvl);
-    QUERY_EXEC(return );
-    while(query.next())
-    {
-        quint64 idChild = query.value(0).toULongLong();
-        CDBItem * item = new CDBItem(db, idChild, nullptr);
-        item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
-        items << item;
-    }
-    addItemsSorted(items);
-}
-
-void IDBFolder::remove(quint64 idParent, quint64 idFolder)
-{
-    QSqlQuery query(db);
-    // delete this particular relation first
-    query.prepare("DELETE FROM folder2folder WHERE parent=:parent AND child=:child");
-    query.bindValue(":parent", idParent);
-    query.bindValue(":child", idFolder);
-    QUERY_EXEC();
-
-    query.prepare("SELECT EXISTS(SELECT 1 FROM folder2folder WHERE child=:id LIMIT 1)");
-    query.bindValue(":id", idFolder);
-    QUERY_EXEC();
-    // if there is no other relation delete the children, too.
-    if(!query.next() || (query.value(0).toInt() == 0))
-    {
-        query.prepare("SELECT child FROM folder2folder WHERE parent=:id");
-        query.bindValue(":id", idFolder);
-        QUERY_EXEC();
-        while(query.next())
-        {
-            remove(idFolder, query.value(0).toULongLong());
-        }
-
-        // remove the child items relations
-        query.prepare("DELETE FROM folder2item WHERE parent=:id");
-        query.bindValue(":id", idFolder);
-        QUERY_EXEC();
-
-        // and remove the folder
-        query.prepare("DELETE FROM folders WHERE id=:id");
-        query.bindValue(":id", idFolder);
-        QUERY_EXEC()
-    }
-}
-
-void IDBFolder::updateItemsOnWks()
-{
-    CEvtD2WUpdateItems * evt = new CEvtD2WUpdateItems(getId(), getDBName());
-    CGisWorkspace::self().postEventForWks(evt);
-}
-
-void IDBFolder::setChildIndicator()
-{
-    QSqlQuery query(db);
-
-    // count folders linked to this folder
-    query.prepare("SELECT COUNT(*) FROM folder2folder WHERE parent=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    query.next();
-
-    qint32 nFolders = query.value(0).toInt();
-
-    // count items linked to this folder
-    query.prepare("SELECT COUNT(*) FROM folder2item WHERE parent=:id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return );
-    query.next();
-
-    qint32 nItems = query.value(0).toInt();
-
-    // set indicator according to items
-    if(nFolders || nItems)
-    {
-        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
-    }
-    else
-    {
-        setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicator);
-    }
-}
-
-void IDBFolder::addItemsSorted(QList<CDBItem*>& items)
-{
-    sortItems(items);
-    for(CDBItem * item : items)
-    {
-        addChild(item);
-    }
-    items.clear();
-}
-
-bool sortByName(CDBItem * item1, CDBItem * item2)
-{
-    return item1->text(CGisListDB::eColumnName) < item2->text(CGisListDB::eColumnName);
-}
-
-bool sortByTime(CDBItem * item1, CDBItem * item2)
-{
-    return item1->date < item2->date;
-}
-
-void IDBFolder::sortItems(QList<CDBItem*>& items) const
-{
-    switch(sortMode)
-    {
-    case IGisProject::eSortFolderTime:
-        qSort(items.begin(), items.end(), &sortByTime);
-        break;
-
-    case IGisProject::eSortFolderName:
-        qSort(items.begin(), items.end(), &sortByName);
-        break;
-    }
-}
-
-
-bool IDBFolder::isSiblingFrom(IDBFolder * folder) const
-{
-    if(folder->getId() == getId())
-    {
-        return true;
-    }
-
-    IDBFolder * parentFolder = dynamic_cast<IDBFolder*>(parent());
-    if(parentFolder != nullptr)
-    {
-        return parentFolder->isSiblingFrom(folder);
-    }
-
-    return false;
-}
-
-void IDBFolder::exportToGpx()
-{
-    CExportDatabase dlg(getId(), getDb(), CMainWindow::self().getBestWidgetForParent());
-    dlg.exec();
-}
-
diff --git a/src/gis/db/IDBFolder.h b/src/gis/db/IDBFolder.h
deleted file mode 100644
index 8ea80b8..0000000
--- a/src/gis/db/IDBFolder.h
+++ /dev/null
@@ -1,214 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef IDBFOLDER_H
-#define IDBFOLDER_H
-
-#include "gis/prj/IGisProject.h"
-
-#include <QSqlDatabase>
-#include <QTreeWidgetItem>
-
-class QSqlDatabase;
-class CEvtW2DAckInfo;
-class IDBFolderSql;
-class CDBItem;
-
-
-/**
- * @brief Baseclass for all folders in the database view
- */
-class IDBFolder : public QTreeWidgetItem
-{
-public:
-    enum type_e
-    {
-        eTypeLostFound = 1
-        ,eTypeDatabase = 2
-        ,eTypeGroup    = 3
-        ,eTypeProject  = 4
-        ,eTypeOther    = 5
-    };
-
-    IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidgetItem * parent);
-    IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidget * parent);
-    virtual ~IDBFolder();
-
-    /**
-     * @brief Get the 64bit database key
-     * @return
-     */
-    quint64 getId() const
-    {
-        return id;
-    }
-    QString getDBName() const;
-    QString getDBHost() const;
-
-    QSqlDatabase& getDb(){return db; }
-
-    QString getName() const;
-    void setName(const QString& name);
-
-    /**
-     * @brief Get the database folder that folder is stored in
-     *
-     * @return On success a pointer to the item holding the database is returned.
-     */
-    IDBFolderSql * getDBFolder();
-
-    /**
-     * @brief Search and get access to a subfolder
-     * @param idFolder  the database key of the folder
-     * @return On success a pointer to the item is returned. Else 0.
-     */
-    IDBFolder * getFolder(quint64 idFolder);
-
-    /**
-     * @brief Add a new folder to the database and the treewidget.
-     *
-     * This will call addFolderToDb() and createFolderByType()
-     *
-     * @param type      the type of the new folder
-     * @param name      the name of the new folder
-     * @return The 64bit database key of the new folder. 0 on failure.
-     */
-    virtual quint64 addFolder(type_e type, const QString &name);
-    /**
-     * @brief Add children from database
-     */
-    virtual void expanding();
-    /**
-     * @brief Update item all child items from database
-     *
-     * The event has a list of active items. The item list is created from
-     * scratch and the check state is updated by that list
-     *
-     * @param info  The event object posted by the workspace
-     */
-    virtual void update(CEvtW2DAckInfo * info);
-
-    /**
-     * @brief Update from database
-     *
-     * The database might have been changed by other users. Update list of folders
-     * and update each folder expanded. Rebuild list of items.
-     */
-    virtual bool update();
-
-    /**
-     * @brief Toggle check state of project and post event to workspace.
-     */
-    virtual void toggle();
-    /**
-     * @brief Remove folder from database and post event to workspace
-     */
-    virtual void remove();
-
-    /**
-     * @brief Create a new folder entry into the database table
-     *
-     * The folder will be attached to it's parent folder
-     *
-     * @param type          the type of the new folder
-     * @param name          the name of the new folder
-     * @param idParent      the 64bit database key of the parent
-     * @param db            the database to work on
-     * @return The 64bit database key of the new folder. 0 on failure.
-     */
-    static quint64 addFolderToDb(type_e type, const QString& name, quint64 idParent, QSqlDatabase& db);
-
-    /**
-     * @brief Create a new treeWidgetItem from a folder in the database
-     *
-     * @param db        the database the item belongs to
-     * @param type      the folder type to create
-     * @param id        the database key of the folder
-     * @param parent    the items parent item
-     * @return A pointer to the new treewidgetitem.
-     */
-    static IDBFolder * createFolderByType(QSqlDatabase &db, int type, quint64 id, QTreeWidgetItem *parent);
-
-    bool operator<(const QTreeWidgetItem &other) const override;
-
-    void updateItemsOnWks();
-
-    /**
-       @brief Do a database search.
-
-       This must be overridden by the database folder classes. As a result the query will
-       contain a list of item IDs.
-
-       @param str       The string to search for
-       @param query     The sql query item to use
-     */
-    virtual bool search(const QString& str, QSqlQuery& query)
-    {
-        return false;
-    }
-
-    bool isSiblingFrom(IDBFolder * folder) const;
-
-    void exportToGpx();
-
-protected:
-    /**
-       @brief Setup all item properties
-
-       This will read the database to setup the name, key and tooltip. Additionally it
-       will query for child elements (folders, gis items) and set the expand indicator
-       accordingly. If the folder is loadable the checkbox has to be displayed and the
-       workspace has to be queried for the folder.
-
-     */
-    virtual void setupFromDB();
-
-    /**
-       @brief Add child items like folders, tracks, routes, waypoints and overlays
-
-       The checkbox of active items will be set checked.
-
-       @param activeChildren     a set of item keys that are active on the workspace
-     */
-    virtual void addChildren(const QSet<QString> &activeChildren, bool skipFolders);
-
-    /**
-       @brief Remove a folder to folder relation
-
-       If the folder has no other relation the folder's relation to it's children is removed, too.
-
-       @param idParent      the 64bit database key of the parent folder
-       @param idFolder      the 64bit database key of the child folder to be removed
-     */
-    virtual void remove(quint64 idParent, quint64 idFolder);
-
-    void setChildIndicator();
-
-    void addItemsSorted(QList<CDBItem *> &items);
-    void sortItems(QList<CDBItem *> &items) const;
-
-    QSqlDatabase& db;
-
-    quint64 id;
-    QString key;
-    quint32 sortMode =  IGisProject::eSortFolderTime;
-    bool isLoadable;
-};
-
-#endif //IDBFOLDER_H
-
diff --git a/src/gis/db/IDBFolderSql.cpp b/src/gis/db/IDBFolderSql.cpp
deleted file mode 100644
index 180afc9..0000000
--- a/src/gis/db/IDBFolderSql.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "CMainWindow.h"
-#include "gis/CGisListDB.h"
-#include "gis/db/CDBFolderLostFound.h"
-#include "gis/db/IDBFolderSql.h"
-#include "gis/db/macros.h"
-#include "helpers/CSettings.h"
-
-#include <QtNetwork>
-#include <QtSql>
-
-IDBFolderSql::IDBFolderSql(QSqlDatabase &db, QTreeWidget *parent)
-    : IDBFolder(false, db, eTypeDatabase, 1, parent)
-{
-    socket = new QUdpSocket(this);
-}
-
-void IDBFolderSql::expanding()
-{
-    IDBFolder::expanding();
-
-    folderLostFound  = new CDBFolderLostFound(db, nullptr);
-    insertChild(0, folderLostFound);
-}
-
-void IDBFolderSql::updateLostFound()
-{
-    if(folderLostFound)
-    {
-        folderLostFound->update();
-    }
-}
-
-bool IDBFolderSql::update()
-{
-    QSqlQuery query(db);
-    QList<IDBFolder*> dbFoldersDel;
-
-    /* Database folders are a bit special as there are no items. But a lost & found folder.
-     *
-     * As there can be folders removed from the database and new folders this is a bit tricky.
-     *
-     * dbFoldersAdd is filled with all folders IDs attached with the database folder. Now we
-     * iterate over all existing items and remove their ID from dbFoldersAdd. Additionally
-     * the folder item is updated. If the update returns false, the folders was removed from
-     * the database or an error occurred. In both cases the item is registered for removal in
-     * dbFoldersDel.
-     *
-     * When done with the iteration all folders registered for removal are deleted and the
-     * new ones are created. Finally lost & found is updated.
-     */
-
-    // get all folder IDs attached to this folder
-    QList<quint64> dbFoldersAdd;
-    query.prepare("SELECT child FROM folder2folder WHERE parent=:parent");
-    query.bindValue(":parent", id);
-    QUERY_EXEC(return false);
-    while(query.next())
-    {
-        dbFoldersAdd << query.value(0).toULongLong();
-    }
-
-    const int N = childCount();
-    for(int i = 1; i < N; i++)
-    {
-        IDBFolder * folder = dynamic_cast<IDBFolder*>(child(i));
-        if(folder)
-        {
-            dbFoldersAdd.removeAll(folder->getId());
-            if(!folder->update())
-            {
-                dbFoldersDel << folder;
-            }
-        }
-    }
-
-    qDeleteAll(dbFoldersDel);
-
-    // add folders
-    query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
-    query.bindValue(":id", id);
-    QUERY_EXEC(return false);
-    while(query.next())
-    {
-        quint64 idChild     = query.value(0).toULongLong();
-        quint32 typeChild   = query.value(1).toInt();
-        if(dbFoldersAdd.contains(idChild))
-        {
-            createFolderByType(db, typeChild, idChild, this);
-        }
-    }
-
-    takeChild(0);
-    sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
-    insertChild(0, folderLostFound);
-
-    updateLostFound();
-    return true;
-}
-
-void IDBFolderSql::announceChange() const
-{
-    SETTINGS;
-    bool enabled = cfg.value("Database/listenUpdate", false).toBool();
-    if(!enabled)
-    {
-        return;
-    }
-    quint16 port = cfg.value("Database/port", UDP_PORT).toUInt();
-
-
-    QByteArray msg;
-    QDataStream stream(&msg, QIODevice::WriteOnly);
-    stream.setByteOrder(QDataStream::LittleEndian);
-    stream.setVersion(QDataStream::Qt_5_2);
-
-    quint32 tan = qrand();
-
-    stream << quint32(0);
-    stream << tan;
-    stream << CMainWindow::self().id;
-    stream << db.driverName();
-    stream << getDBName();
-    stream << getDBHost();
-
-    QList<QNetworkInterface> netdevices = QNetworkInterface::allInterfaces();
-    for(const QNetworkInterface &netdevice : netdevices)
-    {
-        QList<QNetworkAddressEntry> networks = netdevice.addressEntries();
-        for(const QNetworkAddressEntry &network : networks)
-        {
-            socket->writeDatagram(msg, network.broadcast(), port);
-            socket->writeDatagram(msg, network.broadcast(), port);
-            socket->writeDatagram(msg, network.broadcast(), port);
-        }
-    }
-}
diff --git a/src/gis/ovl/CDetailsOvlArea.cpp b/src/gis/ovl/CDetailsOvlArea.cpp
deleted file mode 100644
index e64478f..0000000
--- a/src/gis/ovl/CDetailsOvlArea.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/**********************************************************************************************
-    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 "gis/ovl/CDetailsOvlArea.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "helpers/CLinksDialog.h"
-#include "widgets/CTextEditWidget.h"
-
-
-#include <QtWidgets>
-
-CDetailsOvlArea::CDetailsOvlArea(CGisItemOvlArea &area, QWidget * parent)
-    : QDialog(parent)
-    , area(area)
-{
-    setupUi(this);
-
-    QPixmap icon(64,24);
-    for(size_t i = 0; i < CGisItemOvlArea::colorMapSize; ++i)
-    {
-        icon.fill(CGisItemOvlArea::colorMap[i].color);
-        comboColor->addItem(icon,"", CGisItemOvlArea::colorMap[i].color);
-    }
-
-    for(int i = 0; i < OVL_N_STYLES; ++i)
-    {
-        icon.fill(Qt::white);
-        QPainter p(&icon);
-        p.setPen(Qt::black);
-        p.setBrush(CGisItemOvlArea::brushStyles[i]);
-        p.drawRect(icon.rect());
-
-        comboStyle->addItem(icon,"",(int)CGisItemOvlArea::brushStyles[i]);
-    }
-
-
-    for(int i = 0; i < OVL_N_WIDTHS; ++i)
-    {
-        comboBorderWidth->addItem(CGisItemOvlArea::lineWidths[i].string, CGisItemOvlArea::lineWidths[i].width);
-    }
-
-    setupGui();
-
-    if(area.isOnDevice())
-    {
-        toolLock->setDisabled(true);
-    }
-
-
-    connect(comboColor,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetColor);
-    connect(comboBorderWidth, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetWidth);
-    connect(comboStyle,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetStyle);
-
-    connect(checkOpacity,     &QCheckBox::toggled,             this, &CDetailsOvlArea::slotOpyacity);
-    connect(toolLock,         &QToolButton::toggled,           this, &CDetailsOvlArea::slotChangeReadOnlyMode);
-    connect(textCmtDesc,      &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsOvlArea::*)(const QUrl&)>(&CDetailsOvlArea::slotLinkActivated));
-    connect(lineName,         &CLineEdit::textEdited,          this, &CDetailsOvlArea::slotNameChanged);
-    connect(lineName,         &CLineEdit::editingFinished,     this, &CDetailsOvlArea::slotNameChangeFinished);
-    connect(listHistory,      &CHistoryListWidget::sigChanged, this, &CDetailsOvlArea::setupGui);
-}
-
-CDetailsOvlArea::~CDetailsOvlArea()
-{
-}
-
-
-void CDetailsOvlArea::slotSetColor(int idx)
-{
-    if(area.isReadOnly() || originator)
-    {
-        return;
-    }
-
-    area.setColor(idx);
-    setupGui();
-}
-
-void CDetailsOvlArea::slotSetWidth(int idx)
-{
-    if(area.isReadOnly() || originator)
-    {
-        return;
-    }
-    area.setWidth(CGisItemOvlArea::lineWidths[idx].width);
-    setupGui();
-}
-
-void CDetailsOvlArea::slotSetStyle(int idx)
-{
-    if(area.isReadOnly() || originator)
-    {
-        return;
-    }
-
-    area.setStyle(CGisItemOvlArea::brushStyles[idx]);
-    setupGui();
-}
-
-void CDetailsOvlArea::slotOpyacity(bool yes)
-{
-    if(area.isReadOnly() || originator)
-    {
-        return;
-    }
-
-    area.setOpacity(yes);
-    setupGui();
-}
-
-void CDetailsOvlArea::slotChangeReadOnlyMode(bool on)
-{
-    area.setReadOnlyMode(on);
-    setupGui();
-}
-
-void CDetailsOvlArea::slotNameChanged(const QString &name)
-{
-    const QString shownName = name.isEmpty() ? IGisItem::noName : QString(name).replace('&', "&&");
-    setWindowTitle(shownName);
-}
-
-void CDetailsOvlArea::slotNameChangeFinished()
-{
-    lineName->clearFocus();
-
-    const QString& name = lineName->text();
-    slotNameChanged(name);
-
-    if(name != area.getName())
-    {
-        area.setName(name);
-        setupGui();
-    }
-}
-
-void CDetailsOvlArea::slotLinkActivated(const QUrl& url)
-{
-    if(url.toString() == "comment")
-    {
-        CTextEditWidget dlg(area.getComment(), nullptr);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            area.setComment(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "description")
-    {
-        CTextEditWidget dlg(area.getDescription(), nullptr);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            area.setDescription(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "links")
-    {
-        QList<IGisItem::link_t> links = area.getLinks();
-        CLinksDialog dlg(links, this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            area.setLinks(links);
-        }
-        setupGui();
-    }
-    else
-    {
-        QDesktopServices::openUrl(url);
-    }
-}
-
-
-void CDetailsOvlArea::setupGui()
-{
-    if(originator)
-    {
-        return;
-    }
-    originator = true;
-
-    bool isReadOnly = area.isReadOnly();
-    setWindowTitle(area.getName());
-
-    labelTainted->setVisible(area.isTainted());
-    lineName->setText(area.getName());
-    lineName->setReadOnly(isReadOnly);
-
-    comboColor->setCurrentIndex      (area.getColorIdx());
-    comboBorderWidth->setCurrentIndex(comboBorderWidth->findData(area.getWidth()));
-    comboStyle->setCurrentIndex      (comboStyle->findData      (area.getStyle()));
-
-    comboColor->setEnabled      (!isReadOnly);
-    comboBorderWidth->setEnabled(!isReadOnly);
-    comboStyle->setEnabled      (!isReadOnly);
-    checkOpacity->setEnabled    (!isReadOnly);
-
-    checkOpacity->setChecked(area.getOpacity());
-
-    textCmtDesc->document()->clear();
-    textCmtDesc->append(IGisItem::createText(isReadOnly, area.getComment(), area.getDescription(), area.getLinks()));
-    textCmtDesc->moveCursor (QTextCursor::Start);
-    textCmtDesc->ensureCursorVisible();
-
-    int idx = 0;
-    QList<QTreeWidgetItem*> items;
-    const CGisItemOvlArea::area_t& a = area.getAreaData();
-    for(const CGisItemOvlArea::pt_t& pt : a.pts)
-    {
-        QTreeWidgetItem * item = new QTreeWidgetItem();
-
-        item->setText(eColNum,QString::number(idx++));
-
-        // position
-        QString str;
-        IUnit::degToStr(pt.lon, pt.lat, str);
-        item->setText(eColPosition,str);
-        items << item;
-    }
-
-    treeWidget->clear();
-    treeWidget->addTopLevelItems(items);
-    treeWidget->header()->resizeSections(QHeaderView::ResizeToContents);
-
-    toolLock->setChecked(isReadOnly);
-
-    listHistory->setupHistory(area);
-
-    originator = false;
-}
-
diff --git a/src/gis/ovl/CDetailsOvlArea.h b/src/gis/ovl/CDetailsOvlArea.h
deleted file mode 100644
index c4db47f..0000000
--- a/src/gis/ovl/CDetailsOvlArea.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CDETAILSOVLAREA_H
-#define CDETAILSOVLAREA_H
-
-#include "ui_IDetailsOvlArea.h"
-#include <QDialog>
-
-class CGisItemOvlArea;
-
-class CDetailsOvlArea : public QDialog, private Ui::IDetailsOvlArea
-{
-    Q_OBJECT
-public:
-    CDetailsOvlArea(CGisItemOvlArea &area, QWidget * parent);
-    virtual ~CDetailsOvlArea();
-
-private slots:
-    void slotSetColor(int idx);
-    void slotNameChanged(const QString &name);
-    void slotNameChangeFinished();
-    void slotSetWidth(int idx);
-    void slotSetStyle(int idx);
-    void slotOpyacity(bool yes);
-    void slotChangeReadOnlyMode(bool on);
-    void slotLinkActivated(const QUrl& url);
-    void setupGui();
-
-private:
-    enum columns_t
-    {
-        eColNum
-        ,eColPosition
-        ,eColMax
-    };
-
-    CGisItemOvlArea& area;
-
-    bool originator = false;
-};
-
-#endif //CDETAILSOVLAREA_H
-
diff --git a/src/gis/ovl/CGisItemOvlArea.cpp b/src/gis/ovl/CGisItemOvlArea.cpp
deleted file mode 100644
index dd1afb8..0000000
--- a/src/gis/ovl/CGisItemOvlArea.cpp
+++ /dev/null
@@ -1,545 +0,0 @@
-/**********************************************************************************************
-    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 "GeoMath.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisListWks.h"
-#include "gis/ovl/CDetailsOvlArea.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/ovl/CScrOptOvlArea.h"
-#include "gis/prj/IGisProject.h"
-#include "helpers/CDraw.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-#define DEFAULT_COLOR       4
-#define MIN_DIST_CLOSE_TO   10
-
-const CGisItemOvlArea::width_t CGisItemOvlArea::lineWidths[OVL_N_WIDTHS] =
-{
-    {3,  tr("thin")}
-    ,{5,  tr("normal")}
-    ,{9,  tr("wide")}
-    ,{13, tr("strong")}
-};
-
-const Qt::BrushStyle CGisItemOvlArea::brushStyles[OVL_N_STYLES] =
-{
-    Qt::NoBrush
-    , Qt::HorPattern
-    , Qt::VerPattern
-    , Qt::CrossPattern
-    , Qt::BDiagPattern
-    , Qt::FDiagPattern
-    , Qt::DiagCrossPattern
-    , Qt::SolidPattern
-};
-
-
-IGisItem::key_t CGisItemOvlArea::keyUserFocus;
-
-CGisItemOvlArea::CGisItemOvlArea(const SGisLine &line, const QString &name, IGisProject * project, int idx)
-    : IGisItem(project, eTypeOvl, idx)
-{
-    area.name = name;
-    readAreaDataFromGisLine(line);
-
-    flags |=  eFlagCreatedInQms|eFlagWriteAllowed;
-
-    setColor(str2color(""));
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-CGisItemOvlArea::CGisItemOvlArea(const CGisItemOvlArea& parentArea, IGisProject * project, int idx, bool clone)
-    : IGisItem(project, eTypeOvl, idx)
-{
-    history = parentArea.history;
-    loadHistory(history.histIdxCurrent);
-
-    if(clone)
-    {
-        area.name += tr("_Clone");
-        key.clear();
-        history.events.clear();
-        setupHistory();
-    }
-
-    if(parentArea.isOnDevice() || !parentArea.isReadOnly())
-    {
-        flags |= eFlagWriteAllowed;
-    }
-    else
-    {
-        flags &= ~eFlagWriteAllowed;
-    }
-
-    deriveSecondaryData();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-CGisItemOvlArea::CGisItemOvlArea(const QDomNode &xml, IGisProject *project)
-    : IGisItem(project, eTypeOvl, project->childCount())
-{
-    // --- start read and process data ----
-    setColor(penForeground.color());
-    readArea(xml, area);
-    // --- stop read and process data ----
-
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemOvlArea::CGisItemOvlArea(const history_t& hist, const QString &dbHash, IGisProject * project)
-    : IGisItem(project, eTypeOvl, project->childCount())
-{
-    history = hist;
-    loadHistory(hist.histIdxCurrent);
-    if(!dbHash.isEmpty())
-    {
-        lastDatabaseHash = dbHash;
-    }
-}
-
-CGisItemOvlArea::CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeOvl, NOIDX)
-{
-    loadFromDb(id, db);
-}
-
-CGisItemOvlArea::~CGisItemOvlArea()
-{
-    // reset user focus if focused on this track
-    if(key == keyUserFocus)
-    {
-        keyUserFocus.clear();
-    }
-}
-
-IGisItem * CGisItemOvlArea::createClone()
-{
-    int idx = -1;
-    IGisProject * project = getParentProject();
-    if(project)
-    {
-        idx = project->indexOfChild(this);
-    }
-    return new CGisItemOvlArea(*this, project, idx, true);
-}
-
-void CGisItemOvlArea::setSymbol()
-{
-    setColor(str2color(area.color));
-}
-
-bool CGisItemOvlArea::isCloseTo(const QPointF& pos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qreal dist = GPS_Math_DistPointPolyline(polygonArea, pos);
-    return dist < 20;
-}
-
-bool CGisItemOvlArea::isWithin(const QRectF& area, selflags_t flags)
-{
-    return (flags & eSelectionOvl) ? IGisItem::isWithin(area, flags, polygonArea) : false;
-}
-
-QPointF CGisItemOvlArea::getPointCloseBy(const QPoint& screenPos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qint32 i    = 0;
-    qint32 idx  = NOIDX;
-    qint32 d    = NOINT;
-    for(const QPointF &point : polygonArea)
-    {
-        int tmp = (screenPos - point).manhattanLength();
-        if(tmp < d)
-        {
-            idx = i;
-            d   = tmp;
-        }
-        i++;
-    }
-
-    return (idx < 0) ? NOPOINTF : polygonArea[idx];
-}
-
-void CGisItemOvlArea::readAreaDataFromGisLine(const SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-
-    area.pts.clear();
-
-    for(int i = 0; i < l.size(); i++)
-    {
-        area.pts << pt_t();
-
-        pt_t& areapt      = area.pts.last();
-        const point_t& pt = l[i];
-
-        areapt.lon = pt.coord.x() * RAD_TO_DEG;
-        areapt.lat = pt.coord.y() * RAD_TO_DEG;
-
-        for(int n = 0; n < pt.subpts.size(); n++)
-        {
-            area.pts << pt_t();
-            pt_t& areapt       = area.pts.last();
-            const subpt_t& sub = pt.subpts[n];
-
-            areapt.lon = sub.coord.x() * RAD_TO_DEG;
-            areapt.lat = sub.coord.y() * RAD_TO_DEG;
-        }
-    }
-
-    deriveSecondaryData();
-}
-
-
-void CGisItemOvlArea::edit()
-{
-    CDetailsOvlArea dlg(*this, nullptr);
-    dlg.exec();
-
-    deriveSecondaryData();
-}
-
-void CGisItemOvlArea::deriveSecondaryData()
-{
-    qreal north = -90;
-    qreal east  = -180;
-    qreal south =  90;
-    qreal west  =  180;
-
-    for(const pt_t &pt : area.pts)
-    {
-        if(pt.lon < west)
-        {
-            west  = pt.lon;
-        }
-        if(pt.lon > east)
-        {
-            east  = pt.lon;
-        }
-        if(pt.lat < south)
-        {
-            south = pt.lat;
-        }
-        if(pt.lat > north)
-        {
-            north = pt.lat;
-        }
-    }
-
-    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
-
-    QPolygonF line(area.pts.size());
-    for(int i = 1; i < area.pts.size(); i++)
-    {
-        qreal a1, a2, d;
-        const pt_t& pt11 = area.pts[i - 1];
-        const pt_t& pt12 = area.pts[i];
-
-        QPointF& pt21    = line[i - 1];
-        QPointF& pt22    = line[i];
-
-        d = GPS_Math_Distance(pt11.lon * DEG_TO_RAD, pt11.lat * DEG_TO_RAD, pt12.lon * DEG_TO_RAD, pt12.lat * DEG_TO_RAD, a1, a2);
-
-        pt22.rx() = pt21.x() + qCos(a1 * DEG_TO_RAD) * d;
-        pt22.ry() = pt21.y() + qSin(a1 * DEG_TO_RAD) * d;
-    }
-
-    area.area = 0;
-    int j = line.size() - 1;
-    for(int i = 0; i < line.size(); i++)
-    {
-        area.area += (line[j].x() + line[i].x())*(line[j].y() - line[i].y());
-        j = i;
-    }
-
-    area.area = qAbs(area.area/2);
-}
-
-void CGisItemOvlArea::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
-{
-    QMutexLocker lock(&mutexItems);
-
-    polygonArea.clear();
-    if(!isVisible(boundingRect, viewport, gis))
-    {
-        return;
-    }
-
-    QPointF pt1;
-
-    for(const pt_t &pt : area.pts)
-    {
-        pt1.setX(pt.lon);
-        pt1.setY(pt.lat);
-        pt1 *= DEG_TO_RAD;
-        polygonArea << pt1;
-    }
-
-    gis->convertRad2Px(polygonArea);
-
-    p.save();
-    p.setOpacity(area.opacity ? 0.3 : 1.0);
-
-    penBackground.setWidth(area.width + 2);
-    p.setBrush(Qt::NoBrush);
-    p.setPen(penBackground);
-    p.drawPolygon(polygonArea);
-
-    penForeground.setColor(color);
-    penForeground.setWidth(area.width);
-    p.setBrush(QBrush(color, (Qt::BrushStyle)area.style));
-    p.setPen(penForeground);
-    p.drawPolygon(polygonArea);
-    p.restore();
-}
-
-void CGisItemOvlArea::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
-{
-    QMutexLocker lock(&mutexItems);
-
-    if(polygonArea.isEmpty())
-    {
-        return;
-    }
-    QPointF pt  = getPolygonCentroid(polygonArea);
-    QRectF rect = fm.boundingRect(area.name);
-    rect.adjust(-2,-2,2,2);
-    rect.moveCenter(pt);
-
-    CDraw::text(getName(), p, pt.toPoint(), Qt::darkBlue);
-    blockedAreas << rect;
-}
-
-void CGisItemOvlArea::drawHighlight(QPainter& p)
-{
-    QMutexLocker lock(&mutexItems);
-
-    if(polygonArea.isEmpty() || key == keyUserFocus)
-    {
-        return;
-    }
-    p.setBrush(Qt::NoBrush);
-    p.setPen(QPen(QColor(255,0,0,100),11,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolygon(polygonArea);
-}
-
-void CGisItemOvlArea::gainUserFocus(bool yes)
-{
-    keyUserFocus = yes ? key : key_t();
-}
-
-QPointF CGisItemOvlArea::getPolygonCentroid(const QPolygonF& polygon)
-{
-    qreal x = 0;
-    qreal y = 0;
-    int len = polygon.size();
-
-    for(int i = 0; i < len; i++)
-    {
-        x = x + polygon[i].x();
-        y = y + polygon[i].y();
-    }
-    x = x / len;
-    y = y / len;
-
-    return QPointF(x,y);
-}
-
-IScrOpt * CGisItemOvlArea::getScreenOptions(const QPoint& origin, IMouse * mouse)
-{
-    if(scrOpt.isNull())
-    {
-        scrOpt = new CScrOptOvlArea(this, origin, mouse);
-    }
-    return scrOpt;
-}
-
-QString CGisItemOvlArea::getInfo(quint32 feature) const
-{
-    QString unit, val;
-    QString str = "<div>";
-
-    if(feature && eFeatureShowName)
-    {
-        str += "<b>" + getName() + "</b>";
-    }
-
-
-    IUnit::self().meter2area(area.area, val, unit);
-    str += "<br/>\n" + tr("Area: %1%2").arg(val).arg(unit);
-
-    QString desc = removeHtml(area.desc).simplified();
-    if(desc.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || (desc.count() < 300))
-        {
-            str += desc;
-        }
-        else
-        {
-            str += desc.left(297) + "...";
-        }
-    }
-
-    QString cmt = removeHtml(area.cmt).simplified();
-    if((cmt != desc) && cmt.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || (cmt.count() < 300))
-        {
-            str += cmt;
-        }
-        else
-        {
-            str += cmt.left(297) + "...";
-        }
-    }
-
-    return str + "</div>";
-}
-
-void CGisItemOvlArea::getPolylineFromData(SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-
-    l.clear();
-    for(const pt_t &pt : area.pts)
-    {
-        l << point_t(QPointF(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD));
-    }
-}
-
-void CGisItemOvlArea::setDataFromPolyline(const SGisLine& l)
-{
-    QMutexLocker lock(&mutexItems);
-
-    readAreaDataFromGisLine(l);
-
-    flags |= eFlagTainted;
-
-    changed(tr("Changed area shape."), "://icons/48x48/AreaMove.png");
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-void CGisItemOvlArea::setName(const QString& str)
-{
-    setText(CGisListWks::eColumnName, str);
-    area.name = str;
-    changed(tr("Changed name."), "://icons/48x48/EditText.png");
-}
-
-void CGisItemOvlArea::setWidth(qint32 w)
-{
-    area.width = w;
-    changed(tr("Changed border width."), "://icons/48x48/TextBold.png");
-}
-
-void CGisItemOvlArea::setStyle(qint32 s)
-{
-    area.style = s;
-    changed(tr("Changed fill pattern."), "://icons/48x48/Pattern.png");
-}
-
-void CGisItemOvlArea::setOpacity(bool yes)
-{
-    area.opacity = yes;
-    changed(tr("Changed opacity."), "://icons/48x48/Opacity.png");
-}
-
-void CGisItemOvlArea::setComment(const QString& str)
-{
-    area.cmt = str;
-    changed(tr("Changed comment."), "://icons/48x48/EditText.png");
-}
-
-void CGisItemOvlArea::setDescription(const QString& str)
-{
-    area.desc = str;
-    changed(tr("Changed description."), "://icons/48x48/EditText.png");
-}
-
-void CGisItemOvlArea::setLinks(const QList<link_t>& links)
-{
-    area.links = links;
-    changed(tr("Changed links"), "://icons/48x48/Link.png");
-}
-
-
-void CGisItemOvlArea::setColor(size_t idx)
-{
-    if(idx >= colorMapSize)
-    {
-        return;
-    }
-    setColor(colorMap[idx].color);
-    changed(tr("Changed color"), "://icons/48x48/SelectColor.png");
-}
-
-void CGisItemOvlArea::setColor(const QColor& c)
-{
-    size_t n;
-
-    for(n = 0; n < colorMapSize; n++)
-    {
-        if(colorMap[n].color == c)
-        {
-            colorIdx    = n;
-            color       = colorMap[n].color;
-            bullet      = QPixmap(colorMap[n].bullet);
-            break;
-        }
-    }
-
-    if(n == colorMapSize)
-    {
-        colorIdx    = DEFAULT_COLOR;
-        color       = colorMap[DEFAULT_COLOR].color;
-        bullet      = QPixmap(colorMap[DEFAULT_COLOR].bullet);
-    }
-
-    setIcon(color.name());
-}
-
-void CGisItemOvlArea::setIcon(const QString& c)
-{
-    area.color  = c;
-    icon        = QPixmap("://icons/48x48/Area.png");
-
-    QPixmap mask( icon.size() );
-    mask.fill( str2color(c) );
-    mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
-    icon = mask.scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
-
-    QTreeWidgetItem::setIcon(CGisListWks::eColumnIcon,icon);
-}
diff --git a/src/gis/ovl/CGisItemOvlArea.h b/src/gis/ovl/CGisItemOvlArea.h
deleted file mode 100644
index 3a5d8d8..0000000
--- a/src/gis/ovl/CGisItemOvlArea.h
+++ /dev/null
@@ -1,190 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISITEMOVLAREA_H
-#define CGISITEMOVLAREA_H
-
-#include "gis/IGisItem.h"
-#include "gis/IGisLine.h"
-
-#include <QPen>
-#include <QPointer>
-
-class IGisProject;
-class CScrOptOvlArea;
-class IQlgtOverlay;
-
-#define OVL_N_WIDTHS 4
-#define OVL_N_STYLES 8
-
-class CGisItemOvlArea : public IGisItem, public IGisLine
-{
-    Q_DECLARE_TR_FUNCTIONS(CGisItemOvlArea)
-public:
-    CGisItemOvlArea(const SGisLine& line, const QString &name, IGisProject * project, int idx);
-    CGisItemOvlArea(const CGisItemOvlArea &parentArea, IGisProject * project, int idx, bool clone);
-    CGisItemOvlArea(const QDomNode &xml, IGisProject *project);
-    CGisItemOvlArea(const history_t& hist, const QString& dbHash, IGisProject * project);
-    CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project);
-    CGisItemOvlArea(const IQlgtOverlay& ovl, IGisProject *project = nullptr);
-    virtual ~CGisItemOvlArea();
-
-    IGisItem * createClone() override;
-
-    QDataStream& operator<<(QDataStream& stream) override;
-    QDataStream& operator>>(QDataStream& stream) const override;
-
-    const QString& getName() const override
-    {
-        return area.name.isEmpty() ? noName : area.name;
-    }
-
-    int getColorIdx() const
-    {
-        return colorIdx;
-    }
-    QString getInfo(quint32 feature) const override;
-    void getPolylineFromData(SGisLine& l) override;
-    const QString& getComment() const override
-    {
-        return area.cmt;
-    }
-    const QString& getDescription() const override
-    {
-        return area.desc;
-    }
-    const QList<link_t>& getLinks() const override
-    {
-        return area.links;
-    }
-    qint32 getWidth() const
-    {
-        return area.width;
-    }
-    qint32 getStyle() const
-    {
-        return area.style;
-    }
-    bool getOpacity() const
-    {
-        return area.opacity;
-    }
-
-    QDateTime getTimestamp() const override
-    {
-        return QDateTime();
-    }
-
-    void setName(const QString& str);
-    void setColor(size_t idx);
-    void setDataFromPolyline(const SGisLine& l) override;
-    void setWidth(qint32 w);
-    void setStyle(qint32 s);
-    void setOpacity(bool yes);
-    void setComment(const QString& str)       override;
-    void setDescription(const QString& str)   override;
-    void setLinks(const QList<link_t>& links) override;
-
-    void save(QDomNode& gpx, bool strictGpx11) override;
-    void edit() override;
-
-    using IGisItem::drawItem;
-    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
-    void drawLabel(QPainter& p, const QPolygonF& viewport,QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
-    void drawHighlight(QPainter& p) override;
-
-    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
-    QPointF getPointCloseBy(const QPoint& screenPos) override;
-    bool isCloseTo(const QPointF& pos) override;
-    bool isWithin(const QRectF& area, selflags_t flags) override;
-
-    void gainUserFocus(bool yes) override;
-
-    struct width_t
-    {
-        int width;
-        QString string;
-    };
-
-    static const width_t lineWidths[OVL_N_WIDTHS];
-    static const Qt::BrushStyle brushStyles[OVL_N_STYLES];
-protected:
-    void setSymbol() override;
-
-
-public:
-
-    struct pt_t : public wpt_t
-    {
-    };
-
-    struct area_t
-    {
-        // -- all gpx tags - start
-        QString name;
-        QString cmt;
-        QString desc;
-        QString src;
-        QList<link_t> links;
-        quint64 number = 0;
-        QString type;
-        QVector<pt_t> pts;
-        QString color;
-        qint32 width = 5;
-        qint32 style = Qt::BDiagPattern;
-        bool opacity = false;
-
-        // secondary data;
-        qreal area;
-    };
-
-    const area_t& getAreaData() const
-    {
-        return area;
-    }
-
-private:
-    void readArea(const QDomNode& xml, area_t& area);
-    void setColor(const QColor& c);
-    void setIcon(const QString& c);
-    void readAreaDataFromGisLine(const SGisLine &line);
-    void deriveSecondaryData();
-    QPointF getPolygonCentroid(const QPolygonF& polygon);
-
-    area_t area;
-
-
-    static key_t keyUserFocus;
-
-    QPen penForeground {Qt::blue,  3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-    QPen penBackground {Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-
-    /// the track line color
-    QColor color;
-    /// the trackpoint bullet icon
-    QPixmap bullet;
-    /// the track line color by index
-    unsigned colorIdx = 0;
-
-    QPolygonF polygonArea;
-
-    QPointer<CScrOptOvlArea>  scrOpt;
-};
-
-#endif //CGISITEMOVLAREA_H
-
diff --git a/src/gis/ovl/CScrOptOvlArea.cpp b/src/gis/ovl/CScrOptOvlArea.cpp
deleted file mode 100644
index 4fd44ec..0000000
--- a/src/gis/ovl/CScrOptOvlArea.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/ovl/CScrOptOvlArea.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-
-CScrOptOvlArea::CScrOptOvlArea(CGisItemOvlArea *area, const QPoint &point, IMouse *parent)
-    : IScrOpt(parent)
-    , key(area->getKey())
-{
-    setupUi(this);
-    setOrigin(point);
-    label->setFont(CMainWindow::self().getMapFont());
-    label->setText(area->getInfo(IGisItem::eFeatureShowName));
-    adjustSize();
-
-    anchor = area->getPointCloseBy(point);
-    if((anchor - point).manhattanLength() > 50)
-    {
-        anchor = point;
-    }
-    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
-    show();
-
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptOvlArea::hide);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptOvlArea::hide);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptOvlArea::hide);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptOvlArea::hide);
-
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptOvlArea::slotEditDetails);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptOvlArea::slotDelete);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptOvlArea::slotCopy);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptOvlArea::slotEdit);
-}
-
-CScrOptOvlArea::~CScrOptOvlArea()
-{
-}
-
-void CScrOptOvlArea::slotEditDetails()
-{
-    CGisWorkspace::self().editItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptOvlArea::slotCopy()
-{
-    CGisWorkspace::self().copyItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptOvlArea::slotDelete()
-{
-    CGisWorkspace::self().delItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptOvlArea::slotEdit()
-{
-    CGisWorkspace::self().editAreaByKey(key);
-    deleteLater();
-}
-
-void CScrOptOvlArea::draw(QPainter& p)
-{
-    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
-    if(nullptr == item)
-    {
-        QWidget::deleteLater();
-        return;
-    }
-    item->drawHighlight(p);
-
-    CDraw::bubble(p, geometry(), anchor.toPoint());
-}
diff --git a/src/gis/ovl/CScrOptOvlArea.h b/src/gis/ovl/CScrOptOvlArea.h
deleted file mode 100644
index 3d371d2..0000000
--- a/src/gis/ovl/CScrOptOvlArea.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CSCROPTOVLAREA_H
-#define CSCROPTOVLAREA_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IScrOpt.h"
-
-#include "ui_IScrOptOvlArea.h"
-
-class CGisItemOvlArea;
-class IMouse;
-
-class CScrOptOvlArea : public IScrOpt, private Ui::IScrOptOvlArea
-{
-    Q_OBJECT
-public:
-    CScrOptOvlArea(CGisItemOvlArea * area, const QPoint &point, IMouse *parent);
-    virtual ~CScrOptOvlArea();
-
-    void draw(QPainter& p) override;
-
-private slots:
-    void slotEditDetails();
-    void slotCopy();
-    void slotDelete();
-    void slotEdit();
-
-private:
-    IGisItem::key_t key;
-    QPointF anchor;
-};
-
-#endif //CSCROPTOVLAREA_H
-
diff --git a/src/gis/ovl/IDetailsOvlArea.ui b/src/gis/ovl/IDetailsOvlArea.ui
deleted file mode 100644
index bdfae7d..0000000
--- a/src/gis/ovl/IDetailsOvlArea.ui
+++ /dev/null
@@ -1,368 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IDetailsOvlArea</class>
- <widget class="QDialog" name="IDetailsOvlArea">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Dialog</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="CLineEdit" name="lineName">
-       <property name="palette">
-        <palette>
-         <active>
-          <colorrole role="Base">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-          <colorrole role="Window">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-         </active>
-         <inactive>
-          <colorrole role="Base">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-          <colorrole role="Window">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-         </inactive>
-         <disabled>
-          <colorrole role="Base">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-          <colorrole role="Window">
-           <brush brushstyle="SolidPattern">
-            <color alpha="0">
-             <red>0</red>
-             <green>0</green>
-             <blue>0</blue>
-            </color>
-           </brush>
-          </colorrole>
-         </disabled>
-        </palette>
-       </property>
-       <property name="font">
-        <font>
-         <weight>75</weight>
-         <bold>true</bold>
-        </font>
-       </property>
-       <property name="frame">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="labelTainted">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>0</width>
-         <height>0</height>
-        </size>
-       </property>
-       <property name="maximumSize">
-        <size>
-         <width>25</width>
-         <height>25</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-       <property name="pixmap">
-        <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
-       </property>
-       <property name="scaledContents">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolLock">
-       <property name="toolTip">
-        <string>Toggle read only mode. You have to open the lock to edit the item.</string>
-       </property>
-       <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>
-       <property name="autoRaise">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <layout class="QHBoxLayout" name="horizontalLayout_2">
-       <item>
-        <widget class="QLabel" name="labelColor">
-         <property name="text">
-          <string>Color</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QComboBox" name="comboColor">
-         <property name="iconSize">
-          <size>
-           <width>64</width>
-           <height>24</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item row="0" column="1">
-      <layout class="QHBoxLayout" name="horizontalLayout_4">
-       <item>
-        <widget class="QLabel" name="label_4">
-         <property name="text">
-          <string>Border width</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QComboBox" name="comboBorderWidth"/>
-       </item>
-      </layout>
-     </item>
-     <item row="1" column="0">
-      <layout class="QHBoxLayout" name="horizontalLayout_3">
-       <item>
-        <widget class="QLabel" name="label_5">
-         <property name="text">
-          <string>Style</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QComboBox" name="comboStyle">
-         <property name="iconSize">
-          <size>
-           <width>64</width>
-           <height>24</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item row="1" column="1">
-      <widget class="QCheckBox" name="checkOpacity">
-       <property name="text">
-        <string>Opacity</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>1</number>
-     </property>
-     <widget class="QWidget" name="tab_3">
-      <attribute name="title">
-       <string>Info</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_4">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="QTextBrowser" name="textCmtDesc">
-         <property name="openLinks">
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Points</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_2">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="QTreeWidget" name="treeWidget">
-         <column>
-          <property name="text">
-           <string notr="true">#</string>
-          </property>
-         </column>
-         <column>
-          <property name="text">
-           <string>Position</string>
-          </property>
-         </column>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_2">
-      <attribute name="title">
-       <string>Hist.</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="CHistoryListWidget" name="listHistory"/>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CHistoryListWidget</class>
-   <extends>QListWidget</extends>
-   <header>widgets/CHistoryListWidget.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>widgets/CLineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <tabstops>
-  <tabstop>toolLock</tabstop>
-  <tabstop>lineName</tabstop>
-  <tabstop>tabWidget</tabstop>
-  <tabstop>comboColor</tabstop>
-  <tabstop>comboBorderWidth</tabstop>
-  <tabstop>comboStyle</tabstop>
-  <tabstop>checkOpacity</tabstop>
-  <tabstop>textCmtDesc</tabstop>
-  <tabstop>treeWidget</tabstop>
-  <tabstop>listHistory</tabstop>
- </tabstops>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/ovl/IScrOptOvlArea.ui b/src/gis/ovl/IScrOptOvlArea.ui
deleted file mode 100644
index 9eb74c2..0000000
--- a/src/gis/ovl/IScrOptOvlArea.ui
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptOvlArea</class>
- <widget class="QWidget" name="IScrOptOvlArea">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>171</width>
-    <height>69</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
-     </property>
-     <item>
-      <widget class="QToolButton" name="toolEditDetails">
-       <property name="toolTip">
-        <string>View details and edit.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCopy">
-       <property name="toolTip">
-        <string>Copy area into another project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelete">
-       <property name="toolTip">
-        <string>Delete area from project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolEdit">
-       <property name="toolTip">
-        <string>Edit shape of the area.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/AreaMove.png</normaloff>:/icons/32x32/AreaMove.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeType">
-        <enum>QSizePolicy::Expanding</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>1</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>TextLabel</string>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/prj/CDetailsPrj.cpp b/src/gis/prj/CDetailsPrj.cpp
deleted file mode 100644
index 888d09d..0000000
--- a/src/gis/prj/CDetailsPrj.cpp
+++ /dev/null
@@ -1,942 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/IGisItem.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/CDetailsPrj.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/trk/CActivityTrk.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CLinksDialog.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/Signals.h"
-#include "plot/CPlotProfile.h"
-#include "plot/CPlotTrack.h"
-#include "widgets/CTextEditWidget.h"
-
-#include <QtPrintSupport>
-#include <QtWidgets>
-
-CDetailsPrj::CDetailsPrj(IGisProject &prj, QWidget *parent)
-    : QWidget(parent)
-    , INotifyTrk(CGisItemTrk::eVisualProject)
-    , prj(prj)
-{
-    setupUi(this);
-
-    const int N = prj.childCount();
-    for(int i = 0; i < N; i++)
-    {
-        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
-        if(nullptr != trk)
-        {
-            trk->registerVisual(this);
-        }
-    }
-
-    connect(labelKeywords, &QLabel::linkActivated,          this, static_cast<void (CDetailsPrj::*)(const QString&)>(&CDetailsPrj::slotLinkActivated));
-    connect(textDesc,      &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsPrj::*)(const QUrl&)   >(&CDetailsPrj::slotLinkActivated));
-    connect(toolPrint,     &QToolButton::clicked,           this, &CDetailsPrj::slotPrint);
-    connect(toolReload,    &QToolButton::clicked,           this, &CDetailsPrj::slotSetupGui);
-    connect(toolLock,      &QToolButton::clicked,           this, &CDetailsPrj::slotLock);
-
-    connect(comboSort,     static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsPrj::slotSortMode);
-
-    timerUpdateTime = new QTimer(this);
-    timerUpdateTime->setSingleShot(true);
-    timerUpdateTime->setInterval(20);
-    connect(timerUpdateTime, &QTimer::timeout, this, &CDetailsPrj::slotSetupGui);
-
-    timerUpdateTime->start();
-}
-
-CDetailsPrj::~CDetailsPrj()
-{
-    const int N = prj.childCount();
-    for(int i = 0; i < N; i++)
-    {
-        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
-        if(nullptr != trk)
-        {
-            trk->unregisterVisual(this);
-        }
-    }
-}
-
-void CDetailsPrj::resizeEvent(QResizeEvent * e)
-{
-    QWidget::resizeEvent(e);
-    timerUpdateTime->start();
-}
-
-void CDetailsPrj::getTrackProfile(CGisItemTrk * trk, QImage& image)
-{
-    CPlotProfile plot(trk, trk->limitsGraph1, IPlot::eModeIcon, this);
-    plot.setSolid(true);
-    plot.save(image);
-}
-
-void CDetailsPrj::getTrackOverview(CGisItemTrk * trk, QImage& image)
-{
-    CPlotTrack plot(trk, this);
-    plot.save(image);
-}
-
-
-void CDetailsPrj::slotSetupGui()
-{
-    if(!mutex.tryLock())
-    {
-        /*
-            What is this about?
-
-            When drawing the diary a progress dialog is used. This dialog is operating the event loop.
-            Consequently new events resulting into drawing the diary can be processed. But slotSetupGui()
-            is not reentrant. That is why we have to block these calls with a mutex. However as something
-            has changed the diary has to be redrawn again. That is why the timer is restarted.
-
-         */
-        timerUpdateTime->start(1000);
-        return;
-    }
-
-    X______________BlockAllSignals______________X(this);
-    comboSort->setCurrentIndex(prj.getSortingRoadbook());
-    if((prj.getSortingRoadbook() > IGisProject::eSortRoadbookNone) && !prj.doCorrelation())
-    {
-        X_____________UnBlockAllSignals_____________X(this);
-
-        QString msg = tr("You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?");
-        int res = QMessageBox::question(this, tr("Correlation..."), msg, QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
-        if(res == QMessageBox::Yes)
-        {
-            prj.switchOnCorrelation();
-        }
-        else
-        {
-            comboSort->setCurrentIndex(IGisProject::eSortRoadbookNone);
-        }
-        timerUpdateTime->start();
-
-        mutex.unlock();
-        return;
-    }
-
-    const int N = prj.childCount();
-    if(N == 0)
-    {
-        toolLock->setChecked(false);
-        toolLock->setEnabled(false);
-    }
-    else
-    {
-        toolLock->setChecked(true);
-        toolLock->setEnabled(true);
-        for(int n = 0; n < N; n++)
-        {
-            IGisItem * item = dynamic_cast<IGisItem*>(prj.child(n));
-            if(item && !item->isReadOnly())
-            {
-                toolLock->setChecked(false);
-                break;
-            }
-        }
-    }
-    X_____________UnBlockAllSignals_____________X(this);
-
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "CDetailsPrj::slotSetupGui()");
-    // Create a new document, fill it and attach it to the text browser.
-    // This is much faster than to use the current one of the text browser.
-    // According to the docs, the text browser's current document should be
-    // deleted because the text browser is it's parent.
-    QTextDocument * doc = new QTextDocument();
-    doc->setTextWidth(textDesc->size().width() - 20);
-    draw(*doc, false);
-    doc->setParent(textDesc);
-    textDesc->setDocument(doc);
-
-    QTabWidget * tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
-    if(tabWidget)
-    {
-        int idx = tabWidget->indexOf(this);
-        if(idx != NOIDX)
-        {
-            setObjectName(prj.getName());
-            tabWidget->setTabText(idx, prj.getName().replace("&", "&&"));
-        }
-    }
-    CCanvas::restoreOverrideCursor("CDetailsPrj::slotSetupGui()");
-    mutex.unlock();
-}
-
-#define ROOT_FRAME_MARGIN 5
-#define CHAR_PER_LINE 130
-
-void CDetailsPrj::draw(QTextDocument& doc, bool printable)
-{
-    int w = doc.textWidth();
-    int nItems = 0;
-
-    QFontMetrics fm(QFont(font().family(),12));
-    int pointSize = ((10 * (w - 2 * ROOT_FRAME_MARGIN)) / (CHAR_PER_LINE *  fm.width("X")));
-    pointSize = qMax(pointSize,CMainWindow::self().getMapFont().pointSize());
-
-    QFont f = textDesc->font();
-    f.setPointSize(pointSize);
-    textDesc->setFont(f);
-
-    fmtFrameStandard.setTopMargin(5);
-    fmtFrameStandard.setBottomMargin(5);
-    fmtFrameStandard.setWidth(w - 2 * ROOT_FRAME_MARGIN);
-
-    fmtFrameTrackSummary.setBackground(Qt::white);
-    fmtFrameTrackSummary.setBorder(1);
-    fmtFrameTrackSummary.setPadding(10);
-
-    fmtCharStandard.setFont(f);
-
-    fmtBlockStandard.setTopMargin(10);
-    fmtBlockStandard.setBottomMargin(10);
-    fmtBlockStandard.setAlignment(Qt::AlignJustify);
-
-    fmtFrameRoot.setTopMargin(0);
-    fmtFrameRoot.setBottomMargin(ROOT_FRAME_MARGIN);
-    fmtFrameRoot.setLeftMargin(ROOT_FRAME_MARGIN);
-    fmtFrameRoot.setRightMargin(ROOT_FRAME_MARGIN);
-
-    fmtTableStandard.setBorder(1);
-    fmtTableStandard.setBorderBrush(Qt::black);
-    fmtTableStandard.setCellPadding(4);
-    fmtTableStandard.setCellSpacing(0);
-    fmtTableStandard.setHeaderRowCount(1);
-    fmtTableStandard.setTopMargin(10);
-    fmtTableStandard.setBottomMargin(20);
-    fmtTableStandard.setWidth(w - 4 * ROOT_FRAME_MARGIN);
-
-    QVector<QTextLength> constraints1;
-    constraints1 << QTextLength(QTextLength::FixedLength, 32);
-    constraints1 << QTextLength(QTextLength::VariableLength, 50);
-    constraints1 << QTextLength(QTextLength::VariableLength, 100);
-    fmtTableStandard.setColumnWidthConstraints(constraints1);
-
-    fmtTableHidden.setBorder(0);
-    fmtTableHidden.setCellPadding(4);
-    fmtTableHidden.setCellSpacing(0);
-    fmtTableHidden.setTopMargin(0);
-    fmtTableHidden.setBottomMargin(0);
-
-    QVector<QTextLength> constraints2;
-    constraints2 << QTextLength(QTextLength::PercentageLength, 50);
-    constraints2 << QTextLength(QTextLength::PercentageLength, 50);
-    fmtTableHidden.setColumnWidthConstraints(constraints2);
-
-    fmtTableInfo.setBorder(0);
-
-    fmtCharHeader.setFont(f);
-    fmtCharHeader.setBackground(Qt::darkBlue);
-    fmtCharHeader.setFontWeight(QFont::Bold);
-    fmtCharHeader.setForeground(Qt::white);
-
-    bool isReadOnly = printable || prj.isOnDevice() || toolLock->isChecked();
-
-    setWindowTitle(prj.getName());
-
-    labelTime->setText(IUnit::datetime2string(prj.getTime(), false));
-
-    QString keywords = prj.getKeywords();
-    if(keywords.isEmpty())
-    {
-        keywords = tr("none");
-    }
-    labelKeywords->setText(IGisItem::toLink(isReadOnly, "keywords", keywords, ""));
-
-
-    scrollVal = textDesc->verticalScrollBar()->value();
-
-    doc.clear();
-    doc.rootFrame()->setFrameFormat(fmtFrameRoot);
-    QTextCursor cursor = doc.rootFrame()->firstCursorPosition();
-    cursor.insertHtml(IGisItem::toLink(isReadOnly, "name", QString("<h1>%1</h1>").arg(prj.getNameEx()), ""));
-
-
-    QList<CGisItemTrk*> trks;
-    QList<CGisItemRte*> rtes;
-    QList<CGisItemWpt*> wpts;
-    QList<CGisItemOvlArea*> areas;
-    const int N = prj.childCount();
-    for(int i = 0; i < N; i++)
-    {
-        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
-        if(nullptr != trk && !trk->isHidden())
-        {
-            trks << trk;
-            nItems++;
-            continue;
-        }
-
-        CGisItemRte *rte = dynamic_cast<CGisItemRte*>(prj.child(i));
-        if(nullptr != rte && !rte->isHidden())
-        {
-            rtes << rte;
-            nItems++;
-            continue;
-        }
-
-        CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(prj.child(i));
-        if(nullptr != wpt && !wpt->isHidden())
-        {
-            wpts << wpt;
-            nItems++;
-            continue;
-        }
-
-        CGisItemOvlArea *area = dynamic_cast<CGisItemOvlArea*>(prj.child(i));
-        if(nullptr != area && !area->isHidden())
-        {
-            areas << area;
-            nItems++;
-            continue;
-        }
-    }
-
-    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameStandard);
-    {
-        QTextCursor cursor1(diaryFrame);
-        cursor1.setCharFormat(fmtCharStandard);
-        cursor1.setBlockFormat(fmtBlockStandard);
-
-        QTextTable * table = cursor1.insertTable(1, 2, fmtTableHidden);
-
-        QTextCursor cursor2 = table->cellAt(0,0).firstCursorPosition();
-        drawInfo(cursor2, isReadOnly);
-
-        if(prj.getItemCountByType(IGisItem::eTypeTrk) != 0)
-        {
-            QTextCursor cursor3 = table->cellAt(0,1).firstCursorPosition();
-            drawTrackSummary(cursor3, trks, isReadOnly);
-        }
-    }
-
-
-    int n=1;
-    PROGRESS_SETUP(tr("Build diary..."), 0, nItems, this);
-
-    if(comboSort->currentIndex() > IGisProject::eSortRoadbookNone)
-    {
-        drawByTrack(cursor, trks, wpts, progress, n, isReadOnly);
-    }
-    else
-    {
-        drawByGroup(cursor, trks, wpts, progress, n, isReadOnly);
-    }
-
-    drawRoute(cursor, rtes, progress, n, isReadOnly);
-
-    drawArea(cursor, areas, progress, n, isReadOnly);
-
-    QTimer::singleShot(1, this, SLOT(slotSetScrollbar()));
-}
-
-void CDetailsPrj::slotSetScrollbar()
-{
-    textDesc->verticalScrollBar()->setValue(scrollVal);
-    comboSort->setEnabled(true);
-}
-
-void CDetailsPrj::drawInfo(QTextCursor& cursor, bool isReadOnly)
-{
-    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameStandard);
-
-    QTextCursor cursor1(diaryFrame);
-
-    cursor1.setCharFormat(fmtCharStandard);
-    cursor1.setBlockFormat(fmtBlockStandard);
-    cursor1.insertHtml(IGisItem::createText(isReadOnly, prj.getDescription(), prj.getLinks()));
-}
-
-void CDetailsPrj::drawTrackSummary(QTextCursor& cursor, const QList<CGisItemTrk*> trks, bool isReadOnly)
-{
-    quint32 flags = 0;
-    QMap<quint32, CActivityTrk::activity_summary_t> summaries;
-    for(const CGisItemTrk* trk : trks)
-    {
-        const CActivityTrk& activities = trk->getActivities();
-        flags |= activities.getAllFlags();
-        activities.sumUp(summaries);
-    }
-
-
-    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameTrackSummary);
-
-    QTextCursor cursor1(diaryFrame);
-
-    cursor1.setCharFormat(fmtCharStandard);
-    cursor1.setBlockFormat(fmtBlockStandard);
-
-    QString str;
-    str += tr("<b>Summary over all tracks in project</b><br/>");
-    CActivityTrk::printSummary(summaries, flags, str);
-
-
-    cursor1.insertHtml(str);
-}
-
-void CDetailsPrj::addIcon(QTextTable * table, int col, int row, IGisItem * item, bool printable)
-{
-    table->cellAt(row,col).firstCursorPosition().insertImage(item->getIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
-
-    if(!(printable||item->isReadOnly()))
-    {
-        table->cellAt(row,col).lastCursorPosition().insertHtml(QString("<p><a href='edit?key=%1'><img src='://icons/16x16/EditDetails.png'/></a></p>").arg(item->getKey().item));
-    }
-}
-
-
-void CDetailsPrj::drawByGroup(QTextCursor &cursor, QList<CGisItemTrk*>& trks, QList<CGisItemWpt*>& wpts, CProgressDialog& progress, int& n, bool printable)
-{
-    int cnt, w = cursor.document()->textWidth();
-
-    if(!wpts.isEmpty())
-    {
-        cursor.insertHtml(tr("<h2>Waypoints</h2>"));
-        QTextTable * table = cursor.insertTable(wpts.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;
-        for(CGisItemWpt * wpt : wpts)
-        {
-            PROGRESS(n++, return );
-
-            addIcon(table, eSym1, cnt, wpt, printable);
-            table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(wpt->getInfo(IGisItem::eFeatureShowName));
-            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
-            cnt++;
-        }
-
-        cursor.setPosition(table->lastPosition() + 1);
-    }
-
-    if(!trks.isEmpty())
-    {
-        cursor.insertHtml(tr("<h2>Tracks</h2>"));
-        QTextTable * table = cursor.insertTable(trks.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;
-
-        for(CGisItemTrk * trk : trks)
-        {
-            PROGRESS(n++, return );
-
-            addIcon(table, eSym1, cnt, trk, printable);
-
-            int w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
-            int h1 = qRound(w1/2.0);
-
-            if(w1 < 300)
-            {
-                table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
-
-                QTextTable * table1 = table->cellAt(cnt,eInfo1).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);
-            }
-            else
-            {
-                QTextTable * table1 = table->cellAt(cnt,eInfo1).firstCursorPosition().insertTable(1, 3, fmtTableInfo);
-
-                table1->cellAt(0,0).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
-
-                QImage profile(w1,h1,QImage::Format_ARGB32);
-                getTrackProfile(trk, profile);
-                table1->cellAt(0,1).firstCursorPosition().insertImage(profile);
-
-                QImage overview(h1,h1,QImage::Format_ARGB32);
-                getTrackOverview(trk, overview);
-                table1->cellAt(0,2).firstCursorPosition().insertImage(overview);
-            }
-
-            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(trk->isReadOnly()||printable, trk->getComment(), trk->getDescription(), trk->getLinks(), trk->getKey().item));
-
-            cnt++;
-        }
-
-
-        cursor.setPosition(table->lastPosition() + 1);
-    }
-}
-
-struct wpt_info_t
-{
-    IGisItem::key_t key;
-    qreal distance1 = NOFLOAT;
-    qreal ascent1 = NOFLOAT;
-    qreal descent1 = NOFLOAT;
-
-    qreal distance2 = NOFLOAT;
-    qreal ascent2 = NOFLOAT;
-    qreal descent2 = NOFLOAT;
-
-    qreal distance3 = NOFLOAT;
-    qreal ascent3 = NOFLOAT;
-    qreal descent3 = NOFLOAT;
-};
-
-void CDetailsPrj::drawByTrack(QTextCursor& cursor, QList<CGisItemTrk *> &trks, QList<CGisItemWpt *> &wpts, CProgressDialog &progress, int &n, bool printable)
-{
-    int cnt, w = cursor.document()->textWidth();
-
-
-    const qreal w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
-    const qreal h1 = qRound(w1/2.0);
-
-
-    for(CGisItemTrk * trk : trks)
-    {
-        const CTrackData::trkpt_t* lastTrkpt = nullptr;
-        wpt_info_t * lastWptInfo = nullptr;
-        QList<wpt_info_t> wptInfo;
-        const CTrackData& t = trk->getTrackData();
-        for(const CTrackData::trkpt_t& trkpt : t)
-        {
-            if(trkpt.isHidden() || trkpt.keyWpt.item.isEmpty())
-            {
-                continue;
-            }
-
-            wptInfo << wpt_info_t();
-            wpt_info_t& info = wptInfo.last();
-            info.key        = trkpt.keyWpt;
-            info.distance1  = trkpt.distance;
-            info.ascent1    = trkpt.ascent;
-            info.descent1   = trkpt.descent;
-
-            if(lastWptInfo != nullptr)
-            {
-                lastWptInfo->distance2  = trkpt.distance - lastTrkpt->distance;
-                lastWptInfo->ascent2    = trkpt.ascent   - lastTrkpt->ascent;
-                lastWptInfo->descent2   = trkpt.descent  - lastTrkpt->descent;
-            }
-
-            info.distance3  = trk->getTotalDistance() - trkpt.distance;
-            info.ascent3    = trk->getTotalAscent() - trkpt.ascent;
-            info.descent3   = trk->getTotalDescent() - trkpt.descent;
-
-            lastTrkpt       = &trkpt;
-            lastWptInfo     = &wptInfo.last();
-        }
-
-        cursor.insertHtml(QString("<h2>%1</h2>").arg(trk->getName()));
-        QTextTable * table = cursor.insertTable(wptInfo.count()+2, eMax2, fmtTableStandard);
-
-        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;
-
-        for(const wpt_info_t &info : wptInfo)
-        {
-            PROGRESS(n++, return );
-
-            CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(prj.getItemByKey(info.key));
-            if(wpt != nullptr)
-            {
-                addIcon(table, eSym2, cnt, wpt, printable);
-                table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(wpt->getInfo(IGisItem::eFeatureShowName));
-
-                QTextTable * table1 = table->cellAt(cnt,eData2).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
-
-                QString text, val, unit;
-                text += "<table sytle='border=1px;'>";
-                text += "<tr><td></td><td><nobr> " + tr("From Start") + " </nobr></td><td><nobr> " + tr("To Next") + " </nobr></td><td><nobr> " + tr("To End")  + " </nobr></td></tr>";
-
-                text += "<tr>";
-                text += "<td>" + tr("Distance: ") + "</td>";
-                IUnit::self().meter2distance(info.distance1, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2distance(info.distance2, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2distance(info.distance3, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                text += "</tr>";
-
-                text += "<tr>";
-                text += "<td>" + tr("Ascent: ") + "</td>";
-                IUnit::self().meter2elevation(info.ascent1, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2elevation(info.ascent2, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2elevation(info.ascent3, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                text += "</tr>";
-
-                text += "<tr>";
-                text += "<td>" + tr("Descent: ") + "</td>";
-                IUnit::self().meter2elevation(info.descent1, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2elevation(info.descent2, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                IUnit::self().meter2elevation(info.descent3, val, unit);
-                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
-                text += "</tr>";
-
-                text += "</table>";
-
-                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,eComment2).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
-            }
-            cnt++;
-        }
-
-        addIcon(table, eSym1, cnt, trk, printable);
-        table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
-
-        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);
-    }
-}
-
-void CDetailsPrj::drawArea(QTextCursor& cursor, QList<CGisItemOvlArea *> &areas, CProgressDialog &progress, int &n, bool printable)
-{
-    if(areas.isEmpty())
-    {
-        return;
-    }
-    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"));
-
-    int cnt = 1;
-    for(CGisItemOvlArea * area : areas)
-    {
-        PROGRESS(n++, return );
-
-        addIcon(table, eSym1, cnt, area, printable);
-        table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(area->getInfo(IGisItem::eFeatureShowName));
-        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);
-}
-
-void CDetailsPrj::drawRoute(QTextCursor& cursor, QList<CGisItemRte *> &rtes, CProgressDialog &progress, int &n, bool printable)
-{
-    if(rtes.isEmpty())
-    {
-        return;
-    }
-    cursor.insertHtml(tr("<h2>Routes</h2>"));
-    QTextTable * table = cursor.insertTable(rtes.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"));
-
-    int cnt = 1;
-    for(CGisItemRte * rte : rtes)
-    {
-        PROGRESS(n++, return );
-
-        addIcon(table, eSym1, cnt, rte, printable);
-        table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(rte->getInfo(IGisItem::eFeatureShowName));
-        table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(rte->isReadOnly()||printable, rte->getComment(), rte->getDescription(), rte->getLinks(), rte->getKey().item));
-        cnt++;
-    }
-
-    cursor.setPosition(table->lastPosition() + 1);
-}
-
-void CDetailsPrj::slotLinkActivated(const QString& link)
-{
-    if(link == "name")
-    {
-        QString name = QInputDialog::getText(this, tr("Edit name..."), tr("Enter new project name."), QLineEdit::Normal, prj.getName());
-        if(name.isEmpty())
-        {
-            return;
-        }
-        prj.setName(name);
-    }
-    else if(link == "keywords")
-    {
-        QString keywords = QInputDialog::getText(this, tr("Edit keywords..."), tr("Enter keywords."), QLineEdit::Normal, prj.getKeywords());
-        if(keywords.isEmpty())
-        {
-            return;
-        }
-        if(keywords == tr("none"))
-        {
-            keywords.clear();
-        }
-        prj.setKeywords(keywords);
-    }
-    slotSetupGui();
-}
-
-void CDetailsPrj::slotLinkActivated(const QUrl& url)
-{
-    if(url.path() == "name")
-    {
-        QString name = QInputDialog::getText(this, tr("Edit name..."), tr("Enter new project name."), QLineEdit::Normal, prj.getName());
-        if(!name.isEmpty())
-        {
-            prj.setName(name);
-        }
-    }
-    else if(url.path() == "description")
-    {
-        if(url.hasQuery())
-        {
-            IGisItem::key_t key;
-            key.project = prj.getKey();
-
-            QString query = url.query();
-            if(query.startsWith("key="))
-            {
-                key.item = query.mid(4);
-            }
-
-            IGisItem * item = prj.getItemByKey(key);
-            if(item)
-            {
-                CTextEditWidget dlg(item->getDescription(), this);
-                if(dlg.exec() == QDialog::Accepted)
-                {
-                    item->setDescription(dlg.getHtml());
-                }
-            }
-        }
-        else
-        {
-            CTextEditWidget dlg(prj.getDescription(), nullptr);
-            if(dlg.exec() == QDialog::Accepted)
-            {
-                prj.setDescription(dlg.getHtml());
-            }
-        }
-    }
-    else if(url.path() == "comment")
-    {
-        if(url.hasQuery())
-        {
-            IGisItem::key_t key;
-            key.project = prj.getKey();
-
-            QString query = url.query();
-            if(query.startsWith("key="))
-            {
-                key.item = query.mid(4);
-            }
-
-            IGisItem * item = prj.getItemByKey(key);
-            if(item)
-            {
-                CTextEditWidget dlg(item->getComment(), this);
-                if(dlg.exec() == QDialog::Accepted)
-                {
-                    item->setComment(dlg.getHtml());
-                }
-            }
-        }
-    }
-    else if(url.path() == "links")
-    {
-        if(url.hasQuery())
-        {
-            IGisItem::key_t key;
-            key.project = prj.getKey();
-
-            QString query = url.query();
-            if(query.startsWith("key="))
-            {
-                key.item = query.mid(4);
-            }
-
-            IGisItem * item = prj.getItemByKey(key);
-            if(item)
-            {
-                QList<IGisItem::link_t> links = item->getLinks();
-                CLinksDialog dlg(links, this);
-                if(dlg.exec() == QDialog::Accepted)
-                {
-                    item->setLinks(links);
-                }
-            }
-        }
-        else
-        {
-            QList<IGisItem::link_t> links = prj.getLinks();
-            CLinksDialog dlg(links, this);
-            if(dlg.exec() == QDialog::Accepted)
-            {
-                prj.setLinks(links);
-            }
-        }
-    }
-    else if(url.path() == "edit")
-    {
-        IGisItem::key_t key;
-        key.project = prj.getKey();
-
-        QString query = url.query();
-        if(query.startsWith("key="))
-        {
-            key.item = query.mid(4);
-        }
-
-        IGisItem * item = prj.getItemByKey(key);
-        if(item)
-        {
-            item->edit();
-        }
-    }
-    else
-    {
-        QDesktopServices::openUrl(url);
-        return;
-    }
-    slotSetupGui();
-}
-
-void CDetailsPrj::slotPrint()
-{
-    QPrinter printer;
-
-    printer.setResolution(200);
-    printer.setPageSize(QPrinter::A4);
-    QPrintDialog dialog(&printer, this);
-    dialog.setWindowTitle(tr("Print Diary"));
-    if (dialog.exec() != QDialog::Accepted)
-    {
-        return;
-    }
-
-    QTextDocument doc;
-    QSizeF pageSize = printer.pageRect(QPrinter::DevicePixel).size();
-    doc.setPageSize(pageSize);
-    draw(doc, true);
-    doc.print(&printer);
-
-    slotSetupGui();
-}
-
-void CDetailsPrj::slotLock(bool on)
-{
-    prj.blockUpdateItems(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() != on))
-        {
-            item->setReadOnlyMode(on);
-        }
-    }
-    prj.blockUpdateItems(false);
-    slotSetupGui();
-}
-
-
-void CDetailsPrj::slotSortMode(int idx)
-{
-    comboSort->setEnabled(false);
-    prj.setSortingRoadbook(IGisProject::sorting_roadbook_e(idx));
-    slotSetupGui();
-}
-
-void CDetailsPrj::updateData()
-{
-    if(!prj.blockUpdateItems())
-    {
-        slotSetupGui();
-    }
-}
diff --git a/src/gis/prj/IGisProject.cpp b/src/gis/prj/IGisProject.cpp
deleted file mode 100644
index 234793f..0000000
--- a/src/gis/prj/IGisProject.cpp
+++ /dev/null
@@ -1,1214 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "device/IDevice.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisListWks.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/IGisItem.h"
-#include "gis/fit/CFitProject.h"
-#include "gis/gpx/CGpxProject.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/prj/CDetailsPrj.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/qlb/CQlbProject.h"
-#include "gis/qms/CQmsProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/router/IRouter.h"
-#include "gis/slf/CSlfProject.h"
-#include "gis/suunto/CLogProject.h"
-#include "gis/suunto/CSmlProject.h"
-#include "gis/tcx/CTcxProject.h"
-#include "gis/tcx/CTcxProject.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSelectCopyAction.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-
-const QString IGisProject::filedialogAllSupported = "All Supported (*.gpx *.GPX *.tcx *.TCX *.sml *.log *.qms *.qlb *.slf *.fit)";
-const QString IGisProject::filedialogFilterGPX    = "GPS Exchange Format (*.gpx *.GPX)";
-const QString IGisProject::filedialogFilterTCX    = "TCX Garmin Proprietary (*.tcx *.TCX)";
-const QString IGisProject::filedialogFilterSML    = "Suunto XML format (*.sml)";
-const QString IGisProject::filedialogFilterLOG    = "Openambit XML format (*.log)";
-const QString IGisProject::filedialogFilterQLB    = "QLandkarte Binary (*.qlb)";
-const QString IGisProject::filedialogFilterQMS    = "QMapShack Binary (*.qms)";
-const QString IGisProject::filedialogFilterSLF    = "Sigma Log Format (*.slf)";
-const QString IGisProject::filedialogFilterFIT    = "Garmin FIT Format (*.fit)";
-const QString IGisProject::filedialogSaveFilters = filedialogFilterGPX + ";; " + filedialogFilterQLB + ";; " + filedialogFilterQMS + ";; " + filedialogFilterTCX;
-const QString IGisProject::filedialogLoadFilters = filedialogAllSupported + ";; " + filedialogFilterGPX + ";; " + filedialogFilterTCX + ";; " + filedialogFilterSML + ";; " + filedialogFilterLOG + ";; " + filedialogFilterQLB + ";; " + filedialogFilterQMS + ";; " + filedialogFilterSLF + ";; " + filedialogFilterFIT;
-
-IGisProject::filter_mode_e IGisProject::filterMode = IGisProject::eFilterModeName;
-
-IGisProject::IGisProject(type_e type, const QString &filename, CGisListWks *parent)
-    : QTreeWidgetItem(parent)
-    , type(type)
-    , filename(filename)
-{
-    memset(cntItemsByType, 0, sizeof(cntItemsByType));
-    setCheckState(CGisListWks::eColumnCheckBox, Qt::Checked);
-
-    if(parent)
-    {
-        // move project up the list until there a re only projects, no devices
-        int newIdx      = NOIDX;
-        const int myIdx = parent->topLevelItemCount() - 1;
-        for(int i = myIdx - 1; i >= 0; i--)
-        {
-            IDevice * device = dynamic_cast<IDevice*>(parent->topLevelItem(i));
-            if(device != nullptr)
-            {
-                newIdx = i;
-                continue;
-            }
-            break;
-        }
-
-        if(newIdx != NOIDX)
-        {
-            parent->takeTopLevelItem(myIdx);
-            parent->insertTopLevelItem(newIdx, this);
-        }
-    }
-}
-
-IGisProject::IGisProject(type_e type, const QString &filename, IDevice *parent)
-    : QTreeWidgetItem(parent)
-    , type(type)
-    , filename(filename)
-{
-    memset(cntItemsByType, 0, sizeof(cntItemsByType));
-    setCheckState(CGisListWks::eColumnCheckBox, Qt::Checked);
-    nameSuffix = parent->getName();
-}
-
-IGisProject::~IGisProject()
-{
-    delete dlgDetails;
-}
-
-IGisProject * IGisProject::create(const QString filename, CGisListWks * parent)
-{
-    IGisProject *item = nullptr;
-    QString suffix = QFileInfo(filename).suffix().toLower();
-    if(suffix == "gpx")
-    {
-        item = new CGpxProject(filename, parent);
-    }
-    else if(suffix == "qms")
-    {
-        item = new CQmsProject(filename, parent);
-    }
-    else if(suffix == "slf")
-    {
-        item = new CSlfProject(filename);
-
-        // the CSlfProject does not - as the other C*Project - register itself in the list
-        // of currently opened projects. This is done manually here.
-        if(parent)
-        {
-            parent->addProject(item);
-        }
-    }
-    else if(suffix == "fit")
-    {
-        item = new CFitProject(filename, parent);
-    }
-    else if(suffix == "tcx")
-    {
-        item = new CTcxProject(filename, parent);
-    }
-    else if (suffix == "sml")
-    {
-        item = new CSmlProject(filename, parent);
-    }
-    else if (suffix == "log")
-    {
-        item = new CLogProject(filename, parent);
-    }
-    else if (suffix == "qlb")
-    {
-        item = new CQlbProject(filename, parent);
-    }
-
-    if(item && !item->isValid())
-    {
-        delete item;
-        item = nullptr;
-    }
-
-    return item;
-}
-
-QString IGisProject::html2Dev(const QString& str)
-{
-    return isOnDevice() == IDevice::eTypeGarmin ? IGisItem::removeHtml(str) : str;
-}
-
-bool IGisProject::askBeforClose()
-{
-    int res = QMessageBox::Ok;
-    if(isChanged())
-    {
-        CCanvas::setOverrideCursor(Qt::ArrowCursor, "askBeforClose");
-
-        res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Save project?"), tr("<h3>%1</h3>The project was changed. Save before closing it?").arg(getName()), QMessageBox::Save|QMessageBox::No|QMessageBox::Abort, QMessageBox::No);
-        CCanvas::restoreOverrideCursor("askBeforClose");
-
-        if(res == QMessageBox::Save)
-        {
-            // some project cannot be saved
-            if(canSave())
-            {
-                save();
-            }
-            else
-            {
-                saveAs();
-            }
-        }
-    }
-
-    return res == QMessageBox::Abort;
-}
-
-
-bool IGisProject::isVisible() const
-{
-    return checkState(CGisListWks::eColumnCheckBox) == Qt::Checked;
-}
-
-
-void IGisProject::genKey() const
-{
-    if(key.isEmpty())
-    {
-        QByteArray buffer;
-        QDataStream stream(&buffer, QIODevice::WriteOnly);
-        stream.setByteOrder(QDataStream::LittleEndian);
-        stream.setVersion(QDataStream::Qt_5_2);
-
-        *this >> stream;
-
-        QCryptographicHash md5(QCryptographicHash::Md5);
-        md5.addData(buffer);
-        key = md5.result().toHex();
-    }
-}
-
-QString IGisProject::getDeviceKey() const
-{
-    IDevice * device = dynamic_cast<IDevice*>(parent());
-    if(device)
-    {
-        return device->getKey();
-    }
-
-    return "";
-}
-
-QPixmap IGisProject::getIcon() const
-{
-    return icon(CGisListWks::eColumnIcon).pixmap(22,22);
-}
-
-qint32 IGisProject::isOnDevice() const
-{
-    IDevice * device = dynamic_cast<IDevice*>(parent());
-    return device != nullptr ? device->type() : IDevice::eTypeNone;
-}
-
-bool IGisProject::isChanged() const
-{
-    return text(CGisListWks::eColumnDecoration) == "*";
-}
-
-void IGisProject::edit()
-{
-    if(dlgDetails.isNull())
-    {
-        dlgDetails = new CDetailsPrj(*this, 0);
-        dlgDetails->setObjectName(getName());
-    }
-
-    CMainWindow::self().addWidgetToTab(dlgDetails);
-}
-
-void IGisProject::setName(const QString& str)
-{
-    metadata.name = str;
-    setText(CGisListWks::eColumnName, getNameEx());
-    setChanged();
-}
-
-void IGisProject::setKeywords(const QString& str)
-{
-    metadata.keywords = str;
-    setChanged();
-}
-
-void IGisProject::setDescription(const QString& str)
-{
-    metadata.desc = str;
-    setChanged();
-}
-
-void IGisProject::setLinks(const QList<IGisItem::link_t>& links)
-{
-    metadata.links = links;
-    setChanged();
-}
-
-void IGisProject::setSortingRoadbook(sorting_roadbook_e s)
-{
-    changedRoadbookMode = (s != sortingRoadbook);
-    sortingRoadbook = s;
-    if(changedRoadbookMode)
-    {
-        setChanged();
-    }
-}
-
-void IGisProject::setSortingFolder(sorting_folder_e s)
-{
-    bool changed = (s != sortingFolder);
-    sortingFolder = s;
-    sortItems();
-
-    if(changed)
-    {
-        setChanged();
-        if(dlgDetails != nullptr)
-        {
-            dlgDetails->updateData();
-        }
-    }
-}
-
-void IGisProject::setChanged()
-{
-    if(autoSave)
-    {
-        setText(CGisListWks::eColumnDecoration,"A");
-
-        if(!autoSavePending)
-        {
-            autoSavePending = true;
-            CGisWorkspace::self().postEventForWks(new CEvtA2WSave(getKey()));
-        }
-    }
-    else
-    {
-        setText(CGisListWks::eColumnDecoration,"*");
-    }
-    updateItems();
-}
-
-void IGisProject::setAutoSave(bool on)
-{
-    // make sure project is saved one more time to remove autoSave flag in storage
-    if(!on && autoSave)
-    {
-        CGisWorkspace::self().postEventForWks(new CEvtA2WSave(getKey()));
-    }
-
-    autoSave = on;
-    setChanged();
-}
-
-void IGisProject::switchOnCorrelation()
-{
-    noCorrelation = false;
-    hashTrkWpt[0].clear();
-    hashTrkWpt[1].clear();
-    updateItems();
-}
-
-void IGisProject::updateItems()
-{
-    if(noUpdate)
-    {
-        return;
-    }
-
-    sortItems();
-    updateItemCounters();
-
-    if(noCorrelation)
-    {
-        return;
-    }
-
-    if(!changedRoadbookMode)
-    {
-        if((hashTrkWpt[0] == hashTrkWpt[1]) || (getItemCountByType(IGisItem::eTypeTrk) == 0))
-        {
-            return;
-        }
-    }
-    changedRoadbookMode = false;
-
-
-    quint32 total   = cntTrkPts * cntWpts;
-    quint32 current = 0;
-
-    PROGRESS_SETUP(tr("%1: Correlate tracks and waypoints.").arg(getName()), 0, total, CMainWindow::getBestWidgetForParent());
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(child(i));
-        if(trk)
-        {
-            trk->findWaypointsCloseBy(progress, current);
-            if(progress.wasCanceled())
-            {
-                QString msg = tr("<h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?").arg(getNameEx());
-                int res = QMessageBox::question(&progress, tr("Canceled correlation..."), msg, QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
-                noCorrelation = res == QMessageBox::Yes;
-                break;
-            }
-        }
-    }
-
-    if(dlgDetails != nullptr)
-    {
-        dlgDetails->updateData();
-    }
-}
-
-bool IGisProject::save()
-{
-    if(!canSave())
-    {
-        qWarning() << "This should never be called!";
-        return false;
-    }
-
-    return saveAs(filename, getFileDialogFilter());
-}
-
-bool IGisProject::saveAs(QString fn, QString filter)
-{
-    SETTINGS;
-
-    if(fn.isEmpty())
-    {
-        QString path = cfg.value("Paths/lastGisPath", QDir::homePath()).toString();
-
-        // guess the correct extension:
-        // by default use the extension provided by the current format,
-        // otherwise use gpx
-        QString ext = getFileExtension();
-        filter = getFileDialogFilter();
-        if(ext.isEmpty() || !canSave())
-        {
-            ext    = "gpx";
-            filter = IGisProject::filedialogFilterGPX;
-        }
-        path += "/" + getName() + "." + ext;
-
-
-        fn = QFileDialog::getSaveFileName(CMainWindow::getBestWidgetForParent(), tr("Save \"%1\" to...").arg(getName()), path, filedialogSaveFilters, &filter);
-
-        if(fn.isEmpty())
-        {
-            return false;
-        }
-    }
-
-    bool res = false;
-    if(filter == getFileDialogFilter())
-    {
-        filename = fn;
-        setupName(QFileInfo(fn).completeBaseName());
-    }
-
-    if(filter == filedialogFilterGPX)
-    {
-        res = CGpxProject::saveAs(fn, *this, false);
-    }
-    else if(filter == filedialogFilterQMS)
-    {
-        res = CQmsProject::saveAs(fn, *this);
-    }
-    else if (filter == filedialogFilterTCX)
-    {
-        res = CTcxProject::saveAs(fn, *this);
-    }
-    else
-    {
-        return false;
-    }
-
-    if(res && filter == getFileDialogFilter())
-    {
-        markAsSaved();
-    }
-
-    QString path = QFileInfo(fn).absolutePath();
-    cfg.setValue("Paths/lastGisPath", path);
-
-    return res;
-}
-
-bool IGisProject::saveAsStrictGpx11()
-{
-    SETTINGS;
-
-    QString fn;
-    QString path = cfg.value("Paths/lastGisPath", QDir::homePath()).toString();
-
-    // guess the correct extension:
-    // by default use the extension provided by the current format,
-    // otherwise use gpx
-    QString ext    = "gpx";
-    QString filter = IGisProject::filedialogFilterGPX;
-    path += "/" + getName() + "." + ext;
-
-    fn = QFileDialog::getSaveFileName(CMainWindow::getBestWidgetForParent(), tr("Save \"%1\" to...").arg(getName()), path, "Strict GPX V 1.1 (*.gpx *.GPX)", &filter);
-
-    if(fn.isEmpty())
-    {
-        return false;
-    }
-
-    bool res = CGpxProject::saveAs(fn, *this, true);
-
-    path = QFileInfo(fn).absolutePath();
-    cfg.setValue("Paths/lastGisPath", path);
-
-    return res;
-}
-
-void IGisProject::setupName(const QString &defaultName)
-{
-    if(metadata.name.isEmpty())
-    {
-        metadata.name = defaultName;
-    }
-    setText(CGisListWks::eColumnName, getName());
-}
-
-void IGisProject::markAsSaved()
-{
-    setText(CGisListWks::eColumnDecoration,autoSave ? "A" : "");
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-        item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
-    }
-}
-
-QString IGisProject::getName() const
-{
-    return metadata.name;
-}
-
-QString IGisProject::getNameEx() const
-{
-    if(nameSuffix.isEmpty())
-    {
-        return metadata.name;
-    }
-    else
-    {
-        return metadata.name + " @ " + nameSuffix;
-    }
-}
-
-
-QString IGisProject::getInfo() const
-{
-    QString str = metadata.name.isEmpty() ? text(CGisListWks::eColumnName) : metadata.name;
-    str = "<div style='font-weight: bold;'>" + str + "</div>";
-
-    if(metadata.time.isValid())
-    {
-        str += "<br/>\n";
-        str += IUnit::datetime2string(metadata.time, false);
-    }
-
-
-    QString desc = IGisItem::removeHtml(metadata.desc).simplified();
-    if(!desc.isEmpty())
-    {
-        str += "<br/>\n";
-
-        if(desc.count() < 100)
-        {
-            str += desc;
-        }
-        else
-        {
-            str += desc.left(97) + "...";
-        }
-    }
-
-    if(!filename.isEmpty())
-    {
-        str += tr("<br/>\nFilename: %1").arg(filename);
-    }
-
-    if(cntItemsByType[IGisItem::eTypeWpt])
-    {
-        str += "<br/>\n" + tr("Waypoints: %1").arg(cntItemsByType[IGisItem::eTypeWpt]);
-    }
-    if(cntItemsByType[IGisItem::eTypeTrk])
-    {
-        str += "<br/>\n" + tr("Tracks: %1").arg(cntItemsByType[IGisItem::eTypeTrk]);
-    }
-    if(cntItemsByType[IGisItem::eTypeRte])
-    {
-        str += "<br/>\n" + tr("Routes: %1").arg(cntItemsByType[IGisItem::eTypeRte]);
-    }
-    if(cntItemsByType[IGisItem::eTypeOvl])
-    {
-        str += "<br/>\n" + tr("Areas: %1").arg(cntItemsByType[IGisItem::eTypeOvl]);
-    }
-
-    return str;
-}
-
-
-IGisItem * IGisProject::getItemByKey(const IGisItem::key_t& key)
-{
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem *item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-
-        if(item->getKey() == key)
-        {
-            return item;
-        }
-    }
-    return nullptr;
-}
-
-void IGisProject::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
-{
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem *item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-
-        if(keys.contains(item->getKey()))
-        {
-            items << item;
-        }
-    }
-}
-
-void IGisProject::getItemsByPos(const QPointF& pos, QList<IGisItem *> &items)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-        if(item->isCloseTo(pos))
-        {
-            items << item;
-        }
-    }
-}
-
-void IGisProject::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-        if(item->isWithin(area, flags))
-        {
-            items << item;
-        }
-    }
-}
-
-void IGisProject::getNogoAreas(QVector<IRouter::circle_t> &areas) const
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        CGisItemWpt * item = dynamic_cast<CGisItemWpt*>(child(i));
-        if(nullptr != item && !item->isHidden() && item->isNogoArea())
-        {
-            const qreal& rad = item->getProximity();
-            if (rad != NOFLOAT && rad > 0.)
-            {
-                const QPointF& pos = item->getPosition();
-                areas << IRouter::circle_t(pos.y(),pos.x(),rad);
-            }
-        }
-    }
-}
-
-
-void IGisProject::mouseMove(const QPointF& pos)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-        item->mouseMove(pos);
-    }
-}
-
-
-bool IGisProject::delItemByKey(const IGisItem::key_t& key, QMessageBox::StandardButtons& last)
-{
-    for(int i = childCount(); i > 0; i--)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i-1));
-        if(nullptr == item )
-        {
-            continue;
-        }
-
-        if(item->getKey() == key)
-        {
-            if(last != QMessageBox::YesToAll)
-            {
-                QString msg = tr("Are you sure you want to delete '%1' from project '%2'?").arg(item->getName()).arg(text(CGisListWks::eColumnName));
-                last = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
-                if((last == QMessageBox::No) || (last == QMessageBox::Cancel))
-                {
-                    // as each item in the project has to be unique, we can stop searching.
-                    return false;
-                }
-            }
-            delete item;
-
-            /*
-                Database projects are a bit different. Deleting an item does not really
-                mean the project is changed as the item is still stored in the database.
-             */
-            if(type != eTypeDb)
-            {
-                setChanged();
-            }
-
-            // as each item in the project has to be unique, we can stop searching.
-            return true;
-        }
-    }
-    return false;
-}
-
-void IGisProject::editItemByKey(const IGisItem::key_t& key)
-{
-    for(int i = childCount(); i > 0; i--)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i-1));
-        if(nullptr == item)
-        {
-            continue;
-        }
-
-        if(item->getKey() == key)
-        {
-            item->edit();
-        }
-    }
-}
-
-
-void IGisProject::insertCopyOfItem(IGisItem * item, int off, int& lastResult)
-{
-    bool clone = false;
-    IGisItem::key_t key = item->getKey();
-    key.project = getKey();
-    key.device  = getDeviceKey();
-
-    IGisItem * item2 = getItemByKey(key);
-    if(item2 != nullptr)
-    {
-        int result = lastResult;
-        if(lastResult == CSelectCopyAction::eResultNone)
-        {
-            CSelectCopyAction dlg(item, item2, CMainWindow::getBestWidgetForParent());
-            dlg.exec();
-            result = dlg.getResult();
-            if(dlg.allOthersToo())
-            {
-                lastResult = result;
-            }
-        }
-
-        if(result == CSelectCopyAction::eResultSkip)
-        {
-            return;
-        }
-        if(result == CSelectCopyAction::eResultNone)
-        {
-            return;
-        }
-        if(result == CSelectCopyAction::eResultClone)
-        {
-            clone = true;
-        }
-        else
-        {
-            // replace item2 with item
-            if(item != item2)
-            {
-                delete item2;
-            }
-            else
-            {
-                // replacing an item with itself does not make sense
-                return;
-            }
-        }
-    }
-
-    switch(item->type())
-    {
-    case IGisItem::eTypeTrk:
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
-        if(trk != nullptr)
-        {
-            CGisItemTrk * newTrk = new CGisItemTrk(*trk, this, off, clone);
-            // if the track is on a device, remove hidden trackpoints
-            if(isOnDevice())
-            {
-                newTrk->filterDelete();
-            }
-        }
-        break;
-    }
-
-    case IGisItem::eTypeWpt:
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
-        if(wpt != nullptr)
-        {
-            new CGisItemWpt(*wpt, this, off, clone);
-        }
-        break;
-    }
-
-    case IGisItem::eTypeRte:
-    {
-        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(item);
-        if(rte != nullptr)
-        {
-            new CGisItemRte(*rte, this, off, clone);
-        }
-        break;
-    }
-
-    case IGisItem::eTypeOvl:
-    {
-        CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(item);
-        if(area != nullptr)
-        {
-            new CGisItemOvlArea(*area, this, off, clone);
-        }
-        break;
-    }
-    }
-}
-
-void IGisProject::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        if(gis->needsRedraw())
-        {
-            break;
-        }
-
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-        item->drawItem(p, viewport, blockedAreas, gis);
-    }
-}
-
-void IGisProject::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-
-        item->drawItem(p, viewport, gis);
-    }
-}
-
-void IGisProject::drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
-{
-    if(!isVisible())
-    {
-        return;
-    }
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        if(gis->needsRedraw())
-        {
-            break;
-        }
-
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item || item->isHidden())
-        {
-            continue;
-        }
-
-        item->drawLabel(p, viewport, blockedAreas, fm, gis);
-    }
-}
-
-void IGisProject::mount()
-{
-    if(!isOnDevice())
-    {
-        return;
-    }
-    IDevice * device = dynamic_cast<IDevice*>(parent());
-    if(device)
-    {
-        device->mount();
-    }
-}
-
-void IGisProject::umount()
-{
-    if(!isOnDevice())
-    {
-        return;
-    }
-    IDevice * device = dynamic_cast<IDevice*>(parent());
-    if(device)
-    {
-        device->umount();
-    }
-}
-
-bool IGisProject::remove()
-{
-    mount();
-
-    /*
-       Check if parent is a device and give it a chance to take care of data.
-
-       e.g. Garmin devices remove images attached to the project.
-     */
-    IDevice * device = dynamic_cast<IDevice*>(parent());
-    if(device)
-    {
-        device->aboutToRemoveProject(this);
-    }
-
-    QFileInfo fi(filename);
-    if(fi.isFile())
-    {
-        QFile::remove(filename);
-    }
-    else if(fi.isDir())
-    {
-        QDir(filename).removeRecursively();
-    }
-
-    umount();
-    return true;
-}
-
-void IGisProject::updateItemCounters()
-{
-    // count number of items by type
-    memset(cntItemsByType, 0, sizeof(cntItemsByType));
-    cntTrkPts = 0;
-    cntWpts = 0;
-    totalDistance = 0;
-    totalAscent = 0;
-    totalDescent = 0;
-    totalElapsedSeconds = 0;
-    totalElapsedSecondsMoving = 0;
-
-    QByteArray buffer;
-    QDataStream stream(&buffer, QIODevice::WriteOnly);
-    stream.setByteOrder(QDataStream::LittleEndian);
-    stream.setVersion(QDataStream::Qt_5_2);
-
-    for(int i = 0; i < childCount(); i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-
-        cntItemsByType[item->type()]++;
-
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
-        if(trk)
-        {
-            cntTrkPts       += trk->getNumberOfVisiblePoints();
-            totalDistance   += trk->getTotalDistance();
-            totalAscent     += trk->getTotalAscent();
-            totalDescent    += trk->getTotalDescent();
-            totalElapsedSeconds += trk->getTotalElapsedSeconds();
-            totalElapsedSecondsMoving += trk->getTotalElapsedSecondsMoving();
-            stream << trk->getHash();
-        }
-
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
-        if(wpt)
-        {
-            cntWpts++;
-            stream << wpt->getHash();
-        }
-    }
-    QCryptographicHash md5(QCryptographicHash::Md5);
-    md5.addData(buffer);
-
-    hashTrkWpt[1] = hashTrkWpt[0];
-    hashTrkWpt[0] = md5.result().toHex();
-}
-
-void IGisProject::blockUpdateItems(bool yes)
-{
-    noUpdate = yes;
-    if(noUpdate == false)
-    {
-        updateItems();
-    }
-}
-
-void IGisProject::updateDecoration()
-{
-    int N       = childCount();
-    bool saved  = true;
-
-    for(int i = 0; i < N; i++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
-        if(nullptr == item)
-        {
-            continue;
-        }
-        if(item->isChanged())
-        {
-            saved = false;
-            break;
-        }
-    }
-    setText(CGisListWks::eColumnDecoration, autoSave ? "A" : saved ? "" : "*");
-}
-
-void IGisProject::sortItems()
-{
-    QList<IGisItem*> trks;
-    QList<IGisItem*> rtes;
-    QList<IGisItem*> wpts;
-    QList<IGisItem*> ovls;
-
-    QList<QTreeWidgetItem*> items = takeChildren();
-    for(QTreeWidgetItem* item : items)
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
-        if(trk != nullptr)
-        {
-            trks << trk;
-            continue;
-        }
-
-        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(item);
-        if(rte != nullptr)
-        {
-            rtes << rte;
-            continue;
-        }
-
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
-        if(wpt != nullptr)
-        {
-            wpts << wpt;
-            continue;
-        }
-
-        CGisItemOvlArea * ovl = dynamic_cast<CGisItemOvlArea*>(item);
-        if(ovl != nullptr)
-        {
-            ovls << ovl;
-            continue;
-        }
-    }
-
-    sortItems(trks);
-    sortItems(rtes);
-    sortItems(wpts);
-    sortItems(ovls);
-
-    items.clear();
-    for(IGisItem * item : trks)
-    {
-        items << item;
-    }
-    for(IGisItem * item : rtes)
-    {
-        items << item;
-    }
-    for(IGisItem * item : wpts)
-    {
-        items << item;
-    }
-    for(IGisItem * item : ovls)
-    {
-        items << item;
-    }
-
-    addChildren(items);
-}
-
-static bool sortByName(IGisItem * item1, IGisItem * item2)
-{
-    static QCollator collator;
-    // this will set collator to natural sorting mode (instead of lexical)
-    collator.setNumericMode(true);
-    return collator.compare(item1->getName(), item2->getName()) < 0;
-}
-
-static bool sortByTime(IGisItem * item1, IGisItem * item2)
-{
-    const QDateTime& t1 = item1->getTimestamp();
-    const QDateTime& t2 = item2->getTimestamp();
-
-    // avoid jumping items due to invalid timestamps
-    if(!t1.isValid() || !t2.isValid())
-    {
-        return sortByName(item1, item2);
-    }
-
-    return t1 < t2;
-}
-
-void IGisProject::sortItems(QList<IGisItem *> &items) const
-{
-    switch(sortingFolder)
-    {
-    case IGisProject::eSortFolderName:
-        qSort(items.begin(), items.end(), &sortByName);
-        break;
-
-    case IGisProject::eSortFolderTime:
-        qSort(items.begin(), items.end(), &sortByTime);
-        break;
-    }
-}
-
-void IGisProject::filter(const QString& str)
-{
-    const int N = childCount();
-
-    if(str.isEmpty())
-    {
-        for(int n = 0; n < N; n++)
-        {
-            child(n)->setHidden(false);
-        }
-        return;
-    }
-
-    for(int n = 0; n < N; n++)
-    {
-        IGisItem * item = dynamic_cast<IGisItem*>(child(n));
-        if(item == nullptr)
-        {
-            continue;
-        }
-
-        switch(filterMode)
-        {
-        case eFilterModeName:
-            item->setHidden(!item->getName().toUpper().contains(str));
-            break;
-
-        case eFilterModeText:
-            item->setHidden(!item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText).toUpper().contains(str));
-            break;
-        }
-    }
-}
diff --git a/src/gis/prj/IGisProject.h b/src/gis/prj/IGisProject.h
deleted file mode 100644
index fbc5b8b..0000000
--- a/src/gis/prj/IGisProject.h
+++ /dev/null
@@ -1,587 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef IGISPROJECT_H
-#define IGISPROJECT_H
-
-#include "gis/IGisItem.h"
-#include "gis/rte/router/IRouter.h"
-#include <QDebug>
-#include <QMessageBox>
-#include <QPointer>
-#include <QTreeWidgetItem>
-
-class CGisListWks;
-class CGisDraw;
-class CGisItemWpt;
-class QDataStream;
-class CDetailsPrj;
-class IDevice;
-
-class IGisProject : public QTreeWidgetItem
-{
-    Q_DECLARE_TR_FUNCTIONS(IGisProject)
-public:
-    enum type_e
-    {
-        eTypeGoogle
-        , eTypeQms
-        , eTypeGpx
-        , eTypeDb
-        , eTypeLostFound
-        , eTypeTwoNav
-        , eTypeSlf       // the Sigma Log Format
-        , eTypeFit
-        , eTypeTcx
-        , eTypeSml
-        , eTypeLog
-        , eTypeQlb
-    };
-
-    /// flags used to serialize trivial flags in qms file
-    enum flags_e
-    {
-        eFlagNoCorrelation  = 0x1
-        , eFlagAutoSave     = 0x2
-    };
-
-    enum sorting_roadbook_e
-    {
-        eSortRoadbookNone
-        , eSortRoadbookTrackWithDouble
-        , eSortRoadbookTrackWithoutDouble
-    };
-
-    enum sorting_folder_e
-    {
-        eSortFolderTime
-        ,eSortFolderName
-        ,eSortFolderSymbol
-    };
-
-    enum filter_mode_e
-    {
-        eFilterModeName
-        ,eFilterModeText
-    };
-
-    struct person_t
-    {
-        QString name;
-        QString id;
-        QString domain;
-        IGisItem::link_t link;
-    };
-
-    struct copyright_t
-    {
-        QString author;
-        QString year;
-        QString license;
-    };
-
-    struct metadata_t
-    {
-        metadata_t() : time(QDateTime::currentDateTimeUtc())
-        {
-        }
-        QString name;
-        QString desc;
-        person_t author;
-        copyright_t copyright;
-        QList<IGisItem::link_t> links;
-        QDateTime time;
-        QString keywords;
-        QRectF bounds;
-        // -- all gpx tags - stop
-        QMap<QString, QVariant> extensions;
-    };
-
-    static const QString filedialogAllSupported;
-    static const QString filedialogFilterGPX;
-    static const QString filedialogFilterTCX;
-    static const QString filedialogFilterSML;
-    static const QString filedialogFilterLOG;
-    static const QString filedialogFilterQLB;
-    static const QString filedialogFilterQMS;
-    static const QString filedialogFilterSLF;
-    static const QString filedialogFilterFIT;
-    static const QString filedialogSaveFilters;
-    static const QString filedialogLoadFilters;
-
-    static filter_mode_e filterMode;
-
-    IGisProject(type_e type, const QString &filename, CGisListWks *parent);
-    IGisProject(type_e type, const QString &filename, IDevice     *parent);
-    virtual ~IGisProject();
-
-    static IGisProject * create(const QString filename, CGisListWks * parent);
-
-    /**
-       @brief Ask to save the project before it is closed.
-
-       If the project is closed, the user is asked if the project should be saved and saved on user request.
-
-       @return True if the operation is aborted. False on "save" and "no".
-     */
-    bool askBeforClose();
-
-    IGisProject& operator=(const IGisProject& p)
-    {
-        key      = p.key;
-        metadata = p.metadata;
-        return *this;
-    }
-
-    /**
-       @brief Summon the project details dialog.
-     */
-    void edit();
-
-    /**
-       @brief Returns true if a project of given format can be saved, false if it cannot be saved (just as .slf atm)
-     */
-    virtual bool canSave() const
-    {
-        return false;
-    }
-
-    virtual const QString getFileDialogFilter() const
-    {
-        return QString();
-    }
-
-    virtual const QString getFileExtension() const
-    {
-        return QString();
-    }
-
-    /**
-       @brief Save the project using it's native format.
-     */
-    virtual bool save();
-
-    /**
-       @brief Save the project selecting one of the available formats.
-     */
-    bool saveAs(QString fn = QString(), QString filter = QString());
-
-    /**
-       @brief Save as strict GPX V 1.1 without any extensions and HTML
-       @return True on success
-     */
-    bool saveAsStrictGpx11();
-
-    virtual void setFilename(const QString& fn)
-    {
-        filename = fn;
-    }
-
-    virtual QString getFilename() const
-    {
-        return filename;
-    }
-
-    /**
-       @brief Get the project type enumeration.
-
-       @Note: usually dynamic_cast should be used to get a pointer of correct type.
-              However if the project is serialized, a type id is needed.
-
-       @return One of type_e
-     */
-    type_e getType() const
-    {
-        return type;
-    }
-
-    /**
-       @brief Get unique project key.
-       @return A MD5 hash string
-     */
-    const QString& getKey() const
-    {
-        genKey();
-        return key;
-    }
-
-    /**
-       @brief Get the unique key of the device the project is attached to
-       @return If the project is not attached to a device the string is empty
-     */
-    QString getDeviceKey() const;
-
-
-    QPixmap getIcon() const;
-
-    /**
-       @brief Get the project's name
-       @return The name from metadata.name
-     */
-    QString getName() const;
-    /**
-       @brief Get the project's name extended with the parent's name.
-       @return The name from metadata.nam appended with either the device name or the database parent folder's name.
-     */
-    QString getNameEx() const;
-
-    const QDateTime& getTime() const
-    {
-        return metadata.time;
-    }
-    const QString& getKeywords() const
-    {
-        return metadata.keywords;
-    }
-    const QString& getDescription() const
-    {
-        return metadata.desc;
-    }
-    const QList<IGisItem::link_t>& getLinks() const
-    {
-        return metadata.links;
-    }
-
-    const metadata_t& getMetadata() const
-    {
-        return metadata;
-    }
-
-    /**
-       @brief Get the sorting mode
-       @return One of sorting_e
-     */
-    sorting_roadbook_e getSortingRoadbook() const
-    {
-        return sortingRoadbook;
-    }
-
-    sorting_folder_e getSortingFolder() const
-    {
-        return sortingFolder;
-    }
-
-    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();
-
-    /**
-       @brief Set the sorting mode for the roadbook in the details dialog
-
-       This will mark the project as changed.
-
-       @param s the mode
-     */
-    void setSortingRoadbook(sorting_roadbook_e s);
-
-    /**
-       @brief Set the sorting mode for workspace folder
-
-       This will mark the project as changed.
-
-       @param s the mode
-     */
-    void setSortingFolder(sorting_folder_e s);
-
-    /**
-       @brief Get a short metadata summary
-       @return Informational string.
-     */
-    virtual QString getInfo() const;
-    /**
-       @brief Get a temporary pointer to the item with matching key
-       @param key
-       @return If no item is found 0 is returned.
-     */
-    IGisItem * getItemByKey(const IGisItem::key_t &key);
-
-    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
-    /**
-       @brief Get a list of items that are close to a given pixel coordinate of the screen
-
-       @note: The returned pointers are just for temporary use. Best you use them to get the item's key.
-
-       @param pos       the coordinate on the screen in pixel
-       @param items     a list the item's pointer is stored to.
-     */
-    void getItemsByPos(const QPointF& pos, QList<IGisItem*>& items);
-
-    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
-
-    void getNogoAreas(QVector<IRouter::circle_t> &areas) const;
-
-    int getItemCountByType(IGisItem::type_e type) const
-    {
-        return cntItemsByType[type];
-    }
-
-    qreal getTotalDistance() const
-    {
-        return totalDistance;
-    }
-    qreal getTotalAscent() const
-    {
-        return totalAscent;
-    }
-    qreal getTotalDescent() const
-    {
-        return totalDescent;
-    }
-    qreal getTotalElapsedSeconds() const
-    {
-        return totalElapsedSeconds;
-    }
-    qreal getTotalElapsedSecondsMoving() const
-    {
-        return totalElapsedSecondsMoving;
-    }
-
-    bool doCorrelation() const
-    {
-        return !noCorrelation;
-    }
-
-    void switchOnCorrelation();
-
-    void setAutoSave(bool on);
-
-    /**
-       @brief Receive the current mouse position
-
-       Iterate over all items and pass the position
-
-       @param pos   the mouse position on the screen in pixel
-     */
-    virtual void mouseMove(const QPointF& pos);
-
-    /**
-       @brief Delete items with matching key
-       @param key
-     */
-    bool delItemByKey(const IGisItem::key_t &key, QMessageBox::StandardButtons &last);
-
-    /**
-       @brief Call IGisItem::edit() method for items with given key
-
-       @param key   a MD5 hash key
-     */
-    void editItemByKey(const IGisItem::key_t &key);
-
-    /**
-       @brief Add a copy if the given item to the project
-
-       Before the item is inserted the method will use it's key to find a duplicate item.
-       If there is an item with the same item key a copy option dialog is shown. Depending
-       the result the action is performed or aborted. The result will be copied into
-       lastResult to repeat the same decision on subsequent items.
-
-       @param item          pointer to item
-       @param off           the offset into the tree widget, -1 for none
-       @param lastResult    a reference to hold the last result of the copy option dialog
-     */
-    void insertCopyOfItem(IGisItem *item, int off, int &lastResult);
-
-    /**
-       @brief Check if the project was initialized correctly.
-
-       For example a if a GPX file does not load correctly the project is invalid.
-
-       @return True if project is valid
-     */
-    bool isValid() const
-    {
-        return valid;
-    }
-
-    /**
-       @brief Test if visibility check mark is set
-       @return True if project is visible
-     */
-    bool isVisible() const;
-
-    bool isAutoSave() const
-    {
-        return autoSave;
-    }
-
-    /**
-       @brief Test if this project is handled by a device
-       @return The device type (IDevice::type_e). IDevice::eTypeNone if the project is not stored on a device.
-     */
-    qint32 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);
-    void drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis);
-    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis);
-
-    /**
-       @brief Serialize object out of a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    virtual QDataStream& operator<<(QDataStream& stream);
-
-    /**
-       @brief Serialize object into a QDataStream
-
-       See CGisSerialization.cpp for implementation
-
-       @param stream the binary data stream
-       @return The stream object.
-     */
-    virtual QDataStream& operator>>(QDataStream& stream) const;
-
-    /**
-       @brief writeMetadata
-       @param doc
-       @return
-     */
-    QDomNode writeMetadata(QDomDocument& doc, bool strictGpx11);
-
-    /**
-       @brief Mount volume the project's file is stored at
-
-       This is only valid for projects located on GPS devices.
-       For all other projects the method does nothing.
-     */
-    void mount();
-    /**
-       @brief Umount volume the project's file is stored at
-
-       This is only valid for projects located on GPS devices.
-       For all other projects the method does nothing.
-     */
-    void umount();
-
-    /**
-       @brief Removed the projects file from disk.
-
-       This is only valid for projects located on GPS devices.
-       For all other projects the method does nothing.
-     */
-    bool remove();
-
-    /**
-       @brief Block update of items.
-
-        Use this to speed up actions with many items, e.g. copy actions.
-        If the blocking is stopped (yes == false) updateItems() is called.
-
-       @param yes set true to block updating items
-     */
-    void blockUpdateItems(bool yes);
-
-    /**
-       @brief  Return state of current update block
-       @return True if updates are blocked.
-     */
-    bool blockUpdateItems() const
-    {
-        return noUpdate;
-    }
-
-    void filter(const QString& str);
-
-    void confirmPendingAutoSave()
-    {
-        autoSavePending = false;
-    }
-
-protected:
-    void genKey() const;
-    virtual void setupName(const QString& defaultName);
-    void markAsSaved();
-    void readMetadata(const QDomNode& xml, metadata_t& metadata);
-    void updateItems();
-    void updateItemCounters();
-    void updateDecoration();
-    void sortItems();
-    void sortItems(QList<IGisItem*>& items) const;
-
-    /**
-       @brief Converts a string with HTML tags to a string without HTML depending on the device
-
-       Some devices e.g. Garmin can not handle HTML.
-
-       @param str   a string
-       @return A string with HTML removed depending on the device
-     */
-    QString html2Dev(const QString& str);
-
-    // Those are the URIs of the GPX extensions we support
-    static const QString gpxx_ns;
-    static const QString gpxtpx_ns;
-    static const QString wptx1_ns;
-    static const QString rmc_ns;
-    static const QString ql_ns;
-    static const QString gs_ns;
-    static const QString tp1_ns;
-    // Those are standard GPX/XML namespaces
-    static const QString gpx_ns;
-    static const QString xsi_ns;
-    static const QString gpxdata_ns;
-
-    QPointer<CDetailsPrj> dlgDetails;
-
-    type_e type;
-    mutable QString key;
-    QString filename;
-    bool valid         = false;
-    bool noUpdate      = false;
-    bool noCorrelation = false;
-    bool changedRoadbookMode = false;
-    bool autoSave      = false; ///< flag to show if auto save is on or off
-    bool autoSavePending = false; ///< flag to show if auto save event has been sent. will be reset by save()
-
-    metadata_t metadata;
-    QString nameSuffix;
-
-    sorting_roadbook_e sortingRoadbook  = eSortRoadbookNone;
-    sorting_folder_e sortingFolder    = eSortFolderTime;
-
-    qint32 cntItemsByType[IGisItem::eTypeMax];
-
-    qint32 cntTrkPts                 = 0;
-    qint32 cntWpts                   = 0;
-
-    qreal totalDistance             = 0;
-    qreal totalAscent               = 0;
-    qreal totalDescent              = 0;
-    quint32 totalElapsedSeconds       = 0;
-    quint32 totalElapsedSecondsMoving = 0;
-
-    QString hashTrkWpt[2];
-};
-
-#endif //IGISPROJECT_H
-
diff --git a/src/gis/rte/CDetailsRte.cpp b/src/gis/rte/CDetailsRte.cpp
deleted file mode 100644
index 950e983..0000000
--- a/src/gis/rte/CDetailsRte.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "gis/rte/CDetailsRte.h"
-#include "gis/rte/CGisItemRte.h"
-#include "helpers/CLinksDialog.h"
-#include "units/IUnit.h"
-#include "widgets/CTextEditWidget.h"
-
-#include <QtWidgets>
-
-CDetailsRte::CDetailsRte(CGisItemRte& rte, QWidget *parent)
-    : QDialog(parent)
-    , rte(rte)
-{
-    setupUi(this);
-
-    setupGui();
-
-    if(rte.isOnDevice())
-    {
-        toolLock->setDisabled(true);
-    }
-
-    connect(lineName,    &CLineEdit::textEdited,          this, &CDetailsRte::slotNameChanged);
-    connect(lineName,    &CLineEdit::editingFinished,     this, &CDetailsRte::slotNameChangeFinished);
-    connect(toolLock,    &QToolButton::toggled,           this, &CDetailsRte::slotChangeReadOnlyMode);
-    connect(textCmtDesc, &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsRte::*)(const QUrl&)>(&CDetailsRte::slotLinkActivated));
-    connect(listHistory, &CHistoryListWidget::sigChanged, this, &CDetailsRte::setupGui);
-}
-
-CDetailsRte::~CDetailsRte()
-{
-}
-
-void CDetailsRte::setupGui()
-{
-    if(originator)
-    {
-        return;
-    }
-    originator = true;
-
-    bool isReadOnly = rte.isReadOnly();
-    setWindowTitle(rte.getName());
-
-    labelTainted->setVisible(rte.isTainted());
-
-    lineName->setText(rte.getName());
-    lineName->setReadOnly(isReadOnly);
-
-    labelInfo->setText(rte.getInfo(IGisItem::eFeatureNone));
-
-    textCmtDesc->document()->clear();
-    textCmtDesc->append(IGisItem::createText(isReadOnly, rte.getComment(), rte.getDescription(), rte.getLinks()));
-    textCmtDesc->moveCursor (QTextCursor::Start);
-    textCmtDesc->ensureCursorVisible();
-
-
-//    treeWidget->clear();
-//    QString val, unit;
-//    for(const CGisItemRte::rtept_t& rtept : rte.getRoute().pts)
-//    {
-//        QTreeWidgetItem * item = new QTreeWidgetItem(treeWidget);
-
-//        item->setText(0, tr("Route waypoint"));
-
-//        for(const CGisItemRte::subpt_t& subpt : rtept.subpts)
-//        {
-//            if(subpt.type != CGisItemRte::subpt_t::eTypeJunct)
-//            {
-//                continue;
-//            }
-//            QTreeWidgetItem * item = new QTreeWidgetItem(treeWidget);
-
-//            IUnit::self().meter2distance(subpt.distance, val, unit);
-//            QString str = QString("Time: %1 Dist.: %2 %3").arg(subpt.time.toString()).arg(val).arg(unit);
-//            str += "\n" + subpt.instruction;
-
-//            item->setText(0,str);
-//        }
-//    }
-
-    toolLock->setChecked(isReadOnly);
-    listHistory->setupHistory(rte);
-    originator = false;
-}
-
-void CDetailsRte::slotChangeReadOnlyMode(bool on)
-{
-    rte.setReadOnlyMode(on);
-    setupGui();
-}
-
-void CDetailsRte::slotNameChanged(const QString &name)
-{
-    setWindowTitle(name);
-}
-
-void CDetailsRte::slotNameChangeFinished()
-{
-    lineName->clearFocus();
-
-    const QString& name = lineName->text();
-    slotNameChanged(name);
-
-    if(name != rte.getName())
-    {
-        rte.setName(name);
-        setupGui();
-    }
-}
-
-void CDetailsRte::slotLinkActivated(const QUrl& url)
-{
-    if(url.toString() == "comment")
-    {
-        CTextEditWidget dlg(rte.getComment(), nullptr);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            rte.setComment(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "description")
-    {
-        CTextEditWidget dlg(rte.getDescription(), nullptr);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            rte.setDescription(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "links")
-    {
-        QList<IGisItem::link_t> links = rte.getLinks();
-        CLinksDialog dlg(links, this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            rte.setLinks(links);
-        }
-        setupGui();
-    }
-    else
-    {
-        QDesktopServices::openUrl(url);
-    }
-}
-
diff --git a/src/gis/rte/CGisItemRte.cpp b/src/gis/rte/CGisItemRte.cpp
deleted file mode 100644
index 8f03284..0000000
--- a/src/gis/rte/CGisItemRte.cpp
+++ /dev/null
@@ -1,1217 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisListWks.h"
-#include "gis/WptIcons.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/rte/CDetailsRte.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/CScrOptRte.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "helpers/CDraw.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-#include <QtXml>
-#include <proj_api.h>
-
-const QPen CGisItemRte::penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
-IGisItem::key_t CGisItemRte::keyUserFocus;
-
-#define MIN_DIST_FOCUS 200
-
-void CGisItemRte::rtept_t::updateIcon()
-{
-    if(sym.isEmpty())
-    {
-        icon  = QPixmap();
-        focus = NOPOINTF;
-    }
-    else
-    {
-        icon = getWptIconByName(sym, focus);
-    }
-}
-/// used to create a copy of route with new parent
-CGisItemRte::CGisItemRte(const CGisItemRte& parentRte, IGisProject * project, int idx, bool clone)
-    : IGisItem(project, eTypeRte, idx)
-{
-    history = parentRte.history;
-    loadHistory(history.histIdxCurrent);
-
-
-    if(clone)
-    {
-        rte.name += tr("_Clone");
-        key.clear();
-        history.events.clear();
-    }
-
-    if(parentRte.isOnDevice())
-    {
-        flags |= eFlagWriteAllowed;
-    }
-    else if(!parentRte.isReadOnly())
-    {
-        flags |= eFlagWriteAllowed;
-    }
-    else
-    {
-        flags &= ~eFlagWriteAllowed;
-    }
-
-
-
-    setupHistory();
-    deriveSecondaryData();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-/// used to create route from GPX file
-CGisItemRte::CGisItemRte(const QDomNode& xml, IGisProject *parent)
-    : IGisItem(parent, eTypeRte, parent->childCount())
-{
-    // --- start read and process data ----
-    readRte(xml, rte);
-    // --- stop read and process data ----
-
-    setupHistory();
-    deriveSecondaryData();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemRte::CGisItemRte(const history_t& hist, const QString &dbHash, IGisProject * project)
-    : IGisItem(project, eTypeRte, project->childCount())
-{
-    history = hist;
-    loadHistory(hist.histIdxCurrent);
-    deriveSecondaryData();
-    if(!dbHash.isEmpty())
-    {
-        lastDatabaseHash = dbHash;
-    }
-}
-
-CGisItemRte::CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeRte, NOIDX)
-{
-    loadFromDb(id, db);
-}
-
-CGisItemRte::CGisItemRte(const SGisLine &l, const QString &name, IGisProject *project, int idx)
-    : IGisItem(project, eTypeRte, idx)
-{
-    rte.name = name;
-    readRouteDataFromGisLine(l);
-
-    flags |=  eFlagCreatedInQms|eFlagWriteAllowed;
-
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-CGisItemRte::CGisItemRte(CFitStream& stream, IGisProject * project)
-    : IGisItem(project, eTypeRte, project->childCount())
-{
-    // --- start read and process data ----
-    readRteFromFit(stream);
-    // --- stop read and process data ----
-
-    setupHistory();
-    deriveSecondaryData();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemRte::~CGisItemRte()
-{
-    // reset user focus if focused on this track
-    if(key == keyUserFocus)
-    {
-        keyUserFocus.clear();
-    }
-}
-
-IGisItem * CGisItemRte::createClone()
-{
-    int idx = -1;
-    IGisProject * project = getParentProject();
-    if(project)
-    {
-        idx = project->indexOfChild(this);
-    }
-    return new CGisItemRte(*this, project, idx, true);
-}
-
-
-bool CGisItemRte::isCalculated()
-{
-    bool yes = true;
-    for(const rtept_t &pt : rte.pts)
-    {
-        if((pt.fakeSubpt.lat == NOFLOAT) || (pt.fakeSubpt.lon == NOFLOAT))
-        {
-            yes = false;
-        }
-    }
-
-    return yes;
-}
-
-void CGisItemRte::setElevation(qreal ele, subpt_t& subpt, qreal& lastEle)
-{
-    if(ele == NOFLOAT)
-    {
-        subpt.ele = NOINT;
-        return;
-    }
-
-    subpt.ele = qRound(ele);
-
-    if(lastEle != NOFLOAT)
-    {
-        qreal delta   = subpt.ele - lastEle;
-
-        if(qAbs(delta) > ASCENT_THRESHOLD)
-        {
-            if(delta > 0)
-            {
-                rte.ascent  += delta;
-            }
-            else
-            {
-                rte.descent -= delta;
-            }
-            lastEle = subpt.ele;
-        }
-    }
-    else
-    {
-        lastEle = subpt.ele;
-    }
-}
-
-void CGisItemRte::deriveSecondaryData()
-{
-    QPolygonF pos;
-    QPolygonF ele;
-    qreal north = -90;
-    qreal east  = -180;
-    qreal south =  90;
-    qreal west  =  180;
-
-    for(rtept_t &rtept : rte.pts)
-    {
-        west  = qMin(west,  rtept.lon);
-        east  = qMax(east,  rtept.lon);
-        south = qMin(south, rtept.lat);
-        north = qMax(north, rtept.lat);
-
-        pos << (QPointF(rtept.lon, rtept.lat) * DEG_TO_RAD);
-        rtept.ele = NOINT;
-        rtept.fakeSubpt.ele = NOINT;
-
-        for(subpt_t &subpt : rtept.subpts)
-        {
-            west  = qMin(west,  subpt.lon);
-            east  = qMax(east,  subpt.lon);
-            south = qMin(south, subpt.lat);
-            north = qMax(north, subpt.lat);
-
-            pos << (QPointF(subpt.lon, subpt.lat) * DEG_TO_RAD);
-            subpt.ele = NOINT;
-        }
-        rtept.updateIcon();
-    }
-
-    ele.resize(pos.size());
-    ele.fill(NOPOINTF);
-    CMainWindow::self().getElevationAt(pos, ele);
-
-    if(!ele.isEmpty())
-    {
-        qreal lastEle = NOFLOAT;
-        int i = 0;
-        rte.descent = 0;
-        rte.ascent = 0;
-
-        for(rtept_t &rtept : rte.pts)
-        {
-            setElevation(ele[i++].y(), rtept.fakeSubpt, lastEle);
-            rtept.ele = rtept.fakeSubpt.ele;
-
-            for(subpt_t &subpt : rtept.subpts)
-            {
-                setElevation(ele[i++].y(), subpt, lastEle);
-            }
-        }
-    }
-
-    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
-}
-
-void CGisItemRte::edit()
-{
-    CDetailsRte dlg(*this, CMainWindow::getBestWidgetForParent());
-    dlg.exec();
-}
-
-void CGisItemRte::toTrack()
-{
-    QString name;
-    IGisProject * project;
-
-    if(!getNameAndProject(name, project, tr("track")))
-    {
-        return;
-    }
-
-    SGisLine line;
-    getPolylineFromData(line);
-
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->getElevationAt(line);
-    }
-
-    new CGisItemTrk(line, name, project, -1);
-}
-
-void CGisItemRte::setSymbol()
-{
-    icon = QPixmap("://icons/32x32/Route.png").scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
-    setIcon(CGisListWks::eColumnIcon, icon);
-}
-
-void CGisItemRte::setName(const QString& str)
-{
-    setText(CGisListWks::eColumnName, str);
-    rte.name = str;
-    changed(tr("Changed name."), "://icons/48x48/EditText.png");
-}
-
-void CGisItemRte::setComment(const QString& str)
-{
-    rte.cmt = str;
-    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemRte::setDescription(const QString& str)
-{
-    rte.desc = str;
-    changed(tr("Changed description"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemRte::setLinks(const QList<link_t>& links)
-{
-    rte.links = links;
-    changed(tr("Changed links"), "://icons/48x48/Link.png");
-}
-
-
-
-QString CGisItemRte::getInfo(quint32 feature) const
-{
-    QString val1, unit1;
-    QString str = "<div>";
-
-    if(feature & eFeatureShowName)
-    {
-        str += "<b>" + getName() + "</b><br />";
-    }
-
-    if(rte.totalDistance != NOFLOAT)
-    {
-        IUnit::self().meter2distance(rte.totalDistance, val1, unit1);
-        str += tr("Length: %1%2").arg(val1).arg(unit1);
-    }
-    else
-    {
-        str += tr("Length: -");
-    }
-
-    str += "<br/>\n";
-    if(rte.totalTime != 0)
-    {
-        IUnit::self().seconds2time(rte.totalTime, val1, unit1);
-        str += tr("Time: %1%2").arg(val1).arg(unit1);
-    }
-    else
-    {
-        str += tr("Time: -");
-    }
-
-    if((rte.ascent != NOFLOAT) && (rte.descent != NOFLOAT))
-    {
-        str += "<br/>\n";
-        QString val1, val2, unit1, unit2;
-        IUnit::self().meter2elevation(rte.ascent,  val1, unit1);
-        IUnit::self().meter2elevation(rte.descent, val2, unit2);
-
-        str += tr("%1%2 %3, %4%5 %6").arg(QChar(0x2197)).arg(val1).arg(unit1).arg(QChar(0x2198)).arg(val2).arg(unit2);
-    }
-
-    if(!rte.lastRoutedWith.isEmpty())
-    {
-        str += "<br/>\n";
-        str += tr("Last time routed:<br/>%1").arg(IUnit::datetime2string(rte.lastRoutedTime, false, boundingRect.center()));
-        str += "<br/>\n";
-        str += tr("with %1").arg(rte.lastRoutedWith);
-    }
-
-    QString desc = removeHtml(rte.desc).simplified();
-    if(desc.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || (desc.count() < 300))
-        {
-            str += desc;
-        }
-        else
-        {
-            str += desc.left(297) + "...";
-        }
-    }
-
-    QString cmt = removeHtml(rte.cmt).simplified();
-    if((cmt != desc) && cmt.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || cmt.count() < 300)
-        {
-            str += cmt;
-        }
-        else
-        {
-            str += cmt.left(297) + "...";
-        }
-    }
-
-    return str + "</div>";
-}
-
-IScrOpt * CGisItemRte::getScreenOptions(const QPoint& origin, IMouse * mouse)
-{
-    if(scrOpt.isNull())
-    {
-        scrOpt = new CScrOptRte(this, origin, mouse);
-    }
-    return scrOpt;
-}
-
-QPointF CGisItemRte::getPointCloseBy(const QPoint& screenPos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qint32 d    = NOINT;
-    QPointF pt  = NOPOINTF;
-    for(const QPointF &point : line)
-    {
-        int tmp = (screenPos - point).manhattanLength();
-        if(tmp < d)
-        {
-            pt  = point;
-            d   = tmp;
-        }
-    }
-
-    return pt;
-}
-
-
-
-bool CGisItemRte::isCloseTo(const QPointF& pos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qreal dist = GPS_Math_DistPointPolyline(line, pos);
-    return dist < 20;
-}
-
-bool CGisItemRte::isWithin(const QRectF& area, selflags_t flags)
-{
-    return (flags & eSelectionRte) ? IGisItem::isWithin(area, flags, line) : false;
-}
-
-
-void CGisItemRte::gainUserFocus(bool yes)
-{
-    keyUserFocus = yes ? key : key_t();
-}
-
-
-void CGisItemRte::looseUserFocus()
-{
-    if(keyUserFocus == key)
-    {
-        keyUserFocus.clear();
-    }
-}
-
-
-
-void CGisItemRte::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
-{
-    QMutexLocker lock(&mutexItems);
-
-    line.clear();
-    if(!isVisible(boundingRect, viewport, gis))
-    {
-        return;
-    }
-
-    QPointF p1 = viewport[0];
-    QPointF p2 = viewport[2];
-    gis->convertRad2Px(p1);
-    gis->convertRad2Px(p2);
-    QRectF extViewport(p1,p2);
-
-    QVector<qint32>  points;
-    QVector<QPixmap> icons;
-    QVector<QPointF> focus;
-
-    for(const rtept_t &rtept : rte.pts)
-    {
-        QPointF pt(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD);
-
-        gis->convertRad2Px(pt);
-
-        line << pt;
-        points << 1;
-        icons << rtept.icon;
-        focus << rtept.focus;
-
-        blockedAreas << QRectF(pt - rtept.focus, rtept.icon.size());
-        for(const subpt_t &subpt : rtept.subpts)
-        {
-            QPointF pt(subpt.lon * DEG_TO_RAD, subpt.lat * DEG_TO_RAD);
-            gis->convertRad2Px(pt);
-            line << pt;
-            if(subpt.type != subpt_t::eTypeNone)
-            {
-                points << 2;
-            }
-            else
-            {
-                points << 0;
-            }
-        }
-    }
-
-    p.setPen(penBackground);
-    p.drawPolyline(line);
-
-    p.setPen(Qt::NoPen);
-    p.setBrush(Qt::white);
-    for(int i = 0; i < line.size(); i++)
-    {
-        switch(points[i])
-        {
-        case 1:
-            p.drawEllipse(line[i],7,7);
-            break;
-
-        case 2:
-            p.drawEllipse(line[i],5,5);
-            break;
-        }
-    }
-
-    p.setPen(hasUserFocus() ? penForegroundFocus : penForeground);
-    p.setBrush(hasUserFocus() ? penForegroundFocus.color() : penForeground.color());
-    CDraw::arrows(line, extViewport, p, 10, 80, 1.0);
-    p.drawPolyline(line);
-
-    p.setPen(Qt::NoPen);
-    for(int i = 0, n = 0; i < line.size(); i++)
-    {
-        switch(points[i])
-        {
-        case 1:
-            p.setBrush(Qt::red);
-            p.drawEllipse(line[i],5,5);
-            if(focus[n] != NOPOINTF)
-            {
-                p.drawPixmap(line[i] - focus[n], icons[n]);
-            }
-            n++;
-            break;
-
-        case 2:
-            p.setBrush(Qt::cyan);
-            p.drawEllipse(line[i],3,3);
-            break;
-        }
-    }
-}
-
-void CGisItemRte::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-{
-    QMutexLocker lock(&mutexItems);
-    if(rte.pts.isEmpty())
-    {
-        return;
-    }
-
-    QDateTime startTime = rte.pts.first().fakeSubpt.time;
-    if(!startTime.isValid() && !rte.pts.isEmpty() && !rte.pts.first().subpts.isEmpty())
-    {
-        startTime = rte.pts.first().subpts.first().time;
-    }
-
-    if(hasUserFocus() && mouseMoveFocus && mouseMoveFocus->lon != NOFLOAT && mouseMoveFocus->lat != NOFLOAT)
-    {
-        QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
-        anchor *= DEG_TO_RAD;
-        gis->convertRad2Px(anchor);
-        p.drawEllipse(anchor, 5, 5);
-
-        QString str, val, unit;
-        IUnit::self().seconds2time((mouseMoveFocus->time.toTime_t() - startTime.toTime_t()), val, unit);
-        str += tr("Time: %1%2").arg(val).arg(unit) + " ";
-        IUnit::self().meter2distance(mouseMoveFocus->distance, val, unit);
-        str += tr("Distance: %1%2").arg(val).arg(unit);
-        str += "\n" + mouseMoveFocus->instruction;
-
-        // calculate bounding box of text
-        QFont f = CMainWindow::self().getMapFont();
-        QFontMetrics fm(f);
-        QRect rectText = fm.boundingRect(QRect(0,0,500,0), Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
-        rectText.adjust(-5, -5, 5, 5);
-        rectText.moveBottomLeft(anchor.toPoint() + QPoint(-50,-50));
-
-        p.setFont(f);
-        CDraw::bubble(p, rectText, anchor.toPoint(), 18 /* px */, 21 /* px */);
-
-        p.save();
-        p.translate(5,5);
-        p.setPen(Qt::darkBlue);
-        p.drawText(rectText, str);
-        p.restore();
-    }
-}
-
-void CGisItemRte::drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, const QFontMetricsF &fm, CGisDraw *gis)
-{
-    QMutexLocker lock(&mutexItems);
-    if(!isVisible(boundingRect, viewport, gis))
-    {
-        return;
-    }
-
-
-    for(const rtept_t &rtept : rte.pts)
-    {
-        QPointF pt(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD);
-
-        gis->convertRad2Px(pt);
-        //pt = pt - rtept.focus;
-        //p.drawPixmap(pt, rtept.icon);
-
-        QRectF rect = fm.boundingRect(rtept.name);
-        rect.adjust(-2,-2,2,2);
-
-        // place label on top
-        rect.moveCenter(pt + QPointF(rtept.icon.width()/2, -fm.height()));
-        if(isBlocked(rect, blockedAreas))
-        {
-            // place label on bottom
-            rect.moveCenter(pt + QPointF( rtept.icon.width()/2, +fm.height() + rtept.icon.height()));
-            if(isBlocked(rect, blockedAreas))
-            {
-                // place label on right
-                rect.moveCenter(pt + QPointF( rtept.icon.width() + rect.width()/2, +fm.height()));
-                if(isBlocked(rect, blockedAreas))
-                {
-                    // place label on left
-                    rect.moveCenter(pt + QPointF( -rect.width()/2, +fm.height()));
-                    if(isBlocked(rect, blockedAreas))
-                    {
-                        // failed to place label anywhere
-                        return;
-                    }
-                }
-            }
-        }
-
-        CDraw::text(rtept.name, p, rect.toRect(), Qt::darkBlue);
-        blockedAreas << rect;
-    }
-}
-
-void CGisItemRte::drawHighlight(QPainter& p)
-{
-    QMutexLocker lock(&mutexItems);
-
-    if(line.isEmpty() || hasUserFocus())
-    {
-        return;
-    }
-
-    p.setPen(QPen(QColor(255,0,0,100),11,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolyline(line);
-}
-
-void CGisItemRte::readRouteDataFromGisLine(const SGisLine &l)
-{
-    bool doAutoRouting = !l.first().subpts.isEmpty();
-    rte.pts.clear();
-
-    for(int i = 0; i < l.size(); i++)
-    {
-        rte.pts << rtept_t();
-
-        rtept_t& rtept      = rte.pts.last();
-        const point_t& pt   = l[i];
-
-        rtept.lon = pt.coord.x() * RAD_TO_DEG;
-        rtept.lat = pt.coord.y() * RAD_TO_DEG;
-        rtept.ele = pt.ele;
-        rtept.name = pt.name;
-    }
-
-    if(doAutoRouting)
-    {
-        calc();
-    }
-    deriveSecondaryData();
-}
-
-void CGisItemRte::setDataFromPolyline(const SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-    mouseMoveFocus = nullptr;
-
-    readRouteDataFromGisLine(l);
-
-    flags |= eFlagTainted;
-    changed(tr("Changed route points."), "://icons/48x48/LineMove.png");
-}
-
-void CGisItemRte::getPolylineFromData(SGisLine& l)
-{
-    QMutexLocker lock(&mutexItems);
-    l.clear();
-    for(const rtept_t &rtept : rte.pts)
-    {
-        l << point_t(QPointF(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD));
-
-        point_t& pt = l.last();
-
-        pt.subpts.clear();
-        for(const subpt_t &subpt : rtept.subpts)
-        {
-            pt.subpts << IGisLine::subpt_t(QPointF(subpt.lon * DEG_TO_RAD, subpt.lat * DEG_TO_RAD));
-        }
-    }
-}
-
-void CGisItemRte::calc()
-{
-    QMutexLocker lock(&mutexItems);
-    mouseMoveFocus = nullptr;
-    for(int i = 0; i < rte.pts.size(); i++)
-    {
-        rte.pts[i].subpts.clear();
-    }
-    CRouterSetup::self().calcRoute(getKey());
-}
-
-void CGisItemRte::reset()
-{
-    QMutexLocker lock(&mutexItems);
-    for(int i = 0; i < rte.pts.size(); i++)
-    {
-        rtept_t& pt = rte.pts[i];
-        pt.subpts.clear();
-        pt.fakeSubpt = subpt_t();
-    }
-
-    mouseMoveFocus  = nullptr;
-    rte.totalDistance   = NOFLOAT;
-    rte.totalTime       = 0;
-    rte.lastRoutedTime  = QDateTime();
-    rte.lastRoutedWith  = "";
-
-    deriveSecondaryData();
-    updateHistory();
-
-    if(key == keyUserFocus)
-    {
-        gainUserFocus(false);
-    }
-}
-
-
-QPointF CGisItemRte::setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner)
-{
-    QMutexLocker lock(&mutexItems);
-
-    const subpt_t * newPointOfFocus = nullptr;
-    quint32 idx = 0;
-
-    if(pt != NOPOINT && GPS_Math_DistPointPolyline(line, pt) < MIN_DIST_FOCUS)
-    {
-        quint32 i = 0;
-        qint32 d1 = NOINT;
-
-        for(const QPointF &point : line)
-        {
-            int tmp = (pt - point).manhattanLength();
-            if(tmp <= d1)
-            {
-                idx = i;
-                d1  = tmp;
-            }
-            i++;
-        }
-
-        newPointOfFocus = getSubPtByIndex(idx);
-    }
-
-    if(newPointOfFocus && (newPointOfFocus->type == subpt_t::eTypeNone))
-    {
-        newPointOfFocus = nullptr;
-    }
-
-
-    mouseMoveFocus = newPointOfFocus;
-
-    return newPointOfFocus ? ((int)idx < line.size() ? line[idx] : NOPOINTF) : NOPOINTF;
-}
-
-const CGisItemRte::subpt_t * CGisItemRte::getSubPtByIndex(quint32 idx)
-{
-    quint32 cnt = 0;
-    for(const rtept_t &rtept : rte.pts)
-    {
-        if(cnt == idx)
-        {
-            return &rtept.fakeSubpt;
-        }
-
-        for(const subpt_t &subpt : rtept.subpts)
-        {
-            cnt++;
-            if(cnt == idx)
-            {
-                return &subpt;
-            }
-        }
-        cnt++;
-    }
-
-    return nullptr;
-}
-
-void CGisItemRte::setResult(Routino_Output * route, const QString& options)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qint32 idxRtept = -1;
-    rtept_t * rtept = nullptr;
-
-    QDateTime time = QDateTime::currentDateTimeUtc();
-
-    Routino_Output * next = route;
-    while(next)
-    {
-        if(next->type == ROUTINO_POINT_WAYPOINT)
-        {
-            idxRtept++;
-            rtept = &rte.pts[idxRtept];
-            rtept->subpts.clear();
-            rtept->fakeSubpt.lon       = next->lon * RAD_TO_DEG;
-            rtept->fakeSubpt.lat       = next->lat * RAD_TO_DEG;
-
-            rtept->fakeSubpt.turn      = next->turn;
-            rtept->fakeSubpt.bearing   = next->bearing;
-            rtept->fakeSubpt.distance  = next->dist * 1000;
-            rtept->fakeSubpt.time      = time.addSecs(next->time * 60);
-
-            rtept->fakeSubpt.type      = subpt_t::eTypeWpt;
-            rtept->fakeSubpt.instruction = QString(next->desc1) + ".\n" + QString(next->desc2) + ".";
-
-            rte.totalDistance = rtept->fakeSubpt.distance;
-            rte.totalTime     = rtept->fakeSubpt.time.toTime_t() - time.toTime_t();
-        }
-        else if(rtept != nullptr)
-        {
-            rtept->subpts << subpt_t();
-            subpt_t& subpt  = rtept->subpts.last();
-            subpt.lon       = next->lon * RAD_TO_DEG;
-            subpt.lat       = next->lat * RAD_TO_DEG;
-
-            subpt.turn      = next->turn;
-            subpt.bearing   = next->bearing;
-            subpt.distance  = next->dist * 1000;
-            subpt.time      = time.addSecs(next->time * 60);
-
-            if(next->name != 0)
-            {
-                subpt.streets << next->name;
-            }
-
-            if(next->type > ROUTINO_POINT_CHANGE)
-            {
-                subpt.type = subpt_t::eTypeJunct;
-            }
-            else
-            {
-                subpt.type = subpt_t::eTypeNone;
-            }
-
-            rte.totalDistance = subpt.distance;
-            rte.totalTime     = subpt.time.toTime_t() - time.toTime_t();
-            subpt.instruction = QString(next->desc1) + ".\n" + QString(next->desc2) + ".";
-        }
-
-        next = next->next;
-    }
-
-    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
-    rte.lastRoutedWith = "Routino, " + options;
-
-    deriveSecondaryData();
-    updateHistory();
-}
-
-struct maneuver_t
-{
-    QStringList streets;
-    QString instruction;
-    quint32 time;
-    qreal dist;
-    qint32 bearing;
-    qint32 turn;
-};
-
-static const qint32 idx2bearing[] =
-{
-    NOINT
-    , 0
-    , -45
-    , 45
-    , 180
-    , 135
-    , -135
-    , -90
-    , 90
-};
-
-
-void CGisItemRte::setResult(const QDomDocument& xml, const QString &options)
-{
-    QMutexLocker lock(&mutexItems);
-
-    QDateTime localtime = QDateTime::currentDateTimeUtc();
-
-    QDomElement response    = xml.firstChildElement("response");
-    QDomElement route       = response.firstChildElement("route");
-
-    // get time of travel
-    QDomElement xmlTime     = route.firstChildElement("time");
-    rte.totalTime = xmlTime.text().toUInt();
-
-
-    // build list of maneuvers
-    QDomNodeList xmlLegs       = route.firstChildElement("legs").elementsByTagName("leg");
-    const qint32 L = xmlLegs.size();
-
-    QList<maneuver_t> maneuvers;
-
-    for(int l = 0; l < L; l++)
-    {
-        QDomNode xmlLeg = xmlLegs.item(l);
-        QDomNodeList xmlManeuvers = xmlLeg.firstChildElement("maneuvers").elementsByTagName("maneuver");
-        const qint32 M = xmlManeuvers.size();
-        for(int m = 0; m < M; m++)
-        {
-            maneuvers << maneuver_t();
-            maneuver_t& maneuver    = maneuvers.last();
-            QDomNode xmlManeuver    = xmlManeuvers.item(m);
-            maneuver.instruction    = xmlManeuver.firstChildElement("narrative").text();
-            maneuver.time           = xmlManeuver.firstChildElement("time").text().toUInt();
-            maneuver.dist           = xmlManeuver.firstChildElement("distance").text().toFloat();
-
-            maneuver.bearing        = idx2bearing[xmlManeuver.firstChildElement("direction").text().toUInt()];
-            maneuver.turn           = xmlManeuver.firstChildElement("turnType").text().toInt();
-
-            QDomNodeList xmlStreets = xmlManeuver.toElement().elementsByTagName("streets");
-            const int S = xmlStreets.size();
-            for(int s = 0; s < S; s++)
-            {
-                QDomNode xmlStreet = xmlStreets.item(s);
-                maneuver.streets << xmlStreet.toElement().text();
-            }
-        }
-    }
-
-    QVector<subpt_t> shape;
-
-    // read the shape
-    QDomElement xmlShape        = route.firstChildElement("shape");
-    QDomElement xmlShapePoints  = xmlShape.firstChildElement("shapePoints");
-    QDomNodeList xmlLatLng      = xmlShapePoints.elementsByTagName("latLng");
-    const qint32 N = xmlLatLng.size();
-    for(int n = 0; n < N; n++)
-    {
-        QDomNode elem   = xmlLatLng.item(n);
-        QDomElement lat = elem.firstChildElement("lat");
-        QDomElement lng = elem.firstChildElement("lng");
-
-        shape << subpt_t();
-        subpt_t& subpt = shape.last();
-        subpt.lon = lng.text().toFloat();
-        subpt.lat = lat.text().toFloat();
-    }
-
-
-    QVector<quint32> idxLegs;
-    QDomElement xmlLegIndexes = xmlShape.firstChildElement("legIndexes");
-    QDomNodeList xmlIndex     = xmlLegIndexes.elementsByTagName("index");
-    const qint32 I = xmlIndex.size();
-    for(int i = 0; i < I; i++)
-    {
-        QDomNode elem = xmlIndex.item(i);
-        idxLegs << elem.toElement().text().toUInt();
-    }
-
-    quint32 time = 0;
-    quint32 dist = 0;
-    QDomElement xmlManeuverIndexes = xmlShape.firstChildElement("maneuverIndexes");
-    xmlIndex                       = xmlManeuverIndexes.elementsByTagName("index");
-    qint32 M = xmlIndex.size();
-    for(int m = 0; m < M; m++)
-    {
-        QDomNode elem           = xmlIndex.item(m);
-        quint32 idx             = elem.toElement().text().toUInt();
-        subpt_t& subpt          = shape[idx];
-        maneuver_t& maneuver    = maneuvers[m];
-        subpt.type              = subpt_t::eTypeJunct;
-        subpt.instruction       = maneuver.instruction;
-
-        subpt.time              = localtime.addSecs(time);
-        time += maneuver.time;
-
-        subpt.distance          = dist;
-        dist += maneuver.dist * 1000;
-
-        subpt.bearing           = maneuver.bearing;
-        subpt.turn              = maneuver.turn;
-
-        subpt.streets           = maneuver.streets;
-    }
-
-    for(int i = 0; i < rte.pts.size() - 1; i++ )
-    {
-        quint32 idx1 = idxLegs[i];
-        quint32 idx2 = idxLegs[i+1];
-
-        rtept_t& rtept      = rte.pts[i];
-        rtept.subpts        = shape.mid(idx1, idx2 - idx1 + 1);
-        rtept.fakeSubpt.lon = rtept.lon;
-        rtept.fakeSubpt.lat = rtept.lat;
-    }
-
-    rtept_t& rtept = rte.pts.last();
-    rtept.fakeSubpt.lon = rtept.lon;
-    rtept.fakeSubpt.lat = rtept.lat;
-
-    rte.totalDistance  = dist;
-    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
-    rte.lastRoutedWith = "MapQuest" + options;
-
-    deriveSecondaryData();
-    updateHistory();
-}
-
-void CGisItemRte::setResultFromBRouter(const QDomDocument &xml, const QString &options)
-{
-    QMutexLocker lock(&mutexItems);
-
-    QVector<subpt_t> shape;
-
-    const QDomElement &gpx = xml.documentElement();
-    // read the shape
-    const QDomElement &xmlShape        = gpx.firstChildElement("trk");
-    const QDomElement &xmlShapePoints  = xmlShape.firstChildElement("trkseg");
-    const QDomNodeList &xmlLatLng      = xmlShapePoints.elementsByTagName("trkpt");
-    const qint32 N = xmlLatLng.size();
-    for(int n = 0; n < N; n++)
-    {
-        const QDomElement &elem   = xmlLatLng.item(n).toElement();
-        shape << subpt_t();
-        subpt_t& subpt = shape.last();
-        subpt.lon = elem.attribute("lon").toFloat();
-        subpt.lat = elem.attribute("lat").toFloat();
-        subpt.ele = elem.firstChildElement("ele").text().toFloat();
-    }
-
-    // build list of maneuvers
-    const QDomElement &xmlLeg = gpx.firstChildElement("rte");
-    if (!xmlLeg.isNull())
-    {
-        const QDomNodeList &xmlManeuvers = xmlLeg.elementsByTagName("rtept");
-        const qint32 M = xmlManeuvers.size();
-        for(int m = 0; m < M; m++)
-        {
-            const QDomNode &xmlManeuver    = xmlManeuvers.item(m);
-            /* <rtept lat="48.322380" lon="11.601220">
-                <desc>right</desc>
-                <extensions>
-                 <turn>TR</turn>
-                 <turn-angle>45.655945</turn-angle>
-                 <offset>76</offset>
-                </extensions>
-               </rtept> */
-            quint32 idx = xmlManeuver.firstChildElement("extensions").firstChildElement("offset").text().toUInt();
-            subpt_t& subpt          = shape[idx];
-            subpt.type              = subpt_t::eTypeJunct;
-            subpt.instruction       = xmlManeuver.firstChildElement("desc").text();
-            const QString &command = xmlManeuver.firstChildElement("extensions").firstChildElement("turn").text(); // command
-            if(command=="TU")        // u-turn
-            {
-                subpt.bearing = 180;
-            }
-            else if(command=="TSHL") // turn sharp left
-            {
-                subpt.bearing = -135;
-            }
-            else if(command=="TL")   // turn left
-            {
-                subpt.bearing = -90;
-            }
-            else if(command=="TSLL") // turn slight left
-            {
-                subpt.bearing = -45;
-            }
-            else if(command=="KL")   // keep left
-            {
-                subpt.bearing = 0;
-            }
-            else if(command=="C")    // straight
-            {
-                subpt.bearing = 0;
-            }
-            else if(command=="KR")   // keep right
-            {
-                subpt.bearing = 0;
-            }
-            else if(command=="TSLR") // turn slight right
-            {
-                subpt.bearing = 45;
-            }
-            else if(command=="TR")   // turn right
-            {
-                subpt.bearing = 90;
-            }
-            else if(command=="TSHR") // turn sharp right
-            {
-                subpt.bearing = 135;
-            }
-            else if(command=="TRU")  // u-turn
-            {
-                subpt.bearing = 180;
-            }
-            else if(command.startsWith("RNDB")) // take roundabout exit nr
-            {
-                subpt.bearing = 0;
-            }
-            else if(command.startsWith("RNLB")) // take roundabout exit nr. (to the left)
-            {
-                subpt.bearing = 0;
-            }
-
-            subpt.turn = xmlManeuver.firstChildElement("extensions").firstChildElement("turn-angle").text().toUInt();  // turn angle (degree)
-        }
-    }
-
-    // match routepoints to shape
-    qint32 startIdx = 0;
-    qint32 minDistIdx = 0;
-
-    for(qint32 rtIdx = 0; rtIdx < rte.pts.size() - 1; rtIdx++)
-    {
-        rtept_t &routePoint = rte.pts[rtIdx];
-        const rtept_t &nextRoutePoint = rte.pts[rtIdx+1];
-
-        qreal minDist = std::pow(nextRoutePoint.lon - shape[minDistIdx].lon, 2) + std::pow(nextRoutePoint.lat - shape[minDistIdx].lat, 2);
-        for (qint32 idx = startIdx+1; idx < shape.size(); idx++)
-        {
-            qreal dist = std::pow(nextRoutePoint.lon - shape[idx].lon, 2) + std::pow(nextRoutePoint.lat - shape[idx].lat, 2);
-            if (dist < minDist)
-            {
-                minDist = dist;
-                minDistIdx = idx;
-            }
-        }
-        routePoint.ele = shape[startIdx].ele;
-        routePoint.subpts = shape.mid(startIdx,minDistIdx-startIdx);
-        routePoint.fakeSubpt.lon = routePoint.lon;
-        routePoint.fakeSubpt.lat = routePoint.lat;
-        routePoint.fakeSubpt.ele = routePoint.ele;
-        startIdx = minDistIdx;
-    }
-
-    rtept_t &rtept = rte.pts.last();
-    rtept.ele = shape[minDistIdx].ele;
-    rtept.fakeSubpt.lon = rtept.lon;
-    rtept.fakeSubpt.lat = rtept.lat;
-    rtept.fakeSubpt.ele = rtept.ele;
-
-    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
-    rte.lastRoutedWith = QString("BRouter %1").arg(options);
-
-//    <!-- track-length = 9624 filtered ascend = 59 plain-ascend = -8 cost=19415 -->
-    const QDomNodeList &nodes = xml.childNodes();
-    for (int i = 0; i < nodes.count(); i++)
-    {
-        const QDomNode &node = nodes.at(i);
-        if (node.isComment())
-        {
-            const QString &commentTxt = node.toComment().data();
-            // ' track-length = 180864 filtered ascend = 428 plain-ascend = -172 cost=270249 '
-            const QRegExp rxAscDes("(\\s*track-length\\s*=\\s*)(-?\\d+)(\\s*)(filtered ascend\\s*=\\s*-?\\d+)(\\s*)(plain-ascend\\s*=\\s*-?\\d+)(\\s*)(cost\\s*=\\s*-?\\d+)(\\s*)");
-            int pos = rxAscDes.indexIn(commentTxt);
-            if (pos > -1)
-            {
-                rte.totalDistance = rxAscDes.cap(2).toFloat();
-                rte.cmt = QString("%1, %2, %3").arg(rxAscDes.cap(4)).arg(rxAscDes.cap(6)).arg(rxAscDes.cap(8));
-            }
-            break;
-        }
-    }
-
-    deriveSecondaryData();
-    updateHistory();
-}
diff --git a/src/gis/rte/CGisItemRte.h b/src/gis/rte/CGisItemRte.h
deleted file mode 100644
index b322d56..0000000
--- a/src/gis/rte/CGisItemRte.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISITEMRTE_H
-#define CGISITEMRTE_H
-
-#include "gis/IGisItem.h"
-#include "gis/IGisLine.h"
-#include <routino.h>
-
-#include "gis/fit/CFitStream.h"
-#include <QPen>
-#include <QPointer>
-
-class QDomNode;
-class IGisProject;
-class CQlgtRoute;
-class CScrOptRte;
-
-class CGisItemRte : public IGisItem, public IGisLine
-{
-    Q_DECLARE_TR_FUNCTIONS(CGisItemRte)
-public:
-
-    enum focusmode_e
-    {
-        eFocusMouseMove
-        ,eFocusMouseClick
-    };
-
-    struct subpt_t
-    {
-        enum type_e
-        {
-            eTypeNone
-            , eTypeWpt
-            , eTypeJunct
-        };
-
-        qreal lon = NOFLOAT;
-        qreal lat = NOFLOAT;
-        quint8 type = eTypeNone;
-
-        qreal turn = NOFLOAT;
-        qreal bearing = NOFLOAT;
-        QStringList streets;
-
-        QString instruction;
-        qreal distance = 0;
-        QDateTime time;
-
-        qint32 ele = NOINT;
-    };
-
-    struct rtept_t : public wpt_t
-    {
-        rtept_t()
-        {
-            fakeSubpt.type = subpt_t::eTypeWpt;
-        }
-
-        void updateIcon();
-
-        QPixmap icon;
-        QPointF focus;
-
-        subpt_t fakeSubpt;
-        QVector<subpt_t> subpts;
-    };
-
-    struct rte_t
-    {
-        // -- all gpx tags - start
-        QString name;
-        QString cmt;
-        QString desc;
-        QString src;
-        QList<link_t> links;
-        quint64 number = 0;
-        QString type;
-        QVector<rtept_t> pts;
-        // -- all gpx tags - stop
-
-        QString lastRoutedWith;
-        QDateTime lastRoutedTime;
-
-        qreal totalDistance = NOFLOAT;
-        quint32 totalTime = 0;
-        qreal ascent  = NOFLOAT;
-        qreal descent = NOFLOAT;
-    };
-
-    CGisItemRte(const QDomNode &xml, IGisProject *parent);
-    CGisItemRte(const CGisItemRte& parentRte, IGisProject *project, int idx, bool clone);
-    CGisItemRte(const history_t& hist, const QString& dbHash, IGisProject * project);
-    CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project);
-    CGisItemRte(const CQlgtRoute& rte1, IGisProject *project = nullptr);
-    CGisItemRte(const SGisLine& l, const QString &name, IGisProject *project, int idx);
-    CGisItemRte(CFitStream& stream, IGisProject * project);
-    virtual ~CGisItemRte();
-
-    IGisItem * createClone() override;
-
-    QDataStream& operator<<(QDataStream& stream) override;
-    QDataStream& operator>>(QDataStream& stream) const override;
-
-    const QString& getName() const override
-    {
-        return rte.name.isEmpty() ? noName : rte.name;
-    }
-
-    QString getInfo(quint32 feature) const override;
-    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
-    QPointF getPointCloseBy(const QPoint& screenPos) override;
-    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
-    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
-    void drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
-    void drawHighlight(QPainter& p) override;
-    void save(QDomNode& gpx, bool strictGpx11) override;
-    bool isCloseTo(const QPointF& pos) override;
-    bool isWithin(const QRectF& area, selflags_t flags) override;
-    /**
-       @brief Switch user focus on and off.
-
-       If the focus is switched on any other route having the focus will loose it.
-
-       @param yes   set true to gain focus.
-     */
-    void gainUserFocus(bool yes) override;
-    /**
-       @brief Make sure the route has lost focus.
-
-       If the route has the focus, keyUserFocus will be reset. In all other cases nothing will be done.
-
-     */
-    void looseUserFocus();
-    /**
-       @brief Check for user focus
-
-       @return True if the route has user focus
-     */
-    bool hasUserFocus() const override
-    {
-        return key == keyUserFocus;
-    }
-
-    /**
-       @brief Get the key of the current track with user focus
-
-       @return If no route has the focus an empty string is returned
-     */
-    static const key_t& getKeyUserFocus()
-    {
-        return keyUserFocus;
-    }
-
-    void setDataFromPolyline(const SGisLine& l) override;
-
-    void getPolylineFromData(SGisLine &l) override;
-
-    const QString& getComment() const override
-    {
-        return rte.cmt;
-    }
-    const QString& getDescription() const override
-    {
-        return rte.desc;
-    }
-    const QList<link_t>& getLinks() const override
-    {
-        return rte.links;
-    }
-
-    const rte_t& getRoute() const
-    {
-        return rte;
-    }
-
-    QDateTime getTimestamp() const override
-    {
-        return QDateTime();
-    }
-
-
-    void setName(const QString& str);
-    void setComment(const QString& str)       override;
-    void setDescription(const QString& str)   override;
-    void setLinks(const QList<link_t>& links) override;
-
-    void calc();
-    void reset();
-    void edit() override;
-    void toTrack();
-
-
-    QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner);
-
-    void setResult(Routino_Output * route, const QString &options);
-    void setResult(const QDomDocument& xml, const QString &options);
-    void setResultFromBRouter(const QDomDocument& xml, const QString &options);
-
-    bool isCalculated();
-
-private:
-    void deriveSecondaryData();
-    void setElevation(qreal ele, subpt_t &subpt, qreal &lastEle);
-    void setSymbol() override;
-    void readRte(const QDomNode& xml, rte_t& rte);
-    void readRteFromFit(CFitStream &stream);
-    void readRouteDataFromGisLine(const SGisLine &l);
-    const subpt_t * getSubPtByIndex(quint32 idx);
-
-    static key_t keyUserFocus;
-
-    static const QPen penBackground;
-    QPen penForeground {Qt::darkBlue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-    QPen penForegroundFocus {Qt::magenta, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-
-    rte_t rte;
-    QPolygonF line;
-
-
-    const subpt_t * mouseMoveFocus = nullptr;
-
-    QPointer<CScrOptRte>  scrOpt;
-};
-
-#endif //CGISITEMRTE_H
-
diff --git a/src/gis/rte/CScrOptRte.cpp b/src/gis/rte/CScrOptRte.cpp
deleted file mode 100644
index 0fe9e4c..0000000
--- a/src/gis/rte/CScrOptRte.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/CScrOptRte.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-
-CScrOptRte::CScrOptRte(CGisItemRte *rte, const QPoint& point, IMouse *parent)
-    : IScrOpt(parent)
-    , key(rte->getKey())
-{
-    setupUi(this);
-    setOrigin(point);
-    label->setFont(CMainWindow::self().getMapFont());
-    label->setText(rte->getInfo(IGisItem::eFeatureShowName));
-    adjustSize();
-
-    toolInstruction->setEnabled(rte->isCalculated());
-    toolInstruction->setChecked(rte->hasUserFocus());
-
-    bool isOnDevice = rte->isOnDevice();
-    toolEdit->setDisabled(isOnDevice);
-
-    anchor = rte->getPointCloseBy(point);
-    if((anchor - point).manhattanLength() > 50)
-    {
-        anchor = point;
-    }
-    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
-    show();
-
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolCalc,        &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolReset,       &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptRte::hide);
-    connect(toolInstruction, &QToolButton::toggled, this, &CScrOptRte::hide);
-    connect(toolToTrack,     &QToolButton::clicked, this, &CScrOptRte::hide);
-
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptRte::slotEditDetails);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptRte::slotDelete);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptRte::slotCopy);
-    connect(toolCalc,        &QToolButton::clicked, this, &CScrOptRte::slotCalc);
-    connect(toolReset,       &QToolButton::clicked, this, &CScrOptRte::slotReset);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptRte::slotEdit);
-    connect(toolInstruction, &QToolButton::toggled, this, &CScrOptRte::slotInstruction);
-    connect(toolToTrack,     &QToolButton::clicked, this, &CScrOptRte::slotToTrack);
-}
-
-CScrOptRte::~CScrOptRte()
-{
-}
-
-void CScrOptRte::slotEditDetails()
-{
-    CGisWorkspace::self().editItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotDelete()
-{
-    CGisWorkspace::self().delItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotCopy()
-{
-    CGisWorkspace::self().copyItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotCalc()
-{
-    CGisWorkspace::self().calcRteByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotReset()
-{
-    CGisWorkspace::self().resetRteByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotEdit()
-{
-    CGisWorkspace::self().editRteByKey(key);
-    deleteLater();
-}
-
-void CScrOptRte::slotInstruction(bool on)
-{
-    CGisWorkspace::self().focusRteByKey(on, key);
-    deleteLater();
-}
-
-void CScrOptRte::slotToTrack()
-{
-    CGisWorkspace::self().convertRouteToTrack(key);
-    deleteLater();
-}
-
-void CScrOptRte::draw(QPainter& p)
-{
-    IGisItem *item = CGisWorkspace::self().getItemByKey(key);
-    if(nullptr == item)
-    {
-        QWidget::deleteLater();
-        return;
-    }
-    item->drawHighlight(p);
-
-    CDraw::bubble(p, geometry(), anchor.toPoint());
-}
-
diff --git a/src/gis/rte/CScrOptRte.h b/src/gis/rte/CScrOptRte.h
deleted file mode 100644
index 66088b5..0000000
--- a/src/gis/rte/CScrOptRte.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CSCROPTRTE_H
-#define CSCROPTRTE_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IScrOpt.h"
-
-#include "ui_IScrOptRte.h"
-#include <QWidget>
-
-class CGisItemRte;
-class IMouse;
-
-class CScrOptRte : public IScrOpt, private Ui::IScrOptRte
-{
-    Q_OBJECT
-public:
-    CScrOptRte(CGisItemRte * rte, const QPoint &point, IMouse *parent);
-    virtual ~CScrOptRte();
-
-    void draw(QPainter& p) override;
-
-private slots:
-    void slotEditDetails();
-    void slotDelete();
-    void slotCopy();
-    void slotCalc();
-    void slotReset();
-    void slotEdit();
-    void slotInstruction(bool on);
-    void slotToTrack();
-
-private:
-    IGisItem::key_t key;
-    QPointF anchor;
-};
-
-#endif //CSCROPTRTE_H
-
diff --git a/src/gis/rte/IDetailsRte.ui b/src/gis/rte/IDetailsRte.ui
deleted file mode 100644
index 03dec6c..0000000
--- a/src/gis/rte/IDetailsRte.ui
+++ /dev/null
@@ -1,272 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IDetailsRte</class>
- <widget class="QDialog" name="IDetailsRte">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>400</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Info</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <property name="spacing">
-        <number>3</number>
-       </property>
-       <property name="leftMargin">
-        <number>3</number>
-       </property>
-       <property name="topMargin">
-        <number>3</number>
-       </property>
-       <property name="rightMargin">
-        <number>3</number>
-       </property>
-       <property name="bottomMargin">
-        <number>3</number>
-       </property>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout">
-         <item>
-          <widget class="CLineEdit" name="lineName">
-           <property name="palette">
-            <palette>
-             <active>
-              <colorrole role="Base">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-              <colorrole role="Window">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-             </active>
-             <inactive>
-              <colorrole role="Base">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-              <colorrole role="Window">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-             </inactive>
-             <disabled>
-              <colorrole role="Base">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-              <colorrole role="Window">
-               <brush brushstyle="SolidPattern">
-                <color alpha="0">
-                 <red>0</red>
-                 <green>0</green>
-                 <blue>0</blue>
-                </color>
-               </brush>
-              </colorrole>
-             </disabled>
-            </palette>
-           </property>
-           <property name="font">
-            <font>
-             <weight>75</weight>
-             <bold>true</bold>
-            </font>
-           </property>
-           <property name="frame">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="labelTainted">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="minimumSize">
-            <size>
-             <width>0</width>
-             <height>0</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>25</width>
-             <height>25</height>
-            </size>
-           </property>
-           <property name="toolTip">
-            <string>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
-           </property>
-           <property name="text">
-            <string/>
-           </property>
-           <property name="pixmap">
-            <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
-           </property>
-           <property name="scaledContents">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="toolLock">
-           <property name="toolTip">
-            <string>Toggle read only mode. You have to open the lock to edit the item.</string>
-           </property>
-           <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>
-           <property name="autoRaise">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QLabel" name="labelInfo">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="text">
-          <string>-</string>
-         </property>
-         <property name="alignment">
-          <set>Qt::AlignJustify|Qt::AlignTop</set>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QTextBrowser" name="textCmtDesc">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="openLinks">
-          <bool>false</bool>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_4">
-      <attribute name="title">
-       <string>Hist.</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_5">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="CHistoryListWidget" name="listHistory"/>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CHistoryListWidget</class>
-   <extends>QListWidget</extends>
-   <header>widgets/CHistoryListWidget.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>widgets/CLineEdit.h</header>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/rte/IScrOptRte.ui b/src/gis/rte/IScrOptRte.ui
deleted file mode 100644
index 33cd108..0000000
--- a/src/gis/rte/IScrOptRte.ui
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptRte</class>
- <widget class="QWidget" name="IScrOptRte">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>69</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
-     </property>
-     <item>
-      <widget class="QToolButton" name="toolEditDetails">
-       <property name="toolTip">
-        <string>View details and edit.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCopy">
-       <property name="toolTip">
-        <string>Copy route into another project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelete">
-       <property name="toolTip">
-        <string>Delete route from project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolInstruction">
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/RteInstr.png</normaloff>:/icons/32x32/RteInstr.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCalc">
-       <property name="toolTip">
-        <string>Calculate route.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolReset">
-       <property name="toolTip">
-        <string>Reset route calculation.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolEdit">
-       <property name="toolTip">
-        <string>Move route points.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/LineMove.png</normaloff>:/icons/32x32/LineMove.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolToTrack">
-       <property name="toolTip">
-        <string>Convert route to track</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Track.png</normaloff>:/icons/32x32/Track.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>TextLabel</string>
-     </property>
-     <property name="textFormat">
-      <enum>Qt::AutoText</enum>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/rte/router/CRouterBRouter.cpp b/src/gis/rte/router/CRouterBRouter.cpp
deleted file mode 100644
index 5b25fe4..0000000
--- a/src/gis/rte/router/CRouterBRouter.cpp
+++ /dev/null
@@ -1,636 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/router/CRouterBRouter.h"
-#include "gis/rte/router/brouter/CRouterBRouterInfo.h"
-#include "gis/rte/router/brouter/CRouterBRouterSetup.h"
-#include "gis/rte/router/brouter/CRouterBRouterSetupWizard.h"
-#include "gis/rte/router/brouter/CRouterBRouterToolShell.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSettings.h"
-#include <QtNetwork>
-#include <QtWidgets>
-
-CRouterBRouter::CRouterBRouter(QWidget *parent)
-    : IRouter(false, parent)
-{
-    setupUi(this);
-
-    labelBRouterWarning->hide();
-
-    setup = new CRouterBRouterSetup(this);
-    setup->load();
-
-    connect(toolSetup, &QToolButton::clicked, this, &CRouterBRouter::slotToolSetupClicked);
-    connect(toolProfileInfo, &QToolButton::clicked, this, &CRouterBRouter::slotToolProfileInfoClicked);
-    connect(setup, &CRouterBRouterSetup::sigDisplayOnlineProfileFinished, this, &CRouterBRouter::slotDisplayProfileInfo);
-    connect(setup, &CRouterBRouterSetup::sigError, this, &CRouterBRouter::slotDisplayError);
-
-    comboAlternative->addItem(tr("original"), "0");
-    comboAlternative->addItem(tr("first alternative"), "1");
-    comboAlternative->addItem(tr("second alternative"), "2");
-    comboAlternative->addItem(tr("third alternative"), "3");
-
-    networkAccessManager = new QNetworkAccessManager(this);
-    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouter::slotRequestFinished);
-
-    timerCloseStatusMsg = new QTimer(this);
-    timerCloseStatusMsg->setSingleShot(true);
-    timerCloseStatusMsg->setInterval(5000);
-    connect(timerCloseStatusMsg, &QTimer::timeout, this, &CRouterBRouter::slotCloseStatusMsg);
-
-    routerSetup = dynamic_cast<CRouterSetup*>(parent);
-
-    connect(toolConsole, &QToolButton::clicked, this, &CRouterBRouter::slotToggleConsole);
-    connect(toolToggleBRouter, &QToolButton::clicked, this, &CRouterBRouter::slotToggleBRouter);
-
-    textBRouterOutput->setVisible(false);
-    textBRouterError->setVisible(false);
-
-    //set textBRouterOutput as parent of ToolShell to ensure Toolshell is destroyed before text
-    brouterShell = new CRouterBRouterToolShell(textBRouterOutput,textBRouterOutput);
-    connect(brouterShell, &CRouterBRouterToolShell::sigProcessStateChanged, this, &CRouterBRouter::slotBRouterStateChanged);
-    connect(brouterShell, &CRouterBRouterToolShell::sigProcessError, this, &CRouterBRouter::slotBRouterError);
-
-    updateDialog();
-
-    SETTINGS;
-
-    cfg.beginGroup("Route/brouter");
-    comboProfile->setCurrentIndex(cfg.value("profile", 0).toInt());
-    checkFastRecalc->setChecked(cfg.value("fastRecalc", false).toBool() && (setup->installMode == CRouterBRouterSetup::eModeLocal));
-    comboAlternative->setCurrentIndex(cfg.value("alternative", 0).toInt());
-    cfg.endGroup();
-}
-
-CRouterBRouter::~CRouterBRouter()
-{
-    isShutdown = true;
-    if (brouterState != QProcess::NotRunning)
-    {
-        stopBRouter();
-    }
-    SETTINGS;
-    cfg.beginGroup("Route/brouter");
-    cfg.setValue("profile", comboProfile->currentIndex());
-    cfg.setValue("alternative", comboAlternative->currentIndex());
-    cfg.setValue("fastRecalc", checkFastRecalc->isChecked());
-    cfg.endGroup();
-}
-
-void CRouterBRouter::slotToolSetupClicked()
-{
-    stopBRouter();
-    CRouterBRouterSetupWizard setupWizard;
-    setupWizard.exec();
-    clearError();
-    setup->load();
-    updateDialog();
-}
-
-void CRouterBRouter::slotToolProfileInfoClicked() const
-{
-    const int index = comboProfile->currentIndex();
-    if (index > -1)
-    {
-        setup->displayProfileAsync(setup->getProfiles().at(index));
-    }
-}
-
-void CRouterBRouter::slotDisplayError(const QString &error, const QString &details) const
-{
-    textBRouterError->setText(error + ": " + details);
-    textBRouterError->setVisible(true);
-    QTimer::singleShot(5000,this,&CRouterBRouter::clearError);
-}
-
-void CRouterBRouter::clearError()
-{
-    textBRouterError->clear();
-    textBRouterError->setVisible(false);
-    brouterError = QProcess::UnknownError;
-}
-
-void CRouterBRouter::slotDisplayProfileInfo(const QString &profile, const QString &content)
-{
-    clearError();
-    CRouterBRouterInfo info;
-    info.setLabel(profile);
-    info.setInfo(content);
-    info.exec();
-}
-
-void CRouterBRouter::updateDialog() const
-{
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-    {
-        routerSetup->setRouterTitle(CRouterSetup::RouterBRouter,tr("BRouter (offline)"));
-        labelCopyrightBRouter->setVisible(true);
-        labelCopyrightBRouterWeb->setVisible(false);
-    }
-    else
-    {
-        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
-        routerSetup->setRouterTitle(CRouterSetup::RouterBRouter,tr("BRouter (online)"));
-        labelCopyrightBRouter->setVisible(false);
-        labelCopyrightBRouterWeb->setVisible(true);
-    }
-    comboProfile->clear();
-    bool hasItems = false;
-    for(const QString& profile : setup->getProfiles())
-    {
-        comboProfile->addItem(profile,profile);
-        hasItems = true;
-    }
-    comboProfile->setEnabled(hasItems);
-    toolProfileInfo->setEnabled(hasItems);
-    comboAlternative->setEnabled(hasItems);
-    updateLocalBRouterStatus();
-}
-
-void CRouterBRouter::slotCloseStatusMsg() const
-{
-    timerCloseStatusMsg->stop();
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-        canvas->reportStatus("BRouter", "");
-    }
-}
-
-QString CRouterBRouter::getOptions()
-{
-    return QString(tr("profile: %1, alternative: %2")
-                   .arg(comboProfile->currentData().toString())
-                   .arg(comboAlternative->currentData().toInt()+1));
-}
-
-bool CRouterBRouter::hasFastRouting()
-{
-    return setup->installMode == CRouterBRouterSetup::eModeLocal && checkFastRecalc->isChecked();
-}
-
-QNetworkRequest CRouterBRouter::getRequest(const QVector<wpt_t>& routePoints, const QVector<IRouter::circle_t>& areas) const
-{
-    QString lonLats;
-    bool isNext = false;
-
-    for(const wpt_t &pt : routePoints)
-    {
-        if (isNext)
-        {
-            lonLats.append(QString("|%1,%2").arg(pt.lon).arg(pt.lat));
-        }
-        else
-        {
-            lonLats = QString("%1,%2").arg(pt.lon).arg(pt.lat);
-            isNext = true;
-        }
-    }
-
-    QString nogos;
-    isNext = false;
-
-    for(const IRouter::circle_t &pt : areas)
-    {
-        if (isNext)
-        {
-            nogos.append(QString("|%1,%2,%3").arg(pt.lon).arg(pt.lat).arg(pt.rad));
-        }
-        else
-        {
-            nogos = QString("%1,%2,%3").arg(pt.lon).arg(pt.lat).arg(pt.rad);
-            isNext = true;
-        }
-    }
-
-    QUrlQuery urlQuery;
-    urlQuery.addQueryItem("lonlats",lonLats.toLatin1());
-    urlQuery.addQueryItem("nogos", nogos.toLatin1());
-    urlQuery.addQueryItem("profile", comboProfile->currentData().toString());
-    urlQuery.addQueryItem("alternativeidx", comboAlternative->currentData().toString());
-    urlQuery.addQueryItem("format", "gpx");
-
-    QUrl url = getServiceUrl();
-    url.setPath("/brouter");
-    url.setQuery(urlQuery);
-
-    return QNetworkRequest(url);
-}
-
-int CRouterBRouter::calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords)
-{
-    if(!hasFastRouting() || !mutex.tryLock())
-    {
-        return -1;
-    }
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal && brouterState == QProcess::NotRunning)
-    {
-        startBRouter();
-    }
-
-    QVector<wpt_t> points;
-    points << wpt_t(p1.y()*RAD_TO_DEG,p1.x()*RAD_TO_DEG);
-    points << wpt_t(p2.y()*RAD_TO_DEG,p2.x()*RAD_TO_DEG);
-
-    QVector<IRouter::circle_t> areas;
-    CGisWorkspace::self().getNogoAreas(areas);
-
-    synchronous = true;
-
-    QNetworkReply * reply = networkAccessManager->get(getRequest(points,areas));
-
-    try
-    {
-        reply->setProperty("options", getOptions());
-        reply->setProperty("time", QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
-
-        progress = new CProgressDialog(tr("Calculate route with %1").arg(getOptions()), 0, NOINT, this);
-
-        QEventLoop eventLoop;
-        connect(progress, &CProgressDialog::rejected, reply, &QNetworkReply::abort);
-        connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
-        //Processing userinputevents in local eventloop would cause a SEGV when clicking 'abort' of calling LineOp
-        eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
-
-        delete progress;
-
-        const QNetworkReply::NetworkError& netErr = reply->error();
-        if (netErr == QNetworkReply::RemoteHostClosedError && areas.size() > 1)
-        {
-            throw tr("BRouter does not support more then 1 nogo-area in this version, consider to upgrade");
-        }
-        else if(netErr != QNetworkReply::NoError)
-        {
-            throw reply->errorString();
-        }
-        else
-        {
-            clearError();
-
-            const QByteArray &res = reply->readAll();
-
-            if(res.isEmpty())
-            {
-                throw tr("response is empty");
-            }
-            else
-            {
-                QDomDocument xml;
-                xml.setContent(res);
-
-                const QDomElement &xmlGpx = xml.documentElement();
-                if(xmlGpx.isNull() || xmlGpx.tagName() != "gpx")
-                {
-                    throw QString(res);
-                }
-                else
-                {
-                    // read the shape
-                    const QDomNodeList &xmlLatLng = xmlGpx.firstChildElement("trk")
-                                                    .firstChildElement("trkseg")
-                                                    .elementsByTagName("trkpt");
-                    for(int n = 0; n < xmlLatLng.size(); n++)
-                    {
-                        const QDomElement &elem   = xmlLatLng.item(n).toElement();
-                        coords << QPointF();
-                        QPointF &point = coords.last();
-                        point.setX(elem.attribute("lon").toFloat()*DEG_TO_RAD);
-                        point.setY(elem.attribute("lat").toFloat()*DEG_TO_RAD);
-                    }
-                }
-            }
-        }
-    }
-    catch(const QString& msg)
-    {
-        coords.clear();
-        if(!msg.isEmpty())
-        {
-            reply->deleteLater();
-            mutex.unlock();
-            throw tr("Bad response from server: %1").arg(msg);
-        }
-    }
-
-    reply->deleteLater();
-    slotCloseStatusMsg();
-    mutex.unlock();
-    return coords.size();
-}
-
-void CRouterBRouter::calcRoute(const IGisItem::key_t& key)
-{
-    mutex.lock();
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal && brouterState == QProcess::NotRunning)
-    {
-        startBRouter();
-    }
-    CGisItemRte *rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
-    if(nullptr == rte)
-    {
-        mutex.unlock();
-        return;
-    }
-
-    QVector<IRouter::circle_t> areas;
-    CGisWorkspace::self().getNogoAreas(areas);
-
-    rte->reset();
-
-    slotCloseStatusMsg();
-
-    QVector<wpt_t> points;
-    for(const CGisItemRte::rtept_t &pt : rte->getRoute().pts)
-    {
-        points << wpt_t(pt.lat,pt.lon);
-    }
-
-    synchronous = false;
-
-    QNetworkReply * reply = networkAccessManager->get(getRequest(points,areas));
-
-    reply->setProperty("key.item", key.item);
-    reply->setProperty("key.project", key.project);
-    reply->setProperty("key.device", key.device);
-    reply->setProperty("options", getOptions());
-    reply->setProperty("time", QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
-    reply->setProperty("nogos", areas.size());
-
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-        canvas->reportStatus("BRouter", tr("<b>BRouter</b><br/>Routing request sent to server. Please wait..."));
-    }
-
-    progress = new CProgressDialog(tr("Calculate route with %1").arg(getOptions()), 0, NOINT, this);
-
-    connect(progress, &CProgressDialog::rejected, reply, &QNetworkReply::abort);
-}
-
-void CRouterBRouter::slotRequestFinished(QNetworkReply* reply)
-{
-    if (synchronous)
-    {
-        return;
-    }
-
-    delete progress;
-
-    try
-    {
-        const QNetworkReply::NetworkError& netErr = reply->error();
-        if (netErr == QNetworkReply::RemoteHostClosedError && reply->property("nogos").toInt() > 1)
-        {
-            throw tr("BRouter does not support more then 1 nogo-area in this version, consider to upgrade");
-        }
-        else if(netErr != QNetworkReply::NoError)
-        {
-            throw reply->errorString();
-        }
-
-        const QByteArray &res = reply->readAll();
-        reply->deleteLater();
-
-        if(res.isEmpty())
-        {
-            throw tr("response is empty");
-        }
-
-        clearError();
-
-        QDomDocument xml;
-        xml.setContent(res);
-
-        const QDomElement &xmlGpx = xml.documentElement();
-        if(xmlGpx.isNull() || xmlGpx.tagName() != "gpx")
-        {
-            throw QString(res);
-        }
-
-        IGisItem::key_t key;
-        key.item    = reply->property("key.item").toString();
-        key.project = reply->property("key.project").toString();
-        key.device  = reply->property("key.device").toString();
-        qint64 time = reply->property("time").toLongLong();
-        time = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch() - time;
-
-        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
-        if(rte != nullptr)
-        {
-            rte->setResultFromBRouter(xml, reply->property("options").toString() + tr("<br/>Calculation time: %1s").arg(time/1000.0, 0,'f',2));
-        }
-    }
-    catch(const QString& msg)
-    {
-        if(!msg.isEmpty())
-        {
-            CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-            if(canvas)
-            {
-                canvas->reportStatus("BRouter", tr("<b>BRouter</b><br/>Bad response from server:<br/>%1").arg(msg));
-            }
-            timerCloseStatusMsg->start();
-            reply->deleteLater();
-            mutex.unlock();
-            return;
-        }
-    }
-
-    slotCloseStatusMsg();
-    mutex.unlock();
-}
-
-QUrl CRouterBRouter::getServiceUrl() const
-{
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-    {
-        QUrl url(QString("http://"));
-        url.setHost(setup->localHost);
-        url.setPort(setup->localPort.toInt());
-        return url;
-    }
-    else
-    {
-        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
-        return QUrl(setup->onlineServiceUrl);
-    }
-}
-
-void CRouterBRouter::slotToggleConsole() const
-{
-    textBRouterOutput->setVisible(!textBRouterOutput->isVisible());
-    textBRouterError->setVisible(brouterError != QProcess::UnknownError && !textBRouterOutput->isVisible());
-}
-
-void CRouterBRouter::slotToggleBRouter() const
-{
-    if (brouterState == QProcess::NotRunning)
-    {
-        startBRouter();
-    }
-    else
-    {
-        stopBRouter();
-    }
-}
-
-void CRouterBRouter::startBRouter() const
-{
-    if (setup->isLocalBRouterInstalled())
-    {
-        textBRouterOutput->clear();
-        //# BRouter standalone server
-        //# java -cp brouter.jar btools.brouter.RouteServer <segmentdir> <profile-map> <customprofiledir> <port> <maxthreads>
-        //# maxRunningTime is the request timeout in seconds, set to 0 to disable timeout//    JAVA_OPTS=
-        //    CLASSPATH=../brouter.jar
-        //    java $JAVA_OPTS -cp $CLASSPATH btools.server.RouteServer ../segments4 ../profiles2 ../customprofiles 17777 1
-
-        if (brouterState == QProcess::NotRunning)
-        {
-            QStringList args;
-            args << setup->localJavaOpts.split(QRegExp("\\s+"));
-            args << QString("-DmaxRunningTime=%1").arg(setup->localMaxRunningTime);
-            args << "-cp";
-            args << "brouter.jar";
-            args << "btools.server.RouteServer";
-            args << setup->localSegmentsDir;
-            args << setup->localProfileDir;
-            args << setup->localCustomProfileDir;
-            args << setup->localPort;
-            args << setup->localNumberThreads;
-            brouterShell->start(setup->localDir, setup->localJavaExecutable, args);
-        }
-    }
-}
-
-void CRouterBRouter::stopBRouter() const
-{
-    if (brouterState != QProcess::NotRunning)
-    {
-        brouterShell->stop();
-    }
-    textBRouterOutput->setVisible(false);
-}
-
-void CRouterBRouter::slotBRouterStateChanged(const QProcess::ProcessState newState)
-{
-    brouterState = newState;
-    updateLocalBRouterStatus();
-}
-
-void CRouterBRouter::slotBRouterError(const QProcess::ProcessError error, const QString &errorString)
-{
-    brouterError = error;
-    slotDisplayError(tr("Error"),errorString);
-    updateLocalBRouterStatus();
-}
-
-void CRouterBRouter::updateLocalBRouterStatus() const
-{
-    static const QString msgBRouterWarning = tr(
-        "QMapShack communicates with BRouter via a network connection. Usually this is done on a special "
-        "address that can't be reached from outside your device. However BRouter listens for connections "
-        "on all available interfaces. If you are in your own private network with an active firewall, this "
-        "is not much of a problem. If you are in a public network every open port is a risk as it can be "
-        "used by someone else to compromise your system. We do not recommend to use the local BRouter service "
-        "in this case."
-        );
-
-    if (isShutdown)
-    {
-        return;
-    }
-
-    labelBRouterWarning->hide();
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-    {
-        if (setup->isLocalBRouterInstalled())
-        {
-            switch(brouterState)
-            {
-            case QProcess::Starting:
-            {
-                SETTINGS;
-                if(cfg.value("Route/brouter/local/showWarning", true).toBool())
-                {
-                    QMessageBox mbox;
-                    mbox.setWindowTitle(tr("Warning..."));
-                    mbox.setIcon(QMessageBox::Warning);
-                    mbox.setStandardButtons(QMessageBox::Ok);
-                    mbox.setText(msgBRouterWarning);
-
-                    QCheckBox * checkAgree = new QCheckBox(tr("I understand the risk. Don't tell me again."), &mbox);
-                    mbox.setCheckBox(checkAgree);
-                    mbox.exec();
-                    cfg.setValue("Route/brouter/local/showWarning", !checkAgree->isChecked());
-                }
-
-                labelStatus->setText(tr("starting"));
-                toolConsole->setVisible(true);
-                break;
-            }
-
-            case QProcess::Running:
-            {
-                labelBRouterWarning->show();
-                labelStatus->setText(tr("running"));
-                toolConsole->setVisible(true);
-                break;
-            }
-
-            case QProcess::NotRunning:
-            {
-                labelStatus->setText(tr("stopped"));
-                toolConsole->setVisible(brouterError != QProcess::UnknownError);
-                break;
-            }
-            }
-
-            checkFastRecalc->setEnabled(true);
-            toolToggleBRouter->setEnabled(true);
-        }
-        else
-        {
-            labelStatus->setText(tr("not installed"));
-            toolConsole->setVisible(false);
-            toolToggleBRouter->setEnabled(false);
-            checkFastRecalc->setEnabled(false);
-        }
-        toolToggleBRouter->setVisible(true);
-        checkFastRecalc->setVisible(true);
-    }
-    else
-    {
-        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
-        labelStatus->setText(tr("online"));
-        toolConsole->setVisible(false);
-        toolToggleBRouter->setVisible(false);
-        checkFastRecalc->setVisible(false);
-        textBRouterOutput->clear();
-        textBRouterOutput->setVisible(false);
-    }
-}
diff --git a/src/gis/rte/router/CRouterBRouter.h b/src/gis/rte/router/CRouterBRouter.h
deleted file mode 100644
index ac567fd..0000000
--- a/src/gis/rte/router/CRouterBRouter.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CROUTERBROUTER_H
-#define CROUTERBROUTER_H
-
-#include "gis/rte/router/IRouter.h"
-#include "ui_IRouterBRouter.h"
-
-#include <QNetworkAccessManager>
-#include <QProcess>
-#include <QTimer>
-
-class CRouterBRouterSetup;
-class CRouterBRouterSetupWizard;
-class CRouterBRouterInfo;
-class CRouterBRouterToolShell;
-class CRouterSetup;
-class CProgressDialog;
-
-class CRouterBRouter : public IRouter, private Ui::IRouterBRouter
-{
-    Q_OBJECT
-public:
-    CRouterBRouter(QWidget * parent);
-    virtual ~CRouterBRouter();
-
-    void calcRoute(const IGisItem::key_t& key) override;
-    int calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords) override;
-    bool hasFastRouting() override;
-    QString getOptions() override;
-
-private slots:
-    void slotToolSetupClicked();
-    void slotRequestFinished(QNetworkReply* reply);
-    void slotCloseStatusMsg() const;
-    void slotToolProfileInfoClicked() const;
-    void slotDisplayError(const QString &error, const QString &details) const;
-    void slotDisplayProfileInfo(const QString &profile, const QString &content);
-    void slotBRouterStateChanged(const QProcess::ProcessState newState);
-    void slotBRouterError(const QProcess::ProcessError error, const QString &errorString);
-    void slotToggleBRouter() const;
-    void slotToggleConsole() const;
-
-private:
-
-    struct wpt_t
-    {
-        wpt_t() :
-            lat(NOFLOAT),
-            lon(NOFLOAT)
-        {
-        }
-
-        wpt_t(const qreal& lat, const qreal& lon) :
-            lat(lat),
-            lon(lon)
-        {
-        }
-        qreal lat;
-        qreal lon;
-    };
-
-    void updateDialog() const;
-    void startBRouter() const;
-    void stopBRouter() const;
-    void updateLocalBRouterStatus() const;
-    QNetworkRequest getRequest(const QVector<wpt_t>& routePoints, const QVector<circle_t> &areas) const;
-    QUrl getServiceUrl() const;
-    void clearError();
-
-    QNetworkAccessManager * networkAccessManager;
-    QTimer * timerCloseStatusMsg;
-    bool synchronous = false;
-    QMutex mutex {QMutex::NonRecursive};
-    CRouterBRouterSetup * setup;
-    CRouterSetup * routerSetup;
-    CRouterBRouterInfo * info;
-    CRouterBRouterToolShell * brouterShell {nullptr};
-    QProcess::ProcessState brouterState { QProcess::NotRunning };
-    QProcess::ProcessError brouterError { QProcess::UnknownError };
-    CProgressDialog * progress;
-    bool isError { false };
-    QString error;
-    QString errorDetails;
-    bool isShutdown { false };
-};
-
-#endif //CROUTERBROUTER_H
-
diff --git a/src/gis/rte/router/CRouterSetup.cpp b/src/gis/rte/router/CRouterSetup.cpp
deleted file mode 100644
index 4789ce3..0000000
--- a/src/gis/rte/router/CRouterSetup.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "gis/CGisWorkspace.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/rte/router/CRouterBRouter.h"
-#include "gis/rte/router/CRouterMapQuest.h"
-#include "gis/rte/router/CRouterRoutino.h"
-#include "gis/rte/router/CRouterSetup.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-CRouterSetup * CRouterSetup::pSelf = nullptr;
-
-CRouterSetup::CRouterSetup(QWidget * parent)
-    : QWidget(parent)
-{
-    setupUi(this);
-    pSelf = this;
-
-    comboRouter->addItem(tr("Routino (offline)"));
-    comboRouter->addItem(tr("MapQuest (online)"));
-    comboRouter->addItem(tr("BRouter (online)"));
-
-    stackedWidget->addWidget(new CRouterRoutino(this));
-    stackedWidget->addWidget(new CRouterMapQuest(this));
-    stackedWidget->addWidget(new CRouterBRouter(this));
-
-    connect(comboRouter, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CRouterSetup::slotSelectRouter);
-
-    SETTINGS;
-    comboRouter->setCurrentIndex(cfg.value("Route/current",0).toInt());
-}
-
-CRouterSetup::~CRouterSetup()
-{
-    SETTINGS;
-    cfg.setValue("Route/current", comboRouter->currentIndex());
-}
-
-bool CRouterSetup::hasFastRouting()
-{
-    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
-    if(router)
-    {
-        return router->hasFastRouting();
-    }
-    return false;
-}
-
-void CRouterSetup::slotSelectRouter(int i)
-{
-    stackedWidget->setCurrentIndex(i);
-}
-
-void CRouterSetup::calcRoute(const IGisItem::key_t& key)
-{
-    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
-    if(router)
-    {
-        router->calcRoute(key);
-    }
-}
-
-int CRouterSetup::calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords)
-{
-    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
-    if(router)
-    {
-        return router->calcRoute(p1, p2, coords);
-    }
-
-    return false;
-}
-
-void CRouterSetup::setRouterTitle(const router_e router, const QString title)
-{
-    comboRouter->setItemText(router,title);
-}
diff --git a/src/gis/rte/router/IRouter.h b/src/gis/rte/router/IRouter.h
deleted file mode 100644
index afec86d..0000000
--- a/src/gis/rte/router/IRouter.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef IROUTER_H
-#define IROUTER_H
-
-#include "gis/IGisItem.h"
-#include <QWidget>
-
-class IRouter : public QWidget
-{
-    Q_OBJECT
-public:
-
-    struct circle_t
-    {
-        circle_t() : lon(NOFLOAT), lat(NOFLOAT), rad(NOINT)
-        {
-        }
-
-        circle_t(const qreal& lat, const qreal& lon, const qreal& rad) :
-            lon(lon),
-            lat(lat),
-            rad(rad)
-        {
-        }
-
-        qreal lon;
-        qreal lat;
-        quint32 rad;
-    };
-
-    IRouter(bool fastRouting, QWidget * parent);
-    virtual ~IRouter();
-
-    virtual void calcRoute(const IGisItem::key_t& key) = 0;
-    virtual int calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords) = 0;
-    virtual bool hasFastRouting()
-    {
-        return fastRouting;
-    }
-
-    virtual QString getOptions() = 0;
-
-private:
-    bool fastRouting;
-};
-
-#endif //IROUTER_H
-
diff --git a/src/gis/rte/router/IRouterBRouter.ui b/src/gis/rte/router/IRouterBRouter.ui
deleted file mode 100644
index c34480c..0000000
--- a/src/gis/rte/router/IRouterBRouter.ui
+++ /dev/null
@@ -1,259 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IRouterBRouter</class>
- <widget class="QWidget" name="IRouterBRouter">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>388</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QFormLayout" name="formLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Profile</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Alternative</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QComboBox" name="comboAlternative">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <item>
-        <widget class="QComboBox" name="comboProfile">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QToolButton" name="toolProfileInfo">
-         <property name="toolTip">
-          <string>display selected routing profile</string>
-         </property>
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../../../resources.qrc">
-           <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QCheckBox" name="checkFastRecalc">
-       <property name="enabled">
-        <bool>true</bool>
-       </property>
-       <property name="text">
-        <string>on-the-fly routing</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLabel" name="labelBRouter">
-       <property name="text">
-        <string>BRouter: </string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="labelStatus">
-       <property name="text">
-        <string>not running</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolToggleBRouter">
-       <property name="toolTip">
-        <string>start/stop BRouter</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../../resources.qrc">
-         <normaloff>:/icons/32x32/Off.png</normaloff>:/icons/32x32/Off.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolConsole">
-       <property name="toolTip">
-        <string>show BRouter console</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../../resources.qrc">
-         <normaloff>:/icons/32x32/TextLeft.png</normaloff>:/icons/32x32/TextLeft.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolSetup">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Setup</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="labelBRouterWarning">
-     <property name="text">
-      <string>Caution! BRouter is listening on all ports for connections.</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextBrowser" name="textBRouterOutput">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QTextBrowser" name="textBRouterError"/>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <widget class="QLabel" name="labelCopyrightBRouter">
-     <property name="text">
-      <string><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="openExternalLinks">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="labelCopyrightBRouterWeb">
-     <property name="text">
-      <string><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="openExternalLinks">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="labelCopyrightOSM">
-     <property name="text">
-      <string><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="openExternalLinks">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/rte/router/IRouterMapQuest.ui b/src/gis/rte/router/IRouterMapQuest.ui
deleted file mode 100644
index 4907c81..0000000
--- a/src/gis/rte/router/IRouterMapQuest.ui
+++ /dev/null
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IRouterMapQuest</class>
- <widget class="QWidget" name="IRouterMapQuest">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="3" column="0">
-      <widget class="QCheckBox" name="checkMQAvoidLimAccess">
-       <property name="text">
-        <string>Highways</string>
-       </property>
-      </widget>
-     </item>
-     <item row="4" column="0">
-      <widget class="QCheckBox" name="checkMQAvoidSeasonal">
-       <property name="text">
-        <string>Seasonal</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_3">
-       <property name="text">
-        <string>Language</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="1">
-      <widget class="QCheckBox" name="checkMQAvoidCountryBorder">
-       <property name="text">
-        <string>Country Border</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QComboBox" name="comboMQLanguage"/>
-     </item>
-     <item row="0" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Profile</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Avoid:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="5" column="0">
-      <widget class="QCheckBox" name="checkMQAvoidFerry">
-       <property name="text">
-        <string>Ferry</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="QCheckBox" name="checkMQAvoidTollRoads">
-       <property name="text">
-        <string>Toll Road</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="comboMQPreference"/>
-     </item>
-     <item row="4" column="1">
-      <widget class="QCheckBox" name="checkMQAvoidUnpaved">
-       <property name="text">
-        <string>Unpaved</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>123</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <widget class="QLabel" name="labelCopyrightMapQuest">
-     <property name="text">
-      <string><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></string>
-     </property>
-     <property name="openExternalLinks">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/gis/rte/router/IRouterRoutino.ui b/src/gis/rte/router/IRouterRoutino.ui
deleted file mode 100644
index 9173cc3..0000000
--- a/src/gis/rte/router/IRouterRoutino.ui
+++ /dev/null
@@ -1,139 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IRouterRoutino</class>
- <widget class="QWidget" name="IRouterRoutino">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>400</width>
-    <height>300</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="3" column="1">
-      <widget class="QComboBox" name="comboDatabase"/>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="comboProfile"/>
-     </item>
-     <item row="2" column="1">
-      <widget class="QComboBox" name="comboMode"/>
-     </item>
-     <item row="0" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Profile</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Mode</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="label_5">
-       <property name="text">
-        <string>Database</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="2">
-      <widget class="QToolButton" name="toolSetupPaths">
-       <property name="toolTip">
-        <string>Add paths with Routino database.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../../resources.qrc">
-         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="label_6">
-       <property name="text">
-        <string>Language</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QComboBox" name="comboLanguage"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QFrame" name="frameHelp">
-       <property name="frameShape">
-        <enum>QFrame::NoFrame</enum>
-       </property>
-       <property name="frameShadow">
-        <enum>QFrame::Plain</enum>
-       </property>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <widget class="QLabel" name="label_3">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-          <property name="pixmap">
-           <pixmap resource="../../../resources.qrc">:/icons/48x48/Help.png</pixmap>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLabel" name="label_4">
-          <property name="text">
-           <string>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</string>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignJustify|Qt::AlignTop</set>
-          </property>
-          <property name="wordWrap">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-    </layout>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/rte/router/IRouterSetup.ui b/src/gis/rte/router/IRouterSetup.ui
deleted file mode 100644
index d537512..0000000
--- a/src/gis/rte/router/IRouterSetup.ui
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IRouterSetup</class>
- <widget class="QWidget" name="IRouterSetup">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>302</width>
-    <height>382</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <widget class="QComboBox" name="comboRouter"/>
-   </item>
-   <item>
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QStackedWidget" name="stackedWidget"/>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetup.cpp b/src/gis/rte/router/brouter/CRouterBRouterSetup.cpp
deleted file mode 100644
index 045e611..0000000
--- a/src/gis/rte/router/brouter/CRouterBRouterSetup.cpp
+++ /dev/null
@@ -1,625 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "gis/rte/router/brouter/CRouterBRouterSetup.h"
-
-#include "helpers/CSettings.h"
-#include "setup/IAppSetup.h"
-#include <QMessageBox>
-#include <QWebFrame>
-#include <QWebPage>
-#include <QtScript>
-#include <QtWebKit>
-
-CRouterBRouterSetup::CRouterBRouterSetup(QObject *parent)
-    : QObject(parent)
-{
-    networkAccessManager = new QNetworkAccessManager(this);
-    profilesWebPage = new QWebPage(this);
-    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouterSetup::slotOnlineRequestFinished);
-    connect(profilesWebPage, &QWebPage::loadFinished, this, &CRouterBRouterSetup::slotLoadOnlineProfilesRequestFinished);
-}
-
-CRouterBRouterSetup::~CRouterBRouterSetup()
-{
-}
-
-void CRouterBRouterSetup::load()
-{
-    SETTINGS;
-    cfg.beginGroup("Route/brouter");
-    installMode = modeFromString(cfg.value("installMode",stringFromMode(defaultInstallMode)).toString());
-    expertMode = cfg.value("expertMode",defaultExpertMode).toBool();
-    onlineWebUrl = cfg.value("onlineWebUrl", defaultOnlineWebUrl).toString();
-    onlineServiceUrl = cfg.value("onlineServiceUrl", defaultOnlineServiceUrl).toString();
-    onlineProfilesUrl = cfg.value("onlineProfilesUrl", defaultOnlineProfilesUrl).toString();
-    localDir = cfg.value("localDir", defaultLocalDir).toString();
-    localJavaExecutable = cfg.value("localJava",findJava()).toString();
-    localProfileDir = cfg.value("localProfileDir", defaultLocalProfileDir).toString();
-    localCustomProfileDir = cfg.value("localCustomProfileDir", defaultLocalCustomProfileDir).toString();
-    localSegmentsDir = cfg.value("localSegmentsDir", defaultLocalSegmentsDir).toString();
-    localHost = cfg.value("localHost", defaultLocalHost).toString();
-    localPort = cfg.value("localPort", defaultLocalPort).toString();
-    localNumberThreads = cfg.value("localNumberThreads", defaultLocalNumberThreads).toString();
-    localMaxRunningTime = cfg.value("localMaxRunningTime", defaultLocalMaxRunningTime).toString();
-    localJavaOpts = cfg.value("localJavaOpts", defaultLocalJavaOpts).toString();
-    binariesUrl = cfg.value("binariesUrl",defaultBinariesUrl).toString();
-    segmentsUrl = cfg.value("segmentsUrl",defaultSegmentsUrl).toString();
-    onlineProfiles.clear();
-    int size = cfg.beginReadArray("online");
-    for (int i=0; i < size; i++)
-    {
-        cfg.setArrayIndex(i);
-        onlineProfiles << cfg.value("profile").toString();
-    }
-    cfg.endArray();
-    localProfiles.clear();
-    size = cfg.beginReadArray("local");
-    for (int i=0; i < size; i++)
-    {
-        cfg.setArrayIndex(i);
-        localProfiles << cfg.value("profile").toString();
-    }
-    cfg.endArray();
-    cfg.endGroup();
-
-    if (installMode == eModeLocal)
-    {
-        readLocalProfiles();
-    }
-    else if (installMode == eModeOnline)
-    {
-        loadOnlineConfig();
-    }
-    else
-    {
-        onInvalidSetup();
-    }
-}
-
-void CRouterBRouterSetup::save()
-{
-    SETTINGS;
-    cfg.beginGroup("Route/brouter");
-    cfg.setValue("expertMode",expertMode);
-    cfg.setValue("installMode", stringFromMode(installMode));
-    cfg.setValue("onlineWebUrl", onlineWebUrl);
-    cfg.setValue("onlineServiceUrl", onlineServiceUrl);
-    cfg.setValue("onlineProfilesUrl", onlineProfilesUrl);
-    cfg.setValue("localDir", localDir);
-    cfg.setValue("localJava", localJavaExecutable);
-    cfg.setValue("localProfileDir", localProfileDir);
-    cfg.setValue("localCustomProfileDir", localCustomProfileDir);
-    cfg.setValue("localSegmentsDir", localSegmentsDir);
-    cfg.setValue("localHost", localHost);
-    cfg.setValue("localPort", localPort);
-    cfg.setValue("localNumberThreads", localNumberThreads);
-    cfg.setValue("localMaxRunningTime", localMaxRunningTime);
-    cfg.setValue("localJavaOpts", localJavaOpts);
-    cfg.setValue("binariesUrl", binariesUrl);
-    cfg.setValue("segmentsUrl", segmentsUrl);
-    cfg.beginWriteArray("online");
-    for (int i=0; i < onlineProfiles.size(); i++)
-    {
-        cfg.setArrayIndex(i);
-        cfg.setValue("profile", onlineProfiles.at(i));
-    }
-    cfg.endArray();
-    cfg.beginWriteArray("local");
-    for (int i=0; i < localProfiles.size(); i++)
-    {
-        cfg.setArrayIndex(i);
-        cfg.setValue("profile",localProfiles.at(i));
-    }
-    cfg.endArray();
-    cfg.endGroup();
-}
-
-void CRouterBRouterSetup::resetAll()
-{
-    resetInstallMode();
-    resetOnlineWebUrl();
-    resetOnlineServiceUrl();
-    resetOnlineProfilesUrl();
-    resetLocalProfileDir();
-    resetLocalCustomProfileDir();
-    resetLocalSegmentsDir();
-    resetLocalHost();
-    resetLocalPort();
-    resetLocalNumberThreads();
-    resetLocalMaxRunningTime();
-    resetLocalJavaOpts();
-    resetBinariesUrl();
-    resetSegmentsUrl();
-}
-
-CRouterBRouterSetup::mode_e CRouterBRouterSetup::modeFromString(const QString& mode) const
-{
-    if (mode == "online")
-    {
-        return eModeOnline;
-    }
-    else if (mode == "local")
-    {
-        return eModeLocal;
-    }
-    else
-    {
-        return eModeIllegal;
-    }
-}
-
-QString CRouterBRouterSetup::stringFromMode(const mode_e mode) const
-{
-    if (mode == eModeLocal)
-    {
-        return "local";
-    }
-    else
-    {
-        Q_ASSERT(mode == eModeOnline);
-        return "online";
-    }
-}
-
-void CRouterBRouterSetup::addProfile(const QString &profile)
-{
-    if (installMode == eModeLocal)
-    {
-        loadOnlineProfileAsync(profile, eProfileInstall);
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        if (!onlineProfiles.contains(profile))
-        {
-            onlineProfiles << profile;
-            emit sigProfilesChanged();
-        }
-    }
-}
-
-void CRouterBRouterSetup::deleteProfile(const QString &profile)
-{
-    if (installMode == eModeLocal)
-    {
-        const QString &filename = getProfileDir(eModeLocal).absoluteFilePath(profile + ".brf");
-        QFile file(filename);
-        if (file.exists())
-        {
-            file.remove();
-        }
-        if (localProfiles.contains(profile))
-        {
-            localProfiles.removeAt(localProfiles.indexOf(profile));
-            emit sigProfilesChanged();
-        }
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        onlineProfiles.removeAt(onlineProfiles.indexOf(profile));
-        emit sigProfilesChanged();
-    }
-}
-
-void CRouterBRouterSetup::profileUp(const QString &profile)
-{
-    if (installMode == eModeLocal)
-    {
-        int index = localProfiles.indexOf(profile);
-        if (index > 0)
-        {
-            localProfiles.removeAt(index);
-            localProfiles.insert(index-1,profile);
-            emit sigProfilesChanged();
-        }
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        int index = onlineProfiles.indexOf(profile);
-        if (index > 0)
-        {
-            onlineProfiles.removeAt(index);
-            onlineProfiles.insert(index-1,profile);
-            emit sigProfilesChanged();
-        }
-    }
-}
-
-void CRouterBRouterSetup::profileDown(const QString &profile)
-{
-    if (installMode == eModeLocal)
-    {
-        int index = localProfiles.indexOf(profile);
-        if (index > -1 && index < localProfiles.size()-1)
-        {
-            localProfiles.removeAt(index);
-            localProfiles.insert(index+1,profile);
-            emit sigProfilesChanged();
-        }
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        int index = onlineProfiles.indexOf(profile);
-        if (index > -1 && index < onlineProfiles.size()-1)
-        {
-            onlineProfiles.removeAt(index);
-            onlineProfiles.insert(index+1,profile);
-            emit sigProfilesChanged();
-        }
-    }
-}
-
-void CRouterBRouterSetup::readLocalProfiles()
-{
-    bool changed(false);
-    const QDir& dir = getProfileDir(eModeLocal);
-    QStringList installedProfiles;
-    if (dir.exists())
-    {
-        for(const QString &profile : dir.entryList())
-        {
-            if (profile.endsWith(".brf"))
-            {
-                installedProfiles << profile.left(profile.length()-4);
-            }
-        }
-    }
-    const QStringList localProfilesTmp(localProfiles);
-    for (const QString &profile : localProfilesTmp)
-    {
-        if (!installedProfiles.contains(profile))
-        {
-            localProfiles.removeAt(localProfiles.indexOf(profile));
-            changed = true;
-        }
-    }
-    for (const QString &profile : installedProfiles)
-    {
-        if (!localProfiles.contains(profile))
-        {
-            localProfiles << profile;
-            changed = true;
-        }
-    }
-    if (changed)
-    {
-        emit sigProfilesChanged();
-    }
-}
-
-QDir CRouterBRouterSetup::getProfileDir(const mode_e mode) const
-{
-    if (mode == eModeLocal)
-    {
-        return QDir(QDir(localDir).absoluteFilePath(localProfileDir));
-    }
-    else
-    {
-        Q_ASSERT(mode == eModeOnline);
-        QDir brouterDir(QDir(IAppSetup::getPlatformInstance()->defaultCachePath()).absoluteFilePath(onlineCacheDir));
-        if (!brouterDir.exists())
-        {
-            brouterDir.mkpath(brouterDir.absolutePath());
-        }
-        return brouterDir;
-    }
-}
-
-QStringList CRouterBRouterSetup::getProfiles() const
-{
-    if (installMode == eModeLocal)
-    {
-        return localProfiles;
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        return onlineProfiles;
-    }
-}
-
-void CRouterBRouterSetup::loadLocalOnlineProfiles() const
-{
-    profilesWebPage->mainFrame()->load(QUrl(onlineProfilesUrl));
-}
-
-void CRouterBRouterSetup::loadOnlineConfig() const
-{
-    const QUrl configUrl(onlineWebUrl + "config.js");
-    const QString &configHost = configUrl.host();
-
-    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(configUrl));
-    reply->setProperty("configHost",configHost);
-    reply->setProperty("type",eTypeConfig);
-}
-
-void CRouterBRouterSetup::slotOnlineRequestFinished(QNetworkReply *reply)
-{
-    const request_e type = request_e(reply->property("type").toInt());
-    if (type == eTypeConfig)
-    {
-        loadOnlineConfigFinished(reply);
-    }
-    else
-    {
-        Q_ASSERT(type ==  eTypeProfile);
-        loadOnlineProfileFinished(reply);
-    }
-}
-
-void CRouterBRouterSetup::loadOnlineConfigFinished(QNetworkReply *reply)
-{
-    reply->deleteLater();
-
-    if (reply->error() != QNetworkReply::NoError)
-    {
-        emitNetworkError(reply->errorString());
-        return;
-    }
-    else
-    {
-        QString configHost = reply->property("configHost").toString();
-
-        const QString jsConfig(reply->readAll());
-
-        QScriptEngine engine;
-
-        const QString &jsSetup = QString( \
-            "(function(){\
-                       window = {};\
-                       window.location = {};\
-                       window.location.hostname = '%1';\
-                       window.location.search = {};\
-                       window.location.search.slice = function() {};\
-                       URLSearchParams = function() {};\
-                       BR = {};\
-                      })();").arg(configHost);
-
-        engine.evaluate(jsSetup).toString();
-        engine.evaluate(jsConfig).toString();
-        if (engine.hasUncaughtException())
-        {
-            emitOnlineConfigScriptError(engine.uncaughtException());
-            return;
-        }
-
-        const QScriptValue &br = engine.globalObject().property("BR");
-        if (!br.isValid() || br.isError())
-        {
-            emitOnlineConfigScriptError(br);
-            return;
-        }
-        const QScriptValue &conf = br.property("conf");
-        if (!conf.isValid() || conf.isError())
-        {
-            emitOnlineConfigScriptError(conf);
-            return;
-        }
-
-        const QScriptValue &host = conf.property("host").toString();
-        if (!host.isValid() || host.isError())
-        {
-            emitOnlineConfigScriptError(host);
-            return;
-        }
-        if (onlineServiceUrl != host.toString())
-        {
-            onlineServiceUrl = host.toString();
-        }
-        const QScriptValue &url = conf.property("profilesUrl").toString();
-        if (!url.isValid() || url.isError())
-        {
-            emitOnlineConfigScriptError(url);
-            return;
-        }
-        if (onlineProfilesUrl != url.toString())
-        {
-            onlineProfilesUrl = url.toString();
-        }
-
-        const QScriptValue &profiles = conf.property("profiles");
-        if (!profiles.isValid() || profiles.isError())
-        {
-            emitOnlineConfigScriptError(profiles);
-            return;
-        }
-        const qint32 len = profiles.property("length").toInt32();
-
-        QStringList onlineProfilesLoaded;
-        for(qint32 i=0; i<len; i++)
-        {
-            const QScriptValue &profile = profiles.property(i);
-            if (!profile.isValid() || profile.isError())
-            {
-                emitOnlineConfigScriptError(profile);
-                return;
-            }
-            onlineProfilesLoaded << profile.toString();
-        }
-
-        mergeOnlineProfiles(onlineProfilesLoaded);
-
-        const QStringList onlineProfilesTmp(onlineProfiles);
-        for (const QString &profile : onlineProfilesTmp)
-        {
-            if (!onlineProfilesAvailable.contains(profile))
-            {
-                onlineProfiles.removeAt(onlineProfiles.indexOf(profile));
-            }
-        }
-
-        emit sigProfilesChanged();
-        emit sigOnlineConfigLoaded();
-    }
-}
-
-void CRouterBRouterSetup::slotLoadOnlineProfilesRequestFinished(bool ok)
-{
-    if (!ok)
-    {
-        emitNetworkError(tr("%1 not accessible").arg(onlineProfilesUrl));
-        return;
-    }
-    else
-    {
-        const QWebElement &htmlElement = profilesWebPage->mainFrame()->documentElement();
-        const QWebElementCollection &anchorElements = htmlElement.findAll("table tr td a");
-
-        if (anchorElements.count() == 0)
-        {
-            emitNetworkError(tr("%1 invalid result").arg(onlineProfilesUrl));
-            return;
-        }
-
-        const QRegExp rxProfileName("(\\S+)\\.brf");
-
-        QStringList onlineProfilesLoaded;
-        for (const QWebElement &anchorElement : anchorElements)
-        {
-            const QString &profileName = anchorElement.toPlainText();
-            //only anchors matching the desired pattern
-            if (rxProfileName.indexIn(profileName) > -1)
-            {
-                onlineProfilesLoaded << rxProfileName.cap(1);
-            }
-        }
-
-        mergeOnlineProfiles(onlineProfilesLoaded);
-
-        emit sigProfilesChanged();
-    }
-}
-
-void CRouterBRouterSetup::mergeOnlineProfiles(const QStringList &onlineProfilesLoaded)
-{
-    const QStringList onlineProfilesAvailableTmp(onlineProfilesAvailable);
-    for (const QString &profile : onlineProfilesAvailableTmp)
-    {
-        if (!onlineProfilesLoaded.contains(profile))
-        {
-            onlineProfilesAvailable.removeAt(onlineProfilesAvailable.indexOf(profile));
-        }
-    }
-    for (const QString &profile : onlineProfilesLoaded)
-    {
-        if (!onlineProfilesAvailable.contains(profile))
-        {
-            onlineProfilesAvailable << profile;
-        }
-    }
-}
-
-void CRouterBRouterSetup::emitOnlineConfigScriptError(const QScriptValue &error) const
-{
-    emit sigError(tr("Error parsing online-config:"),error.toString());
-}
-
-void CRouterBRouterSetup::emitNetworkError(QString error) const
-{
-    emit sigError(tr("Network error:"),error);
-}
-
-void CRouterBRouterSetup::displayProfileAsync(const QString &profile) const
-{
-    if (installMode == eModeLocal)
-    {
-        QFile file(getProfileDir(eModeLocal).absoluteFilePath(profile + ".brf"));
-        if (file.exists())
-        {
-            file.open(QIODevice::ReadOnly);
-            const QByteArray &content = file.readAll();
-            file.close();
-            emit sigDisplayOnlineProfileFinished(profile, QString(content));
-        }
-    }
-    else
-    {
-        Q_ASSERT(installMode == eModeOnline);
-        loadOnlineProfileAsync(profile, eProfileDisplay);
-    }
-}
-
-void CRouterBRouterSetup::displayOnlineProfileAsync(const QString &profile) const
-{
-    loadOnlineProfileAsync(profile, eProfileDisplay);
-}
-
-void CRouterBRouterSetup::loadOnlineProfileAsync(const QString &profile, const profileRequest_e mode) const
-{
-    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(QUrl(onlineProfilesUrl + profile +".brf")));
-    reply->setProperty("type",eTypeProfile);
-    reply->setProperty("profile", profile);
-    reply->setProperty("request", mode);
-}
-
-void CRouterBRouterSetup::loadOnlineProfileFinished(QNetworkReply * reply)
-{
-    reply->deleteLater();
-    if (reply->error() != QNetworkReply::NoError)
-    {
-        emitNetworkError(reply->errorString());
-    }
-    else
-    {
-        const QString &profile = reply->property("profile").toString();
-        const profileRequest_e mode = profileRequest_e(reply->property("request").toInt());
-
-        const QByteArray &content = reply->readAll();
-        if (mode == eProfileInstall)
-        {
-            const QDir dir = getProfileDir(eModeLocal);
-            const QString filename = dir.absoluteFilePath(profile + ".brf");
-            QFile file(filename);
-            file.open(QIODevice::WriteOnly);
-            file.write(content);
-            file.close();
-            readLocalProfiles();
-        }
-        else
-        {
-            Q_ASSERT(mode == eProfileDisplay);
-            emit sigDisplayOnlineProfileFinished(profile, QString(content));
-        }
-    }
-}
-
-bool CRouterBRouterSetup::isLocalBRouterInstalled() const
-{
-    const QDir dir(localDir);
-    return QFile(dir.absoluteFilePath("brouter.jar")).exists() && QDir(dir.absoluteFilePath(localProfileDir)).exists();
-}
-
-QString CRouterBRouterSetup::findJava() const
-{
-    return IAppSetup::getPlatformInstance()->findExecutable("java");
-}
-
-void CRouterBRouterSetup::onInvalidSetup()
-{
-    QMessageBox msgBox;
-    msgBox.setIcon(QMessageBox::Warning);
-    msgBox.setText("BRouter config is inconsistent!");
-    msgBox.setInformativeText("Resetting to default values");
-    msgBox.setStandardButtons(QMessageBox::Ok);
-    msgBox.exec();
-    resetAll();
-}
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetup.h b/src/gis/rte/router/brouter/CRouterBRouterSetup.h
deleted file mode 100644
index 8be5a9b..0000000
--- a/src/gis/rte/router/brouter/CRouterBRouterSetup.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CROUTERBROUTERSETUP_H
-#define CROUTERBROUTERSETUP_H
-
-#include <QScriptValue>
-#include <QWebPage>
-#include <QtCore>
-
-class CRouterBRouterSetup : public QObject
-{
-    Q_OBJECT
-public:
-    CRouterBRouterSetup(QObject * parent);
-    ~CRouterBRouterSetup();
-
-    enum mode_e { eModeLocal, eModeOnline, eModeIllegal };
-    struct tile_t { QPoint tile; QDateTime date; qreal size; };
-
-    void load();
-    void save();
-
-    void resetAll();
-    void resetInstallMode() { installMode = defaultInstallMode; }
-    void resetOnlineWebUrl() { onlineWebUrl = defaultOnlineWebUrl; }
-    void resetOnlineServiceUrl() { onlineServiceUrl = defaultOnlineServiceUrl; }
-    void resetOnlineProfilesUrl() { onlineProfilesUrl = defaultOnlineProfilesUrl; }
-    void resetLocalProfileDir() { localProfileDir = defaultLocalProfileDir; }
-    void resetLocalCustomProfileDir() { localCustomProfileDir = defaultLocalCustomProfileDir; }
-    void resetLocalSegmentsDir() { localSegmentsDir = defaultLocalSegmentsDir; }
-    void resetLocalHost() { localHost = defaultLocalHost; }
-    void resetLocalPort() { localPort = defaultLocalPort; }
-    void resetLocalNumberThreads() { localNumberThreads = defaultLocalNumberThreads; }
-    void resetLocalMaxRunningTime() { localMaxRunningTime = defaultLocalMaxRunningTime; }
-    void resetLocalJavaOpts() { localJavaOpts = defaultLocalJavaOpts; }
-    void resetBinariesUrl() { binariesUrl = defaultBinariesUrl; }
-    void resetSegmentsUrl() { segmentsUrl = defaultSegmentsUrl; }
-
-    QStringList getProfiles() const;
-
-    void addProfile(const QString &profile);
-    void deleteProfile(const QString &profile);
-    void profileUp(const QString &profile);
-    void profileDown(const QString &profile);
-
-    void readLocalProfiles();
-
-    void loadOnlineConfig() const;
-    void loadLocalOnlineProfiles() const;
-    void displayProfileAsync(const QString &profile) const;
-    void displayOnlineProfileAsync(const QString &profile) const;
-
-    QString findJava() const;
-    bool isLocalBRouterInstalled() const;
-
-    void onInvalidSetup();
-
-signals:
-    void sigOnlineConfigLoaded() const;
-    void sigProfilesChanged() const;
-    void sigDisplayOnlineProfileFinished(const QString profile, const QString content) const;
-    void sigError(const QString error, const QString details) const;
-
-private slots:
-    void slotOnlineRequestFinished(QNetworkReply *reply);
-    void slotLoadOnlineProfilesRequestFinished(bool ok);
-
-private:
-    enum request_e { eTypeConfig, eTypeProfile };
-    enum profileRequest_e { eProfileInstall, eProfileDisplay };
-
-    QDir getProfileDir(const mode_e mode) const;
-    void loadOnlineProfileAsync(const QString &profile, const profileRequest_e mode) const;
-    void loadOnlineConfigFinished(QNetworkReply* reply);
-    void loadOnlineProfileFinished(QNetworkReply * reply);
-    void mergeOnlineProfiles(const QStringList &profilesLoaded);
-    void emitOnlineConfigScriptError(const QScriptValue &error) const;
-    void emitNetworkError(QString error) const;
-    mode_e modeFromString(const QString &mode) const;
-    QString stringFromMode(const mode_e mode) const;
-
-    QStringList onlineProfiles;
-    QStringList localProfiles;
-
-    QNetworkAccessManager * networkAccessManager;
-    QWebPage * profilesWebPage;
-
-    bool expertMode;
-    mode_e installMode;
-    QString onlineWebUrl;
-    QString onlineServiceUrl;
-    QString onlineProfilesUrl;
-    QStringList onlineProfilesAvailable;
-    QString localDir;
-    QString localJavaExecutable;
-    QString localProfileDir;
-    QString localCustomProfileDir;
-    QString localSegmentsDir;
-    QString localHost;
-    QString localPort;
-    QString localNumberThreads;
-    QString localMaxRunningTime;
-    QString localJavaOpts;
-    QString binariesUrl;
-    QString segmentsUrl;
-
-    const bool defaultExpertMode = false;
-    const mode_e defaultInstallMode = eModeOnline;
-    const QString defaultOnlineWebUrl = "http://brouter.de/brouter-web/";
-    const QString defaultOnlineServiceUrl = "http://h2096617.stratoserver.net:443";
-    const QString defaultOnlineProfilesUrl = "http://brouter.de/brouter/profiles2/";
-    const QString defaultLocalDir = ".";
-    const QString defaultLocalProfileDir = "profiles2";
-    const QString defaultLocalCustomProfileDir = "customprofiles";
-    const QString defaultLocalSegmentsDir = "segments4";
-    const QString defaultLocalHost = "127.0.0.1";
-    const QString defaultLocalPort = "17777";
-    const QString defaultLocalNumberThreads = "1";
-    const QString defaultLocalMaxRunningTime = "300";
-    const QString defaultLocalJavaOpts = "-Xmx128M -Xms128M -Xmn8M";
-    const QString defaultBinariesUrl = "http://brouter.de/brouter_bin/";
-    const QString defaultSegmentsUrl = "http://brouter.de/brouter/segments4/";
-
-    const QString onlineCacheDir = "BRouter";
-
-    friend class CRouterBRouter;
-    friend class CRouterBRouterSetupPage;
-    friend class CRouterBRouterSetupWizard;
-    friend class CRouterBRouterTilesSelect;
-};
-
-#endif
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp b/src/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
deleted file mode 100644
index 9772dee..0000000
--- a/src/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
+++ /dev/null
@@ -1,952 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/rte/router/brouter/CRouterBRouterSetup.h"
-#include "gis/rte/router/brouter/CRouterBRouterSetupWizard.h"
-#include "setup/IAppSetup.h"
-#include <JlCompress.h>
-#include <QFileDialog>
-#include <QMessageBox>
-#include <QNetworkReply>
-#include <QNetworkRequest>
-#include <proj_api.h>
-
-CRouterBRouterSetupWizard::CRouterBRouterSetupWizard()
-    : QWizard(CMainWindow::getBestWidgetForParent())
-{
-    setupUi(this);
-
-    setup = new CRouterBRouterSetup(this);
-
-    setButtonText(QWizard::CustomButton1, tr("Restore Default Values"));
-    connect(this, &CRouterBRouterSetupWizard::currentIdChanged, this, &CRouterBRouterSetupWizard::slotCurrentIdChanged);
-    connect(this, &CRouterBRouterSetupWizard::customButtonClicked, this, &CRouterBRouterSetupWizard::slotCustomButtonClicked);
-
-    connect(radioLocal,  &QRadioButton::clicked, this, &CRouterBRouterSetupWizard::slotRadioLocalClicked);
-    connect(radioOnline, &QRadioButton::clicked, this, &CRouterBRouterSetupWizard::slotRadioOnlineClicked);
-    connect(checkExpert, &QCheckBox::clicked,    this, &CRouterBRouterSetupWizard::slotCheckExpertClicked);
-
-    connect(lineLocalProfilesUrl, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged);
-    connect(lineLocalProfilesUrl, &QLineEdit::editingFinished, this, &CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged);
-    connect(toolLocalDir, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalToolSelectDirectory);
-    connect(toolJavaExecutable, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalToolSelectJava);
-    connect(pushLocalFindJava, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalPushFindJava);
-    connect(lineLocalDir, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalDirectoryCursonPositionChanged);
-    connect(lineJavaExecutable, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalJavaExecutableCursorPositionChanged);
-
-    connect(pushCreateOrUpdateLocalInstall, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotCreateOrUpdateLocalInstallClicked);
-
-    connect(pushLocalInstall, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalDownloadButtonClicked);
-
-    connect(listProfiles, &QListView::clicked, this, &CRouterBRouterSetupWizard::slotProfileClicked);
-    connect(listAvailableProfiles, &QListView::clicked, this, &CRouterBRouterSetupWizard::slotAvailableProfileClicked);
-    connect(toolAddProfile, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotAddProfileClicked);
-    connect(toolDeleteProfile, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotDelProfileClicked);
-    connect(toolProfileUp, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotProfileUpClicked);
-    connect(toolProfileDown, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotProfileDownClicked);
-
-    connect(lineOnlineUrl, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged);
-    connect(lineOnlineUrl, &QLineEdit::editingFinished, this, &CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged);
-
-    connect(setup, &CRouterBRouterSetup::sigOnlineConfigLoaded, this, &CRouterBRouterSetupWizard::slotOnlineConfigLoaded);
-    connect(setup, &CRouterBRouterSetup::sigDisplayOnlineProfileFinished, this, &CRouterBRouterSetupWizard::slotDisplayProfile);
-    connect(setup, &CRouterBRouterSetup::sigProfilesChanged, this, &CRouterBRouterSetupWizard::slotOnlineProfilesLoaded);
-    connect(setup, &CRouterBRouterSetup::sigError, this, &CRouterBRouterSetupWizard::slotSetupError);
-
-    QStringListModel *profilesModel = new QStringListModel();
-    listProfiles->setModel(profilesModel);
-
-    QStringListModel *availableProfiles = new QStringListModel();
-    listAvailableProfiles->setModel(availableProfiles);
-
-    networkAccessManager = new QNetworkAccessManager(this);
-    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouterSetupWizard::slotLocalDownloadButtonFinished);
-
-    setup->load();
-}
-
-CRouterBRouterSetupWizard::~CRouterBRouterSetupWizard()
-{
-}
-
-int CRouterBRouterSetupWizard::nextId() const
-{
-    switch(currentId())
-    {
-    case ePageChooseMode:
-    {
-        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-        {
-            return ePageLocalDirectory;
-        }
-        if (setup->expertMode) //ModeOnline
-        {
-            return ePageOnlineUrl;
-        }
-        return ePageProfiles;
-    }
-
-    case ePageLocalDirectory:
-    {
-        if (setup->expertMode)
-        {
-            return ePageOnlineUrl;
-        }
-        if (doLocalInstall)
-        {
-            return ePageLocalInstallation;
-        }
-        return ePageProfiles;
-    }
-
-    case ePageLocalInstallation:
-    {
-        if (setup->expertMode)
-        {
-            return ePageLocalDetails;
-        }
-        return ePageProfiles;
-    }
-
-    case ePageProfiles:
-    {
-        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-        {
-            return ePageLocalTiles;
-        }
-        break;
-    }
-
-    case ePageLocalTiles:
-    {
-        break;
-    }
-
-    case ePageOnlineDetails:
-    {
-        return ePageProfiles;
-    }
-
-    case ePageOnlineUrl:
-    {
-        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-        {
-            if (doLocalInstall)
-            {
-                return ePageLocalInstallation;
-            }
-            if (setup->expertMode)
-            {
-                return ePageLocalDetails;
-            }
-            return ePageProfiles;
-        }
-        else if (setup->installMode == CRouterBRouterSetup::eModeOnline)
-        {
-            return ePageOnlineDetails;
-        }
-        break;
-    }
-
-    case ePageLocalDetails:
-    {
-        return ePageProfiles;
-    }
-    }
-
-    return -1;
-}
-
-void CRouterBRouterSetupWizard::initializePage(const int id)
-{
-    switch(id)
-    {
-    case ePageLocalDirectory:
-    {
-        initLocalDirectory();
-        break;
-    }
-
-    case ePageLocalInstallation:
-    {
-        initLocalInstall();
-        break;
-    }
-
-    case ePageLocalTiles:
-    {
-        initLocalTiles();
-        break;
-    }
-    }
-}
-
-bool CRouterBRouterSetupWizard::validateCurrentPage()
-{
-    switch(currentId())
-    {
-    case ePageOnlineDetails:
-    {
-        return validateOnlineDetails();
-    }
-
-    case ePageLocalDetails:
-    {
-        return validateLocalDetails();
-    }
-    }
-
-    return true;
-}
-
-void CRouterBRouterSetupWizard::slotCurrentIdChanged(const int id)
-{
-    switch(id)
-    {
-    case ePageChooseMode:
-    {
-        beginChooseMode();
-        break;
-    }
-
-    case ePageLocalDirectory:
-    {
-        beginLocalDirectory();
-        break;
-    }
-
-    case ePageLocalInstallation:
-    {
-        beginLocalInstall();
-        break;
-    }
-
-    case ePageProfiles:
-    {
-        beginProfiles();
-        break;
-    }
-
-    case ePageLocalTiles:
-    {
-        beginLocalTiles();
-        break;
-    }
-
-    case ePageOnlineDetails:
-    {
-        beginOnlineDetails();
-        break;
-    }
-
-    case ePageOnlineUrl:
-    {
-        beginOnlineUrl();
-        break;
-    }
-
-    case ePageLocalDetails:
-    {
-        beginLocalDetails();
-        break;
-    }
-    }
-}
-
-void CRouterBRouterSetupWizard::slotCustomButtonClicked(const int id)
-{
-    if (id == QWizard::CustomButton1)
-    {
-        const int page = currentId();
-        switch (page)
-        {
-        case ePageOnlineDetails:
-        {
-            resetOnlineDetails();
-            break;
-        }
-
-        case ePageOnlineUrl:
-        {
-            resetOnlineUrl();
-            break;
-        }
-
-        case ePageLocalDetails:
-        {
-            resetLocalDetails();
-            break;
-        }
-        }
-    }
-}
-
-void CRouterBRouterSetupWizard::accept()
-{
-    setup->save();
-    QDialog::accept();
-}
-
-void CRouterBRouterSetupWizard::reject()
-{
-    if (!pageLocalTiles->isComplete())
-    {
-        if (pageLocalTiles->raiseWarning())
-        {
-            return;
-        }
-    }
-    QDialog::reject();
-}
-
-void CRouterBRouterSetupWizard::beginChooseMode()
-{
-    switch(setup->installMode)
-    {
-    case CRouterBRouterSetup::eModeLocal:
-    {
-        radioLocal->setChecked(true);
-        radioOnline->setChecked(false);
-        break;
-    }
-
-    case CRouterBRouterSetup::eModeOnline:
-    {
-        radioLocal->setChecked(false);
-        radioOnline->setChecked(true);
-        break;
-    }
-    }
-
-    checkExpert->setChecked(setup->expertMode);
-    setOption(QWizard::HaveCustomButton1, false);
-}
-
-void CRouterBRouterSetupWizard::slotRadioLocalClicked() const
-{
-    setup->installMode = CRouterBRouterSetup::eModeLocal;
-}
-
-void CRouterBRouterSetupWizard::slotRadioOnlineClicked() const
-{
-    setup->installMode = CRouterBRouterSetup::eModeOnline;
-}
-
-void CRouterBRouterSetupWizard::slotCheckExpertClicked() const
-{
-    setup->expertMode = checkExpert->isChecked();
-}
-
-void CRouterBRouterSetupWizard::initLocalDirectory()
-{
-    pageLocalDirectory->setSetup(setup);
-}
-
-void CRouterBRouterSetupWizard::beginLocalDirectory()
-{
-    updateLocalDirectory();
-    doLocalInstall = false;
-    setOption(QWizard::HaveCustomButton1, false);
-}
-
-void CRouterBRouterSetupWizard::slotLocalToolSelectDirectory()
-{
-    setup->localDir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"", QFileDialog::ShowDirsOnly);
-    updateLocalDirectory();
-}
-
-void CRouterBRouterSetupWizard::slotLocalToolSelectJava()
-{
-    QFileDialog dialog(this,
-                       tr("select Java Executable"),
-                       QFileInfo(setup->localJavaExecutable).absolutePath(),
-                       "Java Executable (java*)");
-    dialog.setFileMode(QFileDialog::ExistingFile);
-    if (dialog.exec())
-    {
-        setup->localJavaExecutable = dialog.selectedFiles().first();
-        updateLocalDirectory();
-    }
-}
-
-void CRouterBRouterSetupWizard::slotLocalPushFindJava() const
-{
-    setup->localJavaExecutable = setup->findJava();
-    updateLocalDirectory();
-}
-
-void CRouterBRouterSetupWizard::slotLocalDirectoryCursonPositionChanged() const
-{
-    setup->localDir = lineLocalDir->text();
-    updateLocalDirectory();
-}
-
-void CRouterBRouterSetupWizard::slotLocalJavaExecutableCursorPositionChanged() const
-{
-    setup->localJavaExecutable = lineJavaExecutable->text();
-    updateLocalDirectory();
-}
-
-void CRouterBRouterSetupWizard::updateLocalDirectory() const
-{
-    textLocalDirectory->setVisible(false);
-    lineLocalDir->setText(setup->localDir);
-    lineJavaExecutable->setText(setup->localJavaExecutable);
-    if (setup->localDir.isEmpty())
-    {
-        labelLocalDirResult->setText(tr("please select BRouter installation directory"));
-        pushCreateOrUpdateLocalInstall->setVisible(false);
-    }
-    else if(!QDir(setup->localDir).exists())
-    {
-        labelLocalDirResult->setText(tr("selected directory does not exist"));
-        pushCreateOrUpdateLocalInstall->setText(tr("create directory and install BRouter there"));
-        pushCreateOrUpdateLocalInstall->setVisible(true);
-    }
-    else
-    {
-        if (setup->isLocalBRouterInstalled())
-        {
-            labelLocalDirResult->setText(tr("existing BRouter installation"));
-            pushCreateOrUpdateLocalInstall->setText(tr("update existing BRouter installation"));
-            pushCreateOrUpdateLocalInstall->setVisible(true);
-        }
-        else
-        {
-            labelLocalDirResult->setText(tr("empty directory, create new BRouter installation here"));
-            pushCreateOrUpdateLocalInstall->setText(tr("create new BRouter installation"));
-            pushCreateOrUpdateLocalInstall->setVisible(true);
-        }
-    }
-    if (QFile(setup->localJavaExecutable).exists())
-    {
-        if (QFileInfo(setup->localJavaExecutable).baseName().startsWith("java"))
-        {
-            labelLocalJavaResult->setText(tr("seems to be a valid Java-executable"));
-        }
-        else
-        {
-            labelLocalJavaResult->setText(tr("doesn't seem to be a valid Java-executable"));
-        }
-    }
-    else
-    {
-        labelLocalJavaResult->setText(tr("Java Executable not found"));
-        labelLocalJavaResult->setVisible(true);
-    }
-    pageLocalDirectory->emitCompleteChanged();
-}
-
-void CRouterBRouterSetupWizard::slotCreateOrUpdateLocalInstallClicked()
-{
-    QDir outDir(setup->localDir);
-    try
-    {
-        if(!outDir.exists())
-        {
-            if (!outDir.mkpath(outDir.absolutePath()))
-            {
-                throw tr("Error creating directory %1").arg(outDir.absolutePath());
-            }
-        }
-        doLocalInstall = true;
-        next();
-    }
-    catch (const QString &msg)
-    {
-        textLocalDirectory->setVisible(true);
-        textLocalDirectory->setTextColor(Qt::red);
-        textLocalDirectory->append(msg);
-    }
-}
-
-void CRouterBRouterSetupWizard::initLocalInstall()
-{
-    pageLocalInstallation->setSetup(setup);
-    connect(webLocalBRouterVersions, &QWebView::loadFinished, this, &CRouterBRouterSetupWizard::slotWebLocalBRouterVersionsLoadFinished);
-    webLocalBRouterVersions->load(QUrl(setup->binariesUrl));
-    QWebPage *localVersionsPage = webLocalBRouterVersions->page();
-    localVersionsPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
-    connect(localVersionsPage, &QWebPage::linkClicked, this, &CRouterBRouterSetupWizard::slotLocalDownloadLinkClicked);
-}
-
-void CRouterBRouterSetupWizard::slotWebLocalBRouterVersionsLoadFinished(bool ok)
-{
-    if (!ok)
-    {
-        textLocalInstall->setVisible(true);
-        textLocalInstall->setTextColor(Qt::red);
-        textLocalInstall->append(tr("Error loading installation-page at %1").arg(setup->binariesUrl));
-    }
-}
-
-void CRouterBRouterSetupWizard::beginLocalInstall()
-{
-    doLocalInstall = false;
-    textLocalInstall->setVisible(false);
-    textLocalInstall->clear();
-    labelLocalInstallLink->setText(tr("no brouter-version to install selected"));
-    pushLocalInstall->setEnabled(false);
-    setOption(QWizard::HaveCustomButton1, false);
-}
-
-void CRouterBRouterSetupWizard::slotLocalDownloadLinkClicked(const QUrl &url)
-{
-    downloadUrl = url;
-    labelLocalInstallLink->setText(QString(tr("selected %1 for download and installation")).arg(url.fileName()));
-    pushLocalInstall->setEnabled(true);
-}
-
-void CRouterBRouterSetupWizard::slotLocalDownloadButtonClicked()
-{
-    const QString& strUrl = downloadUrl.toString();
-
-    if(!strUrl.startsWith("https"))
-    {
-        QMessageBox mbox;
-        mbox.setWindowTitle(tr("Warning..."));
-        mbox.setIcon(QMessageBox::Warning);
-        mbox.setStandardButtons(QMessageBox::Ok|QMessageBox::Abort);
-        mbox.setDefaultButton(QMessageBox::Abort);
-
-        QString msg = tr("Download: %1<br/>"
-                         "<br/>"
-                         "This will download and install a zip file from a download location that is not secured "
-                         "by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is "
-                         "someone redirecting the request and sending you a replacement zip with malware. There "
-                         "is no way for QMapShack to detect this. <br/>"
-                         "If you do not understand this or if you are in doubt, do not proceed and abort. "
-                         "Use the Web version of BRouter instead."
-                         ).arg(strUrl);
-
-        mbox.setText(msg);
-
-        QCheckBox * checkAgree = new QCheckBox(tr("I understand the risk and wish to proceed."), &mbox);
-        mbox.setCheckBox(checkAgree);
-        connect(checkAgree, &QCheckBox::clicked, mbox.button(QMessageBox::Ok), &QPushButton::setEnabled);
-        mbox.button(QMessageBox::Ok)->setDisabled(true);
-
-        if(mbox.exec() != QMessageBox::Ok)
-        {
-            return;
-        }
-    }
-    textLocalInstall->setVisible(true);
-    textLocalInstall->setTextColor(Qt::darkGreen);
-    textLocalInstall->append(tr("download %1 started").arg(downloadUrl.toString()));
-    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(downloadUrl));
-    reply->setProperty("fileName",downloadUrl.fileName());
-}
-
-void CRouterBRouterSetupWizard::slotLocalDownloadButtonFinished(QNetworkReply * reply)
-{
-    reply->deleteLater();
-    try
-    {
-        if (reply->error() != QNetworkReply::NoError)
-        {
-            throw tr("Network Error: %1").arg(reply->errorString());
-        }
-        const QString &fileName = reply->property("fileName").toString();
-        QDir outDir(setup->localDir);
-        if (!outDir.exists())
-        {
-            throw tr("Error directory %1 does not exist").arg(outDir.absolutePath());
-        }
-        QFile outfile(outDir.absoluteFilePath(fileName));
-        try
-        {
-            if (!outfile.open(QIODevice::WriteOnly))
-            {
-                throw tr("Error creating file %1").arg(outfile.fileName());
-            }
-            if (outfile.write(reply->readAll()) < 0)
-            {
-                throw tr("Error writing to file %1").arg(outfile.fileName());
-            }
-            outfile.close();
-            textLocalInstall->setTextColor(Qt::darkGreen);
-            textLocalInstall->append(tr("download %1 finished").arg(outfile.fileName()));
-            const QStringList &unzippedNames = JlCompress::extractDir(outfile.fileName(),setup->localDir);
-            textLocalInstall->append(tr("unzipping:"));
-            for (const QString unzipped : unzippedNames)
-            {
-                textLocalInstall->append(unzipped);
-            }
-            textLocalInstall->append(tr("ready."));
-            pageLocalInstallation->emitCompleteChanged();
-            setup->readLocalProfiles();
-        }
-        catch (const QString &msg)
-        {
-            if (outfile.isOpen())
-            {
-                outfile.close();
-            }
-            if (outfile.exists())
-            {
-                outfile.remove();
-            }
-            throw msg;
-        }
-    }
-    catch (const QString &msg)
-    {
-        textLocalInstall->setTextColor(Qt::red);
-        textLocalInstall->append(tr("download of brouter failed: %1").arg(msg));
-    }
-}
-
-void CRouterBRouterSetupWizard::beginProfiles()
-{
-    isError = false;
-    updateProfiles();
-    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
-    {
-        textProfileContent->setText(tr("retrieving available profiles from %1").arg(setup->onlineProfilesUrl));
-        setup->loadLocalOnlineProfiles();
-        setup->readLocalProfiles();
-    }
-    else
-    {
-        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
-        textProfileContent->setText(tr("retrieving available profiles from %1").arg(setup->onlineWebUrl));
-        setup->loadOnlineConfig();
-    }
-    setOption(QWizard::HaveCustomButton1, false);
-}
-
-void CRouterBRouterSetupWizard::slotProfileClicked(const QModelIndex & index) const
-{
-    const QString &profile = listProfiles->model()->data(index).toString();
-    listAvailableProfiles->clearSelection();
-    updateProfiles();
-    setup->displayProfileAsync(profile);
-}
-
-void CRouterBRouterSetupWizard::slotAvailableProfileClicked(const QModelIndex & index) const
-{
-    const QString &profile = listAvailableProfiles->model()->data(index).toString();
-    listProfiles->clearSelection();
-    updateProfiles();
-    setup->displayOnlineProfileAsync(profile);
-}
-
-void CRouterBRouterSetupWizard::slotDisplayProfile(const QString &profile, const QString content)
-{
-    labelProfileContent->setText(tr("content of profile"));
-    textProfileContent->setText(content);
-}
-
-void CRouterBRouterSetupWizard::slotAddProfileClicked() const
-{
-    for (const QString &profile : selectedProfiles(listAvailableProfiles))
-    {
-        setup->addProfile(profile);
-    }
-}
-
-void CRouterBRouterSetupWizard::slotDelProfileClicked() const
-{
-    for (const QString &profile : selectedProfiles(listProfiles))
-    {
-        setup->deleteProfile(profile);
-    }
-}
-
-void CRouterBRouterSetupWizard::slotProfileUpClicked() const
-{
-    for (const QString &profile : selectedProfiles(listProfiles))
-    {
-        setup->profileUp(profile);
-    }
-}
-
-void CRouterBRouterSetupWizard::slotProfileDownClicked() const
-{
-    for (const QString &profile : selectedProfiles(listProfiles))
-    {
-        setup->profileDown(profile);
-    }
-}
-
-void CRouterBRouterSetupWizard::slotOnlineProfilesLoaded()
-{
-    isError = false;
-    switch(currentId())
-    {
-    case ePageProfiles:
-    {
-        updateProfiles();
-        break;
-    }
-
-    case ePageLocalDetails:
-    {
-        updateLocalDetails();
-        break;
-    }
-    }
-}
-
-void CRouterBRouterSetupWizard::updateProfiles() const
-{
-    const QStringList &profiles = setup->getProfiles();
-    QStringList available;
-    for(const QString &profile:setup->onlineProfilesAvailable)
-    {
-        if (!profiles.contains(profile))
-        {
-            available << profile;
-        }
-    }
-
-    QList<int> selected = updateProfileView(listProfiles, profiles);
-    qSort(selected.begin(),selected.end());
-    toolDeleteProfile->setEnabled(!selected.isEmpty());
-    toolProfileUp->setEnabled(!selected.isEmpty() && selected.first() > 0);
-    toolProfileDown->setEnabled(!selected.isEmpty() && selected.last() < profiles.size()-1);
-    if (isError)
-    {
-        toolAddProfile->setEnabled(false);
-        labelProfileContent->setText(tr("Error:"));
-        textProfileContent->setText(error + ": "+ errorDetails);
-    }
-    else
-    {
-        toolAddProfile->setEnabled(!updateProfileView(listAvailableProfiles, available).isEmpty());
-        listAvailableProfiles->setVisible(true);
-        labelProfileContent->setText(tr("content of profile"));
-        textProfileContent->clear();
-    }
-    pageProfiles->emitCompleteChanged();
-}
-
-QStringList CRouterBRouterSetupWizard::selectedProfiles(const QListView * listView) const
-{
-    const QItemSelectionModel * selectModel = listView->selectionModel();
-    const QModelIndexList &selected = selectModel->selectedIndexes();
-    const QAbstractItemModel * model = listView->model();
-    QStringList selectedList;
-    for (int i = 0; i < selected.size(); i++)
-    {
-        selectedList << model->data(selected.at(i)).toString();
-    }
-    return selectedList;
-}
-
-QList<int> CRouterBRouterSetupWizard::updateProfileView(QListView * listView, const QStringList &values) const
-{
-    QList<int> selected;
-    const QStringList &selectedValues = selectedProfiles(listView);
-    QStringListModel * listModel = (dynamic_cast<QStringListModel*>(listView->model()));
-    QItemSelectionModel * selectModel = listView->selectionModel();
-    listModel->setStringList(values);
-    for (const QString &value : selectedValues)
-    {
-        if (values.contains(value))
-        {
-            int index = values.indexOf(value);
-            selectModel->select(listModel->index(index), QItemSelectionModel::Select);
-            selected << index;
-        }
-    }
-    return selected;
-}
-
-void CRouterBRouterSetupWizard::initLocalTiles() const
-{
-    pageLocalTiles->setSetup(setup);
-}
-
-void CRouterBRouterSetupWizard::beginLocalTiles()
-{
-    pageLocalTiles->beginPage();
-    setOption(QWizard::HaveCustomButton1, false);
-}
-
-void CRouterBRouterSetupWizard::beginOnlineDetails()
-{
-    setOption(QWizard::HaveCustomButton1, true);
-    updateOnlineDetails();
-}
-
-void CRouterBRouterSetupWizard::updateOnlineDetails() const
-{
-    lineOnlineProfileUrl->setText(setup->onlineProfilesUrl);
-    lineOnlineService->setText(setup->onlineServiceUrl);
-}
-
-bool CRouterBRouterSetupWizard::validateOnlineDetails() const
-{
-    setup->onlineProfilesUrl = lineOnlineProfileUrl->text();
-    setup->onlineServiceUrl = lineOnlineService->text();
-    return true;
-}
-
-void CRouterBRouterSetupWizard::resetOnlineDetails() const
-{
-    setup->resetOnlineProfilesUrl();
-    setup->resetOnlineServiceUrl();
-
-    updateOnlineDetails();
-}
-
-void CRouterBRouterSetupWizard::beginOnlineUrl()
-{
-    setOption(QWizard::HaveCustomButton1, true);
-    isError = false;
-    setup->loadOnlineConfig();
-}
-
-void CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged()
-{
-    setup->onlineWebUrl = lineOnlineUrl->text();
-    isError = false;
-    setup->loadOnlineConfig();
-}
-
-void CRouterBRouterSetupWizard::updateOnlineUrl()
-{
-    lineOnlineUrl->setText(setup->onlineWebUrl);
-    textOnlineUrl->setVisible(isError);
-    if (isError)
-    {
-        textOnlineUrl->setText(error + ": "+ errorDetails);
-    }
-}
-
-void CRouterBRouterSetupWizard::resetOnlineUrl()
-{
-    setup->resetOnlineWebUrl();
-    beginOnlineUrl();
-}
-
-void CRouterBRouterSetupWizard::updateLocalDetails() const
-{
-    lineLocalProfilesUrl->setText(setup->onlineProfilesUrl);
-    lineLocalHost->setText(setup->localHost);
-    lineLocalPort->setText(setup->localPort);
-    lineLocalProfiles->setText(setup->localProfileDir);
-    lineLocalSegments->setText(setup->localSegmentsDir);
-    lineLocalCustomProfiles->setText(setup->localCustomProfileDir);
-    lineLocalMaxRuntime->setText(setup->localMaxRunningTime);
-    lineLocalNumberThreads->setText(setup->localNumberThreads);
-    lineLocalJavaOpts->setText(setup->localJavaOpts);
-    textLocalDetails->setVisible(isError);
-    if (isError)
-    {
-        textLocalDetails->setText(error + ": " + errorDetails);
-    }
-}
-
-void CRouterBRouterSetupWizard::beginLocalDetails()
-{
-    setOption(QWizard::HaveCustomButton1, true);
-    isError = false;
-    setup->loadLocalOnlineProfiles();
-}
-
-void CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged()
-{
-    setup->onlineProfilesUrl = lineLocalProfilesUrl->text();
-    isError = false;
-    setup->loadLocalOnlineProfiles();
-}
-
-bool CRouterBRouterSetupWizard::validateLocalDetails() const
-{
-    setup->localHost = lineLocalHost->text();
-    setup->localPort = lineLocalPort->text();
-    setup->localProfileDir = lineLocalProfiles->text();
-    setup->localSegmentsDir = lineLocalSegments->text();
-    setup->localCustomProfileDir = lineLocalCustomProfiles->text();
-    setup->localMaxRunningTime = lineLocalMaxRuntime->text();
-    setup->localNumberThreads = lineLocalNumberThreads->text();
-    setup->localJavaOpts = lineLocalJavaOpts->text();
-    return true;
-}
-
-void CRouterBRouterSetupWizard::resetLocalDetails() const
-{
-    setup->resetOnlineProfilesUrl();
-    setup->resetLocalHost();
-    setup->resetLocalPort();
-    setup->resetLocalProfileDir();
-    setup->resetLocalSegmentsDir();
-    setup->resetLocalCustomProfileDir();
-    setup->resetLocalMaxRunningTime();
-    setup->resetLocalNumberThreads();
-    setup->resetLocalJavaOpts();
-    updateLocalDetails();
-}
-
-void CRouterBRouterSetupWizard::slotOnlineConfigLoaded()
-{
-    isError = false;
-    switch(currentId())
-    {
-    case ePageOnlineUrl:
-    {
-        updateOnlineUrl();
-        break;
-    }
-
-    case ePageOnlineDetails:
-    {
-        updateOnlineDetails();
-        break;
-    }
-
-    case ePageLocalDetails:
-    {
-        updateLocalDetails();
-        break;
-    }
-    }
-}
-
-void CRouterBRouterSetupWizard::slotSetupError(const QString &error, const QString &details)
-{
-    isError = true;
-    this->error = error;
-    this->errorDetails = details;
-
-    switch(currentId())
-    {
-    case ePageOnlineUrl:
-    {
-        updateOnlineUrl();
-        break;
-    }
-
-    case ePageLocalDetails:
-    {
-        updateLocalDetails();
-        break;
-    }
-
-    case ePageProfiles:
-    {
-        updateProfiles();
-        break;
-    }
-    }
-}
diff --git a/src/gis/rte/router/brouter/CRouterBRouterToolShell.cpp b/src/gis/rte/router/brouter/CRouterBRouterToolShell.cpp
deleted file mode 100644
index 2a00091..0000000
--- a/src/gis/rte/router/brouter/CRouterBRouterToolShell.cpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "CRouterBRouterToolShell.h"
-
-#include <QtWidgets>
-
-CRouterBRouterToolShell::CRouterBRouterToolShell(QTextBrowser *textBrowser, QWidget * parent)
-    : IToolShell(parent)
-{
-    setTextBrowser(textBrowser);
-    connect(&cmd, &QProcess::stateChanged, this, &CRouterBRouterToolShell::slotStateChanged);
-    connect(&cmd, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), this, &CRouterBRouterToolShell::slotError);
-}
-
-CRouterBRouterToolShell::~CRouterBRouterToolShell()
-{
-}
-
-void CRouterBRouterToolShell::start(const QString &dir, const QString &command, const QStringList &args)
-{
-    isBeingKilled = false;
-    stdOut("cd " + dir);
-    stdOut(command+" " + args.join(" ") + "\n");
-    cmd.setWorkingDirectory(dir);
-    cmd.start(command,args);
-    cmd.waitForStarted();
-}
-
-void CRouterBRouterToolShell::stop()
-{
-    if (cmd.state() != QProcess::NotRunning)
-    {
-#ifdef USE_KILL_FOR_SHUTDOWN
-        isBeingKilled = true;
-        cmd.kill();
-#else
-        cmd.terminate();
-#endif
-    }
-}
-
-void CRouterBRouterToolShell::slotStateChanged(const QProcess::ProcessState newState) const
-{
-    emit sigProcessStateChanged(newState);
-}
-
-void CRouterBRouterToolShell::slotError(const QProcess::ProcessError error) const
-{
-    if (isBeingKilled)
-    {
-        return;
-    }
-    emit sigProcessError(error, cmd.errorString());
-}
-
-void CRouterBRouterToolShell::finished(const int exitCode, const QProcess::ExitStatus status)
-{
-    if (status == QProcess::ExitStatus::NormalExit)
-    {
-        text->setTextColor(Qt::darkGreen);
-        text->append(tr("!!! done !!!\n"));
-    }
-    else
-    {
-        text->setTextColor(Qt::darkRed);
-        text->append(tr("!!! failed !!!\n"));
-    }
-}
diff --git a/src/gis/rte/router/brouter/CRouterBRouterToolShell.h b/src/gis/rte/router/brouter/CRouterBRouterToolShell.h
deleted file mode 100644
index 99c9ebe..0000000
--- a/src/gis/rte/router/brouter/CRouterBRouterToolShell.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsessr norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CROUTERBROUTERTOOLSHELL_H
-#define CROUTERBROUTERTOOLSHELL_H
-
-#include "tool/IToolShell.h"
-
-#if defined (Q_OS_WIN32)
-#define USE_KILL_FOR_SHUTDOWN
-#endif
-
-class CRouterBRouterToolShell : public IToolShell
-{
-    Q_OBJECT
-public:
-    CRouterBRouterToolShell(QTextBrowser *textBrowser, QWidget * parent);
-    virtual ~CRouterBRouterToolShell();
-
-    void start(const QString &dir, const QString &command, const QStringList &args);
-    void stop();
-
-signals:
-    void sigProcessStateChanged(const QProcess::ProcessState newState) const;
-    void sigProcessError(const QProcess::ProcessError error, const QString &errorString) const;
-
-private slots:
-    void slotStateChanged(const QProcess::ProcessState newState) const;
-    void slotError(const QProcess::ProcessError error) const;
-
-private:
-    void finished(int exitCode, QProcess::ExitStatus status) override;
-
-    bool isBeingKilled { false };
-};
-
-#endif //CROUTERBROUTERTOOLSHELL_H
-
diff --git a/src/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui b/src/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
deleted file mode 100644
index fe201d2..0000000
--- a/src/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
+++ /dev/null
@@ -1,682 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IRouterBRouterSetupWizard</class>
- <widget class="QWizard" name="IRouterBRouterSetupWizard">
-  <property name="enabled">
-   <bool>true</bool>
-  </property>
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>700</width>
-    <height>500</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>BRouter Setup</string>
-  </property>
-  <property name="options">
-   <set>QWizard::CancelButtonOnLeft|QWizard::HaveCustomButton1</set>
-  </property>
-  <widget class="QWizardPage" name="pageChooseMode">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">0</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_11">
-    <item>
-     <widget class="QGroupBox" name="groupRadioMode">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="title">
-       <string>choose which BRouter to use</string>
-      </property>
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <widget class="QRadioButton" name="radioOnline">
-         <property name="text">
-          <string>BRouter-Web (online)</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QRadioButton" name="radioLocal">
-         <property name="text">
-          <string>local Installation</string>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QCheckBox" name="checkExpert">
-         <property name="text">
-          <string>Expert Mode</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="CRouterBRouterSetupPage" name="pageLocalDirectory">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">1</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_3">
-    <item>
-     <widget class="QLabel" name="labelLocalDir">
-      <property name="text">
-       <string>local BRouter Installation directory:</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <item>
-       <widget class="QLineEdit" name="lineLocalDir"/>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolLocalDir">
-        <property name="toolTip">
-         <string>select installation directory</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../../../../resources.qrc">
-          <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <widget class="QLabel" name="labelLocalDirResult">
-      <property name="text">
-       <string>labelLocalDirResult</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_4">
-      <item>
-       <widget class="QPushButton" name="pushCreateOrUpdateLocalInstall">
-        <property name="text">
-         <string>create or update installation</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_2">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_5">
-      <item>
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Java Executable</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="lineJavaExecutable"/>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolJavaExecutable">
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../../../../resources.qrc">
-          <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <widget class="QLabel" name="labelLocalJavaResult">
-      <property name="text">
-       <string>labelLocalJavaResult</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_6">
-      <item>
-       <widget class="QPushButton" name="pushLocalFindJava">
-        <property name="text">
-         <string>search for installed java</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer_3">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <spacer name="verticalSpacer">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>269</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item>
-     <widget class="QTextBrowser" name="textLocalDirectory"/>
-    </item>
-   </layout>
-  </widget>
-  <widget class="CRouterBRouterSetupPage" name="pageLocalInstallation">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <property name="title">
-    <string/>
-   </property>
-   <property name="subTitle">
-    <string/>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">2</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_2">
-    <item>
-     <widget class="QLabel" name="labelLocalInstallTitle">
-      <property name="text">
-       <string>Download and install BRouter Version</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QWebView" name="webLocalBRouterVersions">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-      <property name="url">
-       <url>
-        <string>about:blank</string>
-       </url>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QLabel" name="labelLocalInstallLink">
-      <property name="text">
-       <string>File to install</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_3">
-      <item>
-       <widget class="QPushButton" name="pushLocalInstall">
-        <property name="text">
-         <string>Download and Install</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <spacer name="horizontalSpacer">
-        <property name="orientation">
-         <enum>Qt::Horizontal</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>40</width>
-          <height>20</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <widget class="QTextBrowser" name="textLocalInstall">
-      <property name="sizePolicy">
-       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="CRouterBRouterSetupPage" name="pageProfiles">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">3</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_4">
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_7">
-        <item>
-         <widget class="QLabel" name="labelAvailableProfiles">
-          <property name="text">
-           <string>available Profiles</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QListView" name="listAvailableProfiles">
-          <property name="editTriggers">
-           <set>QAbstractItemView::NoEditTriggers</set>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_5">
-        <item>
-         <widget class="QToolButton" name="toolAddProfile">
-          <property name="toolTip">
-           <string>install profile</string>
-          </property>
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../../../../resources.qrc">
-            <normaloff>:/icons/32x32/Right.png</normaloff>:/icons/32x32/Right.png</iconset>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="toolDeleteProfile">
-          <property name="toolTip">
-           <string>remove profile</string>
-          </property>
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../../../../resources.qrc">
-            <normaloff>:/icons/32x32/Left.png</normaloff>:/icons/32x32/Left.png</iconset>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_6">
-        <item>
-         <widget class="QLabel" name="labelProfiles">
-          <property name="text">
-           <string>installed Profiles</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QListView" name="listProfiles">
-          <property name="editTriggers">
-           <set>QAbstractItemView::NoEditTriggers</set>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_12">
-        <item>
-         <widget class="QToolButton" name="toolProfileUp">
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../../../../resources.qrc">
-            <normaloff>:/icons/32x32/Up.png</normaloff>:/icons/32x32/Up.png</iconset>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="toolProfileDown">
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="icon">
-           <iconset resource="../../../../resources.qrc">
-            <normaloff>:/icons/32x32/Down.png</normaloff>:/icons/32x32/Down.png</iconset>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <widget class="QLabel" name="labelProfileContent">
-      <property name="text">
-       <string>content of profile</string>
-      </property>
-     </widget>
-    </item>
-    <item>
-     <widget class="QTextBrowser" name="textProfileContent"/>
-    </item>
-   </layout>
-  </widget>
-  <widget class="CRouterBRouterTilesPage" name="pageLocalTiles">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">4</string>
-   </attribute>
-  </widget>
-  <widget class="QWizardPage" name="pageOnlineUrl">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">5</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_9">
-    <item>
-     <layout class="QHBoxLayout" name="horizontalLayout_7">
-      <item>
-       <widget class="QLabel" name="labelOnlineUrl">
-        <property name="text">
-         <string>BRouter-Web URL:</string>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QLineEdit" name="lineOnlineUrl"/>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <spacer name="verticalSpacer_2">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>40</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item>
-     <widget class="QTextBrowser" name="textOnlineUrl">
-      <property name="enabled">
-       <bool>true</bool>
-      </property>
-     </widget>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QWizardPage" name="pageOnlineDetails">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>1</horstretch>
-     <verstretch>1</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">6</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_8">
-    <item>
-     <layout class="QFormLayout" name="formLayout_2">
-      <property name="sizeConstraint">
-       <enum>QLayout::SetNoConstraint</enum>
-      </property>
-      <item row="0" column="0">
-       <widget class="QLabel" name="labelOnlineService">
-        <property name="text">
-         <string>Service-URL</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLineEdit" name="lineOnlineService"/>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="labelOnlineProfileUrl">
-        <property name="text">
-         <string>Profile-URL</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="lineOnlineProfileUrl"/>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <spacer name="verticalSpacer_3">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>40</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-   </layout>
-  </widget>
-  <widget class="QWizardPage" name="pageLocalDetails">
-   <property name="sizePolicy">
-    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-     <horstretch>0</horstretch>
-     <verstretch>0</verstretch>
-    </sizepolicy>
-   </property>
-   <attribute name="pageId">
-    <string notr="true">7</string>
-   </attribute>
-   <layout class="QVBoxLayout" name="verticalLayout_13">
-    <item>
-     <layout class="QFormLayout" name="formLayout_3">
-      <item row="0" column="0">
-       <widget class="QLabel" name="labelLocalProfilesUrl">
-        <property name="text">
-         <string>Profiles Url</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QLineEdit" name="lineLocalProfilesUrl"/>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="labelLocalHost">
-        <property name="text">
-         <string>Hostname</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="lineLocalHost"/>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="labelLocalPort">
-        <property name="text">
-         <string>Port</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QLineEdit" name="lineLocalPort"/>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="labelLocalProfiles">
-        <property name="text">
-         <string>Profile directory</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QLineEdit" name="lineLocalProfiles"/>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="labelLocalSegments">
-        <property name="text">
-         <string>Segments directory</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="QLineEdit" name="lineLocalSegments"/>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="labelLocalCustomProfiles">
-        <property name="text">
-         <string>Custom Profiles dir</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="QLineEdit" name="lineLocalCustomProfiles"/>
-      </item>
-      <item row="6" column="0">
-       <widget class="QLabel" name="labelLocalMaxRuntime">
-        <property name="text">
-         <string>Max Runtime</string>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="1">
-       <widget class="QLineEdit" name="lineLocalMaxRuntime"/>
-      </item>
-      <item row="7" column="0">
-       <widget class="QLabel" name="labelLocalNumberThreads">
-        <property name="text">
-         <string>Number Threads</string>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="1">
-       <widget class="QLineEdit" name="lineLocalNumberThreads"/>
-      </item>
-      <item row="8" column="0">
-       <widget class="QLabel" name="labelLocalJavaOpts">
-        <property name="text">
-         <string>Java Options</string>
-        </property>
-       </widget>
-      </item>
-      <item row="8" column="1">
-       <widget class="QLineEdit" name="lineLocalJavaOpts"/>
-      </item>
-     </layout>
-    </item>
-    <item>
-     <spacer name="verticalSpacer_4">
-      <property name="orientation">
-       <enum>Qt::Vertical</enum>
-      </property>
-      <property name="sizeHint" stdset="0">
-       <size>
-        <width>20</width>
-        <height>40</height>
-       </size>
-      </property>
-     </spacer>
-    </item>
-    <item>
-     <widget class="QTextBrowser" name="textLocalDetails"/>
-    </item>
-   </layout>
-  </widget>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>QWebView</class>
-   <extends>QWidget</extends>
-   <header>QtWebKitWidgets/QWebView</header>
-  </customwidget>
-  <customwidget>
-   <class>CRouterBRouterTilesPage</class>
-   <extends>QWizardPage</extends>
-   <header>gis/rte/router/brouter/CRouterBRouterTilesPage.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>CRouterBRouterSetupPage</class>
-   <extends>QWizardPage</extends>
-   <header>gis/rte/router/brouter/CRouterBRouterSetupPage.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../../../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/trk/CCombineTrk.cpp b/src/gis/trk/CCombineTrk.cpp
deleted file mode 100644
index 8fe4140..0000000
--- a/src/gis/trk/CCombineTrk.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-/**********************************************************************************************
-    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 "gis/CGisWorkspace.h"
-#include "gis/trk/CCombineTrk.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "plot/CPlotTrack.h"
-
-#include <QtWidgets>
-
-CCombineTrk::CCombineTrk(const QList<IGisItem::key_t> &keys, const QList<IGisItem::key_t> &keysPreSel, QWidget * parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-
-    CGisWorkspace& gis = CGisWorkspace::self();
-    for(const IGisItem::key_t& key : keys)
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
-        if(nullptr == trk)
-        {
-            continue;
-        }
-
-        QListWidgetItem * item = new QListWidgetItem(keysPreSel.contains(key) ? listSelected : listAvailable);
-        item->setText(trk->getName());
-        item->setIcon(trk->getIcon());
-        item->setData(Qt::UserRole + 1, key.item);
-        item->setData(Qt::UserRole + 2, key.project);
-        item->setData(Qt::UserRole + 3, key.device);
-    }
-
-    connect(listAvailable, &QListWidget::itemSelectionChanged, this, &CCombineTrk::slotSelectionChanged);
-    connect(listSelected,  &QListWidget::itemSelectionChanged, this, &CCombineTrk::slotSelectionChanged);
-    connect(toolSelect,    &QToolButton::clicked,              this, &CCombineTrk::slotSelect);
-    connect(toolRemove,    &QToolButton::clicked,              this, &CCombineTrk::slotRemove);
-    connect(toolUp,        &QToolButton::clicked,              this, &CCombineTrk::slotUp);
-    connect(toolDown,      &QToolButton::clicked,              this, &CCombineTrk::slotDown);
-
-    listAvailable->setCurrentItem(nullptr);
-    listSelected->setCurrentItem(nullptr);
-
-    slotSelectionChanged();
-    updatePreview();
-}
-
-CCombineTrk::~CCombineTrk()
-{
-}
-
-void CCombineTrk::accept()
-{
-    CGisWorkspace& gis = CGisWorkspace::self();
-
-    // get name of first track in list
-    IGisItem::key_t key;
-    key.item    = listSelected->item(0)->data(Qt::UserRole + 1).toString();
-    key.project = listSelected->item(0)->data(Qt::UserRole + 2).toString();
-    key.device  = listSelected->item(0)->data(Qt::UserRole + 3).toString();
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
-    if(nullptr == trk)
-    {
-        return;
-    }
-
-    QList<IGisItem::key_t> keys;
-    // copy the segments of all tracks to new track
-    for(int i = 0; i < listSelected->count(); i++)
-    {
-        IGisItem::key_t key;
-        key.item    = listSelected->item(i)->data(Qt::UserRole + 1).toString();
-        key.project = listSelected->item(i)->data(Qt::UserRole + 2).toString();
-        key.device  = listSelected->item(i)->data(Qt::UserRole + 3).toString();
-
-        keys << key;
-    }
-
-    trk->combine(keys);
-
-    QDialog::accept();
-}
-
-void CCombineTrk::slotSelectionChanged()
-{
-    QListWidgetItem * item = listAvailable->currentItem();
-    toolSelect->setEnabled(item != nullptr);
-
-    item = listSelected->currentItem();
-    toolRemove->setEnabled(item != nullptr);
-    toolUp->setEnabled(item != nullptr);
-    toolDown->setEnabled(item != nullptr);
-
-    if(item)
-    {
-        if(listSelected->row(item) == 0)
-        {
-            toolUp->setEnabled(false);
-        }
-        if(listSelected->row(item) == (listSelected->count() - 1))
-        {
-            toolDown->setEnabled(false);
-        }
-    }
-
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(listSelected->count() > 1);
-}
-
-void CCombineTrk::slotSelect()
-{
-    QListWidgetItem *item = listAvailable->currentItem();
-
-    if(nullptr == item)
-    {
-        return;
-    }
-
-    listAvailable->takeItem(listAvailable->row(item));
-    listSelected->addItem(item);
-
-    slotSelectionChanged();
-    updatePreview();
-}
-
-void CCombineTrk::slotRemove()
-{
-    QListWidgetItem *item = listSelected->currentItem();
-
-    if(nullptr == item)
-    {
-        return;
-    }
-
-    IGisItem::key_t key;
-    key.item    = item->data(Qt::UserRole + 1).toString();
-    key.project = item->data(Qt::UserRole + 2).toString();
-    key.device  = item->data(Qt::UserRole + 3).toString();
-
-
-    listSelected->takeItem(listSelected->row(item));
-    listAvailable->addItem(item);
-
-    slotSelectionChanged();
-    updatePreview();
-}
-
-void CCombineTrk::slotUp()
-{
-    QListWidgetItem * item = listSelected->currentItem();
-    if(item)
-    {
-        int row = listSelected->row(item);
-        if(row == 0)
-        {
-            return;
-        }
-        listSelected->takeItem(row);
-        row = row - 1;
-        listSelected->insertItem(row,item);
-        listSelected->setCurrentItem(item);
-    }
-    updatePreview();
-}
-
-void CCombineTrk::slotDown()
-{
-    QListWidgetItem * item = listSelected->currentItem();
-    if(item)
-    {
-        int row = listSelected->row(item);
-        if(row == (listSelected->count() - 1))
-        {
-            return;
-        }
-        listSelected->takeItem(row);
-        row = row + 1;
-        listSelected->insertItem(row,item);
-        listSelected->setCurrentItem(item);
-    }
-
-    updatePreview();
-}
-
-void CCombineTrk::updatePreview()
-{
-    CGisWorkspace& gis = CGisWorkspace::self();
-
-    QPolygonF line;
-    for(int i = 0; i < listSelected->count(); i++)
-    {
-        IGisItem::key_t key;
-        key.item    = listSelected->item(i)->data(Qt::UserRole + 1).toString();
-        key.project = listSelected->item(i)->data(Qt::UserRole + 2).toString();
-        key.device  = listSelected->item(i)->data(Qt::UserRole + 3).toString();
-
-
-        CGisItemTrk *trk1 = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
-        if(nullptr == trk1)
-        {
-            continue;
-        }
-        QPolygonF line1;
-        trk1->getPolylineFromData(line1);
-
-        line += line1;
-    }
-
-    plotTrack->setTrack(line);
-    plotTrack->update();
-}
diff --git a/src/gis/trk/CDetailsTrk.cpp b/src/gis/trk/CDetailsTrk.cpp
deleted file mode 100644
index 56ac8c0..0000000
--- a/src/gis/trk/CDetailsTrk.cpp
+++ /dev/null
@@ -1,692 +0,0 @@
-/**********************************************************************************************
-    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 "gis/trk/CDetailsTrk.h"
-#include "gis/trk/CKnownExtension.h"
-#include "gis/trk/CPropertyTrk.h"
-#include "gis/trk/filter/CFilterDelete.h"
-#include "gis/trk/filter/CFilterDeleteExtension.h"
-#include "gis/trk/filter/CFilterDouglasPeuker.h"
-#include "gis/trk/filter/CFilterInterpolateElevation.h"
-#include "gis/trk/filter/CFilterInvalid.h"
-#include "gis/trk/filter/CFilterMedian.h"
-#include "gis/trk/filter/CFilterNewDate.h"
-#include "gis/trk/filter/CFilterObscureDate.h"
-#include "gis/trk/filter/CFilterOffsetElevation.h"
-#include "gis/trk/filter/CFilterReplaceElevation.h"
-#include "gis/trk/filter/CFilterReset.h"
-#include "gis/trk/filter/CFilterSpeed.h"
-#include "gis/trk/filter/CFilterSplitSegment.h"
-#include "gis/trk/filter/CFilterSubPt2Pt.h"
-#include "gis/trk/filter/CFilterTerrainSlope.h"
-#include "helpers/CLinksDialog.h"
-#include "helpers/CSettings.h"
-#include "helpers/Signals.h"
-#include "plot/CPlot.h"
-#include "plot/CPlotProfile.h"
-#include "units/IUnit.h"
-#include "widgets/CTextEditWidget.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-#include <functional>
-
-using std::bind;
-
-/* base case: add the filter specified in template parameter */
-template<typename filter>
-static void addFilters(QTreeWidgetItem *itemGroup, CGisItemTrk& trk)
-{
-    QTreeWidgetItem *item = new QTreeWidgetItem(itemGroup);
-    itemGroup->treeWidget()->setItemWidget(item, /* column = */ 0, new filter(trk, itemGroup->treeWidget()));
-}
-
-template<typename filter1, typename filter2, typename ... remainingFilters>
-static void addFilters(QTreeWidgetItem *itemGroup, CGisItemTrk& trk)
-{
-    addFilters<filter1>(itemGroup, trk);
-    addFilters<filter2, remainingFilters ...>(itemGroup, trk);
-}
-
-template<typename ... filters>
-static void addFilterGroup(QTreeWidget *widget, CGisItemTrk& trk, const QString &groupText, const QString &groupIcon)
-{
-    QTreeWidgetItem *itemGroup = new QTreeWidgetItem(widget);
-    itemGroup->setIcon(/* column = */ 0, QIcon(groupIcon));
-    itemGroup->setText(/* column = */ 0, groupText);
-
-    addFilters<filters ...>(itemGroup, trk);
-}
-
-CDetailsTrk::CDetailsTrk(CGisItemTrk& trk, QWidget *parent)
-    : QWidget(parent)
-    , INotifyTrk(CGisItemTrk::eVisualDetails)
-    , trk(trk)
-{
-    setupUi(this);
-
-    QPixmap icon(14,14);
-
-    for(int i=0; i < TRK_N_COLORS; ++i)
-    {
-        icon.fill(IGisItem::colorMap[i].color);
-        comboColor->addItem(icon, IGisItem::colorMap[i].name, IGisItem::colorMap[i].color);
-    }
-
-    widgetColorLayout->setAlignment(Qt::AlignTop);
-
-    widgetColorActivity->setTrack(&trk);
-
-    updateData();
-
-    treeWidget->setTrack(&trk);
-
-    plot1 = new CPlotProfile(&trk, trk.limitsGraph1, IPlot::eModeNormal, this);
-    plot2 = new CPlot(&trk, trk.limitsGraph2, this);
-    plot3 = new CPlot(&trk, trk.limitsGraph3, this);
-
-    for(IPlot *plot : { static_cast<IPlot*>(plot1), static_cast<IPlot*>(plot2), static_cast<IPlot*>(plot3) })
-    {
-        plot->setMinimumSize(QSize(0, 100));
-        plot->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
-        plot->show();
-        layoutPlot->addWidget(plot);
-    }
-
-    if(trk.isOnDevice())
-    {
-        toolLock->setDisabled(true);
-    }
-
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    checkGraph1->setChecked(cfg.value("showGraph1", true).toBool());
-    checkGraph2->setChecked(cfg.value("showGraph2", true).toBool());
-    checkGraph3->setChecked(cfg.value("showGraph3", true).toBool());
-    splitter->restoreState (cfg.value("splitterSizes").toByteArray());
-    tabWidget->setCurrentIndex(cfg.value("visibleTab", 0).toInt());
-    cfg.endGroup();
-
-    connect(checkGraph1,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
-    connect(checkGraph2,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
-    connect(checkGraph3,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
-
-    connect(toolLock,         &QToolButton::toggled,               this, &CDetailsTrk::slotChangeReadOnlyMode);
-    connect(textCmtDesc,      &QTextBrowser::anchorClicked,        this, &CDetailsTrk::slotLinkActivated);
-
-    connect(pushSetActivities,    &QPushButton::clicked, this, &CDetailsTrk::slotSetActivities);
-
-    connect(lineName,         &QLineEdit::textEdited,              this, &CDetailsTrk::slotNameChanged);
-    connect(lineName,         &QLineEdit::editingFinished,         this, &CDetailsTrk::slotNameChangeFinished);
-
-    connect(plot1,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
-    connect(plot2,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
-    connect(plot3,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
-
-    connect(spinLineWidth,    static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), this, &CDetailsTrk::slotLineWidth);
-    connect(checkWithArrows,  &QCheckBox::toggled, this, &CDetailsTrk::slotWithArrows);
-
-    setupStyleLimits(trk.colorSourceLimit, toolLimitAutoStyle, toolLimitUsrStyle, toolLimitSysStyle, spinLimitLow, spinLimitHigh);
-
-    connect(toolUserLineWith, &QToolButton::toggled, this, &CDetailsTrk::slotLineWidthMode);
-    connect(toolUserArrow,    &QToolButton::toggled, this, &CDetailsTrk::slotWithArrowsMode);
-
-    connect(listHistory,      &CHistoryListWidget::sigChanged, this, &CDetailsTrk::updateData);
-
-    connect(comboColor,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotColorChanged);
-    connect(comboColorSource, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotColorSourceChanged);
-    connect(comboGraph2,      static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotSetupGraph);
-    connect(comboGraph3,      static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotSetupGraph);
-
-    setupGraphLimits(trk.limitsGraph1, toolLimitAutoGraph1, toolLimitUsrGraph1, toolLimitSysGraph1, spinMinGraph1, spinMaxGraph1);
-    setupGraphLimits(trk.limitsGraph2, toolLimitAutoGraph2, toolLimitUsrGraph2, toolLimitSysGraph2, spinMinGraph2, spinMaxGraph2);
-    setupGraphLimits(trk.limitsGraph3, toolLimitAutoGraph3, toolLimitUsrGraph3, toolLimitSysGraph3, spinMinGraph3, spinMaxGraph3);
-
-    // setting up the graph properties will trigger the signals
-    // this is good because the signals are connected at this point
-    // invoking the slots
-    loadGraphSource(comboGraph2, 2, CKnownExtension::internalSpeedDist);
-    loadGraphSource(comboGraph3, 3, CKnownExtension::internalProgress);
-
-    addFilterGroup<CFilterDouglasPeuker, CFilterInvalid, CFilterReset, CFilterDelete>
-        (treeFilter, trk, tr("Reduce visible track points"), "://icons/48x48/PointHide.png");
-
-    addFilterGroup<CFilterMedian, CFilterInterpolateElevation, CFilterReplaceElevation, CFilterOffsetElevation>
-        (treeFilter, trk, tr("Change elevation of track points"), "://icons/48x48/SetEle.png");
-
-    addFilterGroup<CFilterNewDate, CFilterObscureDate, CFilterSpeed>
-        (treeFilter, trk, tr("Change timestamp of track points"), "://icons/48x48/Time.png");
-
-    addFilterGroup<CFilterDeleteExtension, CFilterSplitSegment, CFilterSubPt2Pt, CFilterTerrainSlope>
-        (treeFilter, trk, tr("Miscellaneous"), "://icons/48x48/CSrcUnknown.png");
-
-
-    slotShowPlots();
-}
-
-CDetailsTrk::~CDetailsTrk()
-{
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    cfg.setValue("showGraph1",    checkGraph1->isChecked());
-    cfg.setValue("showGraph2",    checkGraph2->isChecked());
-    cfg.setValue("showGraph3",    checkGraph3->isChecked());
-    cfg.setValue("splitterSizes", splitter->saveState());
-    cfg.setValue("visibleTab",    tabWidget->currentIndex());
-    cfg.endGroup();
-
-    saveGraphSource(comboGraph2, 2);
-    saveGraphSource(comboGraph3, 3);
-}
-
-void CDetailsTrk::slotSetLimitModeStyle(CLimit::mode_e mode, bool on)
-{
-    if(!on)
-    {
-        return;
-    }
-
-    CLimit &limit = trk.colorSourceLimit;
-    limit.setMode(mode);
-
-    widgetColorLabel->setMinimum(limit.getMin());
-    widgetColorLabel->setMaximum(limit.getMax());
-
-    trk.updateHistory(CGisItemTrk::eVisualColorLegend | CGisItemTrk::eVisualDetails);
-}
-
-void CDetailsTrk::setupGraphLimits(CLimit& limit, QToolButton * toolLimitAutoGraph, QToolButton * toolLimitUsrGraph, QToolButton * toolLimitSysGraph, QDoubleSpinBox * spinMinGraph, QDoubleSpinBox * spinMaxGraph)
-{
-    bool isAutoMode = (limit.getMode() == CLimit::eModeAuto);
-
-    spinMinGraph->setDisabled(isAutoMode);
-    spinMinGraph->setSuffix(limit.getUnit());
-    spinMinGraph->setValue(limit.getMin());
-
-    spinMaxGraph->setDisabled(isAutoMode);
-    spinMaxGraph->setSuffix(limit.getUnit());
-    spinMaxGraph->setValue(limit.getMax());
-
-    switch(limit.getMode())
-    {
-    case CLimit::eModeUser:
-        toolLimitUsrGraph->setChecked(true);
-        break;
-
-    case CLimit::eModeAuto:
-        toolLimitAutoGraph->setChecked(true);
-        break;
-
-    case CLimit::eModeSys:
-        toolLimitSysGraph->setChecked(true);
-        break;
-    }
-
-    connect(toolLimitAutoGraph, &QToolButton::toggled, spinMinGraph, &QDoubleSpinBox::setDisabled);
-    connect(toolLimitAutoGraph, &QToolButton::toggled, spinMaxGraph, &QDoubleSpinBox::setDisabled);
-
-    /* creates "lambdas" which look like:
-     *   (bool on) { slotSetLimitModeGraph(CLimit::eModeAuto, &limit, spinMinGraph, spinMaxGraph, on); }
-     */
-    auto limitAutoFunc = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeAuto, &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
-    auto limitUserFunc = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeUser, &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
-    auto limitSysFunc  = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeSys,  &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
-
-    connect(toolLimitAutoGraph, &QToolButton::toggled, this, limitAutoFunc);
-    connect(toolLimitUsrGraph,  &QToolButton::toggled, this, limitUserFunc);
-    connect(toolLimitSysGraph,  &QToolButton::toggled, this, limitSysFunc);
-
-    connect(spinMinGraph, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), &limit, &CLimit::setMin);
-    connect(spinMaxGraph, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), &limit, &CLimit::setMax);
-
-    auto limitChangedFunc = bind(&CDetailsTrk::setupLimits, this, &limit, spinMinGraph, spinMaxGraph);
-    connect(&limit, &CLimit::sigChanged, this, limitChangedFunc);
-}
-
-void CDetailsTrk::setupStyleLimits(CLimit& limit, QToolButton *toolLimitAuto, QToolButton *toolLimitUsr, QToolButton *toolLimitSys, CDoubleSpinBox *spinMin, CDoubleSpinBox *spinMax)
-{
-    bool isAutoMode = (limit.getMode() == CLimit::eModeAuto);
-
-    spinMin->setDisabled(isAutoMode);
-    spinMin->setSuffix(limit.getUnit());
-    spinMin->setValue(limit.getMin());
-
-    spinMax->setDisabled(isAutoMode);
-    spinMax->setSuffix(limit.getUnit());
-    spinMax->setValue(limit.getMax());
-
-    switch(limit.getMode())
-    {
-    case CLimit::eModeUser:
-        toolLimitUsr->setChecked(true);
-        break;
-
-    case CLimit::eModeAuto:
-        toolLimitAuto->setChecked(true);
-        break;
-
-    case CLimit::eModeSys:
-        toolLimitSys->setChecked(true);
-        break;
-    }
-
-    connect(toolLimitAuto, &QToolButton::toggled, spinMax, &QDoubleSpinBox::setDisabled);
-    connect(toolLimitAuto, &QToolButton::toggled, spinMin, &QDoubleSpinBox::setDisabled);
-
-    connect(toolLimitAuto, &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeAuto, std::placeholders::_1));
-    connect(toolLimitUsr,  &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeUser, std::placeholders::_1));
-    connect(toolLimitSys,  &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeSys,  std::placeholders::_1));
-
-    connect(spinMax,       &CDoubleSpinBox::valueChangedByStep, this, &CDetailsTrk::slotColorLimitHighChanged);
-    connect(spinMax,       &CDoubleSpinBox::editingFinished,    this, &CDetailsTrk::slotColorLimitHighChanged);
-    connect(spinMin,       &CDoubleSpinBox::valueChangedByStep, this, &CDetailsTrk::slotColorLimitLowChanged);
-    connect(spinMin,       &CDoubleSpinBox::editingFinished,    this, &CDetailsTrk::slotColorLimitLowChanged);
-
-    auto limitChangedFunc = bind(&CDetailsTrk::setupLimits, this, &limit, spinMin, spinMax);
-    connect(&limit,        &CLimit::sigChanged, this, limitChangedFunc);
-}
-
-void CDetailsTrk::loadGraphSource(QComboBox * comboBox, qint32 n, const QString cfgDefault)
-{
-    const CPropertyTrk * p = trk.getPropertyHandler();
-    if(p == nullptr)
-    {
-        return;
-    }
-
-    comboBox->blockSignals(true);
-    p->fillComboBox(comboBox);
-    comboBox->blockSignals(false);
-
-    // try to restore last graph setup
-    // signals are unblocked by now changing the combobox will trigger a graph update
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    int i = comboBox->findData(cfg.value(QString("propGraph%1").arg(n),cfgDefault).toString());
-    if(i != NOIDX)
-    {
-        comboBox->setCurrentIndex(i);
-    }
-    cfg.endGroup();
-}
-
-void CDetailsTrk::saveGraphSource(QComboBox * comboBox, qint32 n)
-{
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    if(comboBox->currentIndex() != 0)
-    {
-        cfg.setValue(QString("propGraph%1").arg(n), comboBox->currentData().toString());
-    }
-    cfg.endGroup();
-}
-
-
-void CDetailsTrk::updateData()
-{
-    if(originator)
-    {
-        return;
-    }
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "CDetailsTrk::updateData");
-    originator = true;
-
-    bool isReadOnly = trk.isReadOnly();
-
-    tabWidget->widget(eTabFilter)->setEnabled(!isReadOnly);
-
-    labelTainted->setVisible(trk.isTainted());
-
-    labelInfo->setText(trk.getInfo(IGisItem::eFeatureNone));
-    comboColor->setCurrentIndex(trk.getColorIdx());
-    toolLock->setChecked(isReadOnly);
-
-    lineName->setText(trk.getName());
-    lineName->setReadOnly(isReadOnly);
-
-    textCmtDesc->document()->clear();
-    textCmtDesc->append(IGisItem::createText(isReadOnly, trk.getComment(), trk.getDescription(), trk.getLinks()));
-    textCmtDesc->moveCursor (QTextCursor::Start);
-    textCmtDesc->ensureCursorVisible();
-
-    QString str;
-    trk.getActivities().printSummary(str);
-    labelActivityInfo->setText(str);
-
-    quint32 flags = trk.getActivities().getAllFlags();
-    bool hasActivity = 0 != (flags & CTrackData::trkpt_t::eActMask);
-    labelActivityHelp->setVisible(!hasActivity);
-    labelActivityInfo->setVisible(hasActivity);
-    pushSetActivities->setEnabled(!isReadOnly);
-
-    plotTrack->setTrack(&trk);
-    listHistory->setupHistory(trk);
-
-    QTabWidget * tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
-    if(nullptr != tabWidget)
-    {
-        int idx = tabWidget->indexOf(this);
-        if(idx != NOIDX)
-        {
-            setObjectName(trk.getName());
-            tabWidget->setTabText(idx, trk.getName());
-        }
-    }
-
-    X______________BlockAllSignals______________X(this);
-
-    spinLineWidth->setValue(trk.lineScale.val().toDouble());
-    toolUserLineWith->setChecked(trk.lineScale.getMode() == CValue::eModeUser);
-
-    checkWithArrows->setChecked(trk.showArrows.val().toBool());
-    toolUserArrow->setChecked(trk.showArrows.getMode() == CValue::eModeUser);
-
-    comboColorSource->clear();
-    // the first entry `solid color`, it is always available
-    comboColorSource->addItem(QIcon("://icons/32x32/CSrcSolid.png"), tr("Color"));
-    comboColorSource->addItem(QIcon("://icons/32x32/Activity.png"), tr("Activity"), "activity");
-    for(const QString &key : trk.getExistingDataSources())
-    {
-        const CKnownExtension &ext = CKnownExtension::get(key);
-        QIcon icon(ext.icon);
-        comboColorSource->addItem(icon, ext.known ? ext.nameLongText : key, key);
-    }
-    int currentIdx = comboColorSource->findData(trk.getColorizeSource());
-    if(-1 == currentIdx)
-    {
-        trk.setColorizeSource(QString());
-        currentIdx = 0;
-    }
-    comboColorSource->setCurrentIndex(currentIdx);
-
-    QString source = comboColorSource->currentData().toString();
-    bool enabledColorize = !source.isEmpty() && (source != "activity");
-    bool enabledActivity = source == "activity";
-
-    comboColor->setVisible(!(enabledColorize||enabledActivity));
-    widgetColorLabel->setVisible(enabledColorize);
-    widgetColorLabel->setEnabled(enabledColorize);
-    toolLimitAutoStyle->setEnabled(enabledColorize);
-    toolLimitUsrStyle->setEnabled(enabledColorize);
-    toolLimitSysStyle->setEnabled(enabledColorize);
-
-    if(enabledColorize)
-    {
-        const CKnownExtension &ext = CKnownExtension::get(comboColorSource->itemData(currentIdx).toString());
-
-        spinLimitLow->setMinimum(ext.minimum);
-        spinLimitLow->setMaximum(ext.maximum);
-        spinLimitLow->setSuffix (ext.unit);
-        spinLimitLow->setValue  (trk.getColorizeLimitLow());
-
-        spinLimitHigh->setMinimum(ext.minimum);
-        spinLimitHigh->setMaximum(ext.maximum);
-        spinLimitHigh->setSuffix (ext.unit);
-        spinLimitHigh->setValue  (trk.getColorizeLimitHigh());
-
-        widgetColorLabel->setMinimum(spinLimitLow->value());
-        widgetColorLabel->setMaximum(spinLimitHigh->value());
-        widgetColorLabel->setUnit(ext.unit);
-    }
-
-    widgetColorActivity->updateData();
-    widgetColorActivity->setVisible(enabledActivity);
-    widgetColorActivity->setEnabled(enabledActivity);
-
-    X_____________UnBlockAllSignals_____________X(this);
-
-    // refill comboboxes to select track property to be displayed by graphs
-    loadGraphSource(comboGraph2, 2, CKnownExtension::internalSpeedDist);
-    loadGraphSource(comboGraph3, 3, CKnownExtension::internalProgress);
-
-    CFilterDeleteExtension *filter = treeFilter->findChild<CFilterDeleteExtension*>();
-    if(nullptr != filter)
-    {
-        filter->update();
-    }
-
-    originator = false;
-    CCanvas::restoreOverrideCursor("CDetailsTrk::updateData");
-}
-
-void CDetailsTrk::setMouseFocus(const CTrackData::trkpt_t * pt)
-{
-    if(nullptr != pt)
-    {
-        plotTrack->setMouseFocus(pt->lon, pt->lat);
-        labelInfoTrkPt->setText(trk.getInfoTrkPt(*pt));
-        labelInfoProgress->setText(trk.getInfoProgress(*pt));
-    }
-    else
-    {
-        labelInfoTrkPt->setText("-\n-");
-        labelInfoProgress->setText("-\n-");
-    }
-}
-
-void CDetailsTrk::setMouseRangeFocus(const CTrackData::trkpt_t *pt1, const CTrackData::trkpt_t *pt2)
-{
-    labelInfoRange->setText( (pt1 && pt2) ? trk.getInfoRange(*pt1, *pt2) : "-\n-" );
-}
-
-void CDetailsTrk::setMouseClickFocus(const CTrackData::trkpt_t *pt)
-{
-    if(nullptr != pt)
-    {
-        treeWidget->blockSignals(true);
-        treeWidget->setCurrentItem(treeWidget->topLevelItem(pt->idxTotal));
-        treeWidget->blockSignals(false);
-    }
-}
-
-void CDetailsTrk::slotMouseClickState(int s)
-{
-    if(s == IPlot::eMouseClickIdle)
-    {
-        labelInfoRange->setText("-\n-");
-        plot3->setMouseRangeFocus(0, 0);
-        plot1->setMouseRangeFocus(0, 0);
-        plot2->setMouseRangeFocus(0, 0);
-    }
-}
-
-void CDetailsTrk::slotNameChanged(const QString &name)
-{
-    QTabWidget *tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
-    if(nullptr != tabWidget)
-    {
-        int idx = tabWidget->indexOf(this);
-        if(idx != NOIDX)
-        {
-            const QString shownName = name.isEmpty() ? CGisItemTrk::noName : QString(name).replace('&', "&&");
-            setObjectName(shownName);
-            tabWidget->setTabText(idx, shownName);
-        }
-    }
-}
-
-void CDetailsTrk::slotNameChangeFinished()
-{
-    lineName->clearFocus();
-
-    const QString& name = lineName->text();
-    slotNameChanged(name);
-
-    if(name != trk.getName())
-    {
-        trk.setName(name);
-        updateData();
-    }
-}
-
-
-void CDetailsTrk::slotShowPlots()
-{
-    plot1->setVisible(checkGraph1->isChecked());
-    plot2->setVisible(checkGraph2->isChecked());
-    plot3->setVisible(checkGraph3->isChecked());
-}
-
-void CDetailsTrk::slotColorChanged(int idx)
-{
-    if(trk.getColorIdx() != idx)
-    {
-        trk.setColor(idx);
-    }
-}
-
-void CDetailsTrk::slotColorSourceChanged(int idx)
-{
-    trk.setColorizeSource(comboColorSource->itemData(idx).toString());
-    updateData();
-}
-
-void CDetailsTrk::slotColorLimitHighChanged()
-{
-    const double val = spinLimitHigh->value();
-    trk.setColorizeLimitHigh(val);
-    widgetColorLabel->setMaximum(val);
-}
-
-void CDetailsTrk::slotColorLimitLowChanged()
-{
-    const double val = spinLimitLow->value();
-    trk.setColorizeLimitLow(val);
-    widgetColorLabel->setMinimum(val);
-}
-
-void CDetailsTrk::slotChangeReadOnlyMode(bool on)
-{
-    trk.setReadOnlyMode(on);
-    // as setReadOnlyMode() is a method of IGisItem it will bypass updateHistory() of the track
-    // Therefore we have to call updateVisuals() explicitly.
-    trk.updateVisuals(CGisItemTrk::eVisualProject, "CDetailsTrk::slotChangeReadOnlyMode()");
-    updateData();
-}
-
-
-
-void CDetailsTrk::slotLinkActivated(const QUrl& url)
-{
-    if(url.toString() == "comment")
-    {
-        CTextEditWidget dlg(trk.getComment(), this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            trk.setComment(dlg.getHtml());
-        }
-        updateData();
-    }
-    else if(url.toString() == "description")
-    {
-        CTextEditWidget dlg(trk.getDescription(), this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            trk.setDescription(dlg.getHtml());
-        }
-        updateData();
-    }
-    else if(url.toString() == "links")
-    {
-        QList<IGisItem::link_t> links = trk.getLinks();
-        CLinksDialog dlg(links, this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            trk.setLinks(links);
-        }
-        updateData();
-    }
-    else
-    {
-        QDesktopServices::openUrl(url);
-    }
-}
-
-void CDetailsTrk::slotSetActivities()
-{
-    quint32 flags = CActivityTrk::selectActivity(this);
-    if(0xFFFFFFFF != flags)
-    {
-        trk.setActivity(flags);
-    }
-}
-
-void CDetailsTrk::setupGraph(CPlot * plot, const CLimit& limit, const QString& source, QDoubleSpinBox * spinMin, QDoubleSpinBox * spinMax)
-{
-    trk.getPropertyHandler()->setupPlot(plot, source);
-    spinMin->setSuffix(limit.getUnit());
-    spinMax->setSuffix(limit.getUnit());
-    spinMin->setValue(limit.getMin());
-    spinMax->setValue(limit.getMax());
-}
-
-void CDetailsTrk::slotSetupGraph(int idx)
-{
-    QObject *s = sender();
-    if(s == comboGraph2)
-    {
-        saveGraphSource(comboGraph2, 2);
-        setupGraph(plot2, trk.limitsGraph2, comboGraph2->itemData(idx).toString(), spinMinGraph2, spinMaxGraph2);
-    }
-    else if(s == comboGraph3)
-    {
-        saveGraphSource(comboGraph3, 3);
-        setupGraph(plot3, trk.limitsGraph3, comboGraph3->itemData(idx).toString(), spinMinGraph3, spinMaxGraph3);
-    }
-}
-
-void CDetailsTrk::slotSetLimitModeGraph(CLimit::mode_e mode, CLimit *limit, QDoubleSpinBox *spinMin, QDoubleSpinBox *spinMax, bool on)
-{
-    if(!on)
-    {
-        return;
-    }
-
-    limit->setMode(mode);
-    spinMin->setValue(limit->getMin());
-    spinMax->setValue(limit->getMax());
-}
-
-void CDetailsTrk::setupLimits(CLimit *limit, QDoubleSpinBox * spinMin, QDoubleSpinBox * spinMax)
-{
-    spinMin->setValue(limit->getMin());
-    spinMax->setValue(limit->getMax());
-}
-
-void CDetailsTrk::slotLineWidthMode(bool isUser)
-{
-    trk.lineScale.setMode(isUser ? CValue::eModeUser : CValue::eModeSys);
-    spinLineWidth->setValue(trk.lineScale.val().toDouble());
-}
-
-void CDetailsTrk::slotLineWidth(qreal f)
-{
-    trk.lineScale = f;
-}
-
-void CDetailsTrk::slotWithArrowsMode(bool isUser)
-{
-    trk.showArrows.setMode(isUser ? CValue::eModeUser : CValue::eModeSys);
-    checkWithArrows->setChecked(trk.showArrows.val().toBool());
-}
-
-void CDetailsTrk::slotWithArrows(bool yes)
-{
-    trk.showArrows = yes;
-}
diff --git a/src/gis/trk/CGisItemTrk.cpp b/src/gis/trk/CGisItemTrk.cpp
deleted file mode 100644
index 1e13a1e..0000000
--- a/src/gis/trk/CGisItemTrk.cpp
+++ /dev/null
@@ -1,2680 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/trk/CCutTrk.h"
-#include "gis/trk/CDetailsTrk.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/trk/CKnownExtension.h"
-#include "gis/trk/CPropertyTrk.h"
-#include "gis/trk/CScrOptTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CDraw.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-#include <QtXml>
-#include <proj_api.h>
-
-#define DEFAULT_COLOR       4
-#define MIN_DIST_CLOSE_TO   10
-#define MIN_DIST_FOCUS      200
-
-#define WPT_FOCUS_DIST_IN   (50*50)
-#define WPT_FOCUS_DIST_OUT  (200*200)
-
-struct trkwpt_t
-{
-    QString name;
-    qreal x = 0;
-    qreal y = 0;
-    IGisItem::key_t key;
-};
-
-IGisItem::key_t CGisItemTrk::keyUserFocus;
-
-
-CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const CTrackData& srctrk, IGisProject * project)
-    : IGisItem(project, eTypeTrk, NOIDX), trk(name, srctrk, idx1, idx2)
-{
-    flags = eFlagCreatedInQms;
-
-    deriveSecondaryData();
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int idx, bool clone)
-    : IGisItem(project, eTypeTrk, idx)
-{
-    // copy track via history
-    history = parentTrk.history;
-    loadHistory(history.histIdxCurrent);
-
-    // if track should be a clone clear history and key and
-    // build new ones.
-    if(clone)
-    {
-        trk.name += tr("_Clone");
-        key.clear();
-        history.events.clear();
-        setupHistory();
-    }
-
-    if(parentTrk.isOnDevice() || !parentTrk.isReadOnly())
-    {
-        flags |= eFlagWriteAllowed;
-    }
-    else
-    {
-        flags &= ~eFlagWriteAllowed;
-    }
-
-    deriveSecondaryData();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-
-CGisItemTrk::CGisItemTrk(const SGisLine& l, const QString& name, IGisProject * project, int idx)
-    : IGisItem(project, eTypeTrk, idx)
-{
-    trk.name = name;
-    readTrackDataFromGisLine(l);
-
-    flags |= eFlagCreatedInQms | eFlagWriteAllowed;
-    setColor(str2color(""));
-
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-CGisItemTrk::CGisItemTrk(const QDomNode& xml, IGisProject *project)
-    : IGisItem(project, eTypeTrk, project->childCount())
-{
-    // --- start read and process data ----
-    setColor(penForeground.color());
-    readTrk(xml, trk);
-    // --- stop read and process data ----
-
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-
-    if((cntInvalidPoints != 0) && (cntInvalidPoints < cntVisiblePoints))
-    {
-        int res = QMessageBox::question(CMainWindow::self().getBestWidgetForParent(), tr("Invalid points...."),
-                                        tr("The track '%1' has %2 invalid points out of %3 visible points. "
-                                           "Do you want to hide invalid points now?").arg(getName()).arg(cntInvalidPoints).arg(cntVisiblePoints),
-                                        QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
-        if(res == QMessageBox::Yes)
-        {
-            filterRemoveInvalidPoints();
-        }
-    }
-}
-
-CGisItemTrk::CGisItemTrk(const QString& filename, IGisProject * project)
-    : IGisItem(project, eTypeTrk, project->childCount())
-{
-    // --- start read and process data ----
-    setColor(penForeground.color());
-    if(!readTwoNav(filename))
-    {
-        throw -1;
-    }
-    // --- stop read and process data ----
-
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemTrk::CGisItemTrk(const history_t& hist, const QString &dbHash, IGisProject * project)
-    : IGisItem(project, eTypeTrk, project->childCount())
-{
-    history = hist;
-    loadHistory(hist.histIdxCurrent);
-    if(!dbHash.isEmpty())
-    {
-        lastDatabaseHash = dbHash;
-    }
-}
-
-CGisItemTrk::CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeTrk, NOIDX)
-{
-    loadFromDb(id, db);
-}
-
-CGisItemTrk::CGisItemTrk(CTrackData& trkdata, IGisProject *project)
-    : IGisItem(project, eTypeTrk, NOIDX)
-    , trk(std::move(trkdata))
-{
-    setupHistory();
-    deriveSecondaryData();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemTrk::CGisItemTrk(CFitStream& stream, IGisProject * project)
-    : IGisItem(project, eTypeTrk, project->childCount())
-{
-    // --- start read and process data ----
-    setColor(penForeground.color());
-    readTrkFromFit(stream);
-    // --- stop read and process data ----
-
-    setupHistory();
-    deriveSecondaryData();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-
-CGisItemTrk::~CGisItemTrk()
-{
-    // reset user focus if focused on this track
-    if(key == keyUserFocus)
-    {
-        keyUserFocus.clear();
-    }
-
-    /*
-        Delete all registered INotifyTrk as they can't exist without the item.
-        As the INotifyTrk objects will unregister via unregisterVisual() in their
-        destructor things will get a bit complicated here. Better create
-        a copy of the list before we start to delete.
-     */
-    qDeleteAll(registeredVisuals.toList());
-
-    // now it is save to destroy the details dialog
-    delete dlgDetails;
-
-    // delete it after the detail dialog as it is used by the detail dialog
-    delete propHandler;
-}
-
-template<typename T>
-static inline bool isInRange(const T &val, const T &rangeStart, const T &rangeEnd)
-{
-    return (rangeStart <= val) && (val <= rangeEnd);
-}
-
-IGisItem * CGisItemTrk::createClone()
-{
-    int idx = -1;
-    IGisProject * project = getParentProject();
-    if(project)
-    {
-        idx = project->indexOfChild(this);
-    }
-    return new CGisItemTrk(*this, project, idx, true);
-}
-
-void CGisItemTrk::updateFromDB(quint64 id, QSqlDatabase& db)
-{
-    IGisItem::updateFromDB(id, db);
-
-    /*
-        as this will change the line significantly we better stop
-        all focus operations and close the detail dialog.
-     */
-    resetInternalData();
-}
-
-
-void CGisItemTrk::setSymbol()
-{
-    setColor(str2color(trk.color));
-}
-
-
-void CGisItemTrk::setDataFromPolyline(const SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-
-    /*
-        as this will change the line significantly we better stop
-        all focus operations and close the detail dialog.
-     */
-    resetInternalData();
-
-    readTrackDataFromGisLine(l);
-
-    flags |= eFlagTainted;
-    changed(tr("Changed trackpoints, sacrificed all previous data."), "://icons/48x48/LineMove.png");
-}
-
-void CGisItemTrk::getPolylineFromData(QPolygonF &l) const
-{
-    QMutexLocker lock(&mutexItems);
-    trk.getPolyline(l);
-}
-
-void CGisItemTrk::getPolylineFromData(SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-    trk.getPolyline(l);
-}
-
-
-void CGisItemTrk::readTrackDataFromGisLine(const SGisLine &l)
-{
-    QMutexLocker lock(&mutexItems);
-    trk.readFrom(l);
-    deriveSecondaryData();
-}
-
-void CGisItemTrk::registerVisual(INotifyTrk * visual)
-{
-    registeredVisuals << visual;
-}
-
-void CGisItemTrk::unregisterVisual(INotifyTrk * visual)
-{
-    registeredVisuals.remove(visual);
-}
-
-static void addRowLimit(QString& str, const QString& name, const QString& min, const QString& max)
-{
-    str += "<tr>";
-    str += "<td align='left'>" + name + "</td>";
-    str += "<td align='right'>" + min + "</td>";
-    str += "<td align='right'>" + max + "</td>";
-    str += "</tr>";
-}
-
-static bool sortByName(const QString& item1, const QString& item2)
-{
-    static QCollator collator;
-    // this will set collator to natural sorting mode (instead of lexical)
-    collator.setNumericMode(true);
-    return collator.compare(item1, item2) < 0;
-}
-
-
-QString CGisItemTrk::getInfoLimits() const
-{
-    QString str = "<table width='100%'>";
-
-    str += "<tr><th align='left'></th><th align='right'>" + tr("min.") + "</th><th align='right'>" + tr("max.") + "</th></tr>";
-
-    QStringList keys = extrema.keys();
-    qSort(keys.begin(), keys.end(), sortByName);
-
-    for(const QString& key : keys)
-    {
-        const CKnownExtension& ext = CKnownExtension::get(key);
-        const limits_t& limit = extrema[key];
-
-        const QString& labelMin = ext.toString(limit.min, false, key);
-        const QString& labelMax = ext.toString(limit.max, false, key);
-
-        if(!labelMin.isEmpty() && !labelMax.isEmpty())
-        {
-            addRowLimit(str, ext.getName(key), labelMin, labelMax);
-        }
-    }
-
-    str += "</table>";
-    return str;
-}
-
-QString CGisItemTrk::getInfo(quint32 feature) const
-{
-    QString val1, unit1, val2, unit2;
-
-    if(cntVisiblePoints == 0)
-    {
-        return feature ? QString("<div><b>%1</b></div>").arg(getName()) : QString("<div></div>");
-    }
-
-    bool timeIsValid = (allValidFlags & CTrackData::trkpt_t::eInvalidTime) == 0;
-    bool eleIsValid  = (allValidFlags & CTrackData::trkpt_t::eInvalidEle) == 0;
-
-
-    QString str = "<div>";
-
-    qint32 actCnt       = activities.getActivityCount();
-    quint32 actFlags    = activities.getAllFlags();
-
-    if(feature & eFeatureShowName)
-    {
-        if((actCnt == 1) && actFlags)
-        {
-            const CActivityTrk::desc_t& desc = activities.getDescriptor(actFlags);
-            str += QString("<img src='%1'/> ").arg(desc.iconSmall);
-        }
-        str += "<b>" + getName() + "</b>";
-    }
-
-    if((feature & eFeatureShowActivity) && (actCnt > 1))
-    {
-        str += "<br/>";
-        activities.printSummary(str);
-        str += "<br/>";
-    }
-    else
-    {
-        str += "<br/>";
-        IUnit::self().meter2distance(totalDistance, val1, unit1);
-        str += tr("Length: %1%2").arg(val1).arg(unit1);
-
-        if(eleIsValid && totalAscent != NOFLOAT && totalDescent != NOFLOAT)
-        {
-            IUnit::self().meter2elevation(totalAscent,  val1, unit1);
-            IUnit::self().meter2elevation(totalDescent, val2, unit2);
-
-            str += tr(", %1%2%3, %4%5%6").arg(QChar(0x2197)).arg(val1).arg(unit1).arg(QChar(0x2198)).arg(val2).arg(unit2);
-        }
-        else
-        {
-            str += tr(", %1-, %2-").arg(QChar(0x2197)).arg(QChar(0x2198));
-        }
-        str += "<br />";
-
-        if(timeIsValid && (totalElapsedSeconds != NOTIME))
-        {
-            IUnit::self().seconds2time(totalElapsedSeconds, val1, unit1);
-            IUnit::self().meter2speed(totalDistance / totalElapsedSeconds, val2, unit2);
-            str += tr("Time: %1%2, Speed: %3%4").arg(val1).arg(unit1).arg(val2).arg(unit2);
-        }
-        else
-        {
-            str += tr("Time: -, Speed: -");
-        }
-        str += "<br />";
-
-        if(timeIsValid && (totalElapsedSecondsMoving != NOTIME))
-        {
-            IUnit::self().seconds2time(totalElapsedSecondsMoving, val1, unit1);
-            IUnit::self().meter2speed(totalDistance / totalElapsedSecondsMoving, val2, unit2);
-            str += tr("Moving: %1%2, Speed: %3%4").arg(val1).arg(unit1).arg(val2).arg(unit2);
-        }
-        else
-        {
-            str += tr("Moving: -, Speed: -");
-        }
-        str += "<br />";
-    }
-
-    str += "<br/>";
-
-    if(timeIsValid && timeStart.isValid())
-    {
-        str += tr("Start: %1").arg(IUnit::datetime2string(timeStart, false, boundingRect.center()));
-    }
-    else
-    {
-        str += tr("Start: -");
-    }
-    str += "<br />";
-
-    if(timeIsValid && timeEnd.isValid())
-    {
-        str += tr("End: %1").arg(IUnit::datetime2string(timeEnd, false, boundingRect.center()));
-    }
-    else
-    {
-        str += tr("End: -");
-    }
-    str += "<br />";
-
-    str += tr("Points: %1 (%2)").arg(cntVisiblePoints).arg(cntTotalPoints) + "<br />";
-
-    if((allValidFlags & (CTrackData::trkpt_t::eValidEle|CTrackData::trkpt_t::eInvalidEle)) == (CTrackData::trkpt_t::eValidEle|CTrackData::trkpt_t::eInvalidEle))
-    {
-        str += "<b style='color: red;'>" + tr("Invalid elevations!") + "</b><br/>";
-    }
-
-    if((allValidFlags & (CTrackData::trkpt_t::eValidTime|CTrackData::trkpt_t::eInvalidTime)) == (CTrackData::trkpt_t::eValidTime|CTrackData::trkpt_t::eInvalidTime))
-    {
-        str += "<b style='color: red;'>" + tr("Invalid timestamps!") + "</b><br/>";
-    }
-
-    if((allValidFlags & (CTrackData::trkpt_t::eValidPos|CTrackData::trkpt_t::eInvalidPos)) == (CTrackData::trkpt_t::eValidPos|CTrackData::trkpt_t::eInvalidPos))
-    {
-        str += "<b style='color: red;'>" + tr("Invalid positions!") + "</b><br/>";
-    }
-
-    if(feature & eFeatureShowFullText)
-    {
-        QStringList actNames;
-        activities.getActivityNames(actNames);
-        if(!actNames.isEmpty())
-        {
-            str += "</div><div>" + tr("Activities: %1").arg(actNames.join(", "));
-        }
-
-        QString desc = removeHtml(trk.desc).simplified();
-        if(desc.count())
-        {
-            if(!str.isEmpty())
-            {
-                str += "<br/>\n";
-            }
-            str += desc;
-        }
-
-        QString cmt = removeHtml(trk.cmt).simplified();
-        if((cmt != desc) && cmt.count())
-        {
-            if(!str.isEmpty())
-            {
-                str += "<br/>\n";
-            }
-            str += cmt;
-        }
-    }
-
-
-    return str + "</div>";
-}
-
-QString CGisItemTrk::getInfoRange() const
-{
-    qreal tmp, slope1;
-    QString str, val, unit;
-    if((mouseRange1 == nullptr) || (mouseRange2 == nullptr) || (mouseRange1 == mouseRange2))
-    {
-        return str;
-    }
-
-    const CTrackData::trkpt_t *pt1 = mouseRange1;
-    const CTrackData::trkpt_t *pt2 = mouseRange2;
-    if(mouseRange1->idxTotal >= mouseRange2->idxTotal)
-    {
-        pt1 = mouseRange2;
-        pt2 = mouseRange1;
-    }
-
-    for(; pt1->isHidden() && (pt1->idxTotal < (cntTotalPoints - 1)); ++pt1)
-    {
-    }
-    for(; pt2->isHidden() && (pt2->idxTotal > 0); --pt2)
-    {
-    }
-
-    bool timeIsValid = pt1->time.isValid() && pt2->time.isValid();
-    qreal deltaTime  = pt2->time.toTime_t() - pt1->time.toTime_t();
-
-    const qreal distance = pt2->distance - pt1->distance;
-
-    IUnit::self().meter2distance(distance, val, unit);
-    str += QString("%3 %1%2 ").arg(val).arg(unit).arg(QChar(0x21A6));
-    if(timeIsValid)
-    {
-        quint32 t  = pt2->time.toTime_t() - pt1->time.toTime_t();
-        quint32 hh =  t / 3600;
-        quint32 mm = (t % 3600) / 60;
-        quint32 ss =  t % 60;
-
-        str += QString("%4 %1:%2:%3").arg(hh, 2, 10, QChar('0')).arg(mm, 2, 10, QChar('0')).arg(ss, 2, 10, QChar('0')).arg(QChar(0x231a));
-
-        IUnit::self().meter2speed(distance/deltaTime, val, unit);
-        str += QString(", %3 %1%2").arg(val).arg(unit).arg(QChar(0x21A3));
-    }
-    str += "\n";
-
-    qreal deltaAscent  = pt2->ascent  - pt1->ascent;
-    qreal deltaDescent = pt2->descent - pt1->descent;
-
-    tmp    = qAtan(deltaAscent / distance);
-    slope1 = qAbs(tmp * 360.0 / (2 * M_PI));
-    QString val2, unit2;
-    IUnit::self().slope2string(slope1, val2, unit2);
-
-
-    IUnit::self().meter2elevation(deltaAscent, val, unit);
-    str += QString("%3 %1%2 (%4%5)").arg(val).arg(unit).arg(QChar(0x2197)).arg(val2).arg(unit2);
-    if(timeIsValid)
-    {
-        IUnit::self().meter2speed(deltaAscent/deltaTime, val, unit);
-        str += QString(", %1%2").arg(val).arg(unit);
-    }
-    str += "\n";
-
-    tmp    = qAtan(deltaDescent/distance);
-    slope1 = qAbs(tmp * 360.0/(2 * M_PI));
-    IUnit::self().slope2string(slope1, val2, unit2);
-
-    IUnit::self().meter2elevation(deltaDescent, val, unit);
-    str += QString("%3 %1%2 (%4%5)").arg(val).arg(unit).arg(QChar(0x2198)).arg(val2).arg(unit2);
-    if(timeIsValid)
-    {
-        IUnit::self().meter2speed(deltaDescent/deltaTime, val, unit);
-        str += QString(", %1%2").arg(val).arg(unit);
-    }
-
-    return str + "\n";
-}
-
-QString CGisItemTrk::getInfoTrkPt(const CTrackData::trkpt_t& pt) const
-{
-    QString str, val1, unit1;
-
-    if(pt.idxTotal == pt.idxVisible)
-    {
-        str += tr("Index: %1").arg(pt.idxVisible);
-    }
-    else
-    {
-        str += tr("Index: visible %1, total %2").arg(pt.idxVisible).arg(pt.idxTotal);
-    }
-    str += "\n";
-
-    if(totalElapsedSeconds != 0)
-    {
-        str += IUnit::datetime2string(pt.time, false, QPointF(pt.lon, pt.lat) * DEG_TO_RAD);
-        str += "\n";
-    }
-
-    IUnit::self().meter2elevation(pt.ele, val1, unit1);
-    str += tr("Ele.: %1%2").arg(val1).arg(unit1);
-    if(pt.slope1 != NOFLOAT)
-    {
-        IUnit::self().slope2string(pt.slope1, val1, unit1);
-        str += tr(", Slope: %1%2").arg(val1).arg(unit1);
-    }
-    if(pt.speed != NOFLOAT)
-    {
-        IUnit::self().meter2speed(pt.speed, val1, unit1);
-        str += tr(", Speed: %1%2").arg(val1).arg(unit1);
-    }
-
-    QStringList keys = pt.extensions.keys();
-    keys.sort();
-
-    qint32 more = keys.size() - 10;
-    if(more > 0)
-    {
-        keys = keys.mid(0, 10);
-    }
-
-    for(const QString &key : keys)
-    {
-        const CKnownExtension &ext = CKnownExtension::get(key);
-        if(ext.known)
-        {
-            str += "\n" + ext.nameLongText + ": " + QString("%1%2").arg(ext.valueFunc(pt)*ext.factor, 0, 'f', 1).arg(ext.unit);
-        }
-        else
-        {
-            QStringList tags = key.split("|");
-            str += "\n" + tags.last() + ": " + pt.extensions[key].toString();
-        }
-    }
-
-    if(more > 0)
-    {
-        str += "\n" + tr("... and %1 tags not displayed").arg(more);
-    }
-
-    return str;
-}
-
-QString CGisItemTrk::getInfoProgress(const CTrackData::trkpt_t& pt) const
-{
-    QString val, unit;
-
-    QString asc = tr("Ascent: - (-)");
-    QString dsc = tr("Descent: - (-)");
-    QString dst = tr("Distance: - (-)");
-    QString mov = tr("Moving: - (-)");
-
-    if(pt.ascent != NOFLOAT)
-    {
-        IUnit::self().meter2elevation(pt.ascent, val, unit);
-        asc = tr("Ascent: %1%2 (%3%)").arg(val).arg(unit).arg(pt.ascent * 100/totalAscent, 2, 'f', 0);
-    }
-
-    if(pt.descent != NOFLOAT)
-    {
-        IUnit::self().meter2elevation(pt.descent, val, unit);
-        dsc = tr(", Descent: %1%2 (%3%)").arg(val).arg(unit).arg(pt.descent * 100/totalDescent, 2, 'f', 0);
-    }
-
-    if(pt.distance != NOFLOAT)
-    {
-        IUnit::self().meter2distance(pt.distance, val, unit);
-        dst = tr("Distance: %1%2 (%3%)").arg(val).arg(unit).arg(pt.distance * 100/totalDistance, 2, 'f', 0);
-    }
-
-    if(pt.elapsedSeconds != NOFLOAT)
-    {
-        IUnit::self().seconds2time(pt.elapsedSecondsMoving, val, unit);
-        mov = tr(", Moving: %1%2 (%3%)").arg(val).arg(unit).arg(pt.elapsedSecondsMoving * 100/totalElapsedSecondsMoving, 2, 'f', 0);
-    }
-
-    return QString("%1%2\n%3%4").arg(asc).arg(dsc).arg(dst).arg(mov);
-}
-
-QString CGisItemTrk::getInfoRange(const CTrackData::trkpt_t& pt1, const CTrackData::trkpt_t& pt2) const
-{
-    QString val, unit;
-    qreal dt = NOFLOAT;
-
-    if(pt1.time.isValid() && pt2.time.isValid())
-    {
-        dt = pt2.time.toTime_t() - pt1.time.toTime_t();
-    }
-
-    QString asc = tr("Ascent: -");
-    QString dsc = tr("Descent: -");
-
-    if((pt1.ascent != NOFLOAT) && (pt2.ascent != NOFLOAT))
-    {
-        IUnit::self().meter2elevation(pt2.ascent - pt1.ascent, val, unit);
-        asc = tr("Ascent: %1%2").arg(val).arg(unit);
-
-        if(dt != NOFLOAT)
-        {
-            IUnit::self().meter2speed((pt2.ascent - pt1.ascent)/dt, val, unit);
-            asc += tr(", %1%2").arg(val).arg(unit);
-        }
-    }
-
-    if((pt1.descent != NOFLOAT) && (pt2.descent != NOFLOAT))
-    {
-        IUnit::self().meter2elevation(pt2.descent - pt1.descent, val, unit);
-        dsc = tr(", Descent: %1%2").arg(val).arg(unit);
-
-        if(dt != NOFLOAT)
-        {
-            IUnit::self().meter2speed((pt2.descent - pt1.descent)/dt, val, unit);
-            dsc += tr(", %1%2").arg(val).arg(unit);
-        }
-    }
-
-    IUnit::self().meter2distance(pt2.distance - pt1.distance, val, unit);
-    QString dsttme = tr("Distance: %1%2").arg(val).arg(unit);
-
-    if(dt != NOFLOAT)
-    {
-        IUnit::self().seconds2time(dt, val, unit);
-        dsttme += tr(", Time: %1%2").arg(val).arg(unit);
-    }
-
-    return QString("%1%2\n%3").arg(asc).arg(dsc).arg(dsttme);
-}
-
-qint32 CGisItemTrk::getElevation(qint32 idx) const
-{
-    const CTrackData::trkpt_t *trkpt = trk.getTrkPtByTotalIndex(idx);
-    return trkpt != nullptr ? trkpt->ele : NOINT;
-}
-
-IScrOpt * CGisItemTrk::getScreenOptions(const QPoint& origin, IMouse * mouse)
-{
-    if(scrOpt.isNull())
-    {
-        scrOpt = new CScrOptTrk(this, origin, mouse);
-    }
-    return scrOpt;
-}
-
-static qint32 getIdxPointCloseBy(const QPoint &pos, const QPolygonF &line)
-{
-    qint32 idx     = 0;
-    qint32 bestIdx = NOIDX;
-    qint32 bestDst = NOINT;
-    for(const QPointF &pt : line)
-    {
-        int dst = (pos - pt).manhattanLength();
-        if(dst < bestDst)
-        {
-            bestIdx = idx;
-            bestDst = dst;
-        }
-        ++idx;
-    }
-
-    return bestIdx;
-}
-
-QPointF CGisItemTrk::getPointCloseBy(const QPoint& screenPos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    qint32 bestIdx = getIdxPointCloseBy(screenPos, lineSimple);
-    return (NOIDX == bestIdx) ? NOPOINTF : lineSimple[bestIdx];
-}
-
-
-
-
-bool CGisItemTrk::isRangeSelected() const
-{
-    return mouseRange1 != mouseRange2;
-}
-
-static inline void updateExtrema(CGisItemTrk::limits_t &extrema, qreal val, const QPointF& pos)
-{
-    if(NOFLOAT != val)
-    {
-        extrema.setMin(val, pos);
-        extrema.setMax(val, pos);
-    }
-}
-
-void CGisItemTrk::updateExtremaAndExtensions()
-{
-    extrema = QHash<QString, limits_t>();
-    limits_t extremaSpeed;
-    limits_t extremaSlope;
-    limits_t extremaEle;
-    limits_t extremaProgress;
-
-
-    existingExtensions = QSet<QString>();
-    QSet<QString> nonRealExtensions;
-
-    for(const CTrackData::trkpt_t &pt : trk)
-    {
-        if(pt.isHidden())
-        {
-            continue;
-        }
-
-        existingExtensions.unite(pt.extensions.keys().toSet());
-
-        const QPointF& pos = {pt.lon, pt.lat};
-        for(const QString &key : pt.extensions.keys())
-        {
-            bool isReal = false;
-            qreal val = pt.extensions.value(key).toReal(&isReal);
-
-
-            if(isReal)
-            {
-                if(!extrema.contains(key))
-                {
-                    extrema[key] = limits_t();
-                }
-                updateExtrema(extrema[key], val, pos);
-            }
-            else
-            {
-                nonRealExtensions << key;
-            }
-        }
-
-        updateExtrema(extremaSpeed,    pt.speed, pos);
-        updateExtrema(extremaEle,      pt.ele, pos);
-        updateExtrema(extremaSlope,    pt.slope1, pos);
-        updateExtrema(extremaProgress, pt.distance, pos);
-    }
-
-    if(extremaEle.min < extremaEle.max)
-    {
-        existingExtensions << CKnownExtension::internalEle;
-        extrema[CKnownExtension::internalEle] = extremaEle;
-    }
-
-    if(extremaSlope.min < extremaSlope.max)
-    {
-        existingExtensions << CKnownExtension::internalSlope;
-        extrema[CKnownExtension::internalSlope] = extremaSlope;
-    }
-
-    if(numeric_limits<qreal>::max() != extremaSpeed.min)
-    {
-        existingExtensions << CKnownExtension::internalSpeedDist;
-        existingExtensions << CKnownExtension::internalSpeedTime;
-        extrema[CKnownExtension::internalSpeedDist] = extremaSpeed;
-    }
-
-    if(numeric_limits<qreal>::max() != extremaProgress.min)
-    {
-        existingExtensions << CKnownExtension::internalProgress;
-        extrema[CKnownExtension::internalProgress] = extremaProgress;
-    }
-
-    existingExtensions.subtract(nonRealExtensions);
-}
-
-void CGisItemTrk::resetInternalData()
-{
-    mouseClickFocus = nullptr;
-    mouseMoveFocus  = nullptr;
-    resetMouseRange();
-
-    delete dlgDetails;
-}
-
-void CGisItemTrk::verifyTrkPt(CTrackData::trkpt_t*& last, CTrackData::trkpt_t& trkpt)
-{
-    trkpt.valid = (trkpt.ele != NOINT) ? quint32(CTrackData::trkpt_t::eValidEle) : quint32(CTrackData::trkpt_t::eInvalidEle);
-    trkpt.valid |= (trkpt.lat < -90) || (trkpt.lat > 90) || (trkpt.lon < -180) || (trkpt.lon > 180) ? quint32(CTrackData::trkpt_t::eInvalidPos) : quint32(CTrackData::trkpt_t::eValidPos);
-
-    if(trkpt.time.isValid())
-    {
-        if(last != nullptr)
-        {
-            trkpt.valid |= (trkpt.time.toMSecsSinceEpoch() - last->time.toMSecsSinceEpoch()) < 0 ? quint32(CTrackData::trkpt_t::eInvalidTime) : quint32(CTrackData::trkpt_t::eValidTime);
-        }
-        else
-        {
-            trkpt.valid |= CTrackData::trkpt_t::eValidTime;
-        }
-
-        last = &trkpt;
-    }
-    else
-    {
-        trkpt.valid |= CTrackData::trkpt_t::eInvalidTime;
-    }
-}
-
-void CGisItemTrk::consolidatePoints()
-{
-    for(CTrackData::trkseg_t &seg : trk.segs)
-    {
-        if(seg.pts.empty())
-        {
-            continue;
-        }
-
-        seg.pts.first().unsetFlag(CTrackData::trkpt_t::eSubpt);
-        seg.pts.last().unsetFlag(CTrackData::trkpt_t::eSubpt);
-    }
-}
-
-void CGisItemTrk::deriveSecondaryData()
-{
-    consolidatePoints();
-
-    qreal north = -90;
-    qreal east  = -180;
-    qreal south =  90;
-    qreal west  =  180;
-
-    // reset all secondary data
-    allValidFlags             = 0;
-    cntInvalidPoints          = 0;
-    cntTotalPoints            = 0;
-    cntVisiblePoints          = 0;
-    timeStart                 = QDateTime();
-    timeEnd                   = QDateTime();
-    totalDistance             = NOFLOAT;
-    totalAscent               = NOFLOAT;
-    totalDescent              = NOFLOAT;
-    totalElapsedSeconds       = NOTIME;
-    totalElapsedSecondsMoving = NOTIME;
-
-    trk.removeEmptySegments();
-
-    // no data -> nothing to do
-    if(trk.isEmpty())
-    {
-        return;
-    }
-
-    CTrackData::trkpt_t * lastValid  = nullptr;
-    CTrackData::trkpt_t * lastTrkpt  = nullptr;
-    qreal timestampStart = NOFLOAT;
-    qint32 lastEle       = NOINT;
-
-
-    // linear list of pointers to visible track points
-    QVector<CTrackData::trkpt_t*> lintrk;
-
-    for(CTrackData::trkpt_t& trkpt : trk)
-    {
-        // verify data of all points
-        verifyTrkPt(lastValid, trkpt);
-        trkpt.idxTotal = cntTotalPoints++;
-
-        if(trkpt.isHidden())
-        {
-            trkpt.reset();
-            continue;
-        }
-
-        // count only visible points to allValidFlags
-        allValidFlags |= trkpt.valid;
-        if((trkpt.valid & 0xFFFF0000) != 0)
-        {
-            cntInvalidPoints++;
-        }
-
-        trkpt.idxVisible = cntVisiblePoints++;
-        lintrk << &trkpt;
-
-        west  = qMin(west,  trkpt.lon);
-        east  = qMax(east,  trkpt.lon);
-        south = qMin(south, trkpt.lat);
-        north = qMax(north, trkpt.lat);
-
-        if(lastTrkpt != nullptr)
-        {
-            trkpt.deltaDistance  = lastTrkpt->distanceTo(trkpt);
-            trkpt.distance       = lastTrkpt->distance + trkpt.deltaDistance;
-            trkpt.elapsedSeconds = trkpt.time.toMSecsSinceEpoch()/1000.0 - timestampStart;
-
-            // ascent descent
-            if(lastEle != NOINT)
-            {
-                qint32 delta  = trkpt.ele - lastEle;
-
-                trkpt.ascent  = lastTrkpt->ascent;
-                trkpt.descent = lastTrkpt->descent;
-
-                if(qAbs(delta) >= ASCENT_THRESHOLD)
-                {
-                    const qint32 step = (delta/ASCENT_THRESHOLD)*ASCENT_THRESHOLD;
-
-                    if(delta > 0)
-                    {
-                        trkpt.ascent  += step;
-                    }
-                    else
-                    {
-                        trkpt.descent -= step;
-                    }
-                    lastEle += step;
-                }
-            }
-
-            // time moving
-            trkpt.elapsedSecondsMoving = lastTrkpt->elapsedSecondsMoving;
-            qreal dt = (trkpt.time.toMSecsSinceEpoch() - lastTrkpt->time.toMSecsSinceEpoch()) / 1000.0;
-            if(dt > 0 && ((trkpt.deltaDistance / dt) > 0.2))
-            {
-                trkpt.elapsedSecondsMoving += dt;
-            }
-        }
-        else
-        {
-            timeStart      = trkpt.time;
-            timestampStart = timeStart.toMSecsSinceEpoch()/1000.0;
-            lastEle        = trkpt.ele;
-
-            trkpt.deltaDistance        = 0;
-            trkpt.distance             = 0;
-            trkpt.ascent               = 0;
-            trkpt.descent              = 0;
-            trkpt.elapsedSeconds       = 0;
-            trkpt.elapsedSecondsMoving = 0;
-        }
-
-        lastTrkpt = &trkpt;
-    }
-
-    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
-
-    for(int p = 0; p < lintrk.size(); p++)
-    {
-        CTrackData::trkpt_t& trkpt = *lintrk[p];
-
-        qreal d1 = trkpt.distance;
-        qreal e1 = trkpt.ele;
-        qreal t1 = trkpt.time.toMSecsSinceEpoch() / 1000.0;
-        for(int n = p; n > 0; --n)
-        {
-            CTrackData::trkpt_t & trkpt2 = *lintrk[n];
-            if(trkpt2.ele == NOINT)
-            {
-                continue;
-            }
-
-            if(trkpt.distance - trkpt2.distance >= 25)
-            {
-                d1 = trkpt2.distance;
-                e1 = trkpt2.ele;
-                t1 = trkpt2.time.toMSecsSinceEpoch()/1000.0;
-                break;
-            }
-        }
-
-        qreal d2 = trkpt.distance;
-        qreal e2 = trkpt.ele;
-        qreal t2 = trkpt.time.toMSecsSinceEpoch() / 1000.0;
-        for(int n = p; n < lintrk.size(); ++n)
-        {
-            CTrackData::trkpt_t & trkpt2 = *lintrk[n];
-            if(trkpt2.ele == NOINT)
-            {
-                continue;
-            }
-
-            if(trkpt2.distance - trkpt.distance >= 25)
-            {
-                d2 = trkpt2.distance;
-                e2 = trkpt2.ele;
-                t2 = trkpt2.time.toMSecsSinceEpoch() / 1000.0;
-                break;
-            }
-        }
-
-        qreal a      = qAtan((e2 - e1)/(d2 - d1));
-        trkpt.slope1 = a * 360.0/(2 * M_PI);
-        trkpt.slope2 = qTan(trkpt.slope1 * DEG_TO_RAD) * 100;
-
-        if((t2 - t1) > 0)
-        {
-            trkpt.speed = (d2 - d1) / (t2 - t1);
-        }
-        else
-        {
-            trkpt.speed = NOFLOAT;
-        }
-    }
-
-    if(nullptr != lastTrkpt)
-    {
-        timeEnd                   = lastTrkpt->time;
-        totalDistance             = lastTrkpt->distance;
-        totalAscent               = lastTrkpt->ascent;
-        totalDescent              = lastTrkpt->descent;
-        totalElapsedSeconds       = lastTrkpt->elapsedSeconds;
-        totalElapsedSecondsMoving = lastTrkpt->elapsedSecondsMoving;
-    }
-
-    activities.update();
-
-    updateExtremaAndExtensions();
-    // make sure we have a graph properties object by now
-    if(propHandler == nullptr)
-    {
-        propHandler = new CPropertyTrk(*this);
-        limitsGraph1.setSource(CKnownExtension::internalEle);
-    }
-    else
-    {
-        propHandler->setupData();
-    }
-
-    setupInterpolation(interp.valid, interp.Q);
-
-    updateVisuals(eVisualPlot|eVisualDetails|eVisualProject|eVisualColorAct|eVisualTrkTable, "deriveSecondaryData()");
-
-//    qDebug() << "--------------" << getName() << "------------------";
-//    qDebug() << "allValidFlags" << hex << allValidFlags;
-//    qDebug() << "totalDistance" << totalDistance;
-//    qDebug() << "totalAscent" << totalAscent;
-//    qDebug() << "totalDescent" << totalDescent;
-//    qDebug() << "totalElapsedSeconds" << totalElapsedSeconds;
-//    qDebug() << "totalElapsedSecondsMoving" << totalElapsedSecondsMoving;
-}
-
-
-void CGisItemTrk::findWaypointsCloseBy(CProgressDialog& progress, quint32& current)
-{
-    IGisProject * project = getParentProject();
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    quint32 lastCurrent = current;
-
-    bool withDoubles = project->getSortingRoadbook() != IGisProject::eSortRoadbookTrackWithoutDouble;
-
-    QVector<pointDP> line;
-    // combine all segments to a single line
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.keyWpt.clear();
-        if(pt.isHidden())
-        {
-            continue;
-        }
-        pointDP dp(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD, 0);
-        dp.idx = pt.idxVisible;
-        line << dp;
-    }
-
-    if(line.isEmpty())
-    {
-        return;
-    }
-
-    // convert coordinates of all waypoints into meter coordinates relative to the first track point
-    point3D pt0 = line[0];
-    QList<trkwpt_t> trkwpts;
-    for(int i=0; i < project->childCount(); i++)
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(project->child(i));
-        if(wpt == nullptr)
-        {
-            continue;
-        }
-
-        if(!boundingRect.contains(wpt->getBoundingRect().topLeft()))
-        {
-            continue;
-        }
-
-        QPointF pos = wpt->getPosition();
-
-        qreal a1 = 0, a2 = 0;
-        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pos.x() * DEG_TO_RAD, pos.y() * DEG_TO_RAD, a1, a2);
-
-        trkwpt_t trkwpt;
-        trkwpt.x    = qCos(a1 * DEG_TO_RAD) * d;
-        trkwpt.y    = qSin(a1 * DEG_TO_RAD) * d;
-        trkwpt.name = wpt->getName();
-        trkwpt.key  = wpt->getKey();
-
-        trkwpts << trkwpt;
-    }
-
-    // convert all coordinates into meter relative to the first track point.
-    for(pointDP& pt1 : line)
-    {
-        qreal a1 = 0, a2 = 0;
-        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pt1.x, pt1.y, a1, a2);
-
-        pt1.x = qCos(a1 * DEG_TO_RAD) * d;
-        pt1.y = qSin(a1 * DEG_TO_RAD) * d;
-    }
-
-    numberOfAttachedWpt = 0;
-    for(const trkwpt_t &trkwpt : trkwpts)
-    {
-        qreal minD   = WPT_FOCUS_DIST_IN;
-        qint32 index = NOIDX;
-
-        for(const pointDP &pt : line)
-        {
-            ++current;
-            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(withDoubles && (d > WPT_FOCUS_DIST_OUT))
-            {
-                CTrackData::trkpt_t * trkpt = const_cast<CTrackData::trkpt_t*>(trk.getTrkPtByVisibleIndex(index));
-                if(trkpt)
-                {
-                    ++numberOfAttachedWpt;
-                    trkpt->keyWpt = trkwpt.key;
-                }
-
-                index = NOIDX;
-                minD  = WPT_FOCUS_DIST_IN;
-            }
-
-            if(current - lastCurrent > 100)
-            {
-                lastCurrent = current;
-                PROGRESS(current, return );
-            }
-        }
-
-        if(index != NOIDX)
-        {
-            CTrackData::trkpt_t * trkpt = const_cast<CTrackData::trkpt_t*>(trk.getTrkPtByVisibleIndex(index));
-            if(trkpt)
-            {
-                ++numberOfAttachedWpt;
-                trkpt->keyWpt = trkwpt.key;
-            }
-        }
-    }
-
-    updateVisuals(eVisualDetails|eVisualPlot, "findWaypointsCloseBy()");
-}
-
-bool CGisItemTrk::isCloseTo(const QPointF& pos)
-{
-    QMutexLocker lock(&mutexItems);
-
-    return GPS_Math_DistPointPolyline(lineSimple, pos) < 20;
-}
-
-bool CGisItemTrk::isWithin(const QRectF& area, selflags_t flags)
-{
-    return (flags & eSelectionTrk) ? IGisItem::isWithin(area, flags, lineSimple) : false;
-}
-
-
-void CGisItemTrk::gainUserFocus(bool yes)
-{
-    keyUserFocus = yes ? key : key_t();
-    widthInfoBox = MIN_WIDTH_INFO_BOX;
-}
-
-void CGisItemTrk::looseUserFocus()
-{
-    if(keyUserFocus == key)
-    {
-        keyUserFocus.clear();
-    }
-}
-
-
-void CGisItemTrk::edit()
-{
-    if(dlgDetails.isNull())
-    {
-        dlgDetails = new CDetailsTrk(*this, nullptr);
-        dlgDetails->setObjectName(getName());
-    }
-
-    CMainWindow::self().addWidgetToTab(dlgDetails);
-}
-
-
-bool CGisItemTrk::cut()
-{
-    if(nullptr == mouseClickFocus)
-    {
-        return false;
-    }
-
-    CCutTrk dlg(CMainWindow::getBestWidgetForParent());
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return false;
-    }
-
-    qint32 idxMouse             = mouseClickFocus->idxTotal;
-    CCutTrk::mode_e mode        = dlg.getMode();
-    CCutTrk::cutmode_e cutMode  = dlg.getCutMode();
-
-    // if the cut action results into cloning a track, the calling method should
-    // ask if the original track should be removed. As a track can't delete itself
-    // this has to be done from the outside of this method.
-    bool askToDeleteOriginal = dlg.createClone() || (mode == CCutTrk::eModeKeepBoth);
-
-    // askToDeleteOriginal = store result as clone
-    if(askToDeleteOriginal)
-    {
-        // clone first part?
-        if((mode & (CCutTrk::eModeKeepBoth|CCutTrk::eModeKeepFirst)) != 0)
-        {
-            int idx = cutMode == CCutTrk::eCutMode1 ? idxMouse  - 1 : idxMouse;
-            if(idx < 0)
-            {
-                idx = 0;
-            }
-
-            QString name = getName() + QString(" (%1 - %2)").arg(0).arg(idx);
-            IGisProject *project = nullptr;
-            if(!getNameAndProject(name, project, tr("track")))
-            {
-                return false;
-            }
-
-            new CGisItemTrk(name, 0, idx, trk, project);
-        }
-
-        // clone second part?
-        if((mode & (CCutTrk::eModeKeepBoth|CCutTrk::eModeKeepSecond)) != 0)
-        {
-            QString name = getName() + QString(" (%1 - %2)").arg(idxMouse).arg(cntTotalPoints-1);
-            IGisProject *project = nullptr;
-            if(!getNameAndProject(name, project, tr("track")))
-            {
-                return false;
-            }
-
-            new CGisItemTrk(name, idxMouse, cntTotalPoints-1, trk, project);
-        }
-    }
-    else
-    {
-        // if the result is not a clone, the track's list of segments and trackpoints
-        // has to be reduced. This is done by copying points into a new trackpoint list
-        // that replaces the original one.
-        int removeStart = ((mode & CCutTrk::eModeKeepFirst) != 0) ? idxMouse + 1   : 0;
-        int removeEnd   = ((mode & CCutTrk::eModeKeepFirst) != 0) ? cntTotalPoints : idxMouse - 1;
-
-        for(CTrackData::trkseg_t& seg : trk.segs)
-        {
-            if(seg.isEmpty())
-            {
-                continue;
-            }
-
-            if(removeStart <= seg.pts.first().idxTotal && seg.pts.last().idxTotal <= removeEnd)
-            {
-                // remove all points for segments, that are completely in [removeStart; removeEnd]
-                seg.pts.clear();
-            }
-            else if( isInRange(removeStart, seg.pts.first().idxTotal, seg.pts.last().idxTotal)
-                     || isInRange(removeEnd,   seg.pts.first().idxTotal, seg.pts.last().idxTotal) )
-            {
-                QVector<CTrackData::trkpt_t> pts;
-
-                for(const CTrackData::trkpt_t& pt : seg.pts)
-                {
-                    if(!(removeStart <= pt.idxTotal && pt.idxTotal <= removeEnd) )
-                    {
-                        pts << pt;
-                    }
-                }
-
-                seg.pts = pts;
-            }
-            // else: keep any segments, that are not in [removeStart; removeEnd]
-        }
-        deriveSecondaryData();
-        changed(tr("Permanently removed points %1..%2").arg(removeStart).arg(removeEnd), "://icons/48x48/TrkCut.png");
-    }
-
-    return askToDeleteOriginal;
-}
-
-void CGisItemTrk::reverse()
-{
-    QString name = getName() + "_rev";
-    IGisProject *project = nullptr;
-    if(!getNameAndProject(name, project, tr("track")))
-    {
-        return;
-    }
-
-    // start with a 1:1 copy of the first track
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, NOIDX, false);
-    trk1->trk.name = name;
-    /*
-        clear track data, item key and history. To clear the history is important as
-        the original track's history would restore the original key
-
-     */
-    trk1->trk.segs.clear();
-    trk1->key.clear();
-    trk1->history.events.clear();
-
-    for(const CTrackData::trkseg_t &seg : trk.segs)
-    {
-        CTrackData::trkseg_t seg1;
-        for(const CTrackData::trkpt_t &pt : seg.pts)
-        {
-            CTrackData::trkpt_t pt1 = pt;
-            pt1.time    = QDateTime();
-
-            seg1.pts.push_front(pt1);
-        }
-        trk1->trk.segs.push_front(seg1);
-    }
-    // restore secondary data and create a new history
-    trk1->deriveSecondaryData();
-    trk1->setupHistory();
-    trk1->updateDecoration(eMarkChanged, eMarkNone);
-}
-
-void CGisItemTrk::combine(const QList<IGisItem::key_t>& keys)
-{
-    if(keys.isEmpty())
-    {
-        return;
-    }
-
-    QString name = getName() + " & other";
-    IGisProject *projectNew = nullptr;
-    if(!getNameAndProject(name, projectNew, tr("track")))
-    {
-        return;
-    }
-
-    // start with a 1:1 copy of the first track
-    CGisItemTrk * trk1 = new CGisItemTrk(*this, projectNew, NOIDX, false);
-    // replace name
-    trk1->trk.name = name;
-
-    /*
-        clear track data, item key and history. To clear the history is important as
-        the original track's history would restore the original key
-
-     */
-    trk1->trk.segs.clear();
-    trk1->key.clear();
-    trk1->history.events.clear();
-
-    // copy the segments of all tracks to new track
-    CGisWorkspace& gis = CGisWorkspace::self();
-    for(const IGisItem::key_t &key : keys)
-    {
-        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
-        if(nullptr == trk2)
-        {
-            continue;
-        }
-
-        trk1->trk.segs += trk2->trk.segs;
-    }
-
-    // restore secondary data and create a new history
-    trk1->deriveSecondaryData();
-    trk1->setupHistory();
-    trk1->updateDecoration(eMarkChanged, eMarkNone);
-}
-
-void CGisItemTrk::hideSelectedPoints()
-{
-    if(!setReadOnlyMode(false))
-    {
-        return;
-    }
-
-    // read start/stop indices
-    qint32 idx1, idx2;
-    getMouseRange(idx1, idx2, true);
-
-    if(NOIDX == idx1)
-    {
-        return;
-    }
-
-
-    // if first index is the first point adjust index to hide it, too
-    if(trk.isTrkPtFirstVisible(idx1))
-    {
-        idx1--;
-    }
-    // if second index is the last point adjust index to hide it, too
-    if(trk.isTrkPtLastVisible(idx2))
-    {
-        idx2++;
-    }
-
-    // abort if there is no point between idx1 and idx2
-    if(idx1 + 1 == idx2)
-    {
-        return;
-    }
-
-    // special case for a single point
-    if(idx1 == idx2)
-    {
-        --idx1;
-        ++idx2;
-    }
-
-    // iterate over all segments and delete points between idx1 and idx2
-    for(CTrackData::trkpt_t& trkpt : trk)
-    {
-        if((idx1 < trkpt.idxTotal) && (trkpt.idxTotal < idx2))
-        {
-            trkpt.setFlag(CTrackData::trkpt_t::eHidden);
-        }
-    }
-    resetMouseRange();
-    deriveSecondaryData();
-    if(idx1 + 1 == idx2 - 1)
-    {
-        changed(tr("Hide point %1.").arg(idx1 + 1), "://icons/48x48/PointHide.png");
-    }
-    else
-    {
-        changed(tr("Hide points %1..%2.").arg(idx1 + 1).arg(idx2 - 1), "://icons/48x48/PointHide.png");
-    }
-}
-
-void CGisItemTrk::showSelectedPoints()
-{
-    if(!setReadOnlyMode(false))
-    {
-        return;
-    }
-
-    qint32 idx1, idx2;
-    getMouseRange(idx1, idx2, true);
-
-    if(NOIDX == idx1)
-    {
-        return;
-    }
-
-    for(CTrackData::trkpt_t& trkpt : trk)
-    {
-        if(isInRange(trkpt.idxTotal, idx1, idx2))
-        {
-            trkpt.unsetFlag(CTrackData::trkpt_t::eHidden);
-        }
-    }
-
-    resetMouseRange();
-    deriveSecondaryData();
-    changed(tr("Show points."), "://icons/48x48/PointShow.png");
-}
-
-void CGisItemTrk::copySelectedPoints() const
-{
-    qint32 idx1, idx2;
-    getMouseRange(idx1, idx2, true);
-
-    if(NOIDX == idx1)
-    {
-        return;
-    }
-
-    QString name = getName() + QString(" (%1 - %2)").arg(idx1).arg(idx2);
-    IGisProject *project = nullptr;
-    if(!getNameAndProject(name, project, tr("track")))
-    {
-        return;
-    }
-
-    new CGisItemTrk(name, idx1, idx2, trk, project);
-}
-
-void CGisItemTrk::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
-{
-    QMutexLocker lock(&mutexItems);
-
-    lineSimple.clear();
-    lineFull.clear();
-
-    if(!isVisible(boundingRect, viewport,gis))
-    {
-        return;
-    }
-
-    if(trk.segs.isEmpty())
-    {
-        return;
-    }
-
-    QPointF pt1;
-    QPointF p1 = viewport[0];
-    QPointF p2 = viewport[2];
-    gis->convertRad2Px(p1);
-    gis->convertRad2Px(p2);
-    QRectF extViewport(p1,p2);
-
-    if(mode == eModeNormal)
-    {
-        // in normal mode the trackline without points marked as deleted is drawn
-        for(const CTrackData::trkpt_t &pt : trk)
-        {
-            if(pt.isHidden())
-            {
-                continue;
-            }
-
-            pt1.setX(pt.lon);
-            pt1.setY(pt.lat);
-            pt1 *= DEG_TO_RAD;
-            lineSimple << pt1;
-        }
-    }
-    else
-    {
-        // in full mode the complete track including points marked as deleted
-        // is drawn as gray line first. Then the track without points marked as
-        // deleted is drawn with it's configured color
-        for(const CTrackData::trkpt_t &pt : trk)
-        {
-            pt1.setX(pt.lon);
-            pt1.setY(pt.lat);
-            pt1 *= DEG_TO_RAD;
-
-            lineFull << pt1;
-
-            if(pt.isHidden())
-            {
-                continue;
-            }
-
-            lineSimple << pt1;
-        }
-    }
-    gis->convertRad2Px(lineSimple);
-    gis->convertRad2Px(lineFull);
-
-    // draw the full line first
-    if(mode == eModeRange)
-    {
-        QList<QPolygonF> lines;
-        splitLineToViewport(lineFull, extViewport, lines);
-
-        p.setPen(QPen(Qt::lightGray, penWidthBg, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-
-        for(const QPolygonF &l : lines)
-        {
-            p.drawPolyline(l);
-        }
-
-        QPixmap bullet("://icons/8x8/bullet_dark_gray.png");
-        for(const QPolygonF &l : lines)
-        {
-            for(const QPointF &pt : l)
-            {
-                p.drawPixmap(pt.x() - 3, pt.y() - 3, bullet);
-            }
-        }
-    }
-    // -------------------------
-
-    // draw the reduced track line
-    QList<QPolygonF> lines;
-    splitLineToViewport(lineSimple, extViewport, lines);
-
-    if(key == keyUserFocus)
-    {
-        p.setPen(QPen(Qt::red, penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-        for(const QPolygonF &l : lines)
-        {
-            p.drawPolyline(l);
-        }
-    }
-
-    p.setBrush(color);
-    p.setPen(penBackground);
-    for(const QPolygonF &l : lines)
-    {
-        p.drawPolyline(l);
-        if(showArrows.val().toBool())
-        {
-            CDraw::arrows(l, extViewport, p, 10, 80, lineScale.val().toDouble());
-        }
-    }
-
-    if(getColorizeSource().isEmpty())
-    {
-        // use the track's ordinary color
-        penForeground.setColor(color);
-        p.setPen(penForeground);
-        for(const QPolygonF &l : lines)
-        {
-            p.drawPolyline(l);
-        }
-    }
-    else if(getColorizeSource() == "activity")
-    {
-        drawColorizedByActivity(p);
-    }
-    else
-    {
-        drawColorized(p);
-    }
-    // -------------------------
-
-    // draw min/max labels
-    if(CMainWindow::self().isMinMaxTrackValues())
-    {
-        if(!keyUserFocus.item.isEmpty() && (key != keyUserFocus))
-        {
-            return;
-        }
-
-        for(const QString& key : extrema.keys())
-        {
-            if(key == CKnownExtension::internalProgress)
-            {
-                continue;
-            }
-
-            const limits_t& limit = extrema[key];
-            QPointF posMin = limit.posMin * DEG_TO_RAD;
-            QPointF posMax = limit.posMax * DEG_TO_RAD;
-
-            gis->convertRad2Px(posMin);
-            gis->convertRad2Px(posMax);
-
-            p.setPen(Qt::white);
-            p.setBrush(Qt::darkGreen);
-            p.drawEllipse(posMin, 5, 5);
-            p.setBrush(Qt::darkRed);
-            p.drawEllipse(posMax, 5, 5);
-        }
-    }
-}
-
-static bool doesOverlap(const QList<QRectF>& blockedAreas, const QRectF& rect)
-{
-    for(const QRectF& r : blockedAreas)
-    {
-        if(r.intersects(rect))
-        {
-            return true;
-        }
-    }
-    return false;
-}
-
-void CGisItemTrk::drawLimitLabels(limit_type_e type, const QString& label, const QPointF& pos, QPainter& p, const QFontMetricsF& fm, QList<QRectF>& blockedAreas)
-{
-    const QString& fullLabel = (type == eLimitTypeMin ? tr("min.") : tr("max.")) + " " + label;
-    QRectF rect = fm.boundingRect(fullLabel);
-    rect.moveBottomLeft(pos.toPoint() + QPoint(10,-10));
-    rect.adjust(-4,-2,4,2);
-
-    qint32 baseWidth    = 10;
-    qint32 basePos      = 10;
-
-
-    if(doesOverlap(blockedAreas, rect))
-    {
-        rect.moveBottomRight(pos.toPoint() + QPoint(-10,-10));
-        basePos = rect.width() - 10;
-
-        if(doesOverlap(blockedAreas, rect))
-        {
-            rect.moveTopLeft(pos.toPoint() + QPoint(10,10));
-            basePos = 10;
-
-            if(doesOverlap(blockedAreas, rect))
-            {
-                rect.moveTopRight(pos.toPoint() + QPoint(-10,10));
-                basePos = rect.width() - 10;
-
-                if(doesOverlap(blockedAreas, rect))
-                {
-                    return;
-                }
-            }
-        }
-    }
-
-    CDraw::bubble(p, rect.toRect(), pos.toPoint(), baseWidth, basePos, (key == keyUserFocus) ? CDraw::penBorderRed : CDraw::penBorderGray);
-    CDraw::text(fullLabel, p, rect.toRect(), type == eLimitTypeMin ? Qt::darkGreen : Qt::darkRed);
-    blockedAreas << rect;
-}
-
-void CGisItemTrk::setPen(QPainter& p, QPen& pen, quint32 flag) const
-{
-    flag &= CTrackData::trkpt_t::eActMask;
-    pen.setColor((flag == 0) ? color : CActivityTrk::getDescriptor(flag).color);
-    p.setPen(pen);
-}
-
-void CGisItemTrk::drawColorizedByActivity(QPainter& p) const
-{
-    QPen pen;
-    pen.setWidth(penWidthFg);
-    pen.setCapStyle(Qt::RoundCap);
-
-    for(const CTrackData::trkseg_t &segment : trk.segs)
-    {
-        const CTrackData::trkpt_t *ptPrev = nullptr;
-
-        for(const CTrackData::trkpt_t &pt : segment.pts)
-        {
-            if(pt.isHidden())
-            {
-                continue;
-            }
-            if(nullptr == ptPrev)
-            {
-                setPen(p, pen, pt.flags);
-                ptPrev = &pt;
-                continue;
-            }
-
-            if((ptPrev->flags & CTrackData::trkpt_t::eActMask) != (pt.flags & CTrackData::trkpt_t::eActMask))
-            {
-                setPen(p, pen, pt.flags);
-            }
-
-            p.drawLine(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
-            ptPrev = &pt;
-        }
-    }
-}
-
-void CGisItemTrk::drawColorized(QPainter &p) const
-{
-    auto valueFunc = CKnownExtension::get(getColorizeSource()).valueFunc;
-
-    QImage colors(1, 256, QImage::Format_RGB888);
-    QPainter colorsPainter(&colors);
-
-    QLinearGradient colorsGradient(colors.rect().topLeft(), colors.rect().bottomLeft());
-    colorsGradient.setColorAt(1.0, QColor(  0,   0, 255)); // blue
-    colorsGradient.setColorAt(0.6, QColor(  0, 255,   0)); // green
-    colorsGradient.setColorAt(0.4, QColor(255, 255,   0)); // yellow
-    colorsGradient.setColorAt(0.0, QColor(255,   0,   0)); // red
-    colorsPainter.fillRect(colors.rect(), colorsGradient);
-
-    const qreal factor = CKnownExtension::get(getColorizeSource()).factor;
-
-    for(const CTrackData::trkseg_t &segment : trk.segs)
-    {
-        const CTrackData::trkpt_t *ptPrev = nullptr;
-        QColor colorStart;
-
-        for(const CTrackData::trkpt_t &pt : segment.pts)
-        {
-            if(pt.isHidden())
-            {
-                continue;
-            }
-            if(nullptr == ptPrev)
-            {
-                ptPrev = &pt;
-                continue;
-            }
-
-            float colorAt = ( factor * valueFunc(pt) - getColorizeLimitLow() ) / (getColorizeLimitHigh() - getColorizeLimitLow());
-            colorAt = qMin(qMax(colorAt, 0.f), 1.f);
-
-            const QColor &colorEnd = colors.pixel(0, ((1.f - colorAt) * 255.f));
-            if(!colorStart.isValid())
-            {
-                colorStart = colorEnd;
-            }
-
-            QLinearGradient grad(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
-            grad.setColorAt(0.f, colorStart);
-            grad.setColorAt(1.f, colorEnd);
-
-            QPen pen;
-            pen.setBrush(QBrush(grad));
-            pen.setWidth(penWidthFg);
-            pen.setCapStyle(Qt::RoundCap);
-
-            p.setPen(pen);
-            p.drawLine(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
-
-            ptPrev = &pt;
-            colorStart = colorEnd;
-        }
-    }
-}
-
-
-qreal CGisItemTrk::getMin(const QString& source) const
-{
-    return extrema.value(source).min * CKnownExtension::get(source).factor;
-}
-
-qreal CGisItemTrk::getMax(const QString& source) const
-{
-    return extrema.value(source).max * CKnownExtension::get(source).factor;
-}
-
-qreal CGisItemTrk::getMinProp(const QString& source) const
-{
-    return propHandler == nullptr ? NOFLOAT : propHandler->propBySource(source).min;
-}
-
-qreal CGisItemTrk::getMaxProp(const QString& source) const
-{
-    return propHandler == nullptr ? NOFLOAT : propHandler->propBySource(source).max;
-}
-
-QString CGisItemTrk::getUnitProp(const QString& source) const
-{
-    return propHandler == nullptr ? QString()
-           : propHandler->propBySource(source).unit;
-}
-
-
-QStringList CGisItemTrk::getExistingDataSources() const
-{
-    QStringList known;
-    QStringList unknown;
-
-    for(const QString &key : existingExtensions)
-    {
-        if(CKnownExtension::isKnown(key))
-        {
-            known << key;
-        }
-        else
-        {
-            unknown << key;
-        }
-    }
-
-    auto stringSort = [] (const QString &s1, const QString &s2)
-                      {
-                          return s1.toLower() < s2.toLower();
-                      };
-
-    qSort(known.begin(),   known.end(),   stringSort);
-    qSort(unknown.begin(), unknown.end(), stringSort);
-
-    return known + unknown;
-}
-
-void CGisItemTrk::setColorizeSource(QString src)
-{
-    if(src != getColorizeSource())
-    {
-        colorSourceLimit.setSource(src);
-        updateHistory(eVisualColorLegend|eVisualDetails);
-    }
-}
-
-void CGisItemTrk::setColorizeLimitLow(qreal limit)
-{
-    colorSourceLimit.setMin(limit);
-    updateHistory(eVisualColorLegend|eVisualDetails);
-}
-
-void CGisItemTrk::setColorizeLimitHigh(qreal limit)
-{
-    colorSourceLimit.setMax(limit);
-    updateHistory(eVisualColorLegend|eVisualDetails);
-}
-
-QString CGisItemTrk::getColorizeUnit() const
-{
-    return CKnownExtension::get(getColorizeSource()).unit;
-}
-
-
-void CGisItemTrk::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-{
-    QMutexLocker lock(&mutexItems);
-
-    if(trk.segs.isEmpty())
-    {
-        return;
-    }
-
-    if(hasUserFocus() && mouseMoveFocus && (mode != eModeRange))
-    {
-        // derive anchor
-        QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
-        anchor *= DEG_TO_RAD;
-        gis->convertRad2Px(anchor);
-
-        // create trackpoint info text
-        QString str = getInfoTrkPt(*mouseMoveFocus);
-
-        // calculate bounding box of text
-        QFont f = CMainWindow::self().getMapFont();
-        QFontMetrics fm(f);
-        QRect rectText = fm.boundingRect(QRect(0, 0, 500, 0), Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
-
-        // The initial minimum size of the box will be MIN_WIDTH_INFO_BOX.
-        // If a larger box is needed the minimum grows. By that the width
-        // of the box will only grow but not jump between sizes
-        if(rectText.width() < widthInfoBox)
-        {
-            rectText.setWidth(widthInfoBox);
-        }
-        else
-        {
-            widthInfoBox = rectText.width();
-        }
-
-        // create info box
-        int w = rectText.width()  + 5 + 5;
-        int h = rectText.height() + 5 + (fm.height() + 8);
-        if(totalElapsedSeconds != 0)
-        {
-            h += 5 + fm.height() + 8;
-        }
-
-        p.setFont(f);
-
-        // draw the bubble
-        QRect box(0, 0, w, h);
-        box.moveBottomLeft(anchor.toPoint() + QPoint(-50, -50));
-        CDraw::bubble(p, box, anchor.toPoint(), 18 /* px */, 21 /* px */);
-
-        p.save();
-        p.translate(box.topLeft());
-
-        QColor pbarBlue(150, 150, 255);
-        QColor pbarGreen(150, 255, 150);
-
-        // draw progress bar distance
-        p.translate(5, 5);
-        QRect rectBar1(0, 0, rectText.width(), fm.height());
-        p.setPen(pbarBlue);
-        p.setBrush(pbarBlue);
-        p.drawRect(rectBar1);
-        qreal d = mouseMoveFocus->distance * rectBar1.width() / totalDistance;
-        p.setPen(pbarGreen);
-        p.setBrush(pbarGreen);
-        p.drawRect(0, 0, d, fm.height());
-
-        QString val1, unit1, val2, unit2;
-        IUnit::self().meter2distance(mouseMoveFocus->distance, val1, unit1);
-        IUnit::self().meter2distance(totalDistance - mouseMoveFocus->distance, val2, unit2);
-        p.setPen(Qt::darkBlue);
-        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignLeft, QString("%1%2").arg(val1).arg(unit1));
-        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignCenter, QString("%1%").arg(mouseMoveFocus->distance * 100 / totalDistance, 0, 'f', 0));
-        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignRight, QString("%1%2").arg(val2).arg(unit2));
-
-        // draw progress bar time
-        if(totalElapsedSeconds != 0)
-        {
-            p.translate(0, fm.height() + 5);
-            QRect rectBar2(0, 0, rectText.width(), fm.height());
-            p.setPen(pbarBlue);
-            p.setBrush(pbarBlue);
-            p.drawRect(rectBar2);
-            qreal t = mouseMoveFocus->elapsedSecondsMoving * rectBar2.width() / totalElapsedSecondsMoving;
-            p.setPen(pbarGreen);
-            p.setBrush(pbarGreen);
-            p.drawRect(0, 0, t, fm.height());
-
-            IUnit::self().seconds2time(mouseMoveFocus->elapsedSecondsMoving, val1, unit1);
-            IUnit::self().seconds2time(totalElapsedSecondsMoving - mouseMoveFocus->elapsedSecondsMoving, val2, unit2);
-            p.setPen(Qt::darkBlue);
-            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignLeft, QString("%1%2").arg(val1).arg(unit1));
-            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignCenter, QString("%1%").arg(mouseMoveFocus->elapsedSecondsMoving * 100 / totalElapsedSecondsMoving, 0, 'f', 0));
-            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignRight, QString("%1%2").arg(val2).arg(unit2));
-        }
-
-        // draw text
-        p.translate(0, fm.height() + 8);
-        p.setPen(Qt::darkBlue);
-        p.drawText(rectText, Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
-
-        p.restore();
-    }
-
-    if(!scrOpt.isNull() && mouseClickFocus)
-    {
-        QPointF anchor(mouseClickFocus->lon, mouseClickFocus->lat);
-        anchor *= DEG_TO_RAD;
-        gis->convertRad2Px(anchor);
-
-        p.drawPixmap(anchor - QPointF(4, 4), QPixmap(IGisItem::colorMap[colorIdx].bullet));
-    }
-
-    drawRange(p);
-}
-
-void CGisItemTrk::drawLabel(QPainter& p, const QPolygonF&, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw* gis)
-{
-    if(!keyUserFocus.item.isEmpty() && (key != keyUserFocus))
-    {
-        return;
-    }
-
-    if(CMainWindow::self().isMinMaxTrackValues())
-    {
-        for(const QString& key : extrema.keys())
-        {
-            const CKnownExtension& ext = CKnownExtension::get(key);
-            const limits_t& limit = extrema[key];
-            QPointF posMin = limit.posMin * DEG_TO_RAD;
-            QPointF posMax = limit.posMax * DEG_TO_RAD;
-
-            gis->convertRad2Px(posMin);
-            gis->convertRad2Px(posMax);
-
-            QString labelMin = ext.toString(limit.min, true, key);
-            QString labelMax = ext.toString(limit.max, true, key);
-
-            if(!labelMin.isEmpty())
-            {
-                drawLimitLabels(eLimitTypeMin, labelMin, posMin, p, fm, blockedAreas);
-            }
-
-            if(!labelMax.isEmpty())
-            {
-                drawLimitLabels(eLimitTypeMax, labelMax, posMax, p, fm, blockedAreas);
-            }
-        }
-    }
-}
-
-
-void CGisItemTrk::drawHighlight(QPainter& p)
-{
-    QMutexLocker lock(&mutexItems);
-
-    if(lineSimple.isEmpty() || hasUserFocus())
-    {
-        return;
-    }
-
-
-    // draw the reduced track line
-    QList<QPolygonF> lines;
-    splitLineToViewport(lineSimple, p.viewport(), lines);
-
-    p.setPen(QPen(QColor(255,0,0,100), penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-
-    for(const QPolygonF &line : lines)
-    {
-        p.drawPolyline(line);
-    }
-}
-
-void CGisItemTrk::drawRange(QPainter& p)
-{
-    QMutexLocker lock(&mutexItems);
-
-    int idx1, idx2;
-    getMouseRange(idx1, idx2, mode == eModeRange);
-
-    if(NOIDX == idx1)
-    {
-        return;
-    }
-
-    const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
-
-    QPolygonF seg = line.mid(idx1, idx2 - idx1 + 1);
-
-    p.setPen(QPen(Qt::darkGreen, penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolyline(seg);
-
-    p.setPen(QPen(Qt::green, penWidthFg, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolyline(seg);
-}
-
-bool CGisItemTrk::setMode(mode_e m, const QString& owner)
-{
-    if(!mouseFocusOwner.isEmpty() && owner != mouseFocusOwner)
-    {
-        return false;
-    }
-
-    mode = m;
-    // always reset the range statemachine
-    resetMouseRange();
-    mouseFocusOwner = (mode == eModeRange) ? owner : "";
-
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-    return true;
-}
-
-void CGisItemTrk::setName(const QString& str)
-{
-    setText(CGisListWks::eColumnName, str);
-    trk.name = str;
-    changed(tr("Changed name"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemTrk::setComment(const QString& str)
-{
-    trk.cmt = str;
-    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemTrk::setDescription(const QString& str)
-{
-    trk.desc = str;
-    changed(tr("Changed description"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemTrk::setLinks(const QList<link_t>& links)
-{
-    trk.links = links;
-    changed(tr("Changed links"), "://icons/48x48/Link.png");
-}
-
-void CGisItemTrk::setElevation(qint32 idx, qint32 ele)
-{
-    auto condition = [idx](const CTrackData::trkpt_t &pt) { return pt.idxTotal == idx; };
-    CTrackData::trkpt_t * trkpt = trk.getTrkPtByCondition(condition);
-    if((trkpt != nullptr) && (trkpt->ele != ele))
-    {
-        trkpt->ele = ele;
-        deriveSecondaryData();
-        changed(tr("Changed elevation of point %1 to %2 %3").arg(idx).arg(ele).arg(IUnit::self().baseunit), "://icons/48x48/SetEle.png");
-    }
-}
-
-void CGisItemTrk::setColor(int idx)
-{
-    if(idx < TRK_N_COLORS)
-    {
-        setColor(IGisItem::colorMap[idx].color);
-        updateHistory(eVisualColorLegend|eVisualDetails);
-    }
-}
-
-void CGisItemTrk::setActivity(quint32 flag)
-{
-    for(CTrackData::trkpt_t& trkpt : trk)
-    {
-        trkpt.unsetFlag(CTrackData::trkpt_t::eActMask);
-        trkpt.setFlag((enum CTrackData::trkpt_t::flag_e) flag);
-    }
-
-    deriveSecondaryData();
-
-    const CActivityTrk::desc_t &desc = CActivityTrk::getDescriptor(flag);
-    changed(tr("Changed activity to '%1' for complete track.").arg(desc.name), desc.iconLarge);
-}
-
-void CGisItemTrk::setActivityRange(quint32 flags)
-{
-    if(!setReadOnlyMode(false))
-    {
-        return;
-    }
-
-    const CActivityTrk::desc_t &desc = CActivityTrk::getDescriptor(flags);
-
-    // read start/stop indices
-    qint32 idx1, idx2;
-    getMouseRange(idx1, idx2, true);
-
-    if(NOIDX == idx1)
-    {
-        return;
-    }
-
-    // special case for a single point
-    if(idx1 == idx2)
-    {
-        --idx1;
-    }
-
-    // iterate over all segments and set activity flag for points between idx1 and idx2
-    for(CTrackData::trkpt_t& trkpt : trk)
-    {
-        if((idx1 <= trkpt.idxTotal) && (trkpt.idxTotal < idx2))
-        {
-            trkpt.unsetFlag(CTrackData::trkpt_t::eActMask);
-            trkpt.setFlag((enum CTrackData::trkpt_t::flag_e) flags);
-        }
-    }
-
-    resetMouseRange();
-    deriveSecondaryData();
-    changed(tr("Changed activity to '%1' for range(%2..%3).").arg(desc.name).arg(idx1).arg(idx2), desc.iconLarge);
-}
-
-void CGisItemTrk::setColor(const QColor& c)
-{
-    colorIdx = DEFAULT_COLOR;
-    for(int n = 0; n < TRK_N_COLORS; n++)
-    {
-        if(c == IGisItem::colorMap[n].color)
-        {
-            colorIdx = n;
-            break;
-        }
-    }
-
-    color  = IGisItem::colorMap[colorIdx].color;
-    bullet = QPixmap(IGisItem::colorMap[colorIdx].bullet);
-
-    setIcon(color2str(color));
-}
-
-void CGisItemTrk::setIcon(const QString& iconColor)
-{
-    trk.color = iconColor;
-    icon      = QPixmap("://icons/48x48/Track.png");
-
-    QPixmap mask( icon.size() );
-    mask.fill( str2color(iconColor) );
-    mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
-    icon = mask.scaled(22, 22, Qt::KeepAspectRatio, Qt::SmoothTransformation);
-
-    QTreeWidgetItem::setIcon(CGisListWks::eColumnIcon,icon);
-}
-
-
-bool CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString &owner)
-{
-    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
-
-    if(dist != NOFLOAT)
-    {
-        qreal delta = totalDistance;
-
-        /// @todo: optimize search by single out segment and then do a binary search
-
-        for(const CTrackData::trkpt_t &pt : trk)
-        {
-            if(pt.isHidden())
-            {
-                continue;
-            }
-
-            qreal d = qAbs(pt.distance - dist);
-            if(d <= delta)
-            {
-                newPointOfFocus = &pt;
-                delta = d;
-            }
-            else
-            {
-                break;
-            }
-        }
-    }
-
-    return publishMouseFocus(newPointOfFocus, fmode, owner);
-}
-
-bool CGisItemTrk::setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString &owner)
-{
-    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
-
-    if(time != NOTIME)
-    {
-        /// @todo: optimize search by single out segment and then do a binary search
-
-        qreal delta = totalElapsedSeconds;
-
-        for(const CTrackData::trkpt_t &pt : trk)
-        {
-            if(pt.isHidden())
-            {
-                continue;
-            }
-
-            qreal d = qAbs(qreal(pt.time.toTime_t()) - qreal(time));
-            if(d <= delta)
-            {
-                newPointOfFocus = &pt;
-                delta = d;
-            }
-            else
-            {
-                break;
-            }
-        }
-    }
-
-    return publishMouseFocus(newPointOfFocus, fmode, owner);
-}
-
-QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner)
-{
-    QMutexLocker lock(&mutexItems);
-
-    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
-    quint32 idx = 0;
-
-    const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
-
-    if(pt != NOPOINT && GPS_Math_DistPointPolyline(line, pt) < MIN_DIST_FOCUS)
-    {
-        /*
-            Iterate over the polyline used to draw the track as it contains screen
-            coordinates. The polyline is a linear representation of the segments in the
-            track. That is why the index into the polyline can't be used directly.
-            In a second step we have to iterate over all segments and points of the CTrackData object
-            until the index is reached. This is done by either getTrkPtByVisibleIndex(), or
-            getTrkPtByTotalIndex(). Depending on the current mode.
-         */
-
-        idx = getIdxPointCloseBy(pt, line);
-        newPointOfFocus = (mode == eModeRange) ? trk.getTrkPtByTotalIndex(idx) : trk.getTrkPtByVisibleIndex(idx);
-    }
-    if(!publishMouseFocus(newPointOfFocus, fmode, owner))
-    {
-        newPointOfFocus = nullptr;
-    }
-
-    /*
-       Test for line size before applying index. This fixes random assertions because
-       of an invalid index. The reason for this is unknown.
-     */
-    return newPointOfFocus ? ((int)idx < line.size() ? line[idx] : NOPOINTF) : NOPOINTF;
-}
-
-
-bool CGisItemTrk::setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString &owner)
-{
-    const CTrackData::trkpt_t *newPointOfFocus = trk.getTrkPtByTotalIndex(idx);
-    if(nullptr != newPointOfFocus)
-    {
-        return publishMouseFocus(newPointOfFocus, fmode, owner);
-    }
-
-    return false;
-}
-
-
-void CGisItemTrk::resetMouseRange()
-{
-    mouseRange1 = nullptr;
-    mouseRange2 = nullptr;
-    rangeState  = eRangeStateIdle;
-}
-
-bool CGisItemTrk::publishMouseFocus(const CTrackData::trkpt_t * pt, focusmode_e fmode, const QString& owner)
-{
-    if(mode == eModeRange)
-    {
-        if(mouseFocusOwner != owner)
-        {
-            return false;
-        }
-
-        publishMouseFocusRangeMode(pt, fmode);
-    }
-    else
-    {
-        publishMouseFocusNormalMode(pt, fmode);
-    }
-
-    return true;
-}
-
-void CGisItemTrk::publishMouseFocusRangeMode(const CTrackData::trkpt_t * pt, focusmode_e fmode)
-{
-    switch(rangeState)
-    {
-    case eRangeStateIdle:
-    {
-        if((fmode == eFocusMouseClick) && (pt != nullptr))
-        {
-            mouseRange1 = pt;
-            rangeState  = eRangeState1st;
-        }
-        break;
-    }
-
-    case eRangeState1st:
-    {
-        mouseRange2 = pt;
-        if((fmode == eFocusMouseClick) && (pt != nullptr))
-        {
-            rangeState = eRangeState2nd;
-        }
-        break;
-    }
-
-    case eRangeState2nd:
-    {
-        if(fmode == eFocusMouseClick)
-        {
-            resetMouseRange();
-        }
-        break;
-    }
-    }
-
-    setMouseFocusVisuals(pt);
-    setMouseRangeFocusVisuals(mouseRange1, mouseRange2);
-}
-void CGisItemTrk::publishMouseFocusNormalMode(const CTrackData::trkpt_t * pt, focusmode_e fmode)
-{
-    switch(fmode)
-    {
-    case eFocusMouseMove:
-        if(pt != mouseMoveFocus)
-        {
-            mouseMoveFocus = pt;
-            setMouseFocusVisuals(pt);
-            setMouseRangeFocusVisuals(0, 0);
-        }
-        break;
-
-    case eFocusMouseClick:
-        if(pt != mouseClickFocus)
-        {
-            mouseClickFocus = pt;
-            setMouseClickFocusVisuals(pt);
-        }
-    }
-}
-
-void CGisItemTrk::changed(const QString& what, const QString& icon)
-{
-    IGisItem::changed(what, icon);
-    updateVisuals(eVisualAll, "changed()");
-}
-
-void CGisItemTrk::updateHistory(quint32 visuals)
-{
-    IGisItem::updateHistory();
-    updateVisuals(visuals, "updateHistory()");
-}
-
-
-void CGisItemTrk::updateVisuals(quint32 visuals, const QString& who)
-{
-    qDebug() << "CGisItemTrk::updateVisuals()" << getName() << who;
-
-    if(!dlgDetails.isNull() && (visuals & eVisualDetails))
-    {
-        dlgDetails->updateData();
-    }
-
-    for(INotifyTrk * visual : registeredVisuals)
-    {
-        if(visuals & visual->mask)
-        {
-            visual->updateData();
-        }
-    }
-}
-
-void CGisItemTrk::setMouseFocusVisuals(const CTrackData::trkpt_t * pt)
-{
-    if(!dlgDetails.isNull())
-    {
-        dlgDetails->setMouseFocus(pt);
-    }
-
-    for(INotifyTrk * visual : registeredVisuals)
-    {
-        visual->setMouseFocus(pt);
-    }
-}
-
-void CGisItemTrk::setMouseRangeFocusVisuals(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2)
-{
-    if(!dlgDetails.isNull())
-    {
-        dlgDetails->setMouseRangeFocus(pt1, pt2);
-    }
-
-    for(INotifyTrk * visual : registeredVisuals)
-    {
-        visual->setMouseRangeFocus(pt1, pt2);
-    }
-}
-
-void CGisItemTrk::setMouseClickFocusVisuals(const CTrackData::trkpt_t * pt)
-{
-    if(!dlgDetails.isNull())
-    {
-        dlgDetails->setMouseClickFocus(pt);
-    }
-
-    for(INotifyTrk * visual : registeredVisuals)
-    {
-        visual->setMouseClickFocus(pt);
-    }
-}
-
-void CGisItemTrk::setupInterpolation(bool on, qint32 q)
-{
-    interp.valid = on;
-    interp.Q     = (quality_e)q;
-
-    if(!on)
-    {
-        updateVisuals(eVisualPlot, "setupInterpolation()");
-        return;
-    }
-
-    const qint32 N = getNumberOfVisiblePoints();
-    alglib::real_1d_array x,y;
-    x.setlength(N);
-    y.setlength(N);
-
-    qreal basefactor = IUnit::self().basefactor;
-    for(const CTrackData::trkpt_t& trkpt : trk)
-    {
-        if(trkpt.isHidden())
-        {
-            continue;
-        }
-
-        if(trkpt.ele == NOINT)
-        {
-            continue;
-        }
-
-        x[trkpt.idxVisible] = trkpt.distance;
-        y[trkpt.idxVisible] = trkpt.ele * basefactor;
-    }
-
-    /// @todo find a better way to scale the algorithm
-    interp.m = interp.Q*50;
-    if(N < 400)
-    {
-        interp.m = N / (16/interp.Q);
-    }
-
-    interp.m &= 0xFFFFFFFE;
-
-    try
-    {
-        alglib::spline1dfitcubic(x, y, interp.m, interp.info, interp.p, interp.rep);
-    }
-    catch(const alglib::ap_error& e)
-    {
-        qWarning() << "Error from alglib: " << e.msg.c_str();
-    }
-
-    interp.valid = interp.info > 0;
-
-    updateVisuals(eVisualPlot, "setupInterpolation()");
-}
-
-qreal CGisItemTrk::getElevationInterpolated(qreal d)
-{
-    try
-    {
-        return alglib::spline1dcalc(interp.p, d);
-    }
-    catch(const alglib::ap_error& e)
-    {
-        qWarning() << "Error from alglib: " << e.msg.c_str();
-        interp.valid = false;
-    }
-
-    return NOFLOAT;
-}
-
-
-void CGisItemTrk::getMouseRange(int &idx1, int &idx2, bool total) const
-{
-    if(nullptr == mouseRange1 || nullptr == mouseRange2)
-    {
-        idx1 = NOIDX;
-        idx2 = NOIDX;
-    }
-    else
-    {
-        idx1 = total ? mouseRange1->idxTotal : mouseRange1->idxVisible;
-        idx2 = total ? mouseRange2->idxTotal : mouseRange2->idxVisible;
-
-        if(idx1 > idx2)
-        {
-            qSwap(idx1, idx2);
-        }
-    }
-}
-
diff --git a/src/gis/trk/CGisItemTrk.h b/src/gis/trk/CGisItemTrk.h
deleted file mode 100644
index 7ae6d17..0000000
--- a/src/gis/trk/CGisItemTrk.h
+++ /dev/null
@@ -1,923 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISITEMTRK_H
-#define CGISITEMTRK_H
-
-#include "gis/IGisItem.h"
-#include "gis/IGisLine.h"
-#include "gis/trk/CActivityTrk.h"
-#include "gis/trk/CTrackData.h"
-#include "helpers/CLimit.h"
-#include "helpers/CValue.h"
-
-#include <QDebug>
-#include <QPen>
-#include <QPointer>
-#include <functional>
-#include <interpolation.h>
-
-using std::numeric_limits;
-
-class QDomNode;
-class IGisProject;
-class INotifyTrk;
-class CDetailsTrk;
-class CScrOptTrk;
-class QSqlDatabase;
-class CQlgtTrack;
-class IQlgtOverlay;
-class CProgressDialog;
-class CPropertyTrk;
-class CFitStream;
-
-#define TRK_N_COLORS          17
-#define ASCENT_THRESHOLD       5
-#define MIN_WIDTH_INFO_BOX   300
-
-class CGisItemTrk : public IGisItem, public IGisLine
-{
-    Q_DECLARE_TR_FUNCTIONS(CGisItemTrk)
-public:
-    enum focusmode_e
-    {
-        eFocusMouseMove
-        ,eFocusMouseClick
-    };
-
-    enum mode_e
-    {
-        eModeNormal
-        , eModeRange
-    };
-
-    enum visual_e
-    {
-        eVisualNone          = 0
-        , eVisualColorLegend = 0x01
-        , eVisualPlot        = 0x02
-        , eVisualDetails     = 0x04
-        , eVisualProject     = 0x08
-        , eVisualColorAct    = 0x10
-        , eVisualTrkTable    = 0x20
-        , eVisualAll         = -1
-    };
-
-    /** @brief Used to create a new track from a part of an existing track */
-    CGisItemTrk(const QString& name, qint32 idx1, qint32 idx2, const CTrackData &srctrk, IGisProject *project);
-
-    /** @brief Used to create a copy of track with new parent */
-    CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject * project, int idx, bool clone);
-
-    /** @brief Used to restore a track from a line of coordinates */
-    CGisItemTrk(const SGisLine &l, const QString &name, IGisProject *project, int idx);
-
-    /** @brief Used to create track from GPX file */
-    CGisItemTrk(const QDomNode &xml, IGisProject *project);
-
-    /** @brief Used to restore track from history structure */
-    CGisItemTrk(const history_t& hist, const QString& dbHash, IGisProject * project);
-
-    /** @brief Used to restore track from database */
-    CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project);
-
-    /** @brief Clone QLandkarte GT track */
-    CGisItemTrk(const CQlgtTrack& trk1, IGisProject *project = nullptr);
-
-    /** @brief Load track from file (e.g. TwoNav *trk) */
-    CGisItemTrk(const QString& filename, IGisProject * project);
-
-    CGisItemTrk(const IQlgtOverlay& ovl, IGisProject *project = nullptr);
-
-    /**
-       @brief Creates a new track via provided trkdata
-       @param trkdata  The track's new data (will be moved, don't use your "copy" after construction!
-       @param project  The project this track belongs to
-     */
-    CGisItemTrk(CTrackData& trkdata, IGisProject *project);
-
-    CGisItemTrk(CFitStream& stream, IGisProject * project);
-
-    virtual ~CGisItemTrk();
-
-    /**
-       @brief Overide IGisItem::updateHistory() method
-
-        same as changed();
-
-     */
-    void updateHistory(quint32 visuals);
-
-    /**
-       @brief Update all registered visuals via the INotifyTrk interface
-       @param a bit field of visuals to be updated
-       @param who a string for debug purposes
-     */
-    void updateVisuals(quint32 visuals, const QString &who);
-
-    /**
-       @brief Create a cloned copy of this track
-       @return The cloned item a pointer
-     */
-    IGisItem * createClone() override;
-
-    /**
-       @brief Save track to GPX tree
-       @param gpx   The <gpx> node to append by the track
-     */
-    void save(QDomNode& gpx, bool strictGpx11) override;
-
-    /**
-       @brief Save track to TwoNav track file
-       @param dir   the path to store the file
-     */
-    bool saveTwoNav(const QString& filename);
-
-    /**
-       @brief Save track as TCX course (including correlated course points)
-       @param coursesNode   The node to append by the course
-     */
-    void saveTCXcourse(QDomNode& coursesNode);
-
-
-    /**
-       @brief Save track as TCX activity
-       @param activitiesNode   The node to append by the activity
-     */
-    void saveTCXactivity(QDomNode& activitiesNode);
-
-
-    /**
-       @brief Read serialized track from a binary data stream
-       @param stream  the data stream to read from
-       @return A reference to the stream
-     */
-    QDataStream& operator<<(QDataStream& stream) override;
-    /**
-       @brief Serialize track into a binary data stream
-       @param stream  the data stream to write to.
-       @return A reference to the stream
-     */
-    QDataStream& operator>>(QDataStream& stream) const override;
-
-    /// get name of track
-    const QString& getName() const override
-    {
-        return trk.name.isEmpty() ? noName : trk.name;
-    }
-
-    /// returns "true" when trk has no time-related invalid points
-    bool isTrkTimeValid() { return (allValidFlags & CTrackData::trkpt_t::eInvalidTime) == 0;  }
-
-    QDateTime getTimestamp() const override {return getTimeStart(); }
-
-    /// get the track color as index into the Garmin color table
-    int getColorIdx() const { return colorIdx; }
-
-    /// get the track color a Qt color object
-    const QColor& getColor() const { return color; }
-
-    /**
-       @brief get a summary of the track
-       @param showName  if true the track name is shown
-       @return
-     */
-    QString getInfo(quint32 feature) const override;
-    /// get a summary of a selected range
-    QString getInfoRange() const;
-    /// get a summary of a selected range defined by two track points
-    QString getInfoRange(const CTrackData::trkpt_t& pt1, const CTrackData::trkpt_t& pt2) const;
-    /// get a summary for a track point
-    QString getInfoTrkPt(const CTrackData::trkpt_t& pt) const;
-    /// get a progress summary for a selected track point
-    QString getInfoProgress(const CTrackData::trkpt_t& pt) const;
-
-    QString getInfoLimits() const;
-
-    quint32 getTotalElapsedSeconds()       const { return totalElapsedSeconds;       }
-    quint32 getTotalElapsedSecondsMoving() const { return totalElapsedSecondsMoving; }
-
-    qreal getTotalAscent()   const { return totalAscent;   }
-    qreal getTotalDescent()  const { return totalDescent;  }
-    qreal getTotalDistance() const { return totalDistance; }
-
-    const QString&       getComment()     const override { return trk.cmt;   }
-    const QString&       getDescription() const override { return trk.desc;  }
-    const QList<link_t>& getLinks()       const override { return trk.links; }
-
-    qint32 getCntTotalPoints() const { return cntTotalPoints; }
-
-    const QDateTime& getTimeStart()           const { return timeStart;        }
-    qint32 getNumberOfVisiblePoints()         const { return cntVisiblePoints; }
-    const CActivityTrk& getActivities()       const { return activities;       }
-    const CPropertyTrk * getPropertyHandler() const { return propHandler;      }
-    const CTrackData::trkpt_t * getMouseMoveFocusPoint()  const { return mouseMoveFocus;   }
-    quint32 getAllValidFlags()                const { return allValidFlags;    }
-
-
-    /// get the track as a simple coordinate polyline
-    void getPolylineFromData(QPolygonF &l) const;
-    /// get the track as polyline with elevation, pixel and GIS coordinates.
-    void getPolylineFromData(SGisLine& l) override;
-
-    /**
-       @brief Get the elevation of a track point
-       @param idx   The total index of the point
-       @return The elevation or NOINT if the index is invalid, or the track point has no elevation value.
-     */
-    qint32 getElevation(qint32 idx) const;
-
-    void getMouseRange(int &idx1, int &idx2, bool total) const;
-
-    /** @defgroup ColorSource Stuff related to coloring tracks using data from different sources
-
-        @{
-     */
-public:
-    static const struct ColorizeSource unknownColorizeSource;
-
-    /** @brief Set the colorize source to the source specified.
-
-        @param src  The new source to use.
-     */
-    void setColorizeSource(QString src);
-
-    /** @brief Get the current colorize source.
-
-        @return  The new source to use.
-     */
-    QString getColorizeSource() const
-    {
-        return colorSourceLimit.getSource();
-    }
-
-    QStringList getExistingDataSources() const;
-
-    void setColorizeLimitLow(qreal limit);
-    qreal getColorizeLimitLow() const
-    {
-        return colorSourceLimit.getMin();
-    }
-
-    void setColorizeLimitHigh(qreal limit);
-    qreal getColorizeLimitHigh() const
-    {
-        return colorSourceLimit.getMax();
-    }
-
-    QString getColorizeUnit() const;
-
-    qreal getMin(const QString& source) const;
-    qreal getMax(const QString& source) const;
-
-private:
-    void drawColorized(QPainter &p) const;
-    void drawColorizedByActivity(QPainter& p) const;
-    void setPen(QPainter& p, QPen& pen, quint32 flag) const;
-    /**@}*/
-
-
-public:
-    bool isRangeSelected() const;
-
-    void setName(const QString& str);
-    void setColor(int idx);
-    /// set the width of the inner track line by factor
-    bool setMode(mode_e m, const QString &owner);
-    void setComment(const QString& str)         override;
-    void setDescription(const QString& str)     override;
-    void setLinks(const QList<link_t>& links)   override;
-    void setDataFromPolyline(const SGisLine &l) override;
-    quint32 getNumberOfAttachedWpt()
-    {
-        return numberOfAttachedWpt;
-    }
-
-    /**
-       @brief Manually set the elevation value of a single track point
-       @param idx   the total index of the track point
-       @param ele   the new elevation value
-     */
-    void setElevation(qint32 idx, qint32 ele);
-
-    /**
-       @brief display the track screen options
-
-       @param origin    the point on screen to anchor the options
-       @param mouse     the mouse object causing the request
-       @return          a pointer to the screen option widget
-     */
-    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
-    /**
-       @brief Get a screen pixel of the track close to the given position on the screen
-       @param screenPos Screen position as pixel coordinate
-       @return The screen coordinates as pixel of a track point close by
-     */
-    QPointF getPointCloseBy(const QPoint& screenPos) override;
-    /**
-       @brief isCloseTo
-       @param pos Screen position as pixel coordinate
-       @return True if point is considered close enough
-     */
-    bool isCloseTo(const QPointF& pos) override;
-
-    bool isWithin(const QRectF& area, selflags_t flags) override;
-
-    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
-    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
-    void drawLabel(QPainter&p, const QPolygonF&, QList<QRectF>&blockedAreas, const QFontMetricsF&fm, CGisDraw*gis) override;
-    void drawHighlight(QPainter& p) override;
-    void drawRange(QPainter& p);
-
-    /**
-       @brief Switch user focus on and off.
-
-       If the focus is switched on any other track having the focus will loose it.
-
-       @param yes   set true to gain focus.
-     */
-    void gainUserFocus(bool yes) override;
-    /**
-       @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
-     */
-    void edit() override;
-
-    /**
-       @brief Cut track at mouseClickFocus
-       @return Return true on success.
-     */
-    bool cut();
-
-    /**
-       @brief Reverse the complete track
-
-       @note All timestamps will be removed
-     */
-    void reverse();
-
-    /**
-       @brief Combine this track with several others.
-
-       @param keysPreSel list of pre-selected track item keys
-
-       Handle the complete process of selecting tracks, choosing the order and
-       the final name with dialogs.
-     */
-    void combine(const QList<key_t> &keys);
-
-    /**
-       @brief Set the CTrackData::trkpt_t::eHidden flag
-
-       The flag is set for all track points between mouseClickFocus and mouseMoveFocus,
-       regardless of their previous state.
-
-     */
-    void hideSelectedPoints();
-
-    /**
-       @brief Reset the CTrackData::trkpt_t::eHidden flag
-
-       The flag is reset for all track points between mouseClickFocus and mouseMoveFocus,
-       regardless of their previous state.
-
-     */
-    void showSelectedPoints();
-
-    /**
-       @brief Set the activity flag for all track points
-       @param flag  one of CTrackData::trkpt_t::flag_e::eAct...
-     */
-    void setActivity(quint32 flags);
-
-    /**
-       @brief Sets the activity flag for a selected range of track points
-
-       The range has to be selected already. The activity will be selected by a dialog displayed
-       in this method.
-     */
-    void setActivityRange(quint32 flags);
-
-    /**
-       @brief Copy a section into a new track object
-
-       The section is defined by mouseClickFocus and mouseMoveFocus, All points are copied,
-       including the hidden (CTrackData::trkpt_t::eHidden) ones.
-
-     */
-    void copySelectedPoints() const;
-
-    /**
-       @brief Check for user focus
-
-       @return True if the track has user focus
-     */
-    bool hasUserFocus() const override
-    {
-        return key == keyUserFocus;
-    }
-
-    /**
-       @brief Get the key of the current track with user focus
-
-       @return If no track has the focus an empty string is returned
-     */
-    static const key_t& getKeyUserFocus()
-    {
-        return keyUserFocus;
-    }
-
-    /**
-       @brief Each plot widget that operates on the track must register during it's construction
-
-       see registeredPlots for a detailed discussion
-
-       @param plot
-     */
-    void registerVisual(INotifyTrk * visual);
-
-    /**
-       @brief Each plot widget that operates on the track must unregister during it's destruction
-
-       see registeredPlots for a detailed discussion
-
-       @param plot
-     */
-    void unregisterVisual(INotifyTrk * visual);
-
-    /**
-       @brief Use point with the distance from start matching best the given distance.
-
-       @param dist      the distance in [m]
-     */
-    bool setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString& owner);
-
-    /**
-       @brief Use point with time from start matching best the given time delta
-
-       @param time      a time delta in [s] relative to the start time
-     */
-    bool setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString& owner);
-
-    /**
-       @brief Use the point that is closest to the given point on the screen.
-
-       @param pt        a point on the screen in pixel.
-     */
-    QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString& owner);
-
-    /**
-       @brief Use point with given index counter
-       @param idx
-     */
-    bool setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString& owner);
-
-
-    /** @defgroup Filter All filters implemented by CGisItemTrks.
-
-        @note All filter implementations are found in src/gis/trk/filter/filter.cpp
-
-        @{
-     */
-    /**
-       @brief Reduce the amount of visible track points with the help of the Douglas Peuker algorithm
-
-       @param dist the Douglas Peuker distance in meters
-     */
-    void filterReducePoints(qreal dist);
-
-    /** @brief Remove track points without valid location at the beginning of the track */
-    void filterRemoveInvalidPoints();
-
-    /** @param points  size of Median filter */
-    void filterSmoothProfile(int points);
-
-    /** @param offset elevation offset in meters */
-    void filterOffsetElevation(int offset);
-
-    /** @param date new date for start of track */
-    void filterNewDate(const QDateTime& date);
-
-    /** @param delta interval to increase timestamps in seconds a*/
-    void filterObscureDate(int delta);
-
-    /** @param speed speed in meter per seconds */
-    void filterSpeed(qreal speed);
-
-    void filterTerrainSlope();
-    void filterReplaceElevation();
-    void filterInterpolateElevation();
-    void filterReset();
-    void filterDelete();
-    void filterSplitSegment();
-    void filterDeleteExtension(const QString &ext);
-    void filterSubPt2Pt();
-    /** @} */
-
-    /**
-       @brief Correlate waypoints with the track points
-
-       If a waypoint correlates with a trackpoint it's key is written to
-       CTrackData::trkpt_t::keyWpt.
-
-       @param progress  a progress dialog as this operation can take quite some time
-       @param current   the current progress if the operation is done for several tracks
-     */
-    void findWaypointsCloseBy(CProgressDialog &progress, quint32 &current);
-
-private:
-    /// no don't really use it, use CGisItemTrk(quint32 visuals) instead
-    void updateHistory() override
-    {
-        updateHistory(eVisualAll);
-    }
-
-    void setSymbol() override;
-    /**
-       @brief Read track data from section in GPX file
-       @param xml   The XML <trk> section
-       @param trk   The track structure to fill
-     */
-    void readTrk(const QDomNode& xml, CTrackData& trk);
-
-    /**
-       @brief Restore track from TwoNav *trk file
-       @param filename
-     */
-    bool readTwoNav(const QString& filename);
-    /**
-       @brief Read serialized track data from a FIT file stream
-       @param stream
-     */
-    void readTrkFromFit(CFitStream &stream);
-
-    /**
-       @brief Consolidate points and subpoints
-     */
-    void consolidatePoints();
-
-    /**
-       @brief Derive secondary data from the track data
-
-       This has to be called each time the track data is changed.
-     */
-    void deriveSecondaryData();
-
-    /**
-     * @brief Reset internal data like range selection and details dialog
-     */
-    void resetInternalData();
-
-    void verifyTrkPt(CTrackData::trkpt_t *&last, CTrackData::trkpt_t& trkpt);
-
-    /** @defgroup ExtremaExtensions Stuff related to calculation of extrema/extensions
-
-        @{
-     */
-public:
-    struct limits_t
-    {
-        void setMin(qreal val, const QPointF& pos)
-        {
-            if(min > val)
-            {
-                min     = val;
-                posMin  = pos;
-            }
-        }
-
-        void setMax(qreal val, const QPointF& pos)
-        {
-            if(max < val)
-            {
-                max     = val;
-                posMax  = pos;
-            }
-        }
-
-        qreal min     = numeric_limits<qreal>::max();
-        QPointF posMin  = NOPOINTF;
-
-        qreal max     = numeric_limits<qreal>::lowest();
-        QPointF posMax  = NOPOINTF;
-    };
-    /**@}*/
-
-private:
-    QSet<QString> existingExtensions;
-    QHash<QString, limits_t> extrema;
-    void updateExtremaAndExtensions();
-
-    enum limit_type_e
-    {
-        eLimitTypeMin
-        , eLimitTypeMax
-    };
-    void drawLimitLabels(limit_type_e type, const QString &label, const QPointF& pos, QPainter& p, const QFontMetricsF &fm, QList<QRectF> &blockedAreas);
-
-    /**
-       @brief Tell the point of focus to all plots and the detail dialog
-
-       @param pt        A pointer to the point itself
-       @param fmode     The reason for the focus
-       @param owner     A string to identify owner of the operation
-     */
-    bool publishMouseFocus(const CTrackData::trkpt_t * pt, focusmode_e fmode, const QString &owner);
-    void publishMouseFocusNormalMode(const CTrackData::trkpt_t * pt, focusmode_e fmode);
-    void publishMouseFocusRangeMode(const CTrackData::trkpt_t * pt, focusmode_e fmode);
-    void resetMouseRange();
-
-    /**
-       @brief Replace all trackpoints by the coordinates stored in the polyline
-
-       The DEM layer will be queried for elevation data. All other data is lost.
-
-       @param l     A polyline with coordinates [rad]
-     */
-    void readTrackDataFromGisLine(const SGisLine &l);
-    /**
-       @brief Override IGisItem::changed() method
-
-       As the CDetailsTrk is no modal dialog that blocks the GUI from any other input the track
-       can be changed while the widget is visible. Therefore it needs some feedback to update the
-       CDetailsTrk widget. Usually this would be a signal. However CGisItemTrk is a QTreeWidgetItem
-       and therefor no QObject. Fortunately there the dlgDetails pointer. So CDetailsTrk::setupGui()
-       can be called from changed()
-
-       @param what  The reason string
-       @param icon  An icon string
-     */
-    void changed(const QString& what, const QString& icon) override;
-
-    /// setup colorIdx, color, bullet and icon
-    void setColor(const QColor& c);
-    /// setup track icon by color
-    void setIcon(const QString& iconColor);
-
-    void setMouseFocusVisuals(const CTrackData::trkpt_t * pt);
-    void setMouseRangeFocusVisuals(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2);
-    void setMouseClickFocusVisuals(const CTrackData::trkpt_t * pt);
-
-public:
-    /**
-       @brief Read only access to the track data.
-       @return
-     */
-    const CTrackData& getTrackData() const
-    {
-        return trk;
-    }
-
-    void updateFromDB(quint64 id, QSqlDatabase& db) override;
-
-private:
-    fGetLimit _getMin = [this](const QString& source)
-                        {
-                            return getMin(source);
-                        };
-
-    fGetLimit _getMax = [this](const QString& source)
-                        {
-                            return getMax(source);
-                        };
-
-    qreal   getMinProp(const QString& source) const;
-    qreal   getMaxProp(const QString& source) const;
-    QString getUnitProp(const QString& source) const;
-
-    fGetLimit _getMinProp = [this](const QString& source)
-                            {
-                                return getMinProp(source);
-                            };
-
-    fGetLimit _getMaxProp = [this](const QString& source)
-                            {
-                                return getMaxProp(source);
-                            };
-
-    fGetUnit _getUnitProp = [this](const QString& source)
-                            {
-                                return getUnitProp(source);
-                            };
-
-    fMarkChanged _markChanged = [this]()
-                                {
-                                    updateHistory(eVisualNone);
-                                };
-
-public:
-    CLimit limitsGraph1 {"TrackDetails/Graph1", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
-    CLimit limitsGraph2 {"TrackDetails/Graph2", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
-    CLimit limitsGraph3 {"TrackDetails/Graph3", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
-
-    CLimit colorSourceLimit {"TrackDetails/Style", _getMin, _getMax, _getMin, _getMax, _getUnitProp, _markChanged};
-
-private:
-    /// this is the GPX structure oriented data of the track
-    CTrackData trk;
-
-    /// the key of the track having the user focus.
-    static key_t keyUserFocus;
-    /// drawing and mouse interaction is dependent on the mode
-    mode_e mode = eModeNormal;
-
-    /**
-       \defgroup TrackStatistics Some statistical values over the complete track
-     */
-    /**@{*/
-    quint32 allValidFlags   = 0;
-    qint32 cntInvalidPoints = 0;
-    qint32 cntTotalPoints   = 0;
-    qint32 cntVisiblePoints = 0;
-    QDateTime timeStart;
-    QDateTime timeEnd;
-    qreal totalDistance = 0;
-    qreal totalAscent   = 0;
-    qreal totalDescent  = 0;
-    qreal totalElapsedSeconds = 0;
-    qreal totalElapsedSecondsMoving = 0;
-    quint32 numberOfAttachedWpt = 0;
-    /**@}*/
-
-    /**
-        \defgroup DrawUtilies Objects used to draw the track
-     */
-    /**@{*/
-
-    unsigned colorIdx = 4;  //< the track line color by index
-    QColor color;           //< the track line color
-
-    QPixmap bullet;         //< the trackpoint bullet icon
-    QPolygonF lineSimple;   //< the current track line as screen pixel coordinates
-    QPolygonF lineFull;     //< visible and invisible points
-
-    qint32 penWidthFg = 3;  //< inner trackline width
-    qint32 penWidthBg = 5;  //< outer trackline width
-    qint32 penWidthHi = 11; //< highlighted trackline width
-
-    qint32 widthInfoBox = MIN_WIDTH_INFO_BOX;
-
-    /// the pen with the actual track color
-    QPen penForeground {Qt::blue, qreal(penWidthFg), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-    /// background (border) color of all tracks
-    QPen penBackground {Qt::white, qreal(penWidthBg), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
-
-
-    fValueOnChange onChange = [this](const QVariant& val)
-                              {
-                                  int w = qRound(3.0 * val.toDouble());
-
-                                  penWidthFg = w;
-                                  penWidthBg = w + 2;
-                                  penWidthHi = w + 8;
-
-                                  penForeground.setWidth(penWidthFg);
-                                  penBackground.setWidth(penWidthBg);
-                              };
-
-public:
-    CValue lineScale     {"TrackDetails/lineScale", 1.0, _markChanged, onChange};
-    CValue showArrows    {"TrackDetails/showArrows", true, _markChanged};
-private:
-    /**@}*/
-
-
-    /**
-        A list of INotifyTrk objects that need to get informed on any change in data.
-
-        @note This is necessary because QTreeWidgetItem is not derived from QObject.
-              Thus no signals and slots can be handled. Probably this is because the
-              signal/slot system would be a huge overhead on treewidgets with a large
-              amount of items.
-
-              Anyway we need some kind of signaling between the track object and the
-              INotifyTrk objects displaying the data. And we have to keep in mind that
-              the track can be delete by the user at any time. That is why no other
-              object is allowed to save a pointer to the track. It must store the
-              key. But accessing the track via key is expensive.
-
-              That is why we make an exception here. As the track will delete all
-              registered INotifyTrk objects upon destruction, it should be ok to store
-              the track object in the INotifyTrk object, too. By that INotifyTrk and track can
-              easily communicate with each other.
-
-        @note CDetailsTrk is an INotifyTrk, too. But it is a bit special as it has to be destroyed
-              right after all other INotifyTrk have been destroyed. That is why it is not part of
-              that set.
-     */
-    QSet<INotifyTrk*> registeredVisuals;
-
-    /**
-        \defgroup FocusRange Variables to handle mouse focus and range selection
-     */
-    /**@{*/
-    enum rangestate_e
-    {
-        eRangeStateIdle
-        , eRangeState1st
-        , eRangeState2nd
-    };
-
-    /// state variable for range selection
-    rangestate_e rangeState = eRangeStateIdle;
-
-    /**
-        @brief Identify source of current range selection
-
-        Each range selection operation has to provide an owner string.
-        If mouseFocusOwner is not empty and different to the passed
-        owner string the operation must be rejected.
-
-     */
-    QString mouseFocusOwner;
-
-    const CTrackData::trkpt_t *mouseMoveFocus  = nullptr; //< the current track point selected by mouse movement
-    const CTrackData::trkpt_t *mouseClickFocus = nullptr; //< the last track point the user clicked on
-    const CTrackData::trkpt_t *mouseRange1     = nullptr; //< the first point of a range selection
-    const CTrackData::trkpt_t *mouseRange2     = nullptr; //< the second point of a range selection
-    /**@}*/
-
-    QPointer<CDetailsTrk> dlgDetails; //< the track's details dialog if any
-    QPointer<CScrOptTrk>  scrOpt;     //< the track's screen option if visible
-
-    /// all function concerning track activities have been moved to CActivityTrk
-    CActivityTrk activities = {this};
-
-    /// all functions and data concerning graphs
-    CPropertyTrk * propHandler = nullptr;
-
-    /**
-        \defgroup Data and API related to track interpolation
-     */
-    /**@{*/
-public:
-    enum quality_e
-    {
-        eQualityFine = 8
-        , eQualityMedium = 4
-        , eQualityCoarse = 2
-    };
-
-    void setupInterpolation(bool on, qint32 q);
-    bool isInterpolationEnabled() const
-    {
-        return interp.valid;
-    }
-
-    qreal getElevationInterpolated(qreal d);
-
-private:
-    struct interpolate_t
-    {
-        bool valid      = false;
-        quality_e Q     = eQualityCoarse;
-        alglib::ae_int_t info = -1;
-        alglib::ae_int_t m = 0;
-        alglib::spline1dinterpolant p;
-        alglib::spline1dfitreport rep;
-    };
-
-    interpolate_t interp;
-
-    /**@}*/
-};
-
-class INotifyTrk
-{
-public:
-    INotifyTrk(CGisItemTrk::visual_e mask) : mask(mask){}
-    virtual ~INotifyTrk() = default;
-
-    virtual void updateData() = 0;
-    virtual void setMouseFocus(const CTrackData::trkpt_t * pt) = 0;
-    virtual void setMouseRangeFocus(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2) = 0;
-    virtual void setMouseClickFocus(const CTrackData::trkpt_t * pt) = 0;
-
-    const CGisItemTrk::visual_e mask;
-};
-
-using fTrkPtGetVal = std::function<qreal(const CTrackData::trkpt_t&)>;
-
-#endif //CGISITEMTRK_H
diff --git a/src/gis/trk/CScrOptTrk.cpp b/src/gis/trk/CScrOptTrk.cpp
deleted file mode 100644
index 852364d..0000000
--- a/src/gis/trk/CScrOptTrk.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/trk/CScrOptTrk.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-
-CScrOptTrk::CScrOptTrk(CGisItemTrk * trk, const QPoint& point, IMouse *parent)
-    : IScrOpt(parent)
-    , key(trk->getKey())
-{
-    setupUi(this);
-    setOrigin(point);
-    label->setFont(CMainWindow::self().getMapFont());
-    label->setText(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
-    adjustSize();
-
-    toolProfile->setChecked(trk->hasUserFocus());
-
-    bool isOnDevice = trk->isOnDevice();
-    toolCut->setDisabled(isOnDevice);
-    toolEdit->setDisabled(isOnDevice);
-    toolReverse->setDisabled(isOnDevice);
-    toolRange->setDisabled(isOnDevice);
-    toolCopyWithWpt->setEnabled(trk->getNumberOfAttachedWpt() != 0);
-
-    IGisProject * project = trk->getParentProject();
-    if(project != nullptr)
-    {
-        toolCombine->setEnabled(project->getItemCountByType(IGisItem::eTypeTrk) > 1);
-    }
-
-    anchor = trk->getPointCloseBy(point);
-    if((anchor - point).manhattanLength() > 50)
-    {
-        anchor = point;
-        toolCut->setEnabled(false);
-    }
-
-    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
-    show();
-
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolProfile,     &QToolButton::toggled, this, &CScrOptTrk::hide);
-    connect(toolCut,         &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolReverse,     &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolCombine,     &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolRange,       &QToolButton::clicked, this, &CScrOptTrk::hide);
-    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptTrk::slotEditDetails);
-    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptTrk::slotDelete);
-    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptTrk::slotCopy);
-    connect(toolProfile,     &QToolButton::toggled, this, &CScrOptTrk::slotProfile);
-    connect(toolCut,         &QToolButton::clicked, this, &CScrOptTrk::slotCut);
-    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptTrk::slotEdit);
-    connect(toolReverse,     &QToolButton::clicked, this, &CScrOptTrk::slotReverse);
-    connect(toolCombine,     &QToolButton::clicked, this, &CScrOptTrk::slotCombine);
-    connect(toolRange,       &QToolButton::clicked, this, &CScrOptTrk::slotRange);
-    connect(toolActivity,    &QToolButton::clicked, this, &CScrOptTrk::slotActivity);
-    connect(toolCopyWithWpt, &QToolButton::clicked, this, &CScrOptTrk::slotCopyWithWpt);
-
-
-    // reset user focus if the track has it
-    trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CScrOptTrk");
-    trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CScrOptTrk");
-}
-
-CScrOptTrk::~CScrOptTrk()
-{
-}
-
-void CScrOptTrk::slotDelete()
-{
-    CGisWorkspace::self().delItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotCopy()
-{
-    CGisWorkspace::self().copyItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotEditDetails()
-{
-    CGisWorkspace::self().editItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotProfile(bool on)
-{
-    CGisWorkspace::self().focusTrkByKey(on, key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotCut()
-{
-    CGisWorkspace::self().cutTrkByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotEdit()
-{
-    CGisWorkspace::self().editTrkByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotReverse()
-{
-    CGisWorkspace::self().reverseTrkByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotCombine()
-{
-    CGisWorkspace::self().combineTrkByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotRange()
-{
-    CGisWorkspace::self().rangeTrkByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::slotActivity()
-{
-    QList<IGisItem::key_t> keys;
-    keys << key;
-    CGisWorkspace::self().activityTrkByKey(keys);
-    deleteLater();
-}
-
-void CScrOptTrk::slotCopyWithWpt()
-{
-    CGisWorkspace::self().copyTrkWithWptByKey(key);
-    deleteLater();
-}
-
-void CScrOptTrk::draw(QPainter& p)
-{
-    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
-    if(nullptr == item)
-    {
-        QWidget::deleteLater();
-        return;
-    }
-    item->drawHighlight(p);
-
-    CDraw::bubble(p, geometry(), anchor.toPoint());
-}
diff --git a/src/gis/trk/CScrOptTrk.h b/src/gis/trk/CScrOptTrk.h
deleted file mode 100644
index 770464f..0000000
--- a/src/gis/trk/CScrOptTrk.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CSCROPTTRK_H
-#define CSCROPTTRK_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IScrOpt.h"
-#include "ui_IScrOptTrk.h"
-
-class CGisItemTrk;
-class IMouse;
-
-class CScrOptTrk : public IScrOpt, private Ui::IScrOptTrk
-{
-    Q_OBJECT
-public:
-    CScrOptTrk(CGisItemTrk * trk, const QPoint &point, IMouse *parent);
-    virtual ~CScrOptTrk();
-
-    void draw(QPainter& p) override;
-
-private slots:
-    void slotDelete();
-    void slotCopy();
-    void slotEditDetails();
-    void slotProfile(bool on);
-    void slotCut();
-    void slotEdit();
-    void slotReverse();
-    void slotCombine();
-    void slotRange();
-    void slotActivity();
-    void slotCopyWithWpt();
-
-
-
-private:
-    IGisItem::key_t key;
-    QPointF anchor;
-};
-
-#endif //CSCROPTTRK_H
-
diff --git a/src/gis/trk/CTableTrk.cpp b/src/gis/trk/CTableTrk.cpp
deleted file mode 100644
index b1e64fd..0000000
--- a/src/gis/trk/CTableTrk.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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 "gis/trk/CTableTrk.h"
-#include "helpers/CElevationDialog.h"
-#include "helpers/CSettings.h"
-#include "units/IUnit.h"
-
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-CTableTrk::CTableTrk(QWidget *parent)
-    : QTreeWidget(parent)
-    , INotifyTrk(CGisItemTrk::eVisualTrkTable)
-{
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    header()->restoreState(cfg.value("trackPointListState").toByteArray());
-    cfg.endGroup();
-
-    connect(this, &CTableTrk::itemSelectionChanged, this, &CTableTrk::slotItemSelectionChanged);
-    connect(this, &CTableTrk::itemDoubleClicked, this, &CTableTrk::slotItemDoubleClicked);
-}
-
-CTableTrk::~CTableTrk()
-{
-    SETTINGS;
-    cfg.beginGroup("TrackDetails");
-    cfg.setValue("trackPointListState", header()->saveState());
-    cfg.endGroup();
-
-    if(trk != nullptr)
-    {
-        trk->unregisterVisual(this);
-    }
-}
-
-void CTableTrk::setTrack(CGisItemTrk * track)
-{
-    if(trk != nullptr)
-    {
-        trk->unregisterVisual(this);
-    }
-
-    clear();
-    trk = track;
-
-    if(trk != nullptr)
-    {
-        trk->registerVisual(this);
-        updateData();
-    }
-}
-
-void CTableTrk::updateData()
-{
-    if(trk == nullptr)
-    {
-        return;
-    }
-
-    // use all valid flags as invalid mask. By that only
-    // invalid flags for properties with valid points count
-    quint32 invalidMask = (trk->getAllValidFlags() & CTrackData::trkpt_t::eValidMask) << 16;
-
-    QList<QTreeWidgetItem*> items;
-    const CTrackData& t = trk->getTrackData();
-    for(const CTrackData::trkpt_t& trkpt : t)
-    {
-        QString val, unit;
-
-        QTreeWidgetItem * item = new QTreeWidgetItem();
-        item->setTextAlignment(eColNum,     Qt::AlignLeft);
-        item->setTextAlignment(eColEle,     Qt::AlignRight);
-        item->setTextAlignment(eColDelta,   Qt::AlignRight);
-        item->setTextAlignment(eColDist,    Qt::AlignRight);
-        item->setTextAlignment(eColAscent,  Qt::AlignRight);
-        item->setTextAlignment(eColDescent, Qt::AlignRight);
-        item->setTextAlignment(eColSpeed,   Qt::AlignRight);
-
-        if(!trk->isReadOnly())
-        {
-            item->setToolTip(eColEle, tr("Double click to edit elevation value"));
-        }
-
-        QBrush bg = item->background(0);
-        if(trkpt.isInvalid(CTrackData::trkpt_t::invalid_e(invalidMask)))
-        {
-            bg = QColor(255, 100, 100);
-        }
-
-        QBrush fg( trkpt.isHidden() ? Qt::gray : Qt::black );
-        for(int i = 0; i < eColMax; i++)
-        {
-            item->setBackground(i, bg);
-            item->setForeground(i, fg);
-        }
-
-        item->setText(eColNum,QString::number(trkpt.idxTotal));
-
-        item->setText(eColTime, trkpt.time.isValid()
-                      ? IUnit::self().datetime2string(trkpt.time, true, QPointF(trkpt.lon, trkpt.lat)*DEG_TO_RAD)
-                      : "-"
-                      );
-
-        if(trkpt.ele != NOINT)
-        {
-            IUnit::self().meter2elevation(trkpt.ele, val, unit);
-            item->setText(eColEle, tr("%1%2").arg(val).arg(unit));
-        }
-        else
-        {
-            item->setText(eColEle, "-");
-        }
-
-        IUnit::self().meter2distance(trkpt.deltaDistance, val, unit);
-        item->setText(eColDelta, tr("%1%2").arg(val).arg(unit));
-
-        IUnit::self().meter2distance(trkpt.distance, val, unit);
-        item->setText(eColDist, tr("%1%2").arg(val).arg(unit));
-
-        if(trkpt.speed != NOFLOAT)
-        {
-            IUnit::self().meter2speed(trkpt.speed, val, unit);
-            item->setText(eColSpeed, tr("%1%2").arg(val).arg(unit));
-        }
-        else
-        {
-            item->setText(eColSpeed, "-");
-        }
-
-        IUnit::self().slope2string(trkpt.slope1, val, unit);
-        item->setText(eColSlope, (trkpt.slope1 != NOFLOAT)
-                      ? QString("%1%2").arg(val).arg(unit)
-                      : "-"
-                      );
-
-        IUnit::self().meter2elevation(trkpt.ascent, val, unit);
-        item->setText(eColAscent, tr("%1%2").arg(val).arg(unit));
-        IUnit::self().meter2elevation(trkpt.descent, val, unit);
-        item->setText(eColDescent, tr("%1%2").arg(val).arg(unit));
-
-        // position
-        QString str;
-        IUnit::degToStr(trkpt.lon, trkpt.lat, str);
-        item->setText(eColPosition,str);
-
-        items << item;
-    }
-
-    clear();
-    addTopLevelItems(items);
-    header()->resizeSections(QHeaderView::ResizeToContents);
-}
-
-
-void CTableTrk::slotItemSelectionChanged()
-{
-    QTreeWidgetItem * item = currentItem();
-    if(nullptr != item)
-    {
-        quint32 idx = item->text(eColNum).toUInt();
-        trk->setMouseFocusByTotalIndex(idx, CGisItemTrk::eFocusMouseMove, "CTableTrk");
-    }
-}
-
-void CTableTrk::slotItemDoubleClicked(QTreeWidgetItem * item, int column)
-{
-    if(trk->isReadOnly())
-    {
-        return;
-    }
-
-    qint32 idx = item->text(eColNum).toInt();
-    qint32 ele = trk->getElevation(idx);
-    qreal lon, lat;
-    IUnit::strToDeg(item->text(eColPosition), lon, lat);
-
-    if((column == eColEle) && (lon != NOFLOAT) && (lat != NOFLOAT))
-    {
-        QVariant var(ele);
-        CElevationDialog dlg(this, var, QVariant(ele), QPointF(lon, lat));
-
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            trk->setElevation(idx, var.toInt());
-        }
-    }
-}
diff --git a/src/gis/trk/CTrackData.cpp b/src/gis/trk/CTrackData.cpp
deleted file mode 100644
index 8d88908..0000000
--- a/src/gis/trk/CTrackData.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#include "gis/IGisLine.h"
-#include "gis/trk/CTrackData.h"
-
-CTrackData::CTrackData(const QString &name, const CTrackData &other, qint32 rangeStart, qint32 rangeEnd) : name(name)
-{
-    for(const trkseg_t &oseg : other.segs)
-    {
-        trkseg_t seg;
-        for(const trkpt_t &opt : oseg.pts)
-        {
-            if(opt.idxTotal < rangeStart)
-            {
-                continue;
-            }
-            if(opt.idxTotal > rangeEnd)
-            {
-                break;
-            }
-
-            seg.pts << opt;
-        }
-
-        if(!seg.isEmpty())
-        {
-            segs << seg;
-        }
-    }
-
-    cmt    = other.cmt;
-    desc   = other.desc;
-    src    = other.src;
-    links  = other.links;
-    number = other.number;
-    type   = other.type;
-}
-
-void CTrackData::removeEmptySegments()
-{
-    QVector<trkseg_t>::iterator it = segs.begin();
-    while(it != segs.end())
-    {
-        if(it->pts.isEmpty())
-        {
-            it = segs.erase(it);
-        }
-        else
-        {
-            ++it;
-        }
-    }
-}
-
-void CTrackData::readFrom(const SGisLine &l)
-{
-    segs.clear();
-    segs.resize(1);
-    trkseg_t& seg = segs.first();
-
-    for(int i = 0; i < l.size(); i++)
-    {
-        seg.pts << trkpt_t();
-
-        trkpt_t& trkpt    = seg.pts.last();
-        const IGisLine::point_t& pt = l[i];
-
-        trkpt.lon = pt.coord.x() * RAD_TO_DEG;
-        trkpt.lat = pt.coord.y() * RAD_TO_DEG;
-        trkpt.ele = pt.ele;
-
-        for(int n = 0; n < pt.subpts.size(); n++)
-        {
-            seg.pts << trkpt_t();
-
-            trkpt_t& trkpt = seg.pts.last();
-            const IGisLine::subpt_t& sub = pt.subpts[n];
-
-            trkpt.lon = sub.coord.x() * RAD_TO_DEG;
-            trkpt.lat = sub.coord.y() * RAD_TO_DEG;
-            trkpt.ele = sub.ele;
-            trkpt.setFlag(trkpt_t::eSubpt);
-        }
-    }
-}
-
-
-void CTrackData::getPolyline(SGisLine &l) const
-{
-    l.clear();
-    for(const trkpt_t &pt : *this)
-    {
-        if(!pt.isHidden())
-        {
-            if(pt.hasFlag(trkpt_t::eSubpt))
-            {
-                l.last().subpts << IGisLine::subpt_t(pt.radPoint());
-            }
-            else
-            {
-                l << IGisLine::point_t(pt.radPoint());
-            }
-        }
-    }
-}
-
-void CTrackData::getPolyline(QPolygonF &l) const
-{
-    l.clear();
-    for(const trkpt_t &pt : *this)
-    {
-        if(!pt.isHidden())
-        {
-            l << pt.radPoint();
-        }
-    }
-}
-
-
-bool CTrackData::isTrkPtFirstVisible(qint32 idxTotal) const
-{
-    for(const trkpt_t &pt : *this)
-    {
-        if((pt.idxTotal < idxTotal))
-        {
-            if(!pt.isHidden())
-            {
-                return false;
-            }
-        }
-        else
-        {
-            return true;
-        }
-    }
-    return true;
-}
-
-const CTrackData::trkpt_t* CTrackData::getTrkPtByVisibleIndex(qint32 idx) const
-{
-    if(idx == NOIDX)
-    {
-        return nullptr;
-    }
-
-    auto condition = [idx](const trkpt_t &pt) { return pt.idxVisible == idx;  };
-    return getTrkPtByCondition(condition);
-}
-
-const CTrackData::trkpt_t* CTrackData::getTrkPtByTotalIndex(qint32 idx) const
-{
-    auto condition = [idx](const trkpt_t &pt) { return pt.idxTotal == idx;  };
-    return getTrkPtByCondition(condition);
-}
-
-bool CTrackData::isTrkPtLastVisible(qint32 idxTotal) const
-{
-    auto condition = [idxTotal](const trkpt_t &pt) { return (pt.idxTotal > idxTotal) && !pt.isHidden();  };
-    return nullptr == getTrkPtByCondition(condition);
-}
-
-const CTrackData::trkpt_t* CTrackData::getTrkPtByCondition(std::function<bool(const CTrackData::trkpt_t&)> cond) const
-{
-    for(const trkpt_t &pt : *this)
-    {
-        if(cond(pt))
-        {
-            return &pt;
-        }
-    }
-    return nullptr;
-}
-
-CTrackData::trkpt_t* CTrackData::getTrkPtByCondition(std::function<bool(const CTrackData::trkpt_t&)> cond)
-{
-    for(trkpt_t &pt : *this)
-    {
-        if(cond(pt))
-        {
-            return &pt;
-        }
-    }
-    return nullptr;
-}
diff --git a/src/gis/trk/CTrackData.h b/src/gis/trk/CTrackData.h
deleted file mode 100644
index deb82ca..0000000
--- a/src/gis/trk/CTrackData.h
+++ /dev/null
@@ -1,266 +0,0 @@
-#ifndef TRACKDATA_H
-#define TRACKDATA_H
-
-#include "GeoMath.h"
-#include "gis/IGisItem.h"
-#include <QPoint>
-#include <QtWidgets>
-#include <functional>
-#include <proj_api.h>
-
-
-struct SGisLine;
-
-class CTrackData
-{
-public:
-    struct trkpt_t : public IGisItem::wpt_t
-    {
-        trkpt_t()
-        {
-            reset();
-        }
-
-        void reset()
-        {
-            deltaDistance   = NOFLOAT;
-            distance        = NOFLOAT;
-            ascent          = NOFLOAT;
-            descent         = NOFLOAT;
-            elapsedSeconds  = NOFLOAT;
-            elapsedSecondsMoving = NOFLOAT;
-            slope1          = NOFLOAT;
-            slope2          = NOFLOAT;
-            speed           = NOFLOAT;
-            idxVisible      = NOIDX;
-        }
-
-        enum flag_e
-        {
-            eHidden     = 0x00000004      ///< mark point as deleted
-            ,eSubpt     = 0x00000008
-                          // activity flags
-            ,eActNone   = 0x00000000
-            ,eActFoot   = 0x80000000
-            ,eActCycle  = 0x40000000
-            ,eActBike   = 0x20000000
-            ,eActCar    = 0x10000000
-            ,eActCable  = 0x08000000
-            ,eActSwim   = 0x04000000
-            ,eActShip   = 0x02000000
-            ,eActAero   = 0x01000000
-            ,eActSki    = 0x00800000
-            ,eActTrain  = 0x00400000
-            ,eActMask   = 0xFFC00000    ///< mask for activity flags
-            ,eActMaxNum = 10            ///< maximum number of activity flags. this is defined by the mask
-        };
-
-        enum valid_e
-        {
-            eValidTime  = 0x00000001
-            ,eValidEle  = 0x00000002
-            ,eValidPos  = 0x00000004
-            ,eValidMask = 0x0000FFFF
-        };
-
-        enum invalid_e
-        {
-            eInvalidTime  = eValidTime << 16
-            ,eInvalidEle  = eValidEle  << 16
-            ,eInvalidPos  = eValidPos  << 16
-            ,eInvalidMask = 0xFFFF0000
-        };
-
-
-        inline bool isHidden() const
-        {
-            return hasFlag(trkpt_t::eHidden);
-        }
-
-        inline bool hasFlag(enum flag_e flag) const
-        {
-            return flags & flag;
-        }
-
-        inline void setFlag(enum flag_e flag)
-        {
-            flags |= flag;
-        }
-
-        inline void unsetFlag(enum flag_e flag)
-        {
-            flags &= ~flag;
-        }
-
-        inline bool isValid(valid_e flag) const
-        {
-            return (valid & flag) != 0;
-        }
-
-        inline bool isInvalid(invalid_e flag) const
-        {
-            return (valid & flag) != 0;
-        }
-
-        inline QPointF radPoint() const
-        {
-            return QPointF(lon * DEG_TO_RAD, lat * DEG_TO_RAD);
-        }
-
-        inline qreal distanceTo(const trkpt_t &other)
-        {
-            return GPS_Math_Distance(lon * DEG_TO_RAD, lat * DEG_TO_RAD, other.lon * DEG_TO_RAD, other.lat * DEG_TO_RAD);
-        }
-
-        quint32 flags = 0;
-        quint32 valid = 0;
-        qint32 idxTotal = NOIDX;            //< index within the complete track
-        qint32 idxVisible;                  //< offset into lineSimple
-        qreal deltaDistance;                //< the distance to the last point
-        qreal distance;                     //< the distance from the start of the track
-        qreal ascent;                       //< the ascent from the start of the track
-        qreal descent;                      //< the descent from the start of the track
-        qreal slope1;                       //< the slope [°] over several points close by
-        qreal slope2;                       //< the slope [%] over several points close by
-        qreal speed;                        //< the speed over several points close by
-        qreal elapsedSeconds;               //< the seconds since the start of the track
-        qreal elapsedSecondsMoving;         //< the seconds since the start of the track with moving speed
-        IGisItem::key_t keyWpt;             //< the key of an attached waypoint
-        QHash<QString,QVariant> extensions; //< track point extensions
-    };
-
-    struct trkseg_t
-    {
-        QVector<trkpt_t> pts;
-
-        bool isEmpty() const
-        {
-            return pts.isEmpty();
-        }
-    };
-
-
-
-    CTrackData() {}
-
-    CTrackData(const QString &name, const CTrackData &other, qint32 rangeStart, qint32 rangeEnd);
-
-    // -- all gpx tags - start
-    QString name;
-    QString cmt;
-    QString desc;
-    QString src;
-    QList<IGisItem::link_t> links;
-    quint64 number = 0;
-    QString type;
-    QVector<trkseg_t> segs;
-    // -- all gpx tags - stop
-
-    QString color;
-
-    void removeEmptySegments();
-
-    void readFrom(const SGisLine &l);
-    void getPolyline(SGisLine  &l) const;
-    void getPolyline(QPolygonF &l) const;
-
-    bool isEmpty() const
-    {
-        return segs.isEmpty();
-    }
-
-    /**
-       @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) const;
-
-    const trkpt_t* getTrkPtByCondition(std::function<bool(const trkpt_t&)> cond) const;
-    trkpt_t* getTrkPtByCondition(std::function<bool(const trkpt_t&)> cond);
-
-
-    /**
-       @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 returned.
-
-       @param idx The index into all visible points
-       @return A null pointer of no point is found.
-     */
-    const trkpt_t *getTrkPtByVisibleIndex(qint32 idx) const;
-    /**
-       @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) const;
-
-    /**
-       @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) const;
-
-
-    template<typename T1, typename T2>
-    class iterator : public std::iterator<std::forward_iterator_tag, T2>
-    {
-        T1 &trk;
-        int seg = 0;
-        int pt  = 0;
-
-public:
-        explicit iterator(T1 &trk, int seg, int pt) : trk(trk), seg(seg), pt(pt) {}
-
-        iterator& operator++()
-        {
-            Q_ASSERT(seg < trk.segs.count());
-            ++pt;
-
-            if(this->trk.segs[seg].pts.count() <= pt)
-            {
-                pt = 0;
-                ++seg;
-            }
-
-            return *this;
-        }
-
-        iterator operator++(int)
-        {
-            iterator prev = *this;
-            ++(*this);
-            return prev;
-        }
-
-        bool operator==(iterator other) const
-        {
-            return (&trk == &other.trk) && (seg == other.seg) && (pt == other.pt);
-        }
-
-        bool operator!=(iterator other) const
-        {
-            return !(*this == other);
-        }
-
-        T2& operator*()
-        {
-            return this->trk.segs[seg].pts[pt];
-        }
-    };
-
-    iterator<CTrackData, trkpt_t> begin() { return iterator<CTrackData, trkpt_t>(*this,            0, 0); }
-    iterator<CTrackData, trkpt_t> end()   { return iterator<CTrackData, trkpt_t>(*this, segs.count(), 0); }
-
-    iterator<const CTrackData, const trkpt_t> begin() const { return iterator<const CTrackData, const trkpt_t>(*this,            0, 0); }
-    iterator<const CTrackData, const trkpt_t> end()   const { return iterator<const CTrackData, const trkpt_t>(*this, segs.count(), 0); }
-};
-
-#endif /* TRACKDATA_H */
diff --git a/src/gis/trk/IDetailsTrk.ui b/src/gis/trk/IDetailsTrk.ui
deleted file mode 100644
index a33d2af..0000000
--- a/src/gis/trk/IDetailsTrk.ui
+++ /dev/null
@@ -1,1650 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IDetailsTrk</class>
- <widget class="QWidget" name="IDetailsTrk">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>992</width>
-    <height>404</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_5">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <widget class="QSplitter" name="splitter">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <widget class="QWidget" name="layoutWidget">
-      <layout class="QVBoxLayout" name="layoutPlot">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <item>
-        <layout class="QHBoxLayout" name="horizontalLayout_3">
-         <property name="spacing">
-          <number>3</number>
-         </property>
-         <item>
-          <widget class="QLabel" name="labelInfoTrkPt">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>-
--
--</string>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="Line" name="line">
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="labelInfoProgress">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>-
--</string>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="Line" name="line_2">
-           <property name="orientation">
-            <enum>Qt::Vertical</enum>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QLabel" name="labelInfoRange">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="text">
-            <string>-
--</string>
-           </property>
-           <property name="alignment">
-            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer name="horizontalSpacer">
-           <property name="orientation">
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeType">
-            <enum>QSizePolicy::Expanding</enum>
-           </property>
-           <property name="sizeHint" stdset="0">
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="layoutWidget1">
-      <layout class="QHBoxLayout" name="horizontalLayout_6">
-       <property name="spacing">
-        <number>3</number>
-       </property>
-       <item>
-        <widget class="QFrame" name="frame">
-         <property name="frameShape">
-          <enum>QFrame::StyledPanel</enum>
-         </property>
-         <property name="frameShadow">
-          <enum>QFrame::Raised</enum>
-         </property>
-         <layout class="QVBoxLayout" name="verticalLayout_7">
-          <property name="spacing">
-           <number>3</number>
-          </property>
-          <property name="leftMargin">
-           <number>3</number>
-          </property>
-          <property name="topMargin">
-           <number>3</number>
-          </property>
-          <property name="rightMargin">
-           <number>3</number>
-          </property>
-          <property name="bottomMargin">
-           <number>3</number>
-          </property>
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout_8">
-            <item>
-             <widget class="CLineEdit" name="lineName">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="palette">
-               <palette>
-                <active>
-                 <colorrole role="Base">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                 <colorrole role="Window">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                </active>
-                <inactive>
-                 <colorrole role="Base">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                 <colorrole role="Window">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                </inactive>
-                <disabled>
-                 <colorrole role="Base">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                 <colorrole role="Window">
-                  <brush brushstyle="SolidPattern">
-                   <color alpha="0">
-                    <red>0</red>
-                    <green>0</green>
-                    <blue>0</blue>
-                   </color>
-                  </brush>
-                 </colorrole>
-                </disabled>
-               </palette>
-              </property>
-              <property name="font">
-               <font>
-                <weight>75</weight>
-                <bold>true</bold>
-               </font>
-              </property>
-              <property name="focusPolicy">
-               <enum>Qt::ClickFocus</enum>
-              </property>
-              <property name="frame">
-               <bool>false</bool>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QLabel" name="labelTainted">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="maximumSize">
-               <size>
-                <width>25</width>
-                <height>25</height>
-               </size>
-              </property>
-              <property name="toolTip">
-               <string>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
-              </property>
-              <property name="text">
-               <string/>
-              </property>
-              <property name="pixmap">
-               <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
-              </property>
-              <property name="scaledContents">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QToolButton" name="toolLock">
-              <property name="sizePolicy">
-               <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
-                <horstretch>0</horstretch>
-                <verstretch>0</verstretch>
-               </sizepolicy>
-              </property>
-              <property name="toolTip">
-               <string>Toggle read only mode. You have to open the lock to edit the item.</string>
-              </property>
-              <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>
-              <property name="autoRaise">
-               <bool>true</bool>
-              </property>
-             </widget>
-            </item>
-           </layout>
-          </item>
-          <item>
-           <widget class="QLabel" name="labelInfo">
-            <property name="text">
-             <string>-</string>
-            </property>
-            <property name="alignment">
-             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-            </property>
-            <property name="textInteractionFlags">
-             <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-            </property>
-           </widget>
-          </item>
-          <item>
-           <spacer name="verticalSpacer">
-            <property name="orientation">
-             <enum>Qt::Vertical</enum>
-            </property>
-            <property name="sizeHint" stdset="0">
-             <size>
-              <width>20</width>
-              <height>40</height>
-             </size>
-            </property>
-           </spacer>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QTabWidget" name="tabWidget">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-         <property name="currentIndex">
-          <number>0</number>
-         </property>
-         <widget class="QWidget" name="tab_3">
-          <attribute name="title">
-           <string>Info</string>
-          </attribute>
-          <layout class="QHBoxLayout" name="horizontalLayout_5">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="CPlotTrack" name="plotTrack" native="true"/>
-           </item>
-           <item>
-            <widget class="QTextBrowser" name="textCmtDesc">
-             <property name="openLinks">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tabStyle">
-          <attribute name="title">
-           <string>Style</string>
-          </attribute>
-          <layout class="QHBoxLayout" name="tabStyleLayout">
-           <item>
-            <layout class="QVBoxLayout" name="widgetColorLayout">
-             <item>
-              <widget class="CColorLegend" name="widgetColorLabel" native="true">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-               <property name="minimumSize">
-                <size>
-                 <width>100</width>
-                 <height>0</height>
-                </size>
-               </property>
-               <property name="maximumSize">
-                <size>
-                 <width>300</width>
-                 <height>16777215</height>
-                </size>
-               </property>
-              </widget>
-             </item>
-            </layout>
-           </item>
-           <item>
-            <layout class="QVBoxLayout" name="verticalLayout_2">
-             <item>
-              <layout class="QGridLayout" name="gridLayout">
-               <item row="0" column="0">
-                <widget class="QLabel" name="label">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Source</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="7" column="0">
-                <widget class="QLabel" name="label_5">
-                 <property name="text">
-                  <string>Width</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="1">
-                <widget class="QComboBox" name="comboColorSource"/>
-               </item>
-               <item row="8" column="2">
-                <layout class="QHBoxLayout" name="horizontalLayout_4">
-                 <property name="spacing">
-                  <number>0</number>
-                 </property>
-                 <item>
-                  <widget class="QToolButton" name="toolUserArrow">
-                   <property name="toolTip">
-                    <string>Use/edit user defined visibility of arrows for this track</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/ArrowUser.png</normaloff>:/icons/32x32/ArrowUser.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                   <attribute name="buttonGroup">
-                    <string notr="true">buttonGroupArrow</string>
-                   </attribute>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QToolButton" name="toolDefArrow">
-                   <property name="toolTip">
-                    <string>Use/edit system's visibility of arrows for all tracks</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/ArrowDef.png</normaloff>:/icons/32x32/ArrowDef.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="checked">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                   <attribute name="buttonGroup">
-                    <string notr="true">buttonGroupArrow</string>
-                   </attribute>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_6">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeType">
-                    <enum>QSizePolicy::Maximum</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>25</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </item>
-               <item row="4" column="1">
-                <widget class="CDoubleSpinBox" name="spinLimitHigh">
-                 <property name="decimals">
-                  <number>1</number>
-                 </property>
-                 <property name="minimum">
-                  <double>-100.000000000000000</double>
-                 </property>
-                </widget>
-               </item>
-               <item row="4" column="2">
-                <layout class="QHBoxLayout" name="horizontalLayout_7">
-                 <property name="spacing">
-                  <number>0</number>
-                 </property>
-                 <item>
-                  <widget class="QToolButton" name="toolLimitUsrStyle">
-                   <property name="toolTip">
-                    <string>User defined limits for this track</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QToolButton" name="toolLimitAutoStyle">
-                   <property name="toolTip">
-                    <string>Automatic limits</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="checked">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QToolButton" name="toolLimitSysStyle">
-                   <property name="toolTip">
-                    <string>User defined limits for all tracks</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                  </widget>
-                 </item>
-                </layout>
-               </item>
-               <item row="4" column="0">
-                <widget class="QLabel" name="label_2">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Maximum</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="8" column="1">
-                <widget class="QCheckBox" name="checkWithArrows">
-                 <property name="text">
-                  <string>with arrows</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="7" column="1">
-                <widget class="QDoubleSpinBox" name="spinLineWidth">
-                 <property name="prefix">
-                  <string>x </string>
-                 </property>
-                 <property name="decimals">
-                  <number>1</number>
-                 </property>
-                 <property name="minimum">
-                  <double>1.000000000000000</double>
-                 </property>
-                 <property name="maximum">
-                  <double>4.000000000000000</double>
-                 </property>
-                 <property name="singleStep">
-                  <double>0.500000000000000</double>
-                 </property>
-                </widget>
-               </item>
-               <item row="5" column="1">
-                <widget class="CDoubleSpinBox" name="spinLimitLow">
-                 <property name="decimals">
-                  <number>1</number>
-                 </property>
-                 <property name="minimum">
-                  <double>-100.000000000000000</double>
-                 </property>
-                </widget>
-               </item>
-               <item row="5" column="2">
-                <layout class="QHBoxLayout" name="horizontalLayout_9">
-                 <property name="spacing">
-                  <number>0</number>
-                 </property>
-                </layout>
-               </item>
-               <item row="7" column="2">
-                <layout class="QHBoxLayout" name="horizontalLayout">
-                 <property name="spacing">
-                  <number>0</number>
-                 </property>
-                 <item>
-                  <widget class="QToolButton" name="toolUserLineWith">
-                   <property name="toolTip">
-                    <string>Use/edit user defined scale factor for this track</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/LineWidthUser.png</normaloff>:/icons/32x32/LineWidthUser.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                   <attribute name="buttonGroup">
-                    <string notr="true">buttonGroupLineWidth</string>
-                   </attribute>
-                  </widget>
-                 </item>
-                 <item>
-                  <widget class="QToolButton" name="toolDefLineWidth">
-                   <property name="toolTip">
-                    <string>Use/edit system's default factor for all tracks</string>
-                   </property>
-                   <property name="text">
-                    <string>...</string>
-                   </property>
-                   <property name="icon">
-                    <iconset resource="../../resources.qrc">
-                     <normaloff>:/icons/32x32/LineWidthDef.png</normaloff>:/icons/32x32/LineWidthDef.png</iconset>
-                   </property>
-                   <property name="iconSize">
-                    <size>
-                     <width>16</width>
-                     <height>16</height>
-                    </size>
-                   </property>
-                   <property name="checkable">
-                    <bool>true</bool>
-                   </property>
-                   <property name="checked">
-                    <bool>true</bool>
-                   </property>
-                   <property name="autoExclusive">
-                    <bool>true</bool>
-                   </property>
-                   <attribute name="buttonGroup">
-                    <string notr="true">buttonGroupLineWidth</string>
-                   </attribute>
-                  </widget>
-                 </item>
-                 <item>
-                  <spacer name="horizontalSpacer_5">
-                   <property name="orientation">
-                    <enum>Qt::Horizontal</enum>
-                   </property>
-                   <property name="sizeType">
-                    <enum>QSizePolicy::Maximum</enum>
-                   </property>
-                   <property name="sizeHint" stdset="0">
-                    <size>
-                     <width>25</width>
-                     <height>20</height>
-                    </size>
-                   </property>
-                  </spacer>
-                 </item>
-                </layout>
-               </item>
-               <item row="5" column="0">
-                <widget class="QLabel" name="label_3">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Minimum</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="6" column="0" colspan="3">
-                <widget class="Line" name="line_4">
-                 <property name="orientation">
-                  <enum>Qt::Horizontal</enum>
-                 </property>
-                </widget>
-               </item>
-               <item row="3" column="0">
-                <widget class="QLabel" name="label_4">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="text">
-                  <string>Color</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="3" column="1">
-                <layout class="QHBoxLayout" name="horizontalLayout_13">
-                 <item>
-                  <widget class="QComboBox" name="comboColor"/>
-                 </item>
-                 <item>
-                  <widget class="CSelectActivityColor" name="widgetColorActivity" native="true"/>
-                 </item>
-                </layout>
-               </item>
-              </layout>
-             </item>
-             <item>
-              <spacer name="verticalSpacer_2">
-               <property name="orientation">
-                <enum>Qt::Vertical</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>20</width>
-                 <height>40</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </item>
-           <item>
-            <spacer name="horizontalSpacer_4">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tab_5">
-          <attribute name="title">
-           <string>Graphs</string>
-          </attribute>
-          <layout class="QGridLayout" name="gridLayout_2">
-           <item row="3" column="0">
-            <widget class="QCheckBox" name="checkGraph2">
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-           <item row="7" column="2">
-            <widget class="QLabel" name="label_12">
-             <property name="text">
-              <string>max.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="1" column="3">
-            <widget class="QDoubleSpinBox" name="spinMaxGraph1">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="4" column="2">
-            <widget class="QLabel" name="label_11">
-             <property name="text">
-              <string>max.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="4" column="3">
-            <widget class="QDoubleSpinBox" name="spinMaxGraph2">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="6" column="0">
-            <widget class="QCheckBox" name="checkGraph3">
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="0">
-            <widget class="QCheckBox" name="checkGraph1">
-             <property name="text">
-              <string/>
-             </property>
-            </widget>
-           </item>
-           <item row="6" column="3">
-            <widget class="QDoubleSpinBox" name="spinMinGraph3">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="6" column="5">
-            <spacer name="horizontalSpacer_3">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-           <item row="7" column="3">
-            <widget class="QDoubleSpinBox" name="spinMaxGraph3">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="8" column="0">
-            <spacer name="verticalSpacer_3">
-             <property name="orientation">
-              <enum>Qt::Vertical</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>20</width>
-               <height>40</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-           <item row="1" column="2">
-            <widget class="QLabel" name="label_8">
-             <property name="text">
-              <string>max.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="3">
-            <widget class="QDoubleSpinBox" name="spinMinGraph2">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="3">
-            <widget class="QDoubleSpinBox" name="spinMinGraph1">
-             <property name="enabled">
-              <bool>false</bool>
-             </property>
-             <property name="minimum">
-              <double>-1000000.000000000000000</double>
-             </property>
-             <property name="maximum">
-              <double>1000000.000000000000000</double>
-             </property>
-            </widget>
-           </item>
-           <item row="6" column="2">
-            <widget class="QLabel" name="label_10">
-             <property name="text">
-              <string>min.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="2">
-            <widget class="QLabel" name="label_9">
-             <property name="text">
-              <string>min.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="2" column="0" colspan="5">
-            <widget class="Line" name="line_5">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="2">
-            <widget class="QLabel" name="label_7">
-             <property name="text">
-              <string>min.</string>
-             </property>
-            </widget>
-           </item>
-           <item row="5" column="0" colspan="5">
-            <widget class="Line" name="line_6">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-            </widget>
-           </item>
-           <item row="0" column="1">
-            <widget class="QLabel" name="label_6">
-             <property name="text">
-              <string>Profile</string>
-             </property>
-            </widget>
-           </item>
-           <item row="3" column="1">
-            <widget class="QComboBox" name="comboGraph2"/>
-           </item>
-           <item row="6" column="1">
-            <widget class="QComboBox" name="comboGraph3"/>
-           </item>
-           <item row="0" column="4">
-            <layout class="QHBoxLayout" name="horizontalLayout_10">
-             <property name="spacing">
-              <number>0</number>
-             </property>
-             <item>
-              <widget class="QToolButton" name="toolLimitUsrGraph1">
-               <property name="toolTip">
-                <string>User defined limits for this track</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph1</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitAutoGraph1">
-               <property name="toolTip">
-                <string>Automatic limits</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="checked">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph1</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitSysGraph1">
-               <property name="toolTip">
-                <string>User defined limits for all tracks</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph1</string>
-               </attribute>
-              </widget>
-             </item>
-            </layout>
-           </item>
-           <item row="3" column="4">
-            <layout class="QHBoxLayout" name="horizontalLayout_11">
-             <property name="spacing">
-              <number>0</number>
-             </property>
-             <item>
-              <widget class="QToolButton" name="toolLimitUsrGraph2">
-               <property name="toolTip">
-                <string>User defined limits for this track</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph2</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitAutoGraph2">
-               <property name="toolTip">
-                <string>Automatic limits</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="checked">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph2</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitSysGraph2">
-               <property name="toolTip">
-                <string>User defined limits for all tracks</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph2</string>
-               </attribute>
-              </widget>
-             </item>
-            </layout>
-           </item>
-           <item row="6" column="4">
-            <layout class="QHBoxLayout" name="horizontalLayout_12">
-             <property name="spacing">
-              <number>0</number>
-             </property>
-             <item>
-              <widget class="QToolButton" name="toolLimitUsrGraph3">
-               <property name="toolTip">
-                <string>User defined limits for this track</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph3</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitAutoGraph3">
-               <property name="toolTip">
-                <string>Automatic limits</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="checked">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph3</string>
-               </attribute>
-              </widget>
-             </item>
-             <item>
-              <widget class="QToolButton" name="toolLimitSysGraph3">
-               <property name="toolTip">
-                <string>User defined limits for all tracks</string>
-               </property>
-               <property name="text">
-                <string>...</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
-               </property>
-               <property name="iconSize">
-                <size>
-                 <width>16</width>
-                 <height>16</height>
-                </size>
-               </property>
-               <property name="checkable">
-                <bool>true</bool>
-               </property>
-               <property name="autoExclusive">
-                <bool>true</bool>
-               </property>
-               <attribute name="buttonGroup">
-                <string notr="true">buttonGroupGraph3</string>
-               </attribute>
-              </widget>
-             </item>
-            </layout>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tab_2">
-          <attribute name="title">
-           <string>Activity</string>
-          </attribute>
-          <layout class="QHBoxLayout" name="horizontalLayout_2">
-           <property name="spacing">
-            <number>3</number>
-           </property>
-           <property name="leftMargin">
-            <number>3</number>
-           </property>
-           <property name="topMargin">
-            <number>3</number>
-           </property>
-           <property name="rightMargin">
-            <number>3</number>
-           </property>
-           <property name="bottomMargin">
-            <number>3</number>
-           </property>
-           <item>
-            <layout class="QVBoxLayout" name="verticalLayout">
-             <item>
-              <widget class="QPushButton" name="pushSetActivities">
-               <property name="text">
-                <string>Set Track Activity</string>
-               </property>
-               <property name="icon">
-                <iconset resource="../../resources.qrc">
-                 <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
-               </property>
-              </widget>
-             </item>
-             <item>
-              <spacer name="verticalSpacer_4">
-               <property name="orientation">
-                <enum>Qt::Vertical</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>20</width>
-                 <height>40</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </item>
-           <item>
-            <widget class="Line" name="line_3">
-             <property name="orientation">
-              <enum>Qt::Vertical</enum>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelActivityInfo">
-             <property name="text">
-              <string/>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelActivityHelp">
-             <property name="text">
-              <string>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</string>
-             </property>
-             <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-             </property>
-             <property name="wordWrap">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <spacer name="horizontalSpacer_2">
-             <property name="orientation">
-              <enum>Qt::Horizontal</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>40</width>
-               <height>20</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tab">
-          <attribute name="title">
-           <string>Points</string>
-          </attribute>
-          <layout class="QVBoxLayout" name="verticalLayout_4">
-           <property name="spacing">
-            <number>0</number>
-           </property>
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="CTableTrk" name="treeWidget">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="alternatingRowColors">
-              <bool>true</bool>
-             </property>
-             <property name="rootIsDecorated">
-              <bool>false</bool>
-             </property>
-             <property name="itemsExpandable">
-              <bool>false</bool>
-             </property>
-             <attribute name="headerCascadingSectionResizes">
-              <bool>false</bool>
-             </attribute>
-             <attribute name="headerDefaultSectionSize">
-              <number>50</number>
-             </attribute>
-             <column>
-              <property name="text">
-               <string notr="true">#</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Time</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Ele.</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Delta</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Dist.</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Speed</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Slope</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Ascent</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Descent</string>
-              </property>
-             </column>
-             <column>
-              <property name="text">
-               <string>Position</string>
-              </property>
-             </column>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tabFilter">
-          <attribute name="title">
-           <string>Filter</string>
-          </attribute>
-          <layout class="QVBoxLayout" name="verticalLayout_6">
-           <property name="spacing">
-            <number>0</number>
-           </property>
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="QTreeWidget" name="treeFilter">
-             <property name="selectionMode">
-              <enum>QAbstractItemView::NoSelection</enum>
-             </property>
-             <attribute name="headerVisible">
-              <bool>false</bool>
-             </attribute>
-             <column>
-              <property name="text">
-               <string notr="true">1</string>
-              </property>
-             </column>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="tab_4">
-          <attribute name="title">
-           <string>Hist.</string>
-          </attribute>
-          <layout class="QVBoxLayout" name="verticalLayout_3">
-           <property name="spacing">
-            <number>0</number>
-           </property>
-           <property name="leftMargin">
-            <number>0</number>
-           </property>
-           <property name="topMargin">
-            <number>0</number>
-           </property>
-           <property name="rightMargin">
-            <number>0</number>
-           </property>
-           <property name="bottomMargin">
-            <number>0</number>
-           </property>
-           <item>
-            <widget class="CHistoryListWidget" name="listHistory">
-             <property name="iconSize">
-              <size>
-               <width>32</width>
-               <height>32</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </widget>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CHistoryListWidget</class>
-   <extends>QListWidget</extends>
-   <header>widgets/CHistoryListWidget.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>widgets/CLineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CPlotTrack</class>
-   <extends>QWidget</extends>
-   <header>plot/CPlotTrack.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>CDoubleSpinBox</class>
-   <extends>QDoubleSpinBox</extends>
-   <header>widgets/CDoubleSpinBox.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CColorLegend</class>
-   <extends>QWidget</extends>
-   <header>widgets/CColorLegend.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>CSelectActivityColor</class>
-   <extends>QWidget</extends>
-   <header>gis/trk/CSelectActivityColor.h</header>
-   <container>1</container>
-  </customwidget>
-  <customwidget>
-   <class>CTableTrk</class>
-   <extends>QTreeWidget</extends>
-   <header>gis/trk/CTableTrk.h</header>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
- <buttongroups>
-  <buttongroup name="buttonGroupGraph3"/>
-  <buttongroup name="buttonGroupGraph1"/>
-  <buttongroup name="buttonGroupGraph2"/>
-  <buttongroup name="buttonGroupArrow"/>
-  <buttongroup name="buttonGroupLineWidth"/>
- </buttongroups>
-</ui>
diff --git a/src/gis/trk/IScrOptTrk.ui b/src/gis/trk/IScrOptTrk.ui
deleted file mode 100644
index 278b385..0000000
--- a/src/gis/trk/IScrOptTrk.ui
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptTrk</class>
- <widget class="QWidget" name="IScrOptTrk">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>311</width>
-    <height>65</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
-     </property>
-     <item>
-      <widget class="QToolButton" name="toolEditDetails">
-       <property name="toolTip">
-        <string>View details and edit properties of track.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCopy">
-       <property name="toolTip">
-        <string>Copy track into another project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelete">
-       <property name="toolTip">
-        <string>Delete track from project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolProfile">
-       <property name="toolTip">
-        <string>Show on-screen profile and detailed information about points.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/TrkProfile.png</normaloff>:/icons/32x32/TrkProfile.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolRange">
-       <property name="toolTip">
-        <string>Select a range of points.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/SelectRange.png</normaloff>:/icons/32x32/SelectRange.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolEdit">
-       <property name="toolTip">
-        <string>Edit position of track points.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/LineMove.png</normaloff>:/icons/32x32/LineMove.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolReverse">
-       <property name="toolTip">
-        <string>Reverse track.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Reverse.png</normaloff>:/icons/32x32/Reverse.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCombine">
-       <property name="toolTip">
-        <string>Combine tracks.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Combine.png</normaloff>:/icons/32x32/Combine.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCut">
-       <property name="toolTip">
-        <string>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/TrkCut.png</normaloff>:/icons/32x32/TrkCut.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolActivity">
-       <property name="toolTip">
-        <string>Set an activity for the complete track.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCopyWithWpt">
-       <property name="toolTip">
-        <string>Copy track together with all attached waypoints into another project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/CopyTrkWithWpt.png</normaloff>:/icons/32x32/CopyTrkWithWpt.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string>TextLabel</string>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/trk/filter/CFilterSpeed.cpp b/src/gis/trk/filter/CFilterSpeed.cpp
deleted file mode 100644
index 754a3d6..0000000
--- a/src/gis/trk/filter/CFilterSpeed.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/trk/filter/CFilterSpeed.h"
-#include "helpers/CSettings.h"
-#include "units/IUnit.h"
-
-
-CFilterSpeed::CFilterSpeed(CGisItemTrk &trk, QWidget *parent)
-    : QWidget(parent)
-    , trk(trk)
-{
-    setupUi(this);
-
-    doubleSpinBox->setSuffix(IUnit::self().speedunit);
-
-    SETTINGS;
-    doubleSpinBox->setValue(cfg.value("TrackDetails/Filter/Speed/speed",1).toDouble());
-
-    connect(toolApply, &QToolButton::clicked, this, &CFilterSpeed::slotApply);
-}
-
-CFilterSpeed::~CFilterSpeed()
-{
-    SETTINGS;
-    cfg.setValue("TrackDetails/Filter/Speed/speed", doubleSpinBox->value());
-}
-
-void CFilterSpeed::slotApply()
-{
-    CCanvas::setOverrideCursor(Qt::WaitCursor, "CFilterSpeed");
-    trk.filterSpeed(doubleSpinBox->value()/IUnit::self().speedfactor);
-    CCanvas::restoreOverrideCursor("CFilterSpeed");
-}
diff --git a/src/gis/trk/filter/CFilterSpeed.h b/src/gis/trk/filter/CFilterSpeed.h
deleted file mode 100644
index 762181c..0000000
--- a/src/gis/trk/filter/CFilterSpeed.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CFILTERSPEED_H
-#define CFILTERSPEED_H
-
-#include "ui_IFilterSpeed.h"
-#include <QWidget>
-
-class CGisItemTrk;
-
-class CFilterSpeed : public QWidget, private Ui::IFilterSpeed
-{
-    Q_OBJECT
-public:
-    CFilterSpeed(CGisItemTrk& trk, QWidget * parent);
-    virtual ~CFilterSpeed();
-
-private slots:
-    void slotApply();
-
-private:
-    CGisItemTrk& trk;
-};
-
-#endif //CFILTERSPEED_H
-
diff --git a/src/gis/trk/filter/IFilterSpeed.ui b/src/gis/trk/filter/IFilterSpeed.ui
deleted file mode 100644
index 3964238..0000000
--- a/src/gis/trk/filter/IFilterSpeed.ui
+++ /dev/null
@@ -1,122 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IFilterSpeed</class>
- <widget class="QWidget" name="IFilterSpeed">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>997</width>
-    <height>56</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <item row="0" column="1">
-    <widget class="QLabel" name="label">
-     <property name="text">
-      <string><b>Change Speed</b></string>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="1">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QLabel" name="label_2">
-       <property name="text">
-        <string>Set speed to </string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QDoubleSpinBox" name="doubleSpinBox">
-       <property name="suffix">
-        <string> km/h</string>
-       </property>
-       <property name="decimals">
-        <number>1</number>
-       </property>
-       <property name="singleStep">
-        <double>0.100000000000000</double>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item row="2" column="0" colspan="2">
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="0" column="0" rowspan="2">
-    <widget class="QLabel" name="label_3">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="text">
-      <string/>
-     </property>
-     <property name="pixmap">
-      <pixmap resource="../../../resources.qrc">:/icons/48x48/Time.png</pixmap>
-     </property>
-    </widget>
-   </item>
-   <item row="1" column="2">
-    <widget class="QToolButton" name="toolApply">
-     <property name="text">
-      <string>...</string>
-     </property>
-     <property name="icon">
-      <iconset resource="../../../resources.qrc">
-       <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
-     </property>
-     <property name="iconSize">
-      <size>
-       <width>22</width>
-       <height>22</height>
-      </size>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/trk/filter/filter.cpp b/src/gis/trk/filter/filter.cpp
deleted file mode 100644
index 3878e4d..0000000
--- a/src/gis/trk/filter/filter.cpp
+++ /dev/null
@@ -1,395 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2016 Christian Eichler code at christian-eichler.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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/trk/CKnownExtension.h"
-#include "gis/trk/CPropertyTrk.h"
-
-#include <QtMath>
-#include <proj_api.h>
-
-void CGisItemTrk::filterReducePoints(qreal dist)
-{
-    QVector<pointDP> line;
-    bool nothingDone = true;
-
-    for(const CTrackData::trkpt_t &pt : trk)
-    {
-        pointDP dp(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD, pt.ele);
-        dp.used = !pt.isHidden();
-
-        line << dp;
-    }
-
-    if(line.size() < 3)
-    {
-        return;
-    }
-
-    point3D pt0 = line[0];
-
-    line[0].x = 0;
-    line[0].y = 0;
-    for(int i = 1; i < line.size(); i++)
-    {
-        pointDP& pt1 = line[i - 1];
-        pointDP& pt2 = line[i];
-
-        qreal a1, a2;
-        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pt2.x, pt2.y, a1, a2);
-
-        pt0 = pt2;
-
-        pt2.x = pt1.x + qCos(a1 * DEG_TO_RAD) * d;
-        pt2.y = pt1.y + qSin(a1 * DEG_TO_RAD) * d;
-    }
-
-    GPS_Math_DouglasPeucker(line, dist);
-
-    int cnt = 0;
-
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        if(line[cnt].used)
-        {
-            pt.unsetFlag(CTrackData::trkpt_t::eHidden);
-        }
-        else
-        {
-            if(!pt.isHidden())
-            {
-                nothingDone = false;
-                pt.setFlag(CTrackData::trkpt_t::eHidden);
-            }
-        }
-
-        cnt++;
-    }
-
-    if(nothingDone)
-    {
-        return;
-    }
-
-    deriveSecondaryData();
-    QString val, unit;
-    IUnit::self().meter2distance(dist, val, unit);
-    changed(tr("Hide points by Douglas Peuker algorithm (%1%2)").arg(val).arg(unit), "://icons/48x48/PointHide.png");
-}
-
-void CGisItemTrk::filterRemoveInvalidPoints()
-{
-    bool nothingDone = true;
-
-    // use all valid flags as invalid mask. By that only
-    // invalid flags for properties with valid points count
-    quint32 invalidMask = (getAllValidFlags() & CTrackData::trkpt_t::eValidMask) << 16;
-
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        if(pt.isInvalid(CTrackData::trkpt_t::invalid_e(invalidMask)))
-        {
-            pt.setFlag(CTrackData::trkpt_t::eHidden);
-            nothingDone = false;
-        }
-    }
-
-    if(nothingDone)
-    {
-        return;
-    }
-
-    deriveSecondaryData();
-    changed(tr("Hide points with invalid data."), "://icons/48x48/PointHide.png");
-}
-
-void CGisItemTrk::filterReset()
-{
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.unsetFlag(CTrackData::trkpt_t::eHidden);
-    }
-    deriveSecondaryData();
-    changed(tr("Reset all hidden track points to visible"), "://icons/48x48/PointHide.png");
-}
-
-void CGisItemTrk::filterDelete()
-{
-    bool nothingDone = true;
-
-    for(CTrackData::trkseg_t& seg : trk.segs)
-    {
-        QVector<CTrackData::trkpt_t> pts;
-        for(const CTrackData::trkpt_t &pt : seg.pts)
-        {
-            if(pt.isHidden())
-            {
-                nothingDone = false;
-                continue;
-            }
-
-            pts << pt;
-        }
-
-        seg.pts = pts;
-    }
-
-    if(nothingDone)
-    {
-        return;
-    }
-
-    deriveSecondaryData();
-    changed(tr("Permanently removed all hidden track points"), "://icons/48x48/PointHide.png");
-}
-
-void CGisItemTrk::filterSmoothProfile(int points)
-{
-    QVector<int> window(points, 0);
-    QVector<int> ele1, ele2;
-
-    for(const CTrackData::trkpt_t &pt : trk)
-    {
-        ele1 << pt.ele;
-        ele2 << pt.ele;
-    }
-
-    if(ele1.size() < (points + 1))
-    {
-        return;
-    }
-
-    int d = points >> 1;
-    for(int i = d; i < ele1.size() - d; i++)
-    {
-        for(int n = i - d, m = 0; m < points; n++, m++)
-        {
-            window[m] = ele1[n];
-        }
-
-        qSort(window);
-        ele2[i] = window[d];
-    }
-
-    int cnt = 0;
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.ele = ele2[cnt++];
-    }
-    deriveSecondaryData();
-    changed(tr("Smoothed profile with a Median filter of size %1").arg(points), "://icons/48x48/SetEle.png");
-}
-
-void CGisItemTrk::filterTerrainSlope()
-{
-    QPolygonF line;
-    for(const CTrackData::trkpt_t &pt : trk)
-    {
-        line << pt.radPoint();
-    }
-
-    QPolygonF slope(line.size());
-    CMainWindow::self().getSlopeAt(line, slope);
-
-    int cnt = 0;
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.extensions[CKnownExtension::internalTerrainSlope] = slope[cnt].ry();
-        ++cnt;
-    }
-
-    deriveSecondaryData();
-    changed(tr("Added terrain slope from DEM file."), "://icons/48x48/CSrcSlope.png");
-}
-
-void CGisItemTrk::filterReplaceElevation()
-{
-    QPolygonF line;
-    for(const CTrackData::trkpt_t &pt : trk)
-    {
-        line << pt.radPoint();
-    }
-
-    QPolygonF ele(line.size());
-    CMainWindow::self().getElevationAt(line, ele);
-
-    int cnt = 0;
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.ele = (ele[cnt].y() == NOFLOAT) ? NOINT : ele[cnt].y();
-        ++cnt;
-    }
-
-    deriveSecondaryData();
-    changed(tr("Replaced elevation data with data from DEM files."), "://icons/48x48/SetEle.png");
-}
-
-void CGisItemTrk::filterInterpolateElevation()
-{
-    if(!interp.valid)
-    {
-        return;
-    }
-
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        qreal ele = getElevationInterpolated(pt.distance);
-        pt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
-    }
-
-    interp.valid = false;
-    deriveSecondaryData();
-    changed(tr("Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)").arg(interp.m).arg(interp.rep.rmserror), "://icons/48x48/SetEle.png");
-}
-
-void CGisItemTrk::filterOffsetElevation(int offset)
-{
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        if(pt.ele != NOINT)
-        {
-            pt.ele += offset;
-        }
-    }
-
-    QString val, unit;
-    IUnit::self().meter2elevation(offset, val, unit);
-    deriveSecondaryData();
-    changed(tr("Offset elevation data by %1%2.").arg(val).arg(unit), "://icons/48x48/SetEle.png");
-}
-
-void CGisItemTrk::filterNewDate(const QDateTime& date)
-{
-    qint64 delta = qint64(date.toTime_t()) - qint64(timeStart.toUTC().toTime_t());
-
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.time = pt.time.addSecs(delta);
-    }
-
-    deriveSecondaryData();
-    changed(tr("Changed start of track to %1.").arg(date.toString()), "://icons/48x48/Time.png");
-}
-
-void CGisItemTrk::filterObscureDate(int delta)
-{
-    if(delta == 0)
-    {
-        for(CTrackData::trkpt_t& pt : trk)
-        {
-            pt.time = QDateTime();
-        }
-
-        deriveSecondaryData();
-        changed(tr("Remove timestamps."), "://icons/48x48/Time.png");
-    }
-    else
-    {
-        QDateTime timestamp = timeStart;
-        if(!timestamp.isValid())
-        {
-            timestamp = QDateTime::currentDateTime().toUTC();
-        }
-
-        for(CTrackData::trkpt_t& pt : trk)
-        {
-            pt.time = timestamp;
-            timestamp = timestamp.addSecs(delta);
-        }
-
-        deriveSecondaryData();
-        changed(tr("Set artificial timestamps with delta of %1 sec.").arg(delta), "://icons/48x48/Time.png");
-    }
-}
-
-void CGisItemTrk::filterSpeed(qreal speed)
-{
-    QDateTime timestamp = timeStart;
-    if(!timestamp.isValid())
-    {
-        timestamp = QDateTime::currentDateTime().toUTC();
-    }
-
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        if(pt.isHidden())
-        {
-            continue;
-        }
-
-        timestamp = speed == 0 ? QDateTime() : timestamp.addMSecs(qRound(1000 * pt.deltaDistance/speed));
-        pt.time   = timestamp;
-    }
-
-    deriveSecondaryData();
-    QString val, unit;
-    IUnit::self().meter2speed(speed, val, unit);
-    changed(tr("Changed speed to %1%2.").arg(val).arg(unit), "://icons/48x48/Time.png");
-}
-
-void CGisItemTrk::filterSplitSegment()
-{
-    IGisProject * project = CGisWorkspace::self().selectProject();
-    if(nullptr == project)
-    {
-        return;
-    }
-
-    int part = 0;
-    for(const CTrackData::trkseg_t &seg : trk.segs)
-    {
-        if(0 < seg.pts.count())
-        {
-            qint32 idx1 = seg.pts[                  0].idxTotal;
-            qint32 idx2 = seg.pts[seg.pts.count() - 1].idxTotal;
-
-            new CGisItemTrk(tr("%1 (Segment %2)").arg(trk.name).arg(part), idx1, idx2, trk, project);
-            ++part;
-        }
-    }
-}
-
-void CGisItemTrk::filterDeleteExtension(const QString &extStr)
-{
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.extensions.remove(extStr);
-    }
-
-    extrema.remove(extStr);
-    existingExtensions.remove(extStr);
-    propHandler->setupData();
-
-    const CKnownExtension &ext = CKnownExtension::get(extStr);
-    changed(tr("Removed extension %1 from all Track Points").arg(ext.nameLongText), "://icons/48x48/FilterModifyExtension.png");
-}
-
-void CGisItemTrk::filterSubPt2Pt()
-{
-    for(CTrackData::trkpt_t& pt : trk)
-    {
-        pt.unsetFlag(CTrackData::trkpt_t::eSubpt);
-    }
-    propHandler->setupData();
-
-    changed(tr("Converted subpoints from routing to track points"), "://icons/48x48/FilterSubPt2Pt.png");
-}
diff --git a/src/gis/wpt/CDetailsWpt.cpp b/src/gis/wpt/CDetailsWpt.cpp
deleted file mode 100644
index aeab317..0000000
--- a/src/gis/wpt/CDetailsWpt.cpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/**********************************************************************************************
-    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 "gis/wpt/CDetailsWpt.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CElevationDialog.h"
-#include "helpers/CInputDialog.h"
-#include "helpers/CLinksDialog.h"
-#include "helpers/CPositionDialog.h"
-#include "helpers/CWptIconDialog.h"
-#include "units/IUnit.h"
-#include "widgets/CTextEditWidget.h"
-
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-CDetailsWpt::CDetailsWpt(CGisItemWpt &wpt, QWidget *parent)
-    : QDialog(parent)
-    , wpt(wpt)
-{
-    setupUi(this);
-    photoAlbum->hide();
-
-    setupGui();
-
-    toolLock->setDisabled(wpt.isOnDevice());
-
-    connect(labelPosition,  &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
-    connect(labelElevation, &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
-    connect(labelProximity, &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
-    connect(textCmtDesc,    &QTextBrowser::anchorClicked,    this,       static_cast<void (CDetailsWpt::*)(const QUrl&)   >(&CDetailsWpt::slotLinkActivated));
-
-    connect(lineName,       &CLineEdit::textEdited,          this,       &CDetailsWpt::slotNameChanged);
-    connect(lineName,       &CLineEdit::editingFinished,     this,       &CDetailsWpt::slotNameChangeFinished);
-    connect(toolIcon,       &QToolButton::clicked,           this,       &CDetailsWpt::slotChangeIcon);
-    connect(toolLock,       &QToolButton::toggled,           this,       &CDetailsWpt::slotChangeReadOnlyMode);
-
-    connect(listHistory,    &CHistoryListWidget::sigChanged, this,       &CDetailsWpt::setupGui);
-
-    connect(toolAddImage,   &QToolButton::clicked,           photoAlbum, &CPhotoAlbum::slotAddImage);
-    connect(toolDelImage,   &QToolButton::clicked,           photoAlbum, &CPhotoAlbum::slotDelImage);
-    connect(photoAlbum,     &CPhotoAlbum::sigChanged,        this,       &CDetailsWpt::slotChangedImages);
-}
-
-CDetailsWpt::~CDetailsWpt()
-{
-}
-
-
-void CDetailsWpt::setupGui()
-{
-    if(originator)
-    {
-        return;
-    }
-    originator = true;
-
-    setWindowTitle(wpt.getName());
-
-    QString val, unit;
-    QString strPos;
-    QPointF pos = wpt.getPosition();
-    IUnit::degToStr(pos.x(), pos.y(), strPos);
-
-    bool isReadOnly = wpt.isReadOnly();
-
-    toolIcon->setEnabled(!isReadOnly);
-    toolIcon->setIcon(wpt.getIcon());
-    toolIcon->setObjectName(wpt.getIconName());
-    lineName->setReadOnly(isReadOnly);
-    lineName->setText(wpt.getName());
-    labelPosition->setText(IGisItem::toLink(isReadOnly, "position", strPos, ""));
-
-    labelTainted->setVisible(wpt.isTainted());
-
-    QString elevationStr = "--";
-    if(wpt.getElevation() != NOINT)
-    {
-        IUnit::self().meter2elevation(wpt.getElevation(), val, unit);
-        elevationStr = QString("%1 %2").arg(val).arg(unit);
-    }
-    labelElevation->setText(IGisItem::toLink(isReadOnly, "elevation", elevationStr, ""));
-
-
-    QString proxStr = "--";
-    if(wpt.getProximity() != NOFLOAT)
-    {
-        IUnit::self().meter2elevation(wpt.getProximity(), val, unit);
-        proxStr = QString("%1 %2").arg(val).arg(unit);
-    }
-    labelProximity->setText(IGisItem::toLink(isReadOnly, "proximity", proxStr, ""));
-
-
-    if(wpt.getTime().isValid())
-    {
-        labelTime->setText(IUnit::datetime2string(wpt.getTime(), false, QPointF(pos.x()*DEG_TO_RAD, pos.y()*DEG_TO_RAD)));
-    }
-
-    textCmtDesc->document()->clear();
-    textCmtDesc->append(IGisItem::createText(isReadOnly, wpt.getComment(), wpt.getDescription(), wpt.getLinks()));
-    textCmtDesc->moveCursor (QTextCursor::Start);
-    textCmtDesc->ensureCursorVisible();
-
-    toolLock->setChecked(isReadOnly);
-
-    listHistory->setupHistory(wpt);
-
-    const QList<CGisItemWpt::image_t>& images = wpt.getImages();
-    photoAlbum->reload(images);
-
-    toolAddImage->setVisible(!isReadOnly);
-    toolDelImage->setVisible(!isReadOnly && !images.isEmpty());
-
-    originator = false;
-}
-
-void CDetailsWpt::slotNameChanged(const QString &name)
-{
-    setWindowTitle(name);
-}
-
-void CDetailsWpt::slotNameChangeFinished()
-{
-    lineName->clearFocus();
-
-    const QString& name = lineName->text();
-    slotNameChanged(name);
-
-    if(name != wpt.getName())
-    {
-        wpt.setName(name);
-        setupGui();
-    }
-}
-
-void CDetailsWpt::slotLinkActivated(const QString& link)
-{
-    if(link == "elevation")
-    {
-        QVariant var(wpt.getElevation());
-        CElevationDialog dlg(this, var, QVariant(NOINT), wpt.getPosition());
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setElevation(var.toInt());
-        }
-    }
-    else if(link == "proximity")
-    {
-        QVariant var(wpt.getProximity());
-        CInputDialog dlg(this, tr("Enter new proximity range."), var, QVariant(NOFLOAT));
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setProximity(var.toDouble());
-        }
-    }
-    else if(link == "position")
-    {
-        QPointF pos = wpt.getPosition();
-        CPositionDialog dlg(this, pos);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setPosition(pos);
-        }
-    }
-
-    setupGui();
-}
-
-void CDetailsWpt::slotLinkActivated(const QUrl& url)
-{
-    if(url.toString() == "comment")
-    {
-        CTextEditWidget dlg(wpt.getComment(), this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setComment(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "description")
-    {
-        CTextEditWidget dlg(wpt.getDescription(), this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setDescription(dlg.getHtml());
-        }
-        setupGui();
-    }
-    else if(url.toString() == "links")
-    {
-        QList<IGisItem::link_t> links = wpt.getLinks();
-        CLinksDialog dlg(links, this);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setLinks(links);
-        }
-        setupGui();
-    }
-    else
-    {
-        QDesktopServices::openUrl(url);
-    }
-}
-
-void CDetailsWpt::slotChangeIcon()
-{
-    if(!wpt.isReadOnly())
-    {
-        CWptIconDialog dlg(toolIcon);
-        if(dlg.exec() == QDialog::Accepted)
-        {
-            wpt.setIcon(toolIcon->objectName());
-            setupGui();
-        }
-    }
-}
-
-
-void CDetailsWpt::slotChangeReadOnlyMode(bool on)
-{
-    wpt.setReadOnlyMode(on);
-    setupGui();
-}
-
-void CDetailsWpt::slotChangedImages(const QList<CGisItemWpt::image_t>& images)
-{
-    wpt.setImages(images);
-    setupGui();
-}
diff --git a/src/gis/wpt/CGisItemWpt.cpp b/src/gis/wpt/CGisItemWpt.cpp
deleted file mode 100644
index 6361146..0000000
--- a/src/gis/wpt/CGisItemWpt.cpp
+++ /dev/null
@@ -1,948 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisListWks.h"
-#include "gis/WptIcons.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/wpt/CDetailsGeoCache.h"
-#include "gis/wpt/CDetailsWpt.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "gis/wpt/CScrOptWpt.h"
-#include "gis/wpt/CScrOptWptRadius.h"
-#include "gis/wpt/CSetupNewWpt.h"
-#include "helpers/CDraw.h"
-#include "helpers/CSettings.h"
-#include "mouse/IMouse.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-#include <QtXml>
-
-IGisItem::key_t CGisItemWpt::keyUserFocus;
-
-CGisItemWpt::CGisItemWpt(const QPointF &pos, qreal ele, const QDateTime &time, const QString &name, const QString &icon, IGisProject *project)
-    : IGisItem(project, eTypeWpt, NOIDX)
-{
-    wpt.name    = name;
-    wpt.sym     = icon;
-    wpt.lon     = pos.x();
-    wpt.lat     = pos.y();
-    wpt.ele     = (ele == NOFLOAT) ? NOINT : qRound(ele);
-    wpt.time    = time;
-
-    detBoundingRect();
-
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-/// used to add a new waypoint
-CGisItemWpt::CGisItemWpt(const QPointF& pos, const QString& name, const QString &icon, IGisProject *project)
-    : CGisItemWpt(pos, NOFLOAT, QDateTime::currentDateTimeUtc(), name, icon, project)
-{
-    flags = eFlagCreatedInQms|eFlagWriteAllowed;
-    qreal ele = CMainWindow::self().getElevationAt(pos * DEG_TO_RAD);
-    wpt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
-
-    detBoundingRect();
-
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-/// used to move a copy of waypoint
-CGisItemWpt::CGisItemWpt(const QPointF& pos, const CGisItemWpt& parentWpt, IGisProject *project)
-    : IGisItem(project, eTypeWpt, NOIDX)
-{
-    *this = parentWpt;
-    wpt.lon     = pos.x();
-    wpt.lat     = pos.y();
-    wpt.time    = QDateTime::currentDateTimeUtc();
-
-    key.clear();
-    history.events.clear();
-    flags = eFlagCreatedInQms|eFlagWriteAllowed;
-
-    qreal ele = CMainWindow::self().getElevationAt(pos * DEG_TO_RAD);
-    wpt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
-
-    detBoundingRect();
-
-    setupHistory();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-/// used to create a copy of waypoint with new parent
-CGisItemWpt::CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone)
-    : IGisItem(project, eTypeWpt, idx)
-{
-    history = parentWpt.history;
-    loadHistory(history.histIdxCurrent);
-
-    if(clone)
-    {
-        wpt.name += tr("_Clone");
-        key.clear();
-        history.events.clear();
-        setupHistory();
-    }
-
-    if(parentWpt.isOnDevice() || !parentWpt.isReadOnly())
-    {
-        flags |= eFlagWriteAllowed;
-    }
-    else
-    {
-        flags &= ~eFlagWriteAllowed;
-    }
-
-    detBoundingRect();
-    updateDecoration(eMarkChanged, eMarkNone);
-}
-
-/// used to create waypoint from GPX file
-CGisItemWpt::CGisItemWpt(const QDomNode &xml, IGisProject *project)
-    : IGisItem(project, eTypeWpt, project->childCount())
-{
-    readGpx(xml);
-    detBoundingRect();
-
-    genKey();
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemWpt::CGisItemWpt(const history_t& hist, const QString &dbHash, IGisProject * project)
-    : IGisItem(project, eTypeWpt, project->childCount())
-{
-    history = hist;
-    loadHistory(hist.histIdxCurrent);
-    detBoundingRect();
-    if(!dbHash.isEmpty())
-    {
-        lastDatabaseHash = dbHash;
-    }
-}
-
-CGisItemWpt::CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project)
-    : IGisItem(project, eTypeWpt, NOIDX)
-{
-    loadFromDb(id, db);
-    detBoundingRect();
-}
-
-CGisItemWpt::CGisItemWpt(const CTwoNavProject::wpt_t &tnvWpt, IGisProject * project)
-    : IGisItem(project, eTypeWpt, NOIDX)
-{
-    readTwoNav(tnvWpt);
-    detBoundingRect();
-
-    genKey();
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemWpt::CGisItemWpt(CFitStream& stream, IGisProject * project)
-    : IGisItem(project, eTypeWpt, NOIDX)
-    , proximity(NOFLOAT)
-    , posScreen(NOPOINTF)
-{
-    readWptFromFit(stream);
-    detBoundingRect();
-
-    genKey();
-    setupHistory();
-    updateDecoration(eMarkNone, eMarkNone);
-}
-
-CGisItemWpt::~CGisItemWpt()
-{
-}
-
-IGisItem * CGisItemWpt::createClone()
-{
-    int idx = -1;
-    IGisProject * project = getParentProject();
-    if(project)
-    {
-        idx = project->indexOfChild(this);
-    }
-    return new CGisItemWpt(*this, project, idx, true);
-}
-
-
-void CGisItemWpt::setSymbol()
-{
-    setIcon();
-}
-
-bool CGisItemWpt::getNewWptData(QPointF& pt, QString& icon, QString& name)
-{
-    SETTINGS;
-    QString lastName = cfg.value("Waypoint/lastName", "wpt").toString();
-    QString lastIcon = cfg.value("Waypoint/lastIcon", "Waypoint").toString();
-
-    const int s = lastName.size();
-    if(s != 0)
-    {
-        int idx;
-        for(idx = s; idx > 0; idx--)
-        {
-            if(!lastName[idx - 1].isDigit())
-            {
-                break;
-            }
-        }
-
-        if(idx == 0)
-        {
-            lastName = QString::number(lastName.toInt() + 1);
-        }
-        else if(idx < s)
-        {
-            lastName = lastName.left(idx) + QString::number(lastName.mid(idx).toInt() + 1);
-        }
-    }
-
-    if(name.isEmpty())
-    {
-        name = lastName;
-    }
-    icon = lastIcon;
-
-    CSetupNewWpt dlg(pt, icon, name, CMainWindow::getBestWidgetForParent());
-    if(dlg.exec() != QDialog::Accepted)
-    {
-        return false;
-    }
-
-    cfg.setValue("Waypoint/lastName", name);
-    cfg.setValue("Waypoint/lastIcon", icon);
-
-    return true;
-}
-
-QString CGisItemWpt::getInfo(quint32 feature) const
-{
-    QString str = "<div>";
-
-    if(feature & eFeatureShowName)
-    {
-        str = "<b>" + getName() + "</b><br/>\n";
-    }
-
-    if(geocache.hasData)
-    {
-        str += QString(" %4 (%1, D %2, T %3)").arg(geocache.container).arg(geocache.difficulty, 0,'f',1).arg(geocache.terrain, 0,'f',1).arg(geocache.name);
-    }
-
-    if(wpt.time.isValid())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        str += IUnit::datetime2string(wpt.time, false, QPointF(wpt.lon*DEG_TO_RAD, wpt.lat*DEG_TO_RAD));
-    }
-
-    if(wpt.ele != NOINT)
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-        QString val, unit;
-        IUnit::self().meter2elevation(wpt.ele, val, unit);
-        str += tr("Elevation: %1%2").arg(val).arg(unit); // KKA
-    }
-
-    if(proximity != NOFLOAT)
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-        QString val, unit;
-        IUnit::self().meter2distance(proximity, val, unit);
-        str += tr("Proximity: %1%2").arg(val).arg(unit);
-    }
-
-    QString desc = removeHtml(wpt.desc).simplified();
-    if(desc.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || (desc.count() < 300))
-        {
-            str += desc;
-        }
-        else
-        {
-            str += desc.left(297) + "...";
-        }
-    }
-
-    QString cmt = removeHtml(wpt.cmt).simplified();
-    if((cmt != desc) && cmt.count())
-    {
-        if(!str.isEmpty())
-        {
-            str += "<br/>\n";
-        }
-
-        if((feature & eFeatureShowFullText) || (cmt.count() < 300))
-        {
-            str += cmt;
-        }
-        else
-        {
-            str += cmt.left(297) + "...";
-        }
-    }
-    return str + "</div>";
-}
-
-IScrOpt * CGisItemWpt::getScreenOptions(const QPoint& origin, IMouse * mouse)
-{
-    if (closeToRadius)
-    {
-        if(scrOptRadius.isNull())
-        {
-            scrOptRadius = new CScrOptWptRadius(this, origin, mouse);
-        }
-        return scrOptRadius;
-    }
-    else
-    {
-        if(scrOptWpt.isNull())
-        {
-            scrOptWpt = new CScrOptWpt(this, origin, mouse);
-        }
-        return scrOptWpt;
-    }
-}
-
-QPointF CGisItemWpt::getPointCloseBy(const QPoint& point)
-{
-    if (closeToRadius)
-    {
-        QPointF l = (QPointF(point) - posScreen);
-        return posScreen + l * (radius / sqrt(QPointF::dotProduct(l,l)));
-    }
-    else
-    {
-        return posScreen;
-    }
-}
-
-void CGisItemWpt::setIcon()
-{
-    if(geocache.hasData)
-    {
-        icon = getWptIconByName(geocache.type, focus);
-    }
-    else
-    {
-        icon = getWptIconByName(wpt.sym, focus);
-    }
-
-    QTreeWidgetItem::setIcon(CGisListWks::eColumnIcon,icon);
-}
-
-void CGisItemWpt::setName(const QString& str)
-{
-    SETTINGS;
-    cfg.setValue("Waypoint/lastName", str);
-
-    setText(CGisListWks::eColumnName, str);
-
-    wpt.name = str;
-    changed(tr("Changed name"),"://icons/48x48/EditText.png");
-}
-
-void CGisItemWpt::setPosition(const QPointF& pos)
-{
-    wpt.lon = pos.x();
-    wpt.lat = pos.y();
-
-    detBoundingRect();
-
-    changed(tr("Changed position"),"://icons/48x48/WptMove.png");
-}
-
-void CGisItemWpt::setElevation(qint32 val)
-{
-    wpt.ele = val;
-    changed(tr("Changed elevation"),"://icons/48x48/SetEle.png");
-}
-
-void CGisItemWpt::setProximity(qreal val)
-{
-    proximity = val == NOFLOAT ? val : qRound(val);
-
-    detBoundingRect();
-
-    radius = NOFLOAT; //radius is proximity in set on redraw
-
-    if (proximity == NOFLOAT)
-    {
-        changed(tr("Removed proximity"),"://icons/48x48/WptDelProx.png");
-    }
-    else
-    {
-        changed(tr("Changed proximity"),"://icons/48x48/WptEditProx.png");
-    }
-}
-
-void CGisItemWpt::setIcon(const QString& name)
-{
-    SETTINGS;
-    cfg.setValue("Waypoint/lastIcon", name);
-
-    wpt.sym  = name;
-
-    QPointF focus;
-    QString path;
-    getWptIconByName(name, focus, &path);
-
-    changed(tr("Changed icon"), path);
-}
-
-void CGisItemWpt::setComment(const QString& str)
-{
-    wpt.cmt = str;
-    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemWpt::setDescription(const QString& str)
-{
-    wpt.desc = str;
-    changed(tr("Changed description"), "://icons/48x48/EditText.png");
-}
-
-void CGisItemWpt::setLinks(const QList<link_t>& links)
-{
-    wpt.links = links;
-    changed(tr("Changed links"), "://icons/48x48/Link.png");
-}
-
-void CGisItemWpt::setImages(const QList<image_t>& imgs)
-{
-    images = imgs;
-    changed(tr("Changed images"), "://icons/48x48/Image.png");
-}
-
-void CGisItemWpt::addImage(const image_t& img)
-{
-    images.append(img);
-    changed(tr("Add image"), "://icons/48x48/Image.png");
-}
-
-
-bool CGisItemWpt::isCloseTo(const QPointF& pos)
-{
-    closeToRadius = false;
-
-    if(posScreen == NOPOINTF)
-    {
-        return false;
-    }
-
-    QPointF dist = (pos - posScreen);
-    if(dist.manhattanLength() < 22)
-    {
-        return true;
-    }
-    if (radius == NOFLOAT)
-    {
-        return false;
-    }
-
-    closeToRadius = abs(QPointF::dotProduct(dist,dist)/radius - radius) < 22;
-    return closeToRadius;
-}
-
-bool CGisItemWpt::isWithin(const QRectF& area, selflags_t flags)
-{
-    return (flags & eSelectionWpt) ? area.contains(posScreen) : false;
-}
-
-
-void CGisItemWpt::gainUserFocus(bool yes)
-{
-    keyUserFocus = yes ? key : key_t();
-}
-
-void CGisItemWpt::edit()
-{
-    if(geocache.hasData)
-    {
-        CDetailsGeoCache dlg(*this, CMainWindow::getBestWidgetForParent());
-        dlg.exec();
-    }
-    else
-    {
-        CDetailsWpt dlg(*this, CMainWindow::getBestWidgetForParent());
-        dlg.exec();
-    }
-}
-
-void CGisItemWpt::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
-{
-    posScreen = QPointF(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD);
-
-    if (proximity == NOFLOAT || proximity == 0. ? !isVisible(posScreen, viewport, gis) : !isVisible(boundingRect, viewport, gis))
-    {
-        rectBubble  = QRect();
-        posScreen   = NOPOINTF;
-        return;
-    }
-
-    gis->convertRad2Px(posScreen);
-
-    if(proximity == NOFLOAT)
-    {
-        radius = NOFLOAT;
-    }
-    else
-    {
-        //remember radius for isCloseTo-method
-        radius = calcRadius(QPointF(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD),posScreen,proximity,gis);
-
-        drawCircle(p, posScreen, radius, !hideArea && isNogoArea(), false);
-    }
-
-    drawBubble(p);
-
-    p.drawPixmap(posScreen - focus, icon);
-
-    blockedAreas << QRectF(posScreen - focus, icon.size());
-}
-
-void CGisItemWpt::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
-{
-    if(mouseIsOverBubble && !doBubbleMove && !doBubbleSize && rectBubble.isValid() && !isReadOnly())
-    {
-        QPainterPath clip;
-        clip.addRoundedRect(rectBubble, RECT_RADIUS, RECT_RADIUS);
-        p.setClipPath(clip);
-
-        QRect barTop(rectBubble.topLeft(), QSize(rectBubble.width(), 26));
-        QRect barBottom(barTop);
-        barBottom.moveBottomLeft(rectBubble.bottomLeft());
-        barBottom.adjust(1,0,-1,-1);
-        barTop.adjust(1,1,-1,0);
-
-        p.setPen(Qt::NoPen);
-        p.setBrush(QColor(200,200,255,150));
-        p.drawRect(barTop);
-        p.drawRect(barBottom);
-
-        p.setBrush(Qt::white);
-        p.drawRoundedRect(rectBubbleMove.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
-        p.drawRoundedRect(rectBubbleEdit.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
-        p.drawRoundedRect(rectBubbleSize.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
-
-        p.drawPixmap(rectBubbleMove, QPixmap("://icons/32x32/MoveArrow.png"));
-        p.drawPixmap(rectBubbleEdit, QPixmap("://icons/32x32/EditDetails.png"));
-        p.drawPixmap(rectBubbleSize, QPixmap("://icons/32x32/SizeArrow.png"));
-    }
-}
-
-
-void CGisItemWpt::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF> &blockedAreas, const QFontMetricsF &fm, CGisDraw *gis)
-{
-    if(posScreen == NOPOINTF)
-    {
-        return;
-    }
-
-    QPointF pt = posScreen - focus;
-
-    QRectF rect = fm.boundingRect(wpt.name);
-    rect.adjust(-2,-2,2,2);
-
-    // place label on top
-    rect.moveCenter(pt + QPointF(icon.width()/2, -fm.height()));
-    if(isBlocked(rect, blockedAreas))
-    {
-        // place label on bottom
-        rect.moveCenter(pt + QPointF( icon.width()/2, +fm.height() + icon.height()));
-        if(isBlocked(rect, blockedAreas))
-        {
-            // place label on right
-            rect.moveCenter(pt + QPointF( icon.width() + rect.width()/2, +fm.height()));
-            if(isBlocked(rect, blockedAreas))
-            {
-                // place label on left
-                rect.moveCenter(pt + QPointF( -rect.width()/2, +fm.height()));
-                if(isBlocked(rect, blockedAreas))
-                {
-                    // failed to place label anywhere
-                    return;
-                }
-            }
-        }
-    }
-
-    CDraw::text(wpt.name,p,rect.toRect(), Qt::darkBlue);
-    blockedAreas << rect;
-}
-
-void CGisItemWpt::drawHighlight(QPainter& p)
-{
-    if(posScreen == NOPOINTF)
-    {
-        return;
-    }
-
-    if (closeToRadius)
-    {
-        drawCircle(p, posScreen, radius, isNogoArea(), true);
-    }
-    else
-    {
-        p.drawImage(posScreen - QPointF(31,31), QImage("://cursors/wptHighlightRed.png"));
-    }
-}
-
-void CGisItemWpt::drawBubble(QPainter& p)
-{
-    if(!(flags & eFlagWptBubble))
-    {
-        return;
-    }
-
-    QString str = QString("<b>%1</b>").arg(getName());
-
-    if(!removeHtml(wpt.desc).simplified().isEmpty())
-    {
-        str += QString("<p>%1</p>").arg(wpt.desc);
-    }
-
-    if(!removeHtml(wpt.cmt).simplified().isEmpty())
-    {
-        str += QString("<p>%1</p>").arg(wpt.cmt);
-    }
-
-    QTextDocument doc;
-    doc.setHtml(str);
-    doc.setTextWidth(widthBubble);
-
-    rectBubble.setWidth(widthBubble);
-    rectBubble.setHeight(doc.size().height());
-
-    QPoint posBubble = posScreen.toPoint() + offsetBubble;
-    rectBubble.moveTopLeft(posBubble);
-
-    rectBubbleMove.moveTopLeft(rectBubble.topLeft() + QPoint(5,5));
-    rectBubbleEdit.moveTopLeft(rectBubbleMove.topRight() + QPoint(7,0));
-    rectBubbleSize.moveBottomRight(rectBubble.bottomRight() - QPoint(5,5));
-
-    QPolygonF frame = makePolyline(posScreen, rectBubble);
-    p.setPen(CDraw::penBorderGray);
-    p.setBrush(CDraw::brushBackWhite);
-    p.drawPolygon(frame);
-
-    p.save();
-    p.translate(posBubble);
-    p.setPen(Qt::black);
-    doc.drawContents(&p);
-    p.restore();
-}
-
-void CGisItemWpt::drawCircle(QPainter& p, const QPointF& pos, const qreal& r, const bool& filled, const bool& selected)
-{
-    QRect circle(pos.x() - r - 1, pos.y() - r - 1, 2*r + 1, 2*r + 1);
-    p.save();
-    p.setBrush(Qt::NoBrush);
-    if (selected)
-    {
-        p.setPen(QPen(Qt::red,3));
-    }
-    else
-    {
-        p.setPen(QPen(Qt::white,3));
-        p.drawEllipse(circle);
-        p.setPen(QPen(Qt::red,1));
-    }
-    if (filled)
-    {
-        p.setBrush(QBrush(Qt::red,Qt::DiagCrossPattern));
-    }
-    p.drawEllipse(circle);
-    p.restore();
-}
-
-qreal CGisItemWpt::calcRadius(const QPointF& posRad, const QPointF& posPx, const qreal& radiusRad, CGisDraw *gis)
-{
-    QPointF pt1 = posRad;
-    pt1 = GPS_Math_Wpt_Projection(pt1, radiusRad, 90 * DEG_TO_RAD);
-    gis->convertRad2Px(pt1);
-
-    return pt1.x() - posPx.x();
-}
-
-QPolygonF CGisItemWpt::makePolyline(const QPointF& anchor, const QRectF& r)
-{
-    QPolygonF poly1, poly2;
-    poly1 << r.topLeft() << r.topRight() << r.bottomRight() << r.bottomLeft();
-
-    if(!r.contains(anchor))
-    {
-        qreal w = rectBubble.width()>>1;
-        qreal h = rectBubble.height()>>1;
-
-        if(w > 30)
-        {
-            w = 30;
-        }
-        if(h > 30)
-        {
-            h = 30;
-        }
-
-        w = h = qMin(w,h);
-
-        if(anchor.x() < r.left())
-        {
-            poly2 << anchor << (r.center() + QPoint(0,-h)) << (r.center() + QPoint(0,h)) << anchor;
-        }
-        else if(r.right() < anchor.x())
-        {
-            poly2 << anchor << (r.center() + QPoint(0,-h)) << (r.center() + QPoint(0,h)) << anchor;
-        }
-        else if(anchor.y() < r.top())
-        {
-            poly2 << anchor << (r.center() + QPoint(-w,0)) << (r.center() + QPoint(w,0)) << anchor;
-        }
-        else if(r.bottom() < anchor.y())
-        {
-            poly2 << anchor << (r.center() + QPoint(-w,0)) << (r.center() + QPoint(w,0)) << anchor;
-        }
-
-        QPainterPath path1;
-        path1.addRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
-        QPainterPath path2;
-        path2.addPolygon(poly2);
-
-        path1 = path1.united(path2);
-
-        poly1 = path1.toFillPolygon();
-    }
-
-    return poly1;
-}
-
-
-void CGisItemWpt::removeLinksByType(const QString& type)
-{
-    QList<IGisItem::link_t>::iterator link = wpt.links.begin();
-
-    while(link != wpt.links.end())
-    {
-        if(link->type == type)
-        {
-            link = wpt.links.erase(link);
-            continue;
-        }
-
-        ++link;
-    }
-}
-
-void CGisItemWpt::mouseMove(const QPointF& pos)
-{
-    if(!hasBubble() || isReadOnly())
-    {
-        return;
-    }
-
-    if(!processMouseOverBubble(pos.toPoint()))
-    {
-        if(mouseIsOverBubble)
-        {
-            if(!rectBubble.contains(pos.toPoint()))
-            {
-                CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-                if(canvas)
-                {
-                    doBubbleMove = doBubbleSize = false;
-                    canvas->resetMouse();
-                }
-                mouseIsOverBubble = false;
-            }
-        }
-        else
-        {
-            if(rectBubble.contains(pos.toPoint()))
-            {
-                CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-                if(canvas)
-                {
-                    doBubbleMove = doBubbleSize = false;
-                    canvas->setMouseWptBubble(getKey());
-                }
-                mouseIsOverBubble = true;
-            }
-        }
-    }
-}
-
-void CGisItemWpt::mousePress(const QPointF& pos)
-{
-    if(!mouseIsOverBubble)
-    {
-        return;
-    }
-
-    QPoint pos1 = pos.toPoint();
-
-    if(rectBubbleMove.contains(pos1))
-    {
-        offsetMouse = pos1 - rectBubble.topLeft();
-        doBubbleMove = true;
-    }
-    else if(rectBubbleEdit.contains(pos1))
-    {
-        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-        if(canvas)
-        {
-            doBubbleMove = doBubbleSize = false;
-            canvas->resetMouse();
-        }
-        mouseIsOverBubble = false;
-        edit();
-    }
-    else if(rectBubbleSize.contains(pos1))
-    {
-        offsetMouse = pos1 - rectBubble.bottomRight();
-        doBubbleSize = true;
-    }
-}
-
-void CGisItemWpt::mouseRelease(const QPointF& pos)
-{
-    if(!mouseIsOverBubble)
-    {
-        return;
-    }
-
-    updateHistory();
-    doBubbleMove = doBubbleSize = false;
-}
-
-void CGisItemWpt::toggleBubble()
-{
-    if(flags & eFlagWptBubble)
-    {
-        flags &= ~eFlagWptBubble;
-    }
-    else
-    {
-        flags |= eFlagWptBubble;
-    }
-    updateHistory();
-}
-
-void CGisItemWpt::toggleNogoArea()
-{
-    if(flags & eFlagWptNogo)
-    {
-        flags &= ~eFlagWptNogo;
-        changed(tr("Changed to proximity-radius"),"://icons/48x48/WptProx.png");
-    }
-    else
-    {
-        flags |= eFlagWptNogo;
-        changed(tr("Changed to nogo-area"),"://icons/48x48/WptAvoid.png");
-    }
-}
-
-bool CGisItemWpt::processMouseOverBubble(const QPoint &pos)
-{
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(!canvas || !mouseIsOverBubble)
-    {
-        return false;
-    }
-
-    if(doBubbleMove)
-    {
-        offsetBubble  = pos - posScreen.toPoint();
-        offsetBubble -= offsetMouse;
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-        return true;
-    }
-    else if(doBubbleSize)
-    {
-        qDebug() << offsetMouse;
-        int width  = pos.x() - rectBubble.left() - offsetMouse.x();
-        if(width > 50)
-        {
-            widthBubble = width;
-        }
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-        return true;
-    }
-    else if(rectBubbleMove.contains(pos) || rectBubbleEdit.contains(pos) || rectBubbleSize.contains(pos))
-    {
-        if(!doSpecialCursor)
-        {
-            CCanvas::setOverrideCursor(Qt::PointingHandCursor, "processMouseOverBubble");
-            doSpecialCursor = true;
-        }
-    }
-    else
-    {
-        if(doSpecialCursor)
-        {
-            CCanvas::restoreOverrideCursor("processMouseOverBubble");
-            doSpecialCursor = false;
-        }
-    }
-
-    return false;
-}
-
-void CGisItemWpt::detBoundingRect()
-{
-    if(proximity == NOFLOAT)
-    {
-        boundingRect = QRectF(QPointF(wpt.lon,wpt.lat)*DEG_TO_RAD,QPointF(wpt.lon,wpt.lat)*DEG_TO_RAD);
-    }
-    else
-    {
-        qreal diag = proximity * 1.414213562;
-        QPointF cent(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD);
-
-        QPointF pt1 = GPS_Math_Wpt_Projection(cent, diag, 225 * DEG_TO_RAD);
-        QPointF pt2 = GPS_Math_Wpt_Projection(cent, diag, 45 * DEG_TO_RAD);
-
-        boundingRect = QRectF(pt1,pt2);
-    }
-}
diff --git a/src/gis/wpt/CGisItemWpt.h b/src/gis/wpt/CGisItemWpt.h
deleted file mode 100644
index 59cbf7c..0000000
--- a/src/gis/wpt/CGisItemWpt.h
+++ /dev/null
@@ -1,394 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CGISITEMWPT_H
-#define CGISITEMWPT_H
-
-#include "gis/IGisItem.h"
-#include "gis/tnv/CTwoNavProject.h"
-
-#include <QCoreApplication>
-#include <QPointer>
-
-class IGisProject;
-class QDomNode;
-class CScrOptWpt;
-class CScrOptWptRadius;
-class QSqlDatabase;
-class CQlgtWpt;
-class QTextEdit;
-class QDir;
-class CFitStream;
-class CGisItemWpt : public IGisItem
-{
-    Q_DECLARE_TR_FUNCTIONS(CGisItemWpt)
-public:
-    enum geocacheservice_e {eGC, eOC, eTC};
-
-    struct geocachelog_t
-    {
-        quint32 id = 0;
-        QDateTime date;
-        QString type;
-        QString finderId;
-        QString finder;
-        bool textIsHtml = false;
-        QString text;
-    };
-
-    struct geocache_t
-    {
-        geocacheservice_e service = eOC;
-        bool hasData = false;
-        quint32 id = 0;
-        bool available = true;
-        bool archived = false;
-        qreal difficulty = 0;
-        qreal terrain = 0;
-        QString status;
-        QString name;
-        QString owner;
-        QString ownerId;
-        QString type;
-        QString container;
-        bool shortDescIsHtml = false;
-        QString shortDesc;
-        bool longDescIsHtml = false;
-        QString longDesc;
-        QString hint;
-        QString country;
-        QString state;
-        QString locale;
-        QList<geocachelog_t> logs;
-    };
-
-    struct image_t
-    {
-        QImage pixmap;
-        qreal direction = 0;
-        QString info;
-        QString filePath;
-        QString fileName;
-    };
-
-    CGisItemWpt(const QPointF &pos, qreal ele, const QDateTime &time, const QString &name, const QString &icon, IGisProject *project);
-
-    /**
-       @brief Create a completely new waypoint
-       @param pos       the waypoint's position [°]
-       @param name      the waypoint's name
-       @param icon      the waypoint's icon
-       @param project   the project the waypoint is added to
-     */
-    CGisItemWpt(const QPointF& pos, const QString& name, const QString& icon, IGisProject * project);
-    /**
-       @brief Create a copy of an existing waypoint with a new position
-       @param pos       the waypoint's new position [°]
-       @param parentWpt the waypoint to copy
-       @param project   the project the waypoint is added to
-     */
-    CGisItemWpt(const QPointF& pos, const CGisItemWpt &parentWpt, IGisProject *project);
-    /**
-       @brief Create a 1:1 copy of an existing waypoint (with new key)
-       @param parentWpt the waypoint to copy
-       @param project   the project the waypoint is added to
-       @param idx       the index to insert the item. If -1 the item will be appended to it's group
-     */
-    CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone);
-    /**
-       @brief Create item from GPX.
-       @param xml       the GPX section containing the item
-       @param project   the project to append with item
-     */
-    CGisItemWpt(const QDomNode& xml, IGisProject * project);
-
-    /**
-       @brief Create item from list of changes
-       @param hist      the change history
-       @param project   the project to append with item
-     */
-    CGisItemWpt(const history_t& hist, const QString& dbHash, IGisProject * project);
-
-    /**
-       @brief Read item from database by it's database ID
-       @param id        the item's ID in the database
-       @param db        the database itself
-       @param project   the project to append with item
-     */
-    CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project);
-
-    /**
-       @brief Read item from text stream with TwoNav encoding
-       @param tnvWpt
-       @param project
-     */
-    CGisItemWpt(const CTwoNavProject::wpt_t& tnvWpt, IGisProject * project);
-
-    CGisItemWpt(const CQlgtWpt& wpt1, IGisProject *project = nullptr);
-
-    CGisItemWpt(CFitStream& stream, IGisProject * project);
-
-    virtual ~CGisItemWpt();
-
-    IGisItem * createClone() override;
-
-    /**
-       @brief Save waypoint to GPX tree
-       @param gpx   The <gpx> node to append by the waypoint
-     */
-    void save(QDomNode& gpx, bool strictGpx11) override;
-    /**
-       @brief Save waypoint to TwoNav waypoint file
-       @param out   the text stream to write to
-     */
-    void saveTwoNav(QTextStream &out, const QDir &dir);
-    /**
-       @brief Save waypoint to TCX file
-       @param  courseNode  The course node to append by the waypoint
-       @param  crsPtDateTimeToBeSaved  course point dateTime to be saved (NOT the waypoint date and time !)
-     */
-    void saveTCX(QDomNode& courseNode, const QDateTime crsPtDateTimeToBeSaved);
-    /**
-       @brief Read serialized waypoint from a binary data stream
-       @param stream  the data stream to read from
-       @return A reference to the stream
-     */
-    QDataStream& operator<<(QDataStream& stream) override;
-    /**
-       @brief Serialize waypoint into a binary data stream
-       @param stream  the data stream to write to.
-       @return A reference to the stream
-     */
-    QDataStream& operator>>(QDataStream& stream) const override;
-
-    void setName(const QString& str);
-    void setPosition(const QPointF& pos);
-    void setElevation(qint32 val);
-    void setProximity(qreal val);
-    void setIcon(const QString& name);
-    void setComment(const QString& str)         override;
-    void setDescription(const QString& str)         override;
-    void setLinks(const QList<link_t>& links) override;
-    void setImages(const QList<image_t>& imgs);
-
-    /**
-       @brief Silently append list of links
-
-       Devices uses links to reference multimedia content attached to the waypoint.
-       These links have to be added to the list of normal links. See removeLinksByType()
-       on how to remove these links again.
-
-       @param links  list of links.
-     */
-    void appendLinks(const QList<link_t>& links)
-    {
-        wpt.links = links + wpt.links;
-    }
-
-    /**
-       @brief Silently append list of images
-
-       This is used to restore images from a device. As these images where part of the waypoint
-       object in the first place they have to be added to the waypoint again without creating
-       a new history entry.
-
-       @param imgs  list of images
-     */
-    void appendImages(const QList<image_t>& imgs)
-    {
-        images += imgs;
-    }
-
-    /**
-       @brief Append the list of images by a single image.
-       @param img   a single image
-     */
-    void addImage(const image_t& img);
-
-
-    const QString& getName() const override
-    {
-        return wpt.name.isEmpty() ? noName : wpt.name;
-    }
-
-    QString getInfo(quint32 feature) const override;
-    QPointF getPosition() const
-    {
-        return QPointF(wpt.lon, wpt.lat);
-    }
-
-    qint32 getElevation() const
-    {
-        return wpt.ele;
-    }
-    qreal getProximity() const
-    {
-        return proximity;
-    }
-    const QDateTime& getTime() const
-    {
-        return wpt.time;
-    }
-    const QString& getIconName() const
-    {
-        return wpt.sym;
-    }
-    const QString& getComment() const override
-    {
-        return wpt.cmt;
-    }
-    const QString& getDescription() const override
-    {
-        return wpt.desc;
-    }
-    const geocache_t& getGeoCache() const
-    {
-        return geocache;
-    }
-    const QList<link_t>& getLinks() const override
-    {
-        return wpt.links;
-    }
-    const QList<image_t>& getImages() const
-    {
-        return images;
-    }
-
-    QDateTime getTimestamp() const override
-    {
-        return wpt.time;
-    }
-
-
-    IScrOpt* getScreenOptions(const QPoint &origin, IMouse * mouse) override;
-
-    QPointF getPointCloseBy(const QPoint& point) override;
-
-    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
-    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
-    void drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
-    void drawHighlight(QPainter& p) override;
-    bool isCloseTo(const QPointF& pos) override;
-    bool isWithin(const QRectF &area, selflags_t flags) override;
-    void mouseMove(const QPointF& pos) override;
-    void mousePress(const QPointF& pos);
-    void mouseRelease(const QPointF& pos);
-    bool isGeocache()
-    {
-        return geocache.hasData;
-    }
-
-    void toggleNogoArea();
-    bool isNogoArea()
-    {
-        return bool(flags & eFlagWptNogo);
-    }
-
-    bool hasRadius()
-    {
-        return proximity < NOFLOAT;
-    }
-
-    qreal getRadius()
-    {
-        return radius;
-    }
-
-    void gainUserFocus(bool yes) override;
-
-    void edit() override;
-
-    /**
-       @brief Remove all links from the waypoint's link list with a given type
-
-       This is used by devices that use links to attach multimedia items to a waypoint like images.
-       These links only make sense on the device. Therefor the links have to be removed after the
-       waypoint has been loaded from the device.
-
-       @param type
-     */
-    void removeLinksByType(const QString& type);
-
-    void toggleBubble();
-    bool hasBubble()
-    {
-        return bool(flags & eFlagWptBubble);
-    }
-
-    void setHideArea(bool hide)
-    {
-        hideArea = hide;
-    }
-
-    static bool getNewWptData(QPointF& pt, QString& icon, QString& name);
-
-    static void drawCircle(QPainter& p, const QPointF& pos, const qreal& r, const bool &avoid, const bool &selected);
-    static qreal calcRadius(const QPointF& posRad, const QPointF& posPx, const qreal& radiusRad, CGisDraw *gis);
-
-private:
-    void setIcon();
-    void setSymbol() override;
-    void readGpx(const QDomNode& xml);
-    void readTwoNav(const CTwoNavProject::wpt_t &tnvWpt);
-    void readWptFromFit(CFitStream &stream);
-    void readGcExt(const QDomNode& xmlCache);
-    void writeGcExt(QDomNode& xmlCache);
-    void drawBubble(QPainter& p);
-    QPolygonF makePolyline(const QPointF& anchor, const QRectF& r);
-    bool processMouseOverBubble(const QPoint &pos);
-    void detBoundingRect();
-
-    static key_t keyUserFocus;
-
-    // --- start all waypoint data ----
-    wpt_t wpt;
-    qreal proximity = NOFLOAT;
-    qreal radius = NOFLOAT;
-    bool closeToRadius = false;
-    bool hideArea = false;
-    geocache_t geocache;
-    QList<image_t> images;
-
-    QPointF focus;
-    QPointF posScreen = NOPOINTF;
-
-    // additional data, common to all IGisItems, is found in IItem //
-
-    // --- stop all waypoint data ----
-
-    QPointer<CScrOptWpt> scrOptWpt;
-    QPointer<CScrOptWptRadius> scrOptRadius;
-
-    bool doBubble          = false;
-    bool doSpecialCursor   = false;
-    bool doBubbleMove      = false;
-    bool doBubbleSize      = false;
-    bool mouseIsOverBubble = false;
-    QRect rectBubble;
-    QRect rectBubbleMove {0,0,16,16};
-    QRect rectBubbleEdit {0,0,16,16};
-    QRect rectBubbleSize {0,0,16,16};
-
-    QPoint offsetMouse;
-    QPoint offsetBubble {-320, -150};
-    quint32 widthBubble = 300;
-};
-
-#endif // CGISITEMWPT_H
-
diff --git a/src/gis/wpt/CScrOptWpt.cpp b/src/gis/wpt/CScrOptWpt.cpp
deleted file mode 100644
index 0f04ef9..0000000
--- a/src/gis/wpt/CScrOptWpt.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "gis/wpt/CProjWpt.h"
-#include "gis/wpt/CScrOptWpt.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-
-#include <QtWidgets>
-
-CScrOptWpt::CScrOptWpt(CGisItemWpt *wpt, const QPoint& point, IMouse *parent)
-    : IScrOpt(parent)
-    , key(wpt->getKey())
-{
-    setupUi(this);
-    setOrigin(point);
-    label->setFont(CMainWindow::self().getMapFont());
-    label->setText(wpt->getInfo(IGisItem::eFeatureShowName));
-    adjustSize();
-
-    toolProj->setDisabled(wpt->isGeocache() || wpt->isOnDevice());
-    toolMove->setDisabled(wpt->isGeocache() || wpt->isOnDevice());
-    photoAlbum->reload(wpt->getImages());
-    toolBubble->setChecked(wpt->hasBubble());
-    bool radius = wpt->hasRadius();
-    toolNogoArea->setEnabled(radius);
-    toolNogoArea->setChecked(radius && wpt->isNogoArea());
-    toolDelRadius->setEnabled(radius);
-
-    anchor = wpt->getPointCloseBy(point);
-    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
-    show();
-
-    connect(toolDelete,     &QToolButton::clicked, this, &CScrOptWpt::hide);
-    connect(toolEdit,       &QToolButton::clicked, this, &CScrOptWpt::hide);
-    connect(toolCopy,       &QToolButton::clicked, this, &CScrOptWpt::hide);
-    connect(toolMove,       &QToolButton::clicked, this, &CScrOptWpt::hide);
-    connect(toolProj,       &QToolButton::clicked, this, &CScrOptWpt::hide);
-    connect(toolBubble,     &QToolButton::clicked, this, &CScrOptWpt::hide);
-
-    connect(toolDelete,     &QToolButton::clicked, this, &CScrOptWpt::slotDelete);
-    connect(toolEdit,       &QToolButton::clicked, this, &CScrOptWpt::slotEdit);
-    connect(toolCopy,       &QToolButton::clicked, this, &CScrOptWpt::slotCopy);
-    connect(toolMove,       &QToolButton::clicked, this, &CScrOptWpt::slotMove);
-    connect(toolProj,       &QToolButton::clicked, this, &CScrOptWpt::slotProj);
-    connect(toolBubble,     &QToolButton::clicked, this, &CScrOptWpt::slotBubble);
-    connect(toolDelRadius,  &QToolButton::clicked, this, &CScrOptWpt::slotDeleteRadius);
-    connect(toolNogoArea,   &QToolButton::clicked, this, &CScrOptWpt::slotNogoArea);
-    connect(toolEditRadius, &QToolButton::clicked, this, &CScrOptWpt::slotEditRadius);
-
-    adjustSize();
-}
-
-CScrOptWpt::~CScrOptWpt()
-{
-}
-
-void CScrOptWpt::slotDelete()
-{
-    CGisWorkspace::self().delItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotEdit()
-{
-    CGisWorkspace::self().editItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotCopy()
-{
-    CGisWorkspace::self().copyItemByKey(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotMove()
-{
-    CGisWorkspace::self().moveWptByKey(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotProj()
-{
-    CGisWorkspace::self().projWptByKey(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotBubble()
-{
-    CGisWorkspace::self().toggleWptBubble(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotDeleteRadius()
-{
-    CGisWorkspace::self().deleteWptRadius(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotNogoArea()
-{
-    CGisWorkspace::self().toggleWptNogoArea(key);
-    deleteLater();
-}
-
-void CScrOptWpt::slotEditRadius()
-{
-    CGisWorkspace::self().editWptRadius(key);
-    deleteLater();
-}
-
-void CScrOptWpt::draw(QPainter& p)
-{
-    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
-    if(nullptr == item)
-    {
-        deleteLater();
-        return;
-    }
-    item->drawHighlight(p);
-
-    CDraw::bubble(p, geometry(), anchor.toPoint());
-}
diff --git a/src/gis/wpt/CScrOptWptRadius.cpp b/src/gis/wpt/CScrOptWptRadius.cpp
deleted file mode 100644
index e0bcddd..0000000
--- a/src/gis/wpt/CScrOptWptRadius.cpp
+++ /dev/null
@@ -1,98 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "gis/wpt/CProjWpt.h"
-#include "gis/wpt/CScrOptWptRadius.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-
-#include <QtWidgets>
-
-CScrOptWptRadius::CScrOptWptRadius(CGisItemWpt *wpt, const QPoint& point, IMouse *parent)
-    : IScrOpt(parent)
-    , key(wpt->getKey())
-{
-    setupUi(this);
-    setOrigin(point);
-    label->setFont(CMainWindow::self().getMapFont());
-
-    qreal proximity = wpt->getProximity();
-    if(proximity == NOFLOAT)
-    {
-        proximity = 0.;
-    }
-
-    QString val, unit;
-    IUnit::self().meter2distance(proximity, val, unit);
-    label->setText(QString("%1%2").arg(val).arg(unit));
-
-    adjustSize();
-
-    toolNogoArea->setChecked(wpt->isNogoArea());
-
-    anchor = wpt->getPointCloseBy(point);
-    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
-    show();
-
-    connect(toolDelete,   &QToolButton::clicked, this, &CScrOptWptRadius::slotDelete);
-    connect(toolEdit,     &QToolButton::clicked, this, &CScrOptWptRadius::slotEdit);
-    connect(toolNogoArea, &QToolButton::clicked, this, &CScrOptWptRadius::slotNogoArea);
-
-    adjustSize();
-}
-
-CScrOptWptRadius::~CScrOptWptRadius()
-{
-}
-
-void CScrOptWptRadius::slotDelete()
-{
-    CGisWorkspace::self().deleteWptRadius(key);
-    deleteLater();
-}
-
-void CScrOptWptRadius::slotNogoArea()
-{
-    CGisWorkspace::self().toggleWptNogoArea(key);
-    deleteLater();
-}
-
-void CScrOptWptRadius::slotEdit()
-{
-    CGisWorkspace::self().editWptRadius(key);
-    deleteLater();
-}
-
-void CScrOptWptRadius::draw(QPainter& p)
-{
-    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
-    if(nullptr == item)
-    {
-        deleteLater();
-        return;
-    }
-    item->drawHighlight(p);
-
-    CDraw::bubble(p, geometry(), anchor.toPoint());
-}
diff --git a/src/gis/wpt/IDetailsWpt.ui b/src/gis/wpt/IDetailsWpt.ui
deleted file mode 100644
index b1feda2..0000000
--- a/src/gis/wpt/IDetailsWpt.ui
+++ /dev/null
@@ -1,462 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IDetailsWpt</class>
- <widget class="QDialog" name="IDetailsWpt">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>550</width>
-    <height>454</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Dialog</string>
-  </property>
-  <property name="windowIcon">
-   <iconset resource="../../resources.qrc">
-    <normaloff>:/icons/32x32/Map.png</normaloff>:/icons/32x32/Map.png</iconset>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <property name="spacing">
-    <number>0</number>
-   </property>
-   <property name="leftMargin">
-    <number>0</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <widget class="QWidget" name="tab">
-      <attribute name="title">
-       <string>Info</string>
-      </attribute>
-      <layout class="QHBoxLayout" name="horizontalLayout_4">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <layout class="QGridLayout" name="gridLayout">
-         <property name="spacing">
-          <number>3</number>
-         </property>
-         <item row="1" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_2">
-           <item>
-            <widget class="QLabel" name="label_3">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Position:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelPosition">
-             <property name="text">
-              <string>-</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="label">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Ele.</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelElevation">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>-</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="label_2">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Proximity:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelProximity">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>-</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item row="3" column="1">
-          <widget class="QTextBrowser" name="textCmtDesc">
-           <property name="sizePolicy">
-            <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
-             <horstretch>0</horstretch>
-             <verstretch>0</verstretch>
-            </sizepolicy>
-           </property>
-           <property name="frameShape">
-            <enum>QFrame::NoFrame</enum>
-           </property>
-           <property name="openLinks">
-            <bool>false</bool>
-           </property>
-          </widget>
-         </item>
-         <item row="4" column="1">
-          <widget class="CPhotoAlbum" name="photoAlbum" native="true">
-           <property name="minimumSize">
-            <size>
-             <width>0</width>
-             <height>150</height>
-            </size>
-           </property>
-           <property name="maximumSize">
-            <size>
-             <width>16777215</width>
-             <height>150</height>
-            </size>
-           </property>
-          </widget>
-         </item>
-         <item row="0" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout">
-           <item>
-            <widget class="CLineEdit" name="lineName">
-             <property name="palette">
-              <palette>
-               <active>
-                <colorrole role="Base">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-                <colorrole role="Window">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-               </active>
-               <inactive>
-                <colorrole role="Base">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-                <colorrole role="Window">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-               </inactive>
-               <disabled>
-                <colorrole role="Base">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-                <colorrole role="Window">
-                 <brush brushstyle="SolidPattern">
-                  <color alpha="0">
-                   <red>0</red>
-                   <green>0</green>
-                   <blue>0</blue>
-                  </color>
-                 </brush>
-                </colorrole>
-               </disabled>
-              </palette>
-             </property>
-             <property name="font">
-              <font>
-               <weight>75</weight>
-               <bold>true</bold>
-              </font>
-             </property>
-             <property name="frame">
-              <bool>false</bool>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelTainted">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="maximumSize">
-              <size>
-               <width>25</width>
-               <height>25</height>
-              </size>
-             </property>
-             <property name="toolTip">
-              <string>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
-             </property>
-             <property name="text">
-              <string/>
-             </property>
-             <property name="pixmap">
-              <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
-             </property>
-             <property name="scaledContents">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QToolButton" name="toolLock">
-             <property name="toolTip">
-              <string>Toggle read only mode. You have to open the lock to edit the item.</string>
-             </property>
-             <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>
-             <property name="autoRaise">
-              <bool>true</bool>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item row="2" column="1">
-          <layout class="QHBoxLayout" name="horizontalLayout_3">
-           <item>
-            <widget class="QLabel" name="label_4">
-             <property name="sizePolicy">
-              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-               <horstretch>0</horstretch>
-               <verstretch>0</verstretch>
-              </sizepolicy>
-             </property>
-             <property name="text">
-              <string>Date/Time:</string>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QLabel" name="labelTime">
-             <property name="text">
-              <string>-</string>
-             </property>
-            </widget>
-           </item>
-          </layout>
-         </item>
-         <item row="4" column="0">
-          <layout class="QVBoxLayout" name="verticalLayout">
-           <item>
-            <widget class="QToolButton" name="toolAddImage">
-             <property name="toolTip">
-              <string>Add images.</string>
-             </property>
-             <property name="text">
-              <string>...</string>
-             </property>
-             <property name="icon">
-              <iconset resource="../../resources.qrc">
-               <normaloff>:/icons/32x32/AddImage.png</normaloff>:/icons/32x32/AddImage.png</iconset>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <widget class="QToolButton" name="toolDelImage">
-             <property name="toolTip">
-              <string>Delete selected image.</string>
-             </property>
-             <property name="text">
-              <string>...</string>
-             </property>
-             <property name="icon">
-              <iconset resource="../../resources.qrc">
-               <normaloff>:/icons/32x32/DelImage.png</normaloff>:/icons/32x32/DelImage.png</iconset>
-             </property>
-             <property name="iconSize">
-              <size>
-               <width>22</width>
-               <height>22</height>
-              </size>
-             </property>
-            </widget>
-           </item>
-           <item>
-            <spacer name="verticalSpacer">
-             <property name="orientation">
-              <enum>Qt::Vertical</enum>
-             </property>
-             <property name="sizeHint" stdset="0">
-              <size>
-               <width>20</width>
-               <height>40</height>
-              </size>
-             </property>
-            </spacer>
-           </item>
-          </layout>
-         </item>
-         <item row="0" column="0">
-          <widget class="QToolButton" name="toolIcon">
-           <property name="text">
-            <string>...</string>
-           </property>
-           <property name="iconSize">
-            <size>
-             <width>22</width>
-             <height>22</height>
-            </size>
-           </property>
-           <property name="autoRaise">
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-      </layout>
-     </widget>
-     <widget class="QWidget" name="tab_2">
-      <attribute name="title">
-       <string>Hist.</string>
-      </attribute>
-      <layout class="QVBoxLayout" name="verticalLayout_3">
-       <property name="spacing">
-        <number>0</number>
-       </property>
-       <property name="leftMargin">
-        <number>0</number>
-       </property>
-       <property name="topMargin">
-        <number>0</number>
-       </property>
-       <property name="rightMargin">
-        <number>0</number>
-       </property>
-       <property name="bottomMargin">
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="CHistoryListWidget" name="listHistory"/>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CHistoryListWidget</class>
-   <extends>QListWidget</extends>
-   <header>widgets/CHistoryListWidget.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CLineEdit</class>
-   <extends>QLineEdit</extends>
-   <header>widgets/CLineEdit.h</header>
-  </customwidget>
-  <customwidget>
-   <class>CPhotoAlbum</class>
-   <extends>QWidget</extends>
-   <header>widgets/CPhotoAlbum.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/wpt/IScrOptWpt.ui b/src/gis/wpt/IScrOptWpt.ui
deleted file mode 100644
index 09001f6..0000000
--- a/src/gis/wpt/IScrOptWpt.ui
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptWpt</class>
- <widget class="QWidget" name="IScrOptWpt">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>500</width>
-    <height>157</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
-     </property>
-     <item>
-      <widget class="QToolButton" name="toolEdit">
-       <property name="enabled">
-        <bool>true</bool>
-       </property>
-       <property name="toolTip">
-        <string>View details and edit.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolCopy">
-       <property name="toolTip">
-        <string>Copy waypoint into another project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelete">
-       <property name="toolTip">
-        <string>Delete waypoint from project.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="Line" name="line">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolBubble">
-       <property name="toolTip">
-        <string>Show content as static bubble.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/Bubble.png</normaloff>:/icons/32x32/Bubble.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolMove">
-       <property name="toolTip">
-        <string>Move waypoint to a new location.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptMove.png</normaloff>:/icons/32x32/WptMove.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolProj">
-       <property name="toolTip">
-        <string>Clone waypoint and move clone a given distance and angle.</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptProj.png</normaloff>:/icons/32x32/WptProj.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="Line" name="line_2">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolEditRadius">
-       <property name="toolTip">
-        <string>edit radius of circular area</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptEditProx.png</normaloff>:/icons/32x32/WptEditProx.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>false</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolNogoArea">
-       <property name="toolTip">
-        <string>Switch between proximity and nogo-area</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptProx.png</normaloff>
-         <normalon>:/icons/32x32/WptAvoid.png</normalon>:/icons/32x32/WptProx.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelRadius">
-       <property name="toolTip">
-        <string>Delete circle defined by waypoint</string>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptDelProx.png</normaloff>:/icons/32x32/WptDelProx.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>300</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>500</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="text">
-      <string>TextLabel</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="CPhotoAlbum" name="photoAlbum" native="true">
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>100</height>
-      </size>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <customwidgets>
-  <customwidget>
-   <class>CPhotoAlbum</class>
-   <extends>QWidget</extends>
-   <header>widgets/CPhotoAlbum.h</header>
-   <container>1</container>
-  </customwidget>
- </customwidgets>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/gis/wpt/IScrOptWptRadius.ui b/src/gis/wpt/IScrOptWptRadius.ui
deleted file mode 100644
index c8213e7..0000000
--- a/src/gis/wpt/IScrOptWptRadius.ui
+++ /dev/null
@@ -1,144 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptWptRadius</class>
- <widget class="QWidget" name="IScrOptWptRadius">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>306</width>
-    <height>52</height>
-   </rect>
-  </property>
-  <property name="sizePolicy">
-   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-    <horstretch>0</horstretch>
-    <verstretch>0</verstretch>
-   </sizepolicy>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>3</number>
-   </property>
-   <property name="rightMargin">
-    <number>3</number>
-   </property>
-   <property name="bottomMargin">
-    <number>3</number>
-   </property>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
-     </property>
-     <property name="sizeConstraint">
-      <enum>QLayout::SetNoConstraint</enum>
-     </property>
-     <item>
-      <widget class="QToolButton" name="toolEdit">
-       <property name="toolTip">
-        <string>edit radius of circular area</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptEditProx.png</normaloff>:/icons/32x32/WptEditProx.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolNogoArea">
-       <property name="toolTip">
-        <string>Switch between proximity and nogo-area</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptProx.png</normaloff>
-         <normalon>:/icons/32x32/WptAvoid.png</normalon>:/icons/32x32/WptProx.png</iconset>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="toolDelete">
-       <property name="toolTip">
-        <string>Delete circle defined by waypoint</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../../resources.qrc">
-         <normaloff>:/icons/32x32/WptDelProx.png</normaloff>:/icons/32x32/WptDelProx.png</iconset>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>0</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="minimumSize">
-      <size>
-       <width>0</width>
-       <height>0</height>
-      </size>
-     </property>
-     <property name="maximumSize">
-      <size>
-       <width>500</width>
-       <height>16777215</height>
-      </size>
-     </property>
-     <property name="text">
-      <string>TextLabel</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/grid/CGridSetup.cpp b/src/grid/CGridSetup.cpp
deleted file mode 100644
index 199696c..0000000
--- a/src/grid/CGridSetup.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "grid/CGrid.h"
-#include "grid/CGridSetup.h"
-#include "grid/CProjWizard.h"
-#include "map/CMapDraw.h"
-
-#include <QtWidgets>
-
-CGridSetup::CGridSetup(CGrid *grid, CMapDraw * map)
-    : QDialog(CMainWindow::getBestWidgetForParent())
-    , grid(grid)
-    , map(map)
-{
-    setupUi(this);
-
-    lineProjection->setText(grid->projstr);
-    lineProjection->setCursorPosition(0);
-
-    QPalette palette = labelGridColor->palette();
-    palette.setColor(labelGridColor->foregroundRole(), grid->color);
-    labelGridColor->setPalette(palette);
-
-    connect(toolRestoreDefault, &QToolButton::clicked, this, &CGridSetup::slotRestoreDefault);
-    connect(toolFromMap,        &QToolButton::clicked, this, &CGridSetup::slotProjFromMap);
-    connect(toolProjWizzard,    &QToolButton::clicked, this, &CGridSetup::slotProjWizard);
-    connect(toolGridColor,      &QToolButton::clicked, this, &CGridSetup::slotSelectGridColor);
-}
-
-CGridSetup::~CGridSetup()
-{
-}
-
-void CGridSetup::accept()
-{
-    if (CProjWizard::validProjStr(lineProjection->text()))
-    {
-        QPalette palette = labelGridColor->palette();
-        grid->setProjAndColor(lineProjection->text(), palette.color(labelGridColor->foregroundRole()));
-
-        QDialog::accept();
-    }
-}
-
-void CGridSetup::slotProjWizard()
-{
-    CProjWizard dlg(*lineProjection);
-    dlg.exec();
-}
-
-void CGridSetup::slotSelectGridColor()
-{
-    QPalette palette = labelGridColor->palette();
-    QColor color = palette.color(labelGridColor->foregroundRole());
-
-    color = QColorDialog::getColor(color, this);
-
-    if(color.isValid())
-    {
-        palette.setColor(labelGridColor->foregroundRole(), color);
-        labelGridColor->setPalette(palette);
-    }
-}
-
-void CGridSetup::slotRestoreDefault()
-{
-    lineProjection->setText("+proj=longlat +datum=WGS84 +no_defs");
-    lineProjection->setCursorPosition(0);
-}
-
-void CGridSetup::slotProjFromMap()
-{
-    lineProjection->setText(map->getProjection());
-    lineProjection->setCursorPosition(0);
-}
-
diff --git a/src/grid/CProjWizard.cpp b/src/grid/CProjWizard.cpp
deleted file mode 100644
index 9735630..0000000
--- a/src/grid/CProjWizard.cpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "CProjWizard.h"
-#include "grid/mitab.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-struct mitab_entry_t
-{
-    QString name;
-    int idx;
-};
-
-static bool mitabLessThan(const mitab_entry_t &s1, const mitab_entry_t &s2)
-{
-    return s1.name < s2.name;
-}
-
-CProjWizard::CProjWizard(QLineEdit &line)
-    : QDialog(CMainWindow::getBestWidgetForParent())
-    , line(line)
-{
-    setupUi(this);
-    QList<mitab_entry_t> list;
-    int idx = 0;
-    const MapInfoDatumInfo * di = asDatumInfoListQL;
-
-    while(di->nMapInfoDatumID != -1)
-    {
-        mitab_entry_t entry;
-        entry.name  = di->pszOGCDatumName;
-        entry.idx   = idx;
-        list << entry;
-        ++di;
-        ++idx;
-    }
-    qSort(list.begin(), list.end(), mitabLessThan);
-
-    for(const mitab_entry_t &entry : list)
-    {
-        comboDatum->addItem(entry.name, entry.idx);
-    }
-
-    comboHemisphere->addItem(tr("north"), "");
-    comboHemisphere->addItem(tr("south"), "+south");
-
-    connect(radioMercator,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(radioWorldMercator, &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(radioUPSNorth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(radioUPSSouth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(radioUTM,           &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(radioUserDef,       &QRadioButton::clicked,  this, &CProjWizard::slotChange);
-    connect(lineUserDef,        &QLineEdit::textChanged, this, &CProjWizard::slotChange);
-
-    connect(spinUTMZone,        static_cast<void (QSpinBox::*)(int) >(&QSpinBox::valueChanged),         this, &CProjWizard::slotChange);
-    connect(comboDatum,         static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
-    connect(comboHemisphere,    static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
-
-    QString projstr = line.text();
-    QRegExp re2("\\s*\\+proj=merc \\+a=6378137 \\+b=6378137 \\+lat_ts=0.001 \\+lon_0=0.0 \\+x_0=0.0 \\+y_0=0 \\+k=1.0 \\+units=m \\+nadgrids=@null \\+no_defs");
-    QRegExp re3("\\s*\\+proj=merc\\s(.*)");
-    QRegExp re4("\\s*\\+proj=utm \\+zone=([0-9]+)\\s(.*)");
-
-    if(re2.exactMatch(projstr))
-    {
-        radioWorldMercator->setChecked(true);
-    }
-    else if(re3.exactMatch(projstr))
-    {
-        radioMercator->setChecked(true);
-        findDatum(re3.cap(1));
-    }
-    else if(re4.exactMatch(projstr))
-    {
-        radioUTM->setChecked(true);
-        spinUTMZone->setValue(re4.cap(1).toInt());
-
-        QString datum = re4.cap(2);
-        if(datum.startsWith("+south "))
-        {
-            datum = datum.mid(7);
-            comboHemisphere->setCurrentIndex(1);
-        }
-
-        findDatum(datum);
-    }
-
-    slotChange();
-}
-
-CProjWizard::~CProjWizard()
-{
-}
-
-
-void CProjWizard::findDatum(const QString& str)
-{
-    QString cmp;
-    int idx = 0;
-    const MapInfoDatumInfo * di   = asDatumInfoListQL;
-
-    while(di->nMapInfoDatumID != -1)
-    {
-        cmp.clear();
-        if(di->pszOGCDatumName != QString())
-        {
-            const MapInfoSpheroidInfo * si = asSpheroidInfoList;
-            while(si->nMapInfoId != -1)
-            {
-                if(si->nMapInfoId == di->nEllipsoid)
-                {
-                    break;
-                }
-                ++si;
-            }
-
-            cmp += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
-            cmp += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di->dfShiftX).arg(di->dfShiftY).arg(di->dfShiftZ).arg(di->dfDatumParm0).arg(di->dfDatumParm1).arg(di->dfDatumParm2).arg(di->dfDatumParm3).arg(di->dfDatumParm4);
-            cmp += "+units=m  +no_defs";
-        }
-
-        if(cmp == str)
-        {
-            comboDatum->setCurrentIndex(comboDatum->findText(di->pszOGCDatumName));
-            break;
-        }
-
-        ++di;
-        ++idx;
-    }
-}
-
-
-void CProjWizard::slotChange()
-{
-    QString str;
-    if(radioMercator->isChecked())
-    {
-        str += "+proj=merc ";
-    }
-    else if(radioWorldMercator->isChecked())
-    {
-        str += "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.001 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
-        labelResult->setText(str);
-        return;
-    }
-    else if(radioUPSNorth->isChecked())
-    {
-        str += "+init=epsg:32661";
-    }
-    else if(radioUPSSouth->isChecked())
-    {
-        str += "+init=epsg:32761";
-    }
-    else if(radioUTM->isChecked())
-    {
-        str += QString("+proj=utm +zone=%1 %2 ").arg(spinUTMZone->value()).arg(comboHemisphere->itemData(comboHemisphere->currentIndex()).toString());
-    }
-    else if(radioUserDef->isChecked())
-    {
-        str += lineUserDef->text() + " ";
-    }
-
-    int idx = comboDatum->itemData(comboDatum->currentIndex()).toInt();
-    const MapInfoDatumInfo di = asDatumInfoListQL[idx];
-    if(di.pszOGCDatumName != QString())
-    {
-        const MapInfoSpheroidInfo * si = asSpheroidInfoList;
-        while(si->nMapInfoId != -1)
-        {
-            if(si->nMapInfoId == di.nEllipsoid)
-            {
-                break;
-            }
-            ++si;
-        }
-
-        str += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
-        str += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di.dfShiftX).arg(di.dfShiftY).arg(di.dfShiftZ).arg(di.dfDatumParm0).arg(di.dfDatumParm1).arg(di.dfDatumParm2).arg(di.dfDatumParm3).arg(di.dfDatumParm4);
-        str += "+units=m  +no_defs";
-    }
-
-    labelResult->setText(str);
-}
-
-
-void CProjWizard::accept()
-{
-    if (CProjWizard::validProjStr(labelResult->text()))
-    {
-        line.setText(labelResult->text());
-        line.setCursorPosition(0);
-        QDialog::accept();
-    }
-}
-
-
-bool CProjWizard::validProjStr(const QString projStr)
-{
-    projPJ projCheck = pj_init_plus(projStr.toUtf8().data());
-
-    if (!projCheck)
-    {
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."),tr("The value\n'%1'\nis not a valid coordinate system definition:\n%2").arg(projStr).arg(pj_strerrno(pj_errno)),QMessageBox::Abort,QMessageBox::Abort);
-        return false;
-    }
-    else
-    {
-        pj_free(projCheck);
-        return true;
-    }
-}
-
-
diff --git a/src/grid/CProjWizard.h b/src/grid/CProjWizard.h
deleted file mode 100644
index accb568..0000000
--- a/src/grid/CProjWizard.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CPROJWIZARD_H
-#define CPROJWIZARD_H
-
-#include "ui_IProjWizard.h"
-#include <QDialog>
-
-class CProjWizard : public QDialog, private Ui::IProjWizard
-{
-    Q_OBJECT
-public:
-    CProjWizard(QLineEdit& line);
-    virtual ~CProjWizard();
-    static bool validProjStr(const QString projStr);
-
-public slots:
-    void accept() override;
-    void slotChange();
-
-private:
-    void findDatum(const QString& str);
-
-    QLineEdit& line;
-};
-
-#endif //CPROJWIZARD_H
-
diff --git a/src/grid/IGridSetup.ui b/src/grid/IGridSetup.ui
deleted file mode 100644
index f87a9be..0000000
--- a/src/grid/IGridSetup.ui
+++ /dev/null
@@ -1,231 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IGridSetup</class>
- <widget class="QDialog" name="IGridSetup">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>446</width>
-    <height>140</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Setup Grid...</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="1" column="0">
-      <widget class="QLabel" name="label">
-       <property name="text">
-        <string>Projection</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1" colspan="2">
-      <layout class="QHBoxLayout" name="horizontalLayout">
-       <item>
-        <widget class="QToolButton" name="toolRestoreDefault">
-         <property name="minimumSize">
-          <size>
-           <width>32</width>
-           <height>32</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>restore default</string>
-         </property>
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../resources.qrc">
-           <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
-         </property>
-         <property name="iconSize">
-          <size>
-           <width>22</width>
-           <height>22</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QToolButton" name="toolFromMap">
-         <property name="minimumSize">
-          <size>
-           <width>32</width>
-           <height>32</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>Get projection from current map.</string>
-         </property>
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../resources.qrc">
-           <normaloff>:/icons/32x32/FromMap.png</normaloff>:/icons/32x32/FromMap.png</iconset>
-         </property>
-         <property name="iconSize">
-          <size>
-           <width>22</width>
-           <height>22</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="QToolButton" name="toolProjWizzard">
-         <property name="minimumSize">
-          <size>
-           <width>32</width>
-           <height>32</height>
-          </size>
-         </property>
-         <property name="toolTip">
-          <string>projection wizzard</string>
-         </property>
-         <property name="text">
-          <string>...</string>
-         </property>
-         <property name="icon">
-          <iconset resource="../resources.qrc">
-           <normaloff>:/icons/32x32/GridWizzard.png</normaloff>:/icons/32x32/GridWizzard.png</iconset>
-         </property>
-         <property name="iconSize">
-          <size>
-           <width>22</width>
-           <height>22</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <spacer name="horizontalSpacer">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-         <property name="sizeHint" stdset="0">
-          <size>
-           <width>40</width>
-           <height>20</height>
-          </size>
-         </property>
-        </spacer>
-       </item>
-      </layout>
-     </item>
-     <item row="1" column="3">
-      <widget class="QLabel" name="labelGridColor">
-       <property name="font">
-        <font>
-         <weight>75</weight>
-         <bold>true</bold>
-        </font>
-       </property>
-       <property name="text">
-        <string>Grid color</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="4">
-      <widget class="QToolButton" name="toolGridColor">
-       <property name="minimumSize">
-        <size>
-         <width>32</width>
-         <height>32</height>
-        </size>
-       </property>
-       <property name="toolTip">
-        <string>setup grid color</string>
-       </property>
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../resources.qrc">
-         <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
-       </property>
-       <property name="iconSize">
-        <size>
-         <width>22</width>
-         <height>22</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="0" colspan="5">
-      <widget class="QLineEdit" name="lineProjection"/>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>40</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <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>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>IGridSetup</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>IGridSetup</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/grid/IProjWizard.ui b/src/grid/IProjWizard.ui
deleted file mode 100644
index f388194..0000000
--- a/src/grid/IProjWizard.ui
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IProjWizard</class>
- <widget class="QDialog" name="IProjWizard">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>440</width>
-    <height>280</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Proj4 Wizzard</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QFrame" name="frame">
-     <property name="frameShape">
-      <enum>QFrame::StyledPanel</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Raised</enum>
-     </property>
-     <layout class="QGridLayout">
-      <item row="1" column="1">
-       <widget class="QRadioButton" name="radioMercator">
-        <property name="text">
-         <string>Mercator</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <layout class="QHBoxLayout">
-        <item>
-         <widget class="QRadioButton" name="radioUTM">
-          <property name="text">
-           <string>UTM</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLabel" name="label_3">
-          <property name="text">
-           <string>zone</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QSpinBox" name="spinUTMZone">
-          <property name="minimum">
-           <number>1</number>
-          </property>
-          <property name="maximum">
-           <number>60</number>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QComboBox" name="comboHemisphere"/>
-        </item>
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
-      <item row="6" column="1">
-       <layout class="QHBoxLayout">
-        <item>
-         <widget class="QRadioButton" name="radioUserDef">
-          <property name="text">
-           <string>user defined</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLineEdit" name="lineUserDef"/>
-        </item>
-       </layout>
-      </item>
-      <item row="7" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="text">
-         <string>Datum</string>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="1">
-       <widget class="QComboBox" name="comboDatum"/>
-      </item>
-      <item row="2" column="1">
-       <widget class="QRadioButton" name="radioWorldMercator">
-        <property name="text">
-         <string>World Mercator (OSM)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="8" column="1">
-       <spacer>
-        <property name="orientation">
-         <enum>Qt::Vertical</enum>
-        </property>
-        <property name="sizeHint" stdset="0">
-         <size>
-          <width>20</width>
-          <height>40</height>
-         </size>
-        </property>
-       </spacer>
-      </item>
-      <item row="9" column="0">
-       <widget class="QLabel" name="label_4">
-        <property name="text">
-         <string>Result:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="9" column="1">
-       <widget class="QLabel" name="labelResult">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QRadioButton" name="radioUPSNorth">
-        <property name="text">
-         <string>UPS North (North Pole)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="QRadioButton" name="radioUPSSouth">
-        <property name="text">
-         <string>UPS South (South Pole)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label">
-        <property name="text">
-         <string>Projection</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <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>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>IProjWizard</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>IProjWizard</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/helpers/CDraw.cpp b/src/helpers/CDraw.cpp
deleted file mode 100644
index de8fc63..0000000
--- a/src/helpers/CDraw.cpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2015 Christian Eichler code at christian-eichler.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 "canvas/CCanvas.h"
-#include "helpers/CDraw.h"
-
-#include <QDebug>
-#include <QImage>
-#include <QPointF>
-#include <QtMath>
-
-QPen CDraw::penBorderBlue(QColor(10,10,150,220),2);
-QPen CDraw::penBorderGray(Qt::lightGray,2);
-QPen CDraw::penBorderBlack(QColor(0,0,0,200),2);
-QPen CDraw::penBorderRed(Qt::red,2);
-QBrush CDraw::brushBackWhite(QColor(255,255,255,255));
-QBrush CDraw::brushBackYellow(QColor(0xff, 0xff, 0xcc, 0xE0));
-
-
-QImage CDraw::createBasicArrow(const QBrush &brush, qreal scale)
-{
-    QImage arrow(21*scale, 16*scale, QImage::Format_ARGB32);
-    arrow.fill(qRgba(0, 0, 0, 0));
-
-    QPainter painter(&arrow);
-    USE_ANTI_ALIASING(painter, true);
-
-    // white background, same foreground as p
-    painter.setPen(QPen(Qt::white, 2));
-    painter.setBrush(brush);
-
-    QPointF arrowPoints[4] =
-    {
-        QPointF(20.0*scale,  7.0*scale), // front
-        QPointF( 0.0*scale,  0.0*scale), // upper tail
-        QPointF( 5.0*scale,  7.0*scale), // mid   tail
-        QPointF( 0.0*scale, 15.0*scale)  // lower tail
-    };
-    painter.drawPolygon(arrowPoints, 4);
-    painter.end();
-
-    return arrow;
-}
-
-/**
-   @brief   Calculates the square distance between two points
-   @return  (int) ( (x2 - x1)^2 + (y2 - y1)^2 )
- */
-
-static inline int pointDistanceSquare(const QPointF &p1, const QPointF &p2)
-{
-    return (p2.x() - p1.x()) * (p2.x() - p1.x()) + (p2.y() - p1.y()) * (p2.y() - p1.y());
-}
-
-void CDraw::arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale)
-{
-    QImage arrow = createBasicArrow(p.brush(), scale);
-    qreal xoff = qCeil(arrow.width()/2.0);
-    qreal yoff = qFloor((arrow.height()-1)/2.0);
-
-    const qreal minArrowDistSquare = minArrowDist * minArrowDist;
-    const qreal minPointDistSquare = minPointDist * minPointDist;
-
-    QPointF prevArrow;
-    bool firstArrow = true;
-    for(int i = 1; i < line.size(); i++)
-    {
-        const QPointF &pt     = line[i    ];
-        const QPointF &prevPt = line[i - 1];
-
-        // ensure there is enough space between two linepts
-        if( pointDistanceSquare(pt, prevPt) >= minPointDistSquare )
-        {
-            QPointF arrowPos = prevPt + (pt - prevPt)/2;
-
-            if( (viewport.contains(pt) || 0 == viewport.height()) // ensure the point is visible
-                && (firstArrow || pointDistanceSquare(prevArrow, arrowPos) >= minArrowDistSquare) )
-            {
-                p.save();
-
-                // rotate and draw the arrow (between bullets)
-                p.translate(arrowPos);
-                qreal direction = ( qAtan2((pt.y() - prevPt.y()), (pt.x() - prevPt.x())) * 180.) / M_PI;
-                p.rotate(direction);
-                p.drawImage(-xoff, -yoff, arrow);
-
-                p.restore();
-
-                prevArrow  = arrowPos;
-                firstArrow = false;
-            }
-        }
-    }
-}
-
-void CDraw::text(const QString &str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font)
-{
-    QFontMetrics fm(font);
-    QRect r = fm.boundingRect(str);
-
-    r.moveCenter(center);
-    p.setFont(font);
-
-    // draw the white `shadow`
-    p.setPen(Qt::white);
-    p.drawText(r.topLeft() - QPoint(-1, -1), str);
-    p.drawText(r.topLeft() - QPoint( 0, -1), str);
-    p.drawText(r.topLeft() - QPoint(+1, -1), str);
-
-    p.drawText(r.topLeft() - QPoint(-1,  0), str);
-    p.drawText(r.topLeft() - QPoint(+1,  0), str);
-
-    p.drawText(r.topLeft() - QPoint(-1, +1), str);
-    p.drawText(r.topLeft() - QPoint( 0, +1), str);
-    p.drawText(r.topLeft() - QPoint(+1, +1), str);
-
-    p.setPen(color);
-    p.drawText(r.topLeft(), str);
-}
-
-void CDraw::text(const QString &str, QPainter &p, const QRect &r, const QColor &color)
-{
-    p.setPen(Qt::white);
-    p.setFont(CMainWindow::self().getMapFont());
-
-    // draw the white `shadow`
-    p.drawText(r.adjusted(-1, -1, -1, -1), Qt::AlignCenter, str);
-    p.drawText(r.adjusted( 0, -1,  0, -1), Qt::AlignCenter, str);
-    p.drawText(r.adjusted(+1, -1, +1, -1), Qt::AlignCenter, str);
-
-    p.drawText(r.adjusted(-1,  0, -1,  0), Qt::AlignCenter, str);
-    p.drawText(r.adjusted(+1,  0, +1,  0), Qt::AlignCenter, str);
-
-    p.drawText(r.adjusted(-1, +1, -1, +1), Qt::AlignCenter, str);
-    p.drawText(r.adjusted( 0, +1,  0, +1), Qt::AlignCenter, str);
-    p.drawText(r.adjusted(+1, +1, +1, +1), Qt::AlignCenter, str);
-
-    p.setPen(color);
-    p.drawText(r, Qt::AlignCenter, str);
-}
-
-QPoint CDraw::bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth, float pointerBasePos, const QPen &pen)
-{
-    QPainterPath bubblePath;
-    bubblePath.addRoundedRect(contentRect, RECT_RADIUS, RECT_RADIUS);
-
-    // draw the arrow
-    int pointerBaseCenterX = (pointerBasePos <= 1)
-                             ? contentRect.left() + (pointerBasePos * contentRect.width())
-                             : contentRect.left() + (int) pointerBasePos;
-
-    int pointerHeight = 0;
-    if(pointerPos.y() < contentRect.top())
-    {
-        pointerHeight = contentRect.top() - pointerPos.y() + 1;
-    }
-    else if(pointerPos.y() > contentRect.bottom())
-    {
-        pointerHeight = contentRect.bottom() - pointerPos.y() - 1;
-    }
-    else
-    {
-        qDebug() << "cannot calculate pointerHeight/pointerBaseCenterX due to invalid parameters";
-    }
-
-    if(0 != pointerHeight)
-    {
-        QPolygonF pointerPoly;
-        pointerPoly << pointerPos
-                    << QPointF(pointerBaseCenterX - pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
-                    << QPointF(pointerBaseCenterX + pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
-                    << pointerPos;
-
-        QPainterPath pointerPath;
-        pointerPath.addPolygon(pointerPoly);
-
-        bubblePath = bubblePath.united(pointerPath);
-    }
-
-    p.setPen  (pen);
-    p.setBrush(CDraw::brushBackWhite);
-
-    p.drawPolygon(bubblePath.toFillPolygon());
-
-    return contentRect.topLeft();
-}
diff --git a/src/helpers/CDraw.h b/src/helpers/CDraw.h
deleted file mode 100644
index 82375b8..0000000
--- a/src/helpers/CDraw.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2015 Christian Eichler code at christian-eichler.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/>.
-
-**********************************************************************************************/
-
-#ifndef CPAINTER_H
-#define CPAINTER_H
-
-#include <QPainter>
-#include <QPolygonF>
-#include <QRectF>
-
-#include "CMainWindow.h"
-inline void USE_ANTI_ALIASING(QPainter& p, bool useAntiAliasing)
-{
-    p.setRenderHints(QPainter::TextAntialiasing|QPainter::Antialiasing|QPainter::SmoothPixmapTransform|QPainter::HighQualityAntialiasing, useAntiAliasing);
-}
-
-#define RECT_RADIUS 3
-#define PAINT_ROUNDED_RECT(p,r) p.drawRoundedRect(r,RECT_RADIUS,RECT_RADIUS)
-
-
-class CDraw
-{
-public:
-
-    static QPen penBorderBlue;
-    static QPen penBorderGray;
-    static QPen penBorderBlack;
-    static QPen penBorderRed;
-    static QBrush brushBackWhite;
-    static QBrush brushBackYellow;
-
-    /**
-       @brief Draw arrows along a line
-
-       An arrow is drawn if all the following requirements are met:
-     * the position the new arrow would have been drawn is within viewport
-          OR
-          `viewport.height() == 0`
-     * the two points have a distance of at least `minPointDist`
-     * the (potential) position of the new arrow has at least a distance of `minArrowDist` from the previous arrow
-
-       @param line          The line to draw the arrows along
-       @param viewport      Restrict drawing of arrows to this viewport (no limitation is applied if `viewport.height() == 0`)
-       @param minPointDist  The minimum distance of two points (in px)
-       @param minArrowDist  The minimum distance of two consecutive arrows (in px)
-     */
-    static void arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale);
-
-    static void text(const QString& str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font = CMainWindow::self().getMapFont());
-    static void text(const QString& str, QPainter &p, const QRect  &r,      const QColor &color);
-
-    /**
-       @brief Draw a cartoon bubble
-
-       `pointerBasePos` denotes the position of the pointer's base, where 0 is `at the very left of the content`, and 1 is `at the very right`.
-       Be careful with small values (near 0) or large values (near 1) for pointerBasePos, this might lead to incorrect drawing,
-       especially if pointerBaseWidth is large.
-       If is larger than 1, a value in pixels is assumed.
-
-       @param p                 An active QPainter
-       @param contentRect       The area the actual content will be in
-       @param pointerPos        The position of the pointer's head
-       @param pointerBaseWidth  The width of the pointer
-       @param pointerBasePos    The (relative) location of the pointer (in percent / pixels)
-     */
-    static QPoint bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth = 20, float pointerBasePos = .5f, const QPen& pen = penBorderGray);
-
-private:
-    /**
-       @brief   Creates a new arrow using the brush specified
-       @return  A QImage containing the arrow
-     */
-    static QImage createBasicArrow(const QBrush &brush, qreal scale);
-};
-
-#endif // CPAINTER_H
-
diff --git a/src/helpers/CSelectCopyAction.cpp b/src/helpers/CSelectCopyAction.cpp
deleted file mode 100644
index 1af277e..0000000
--- a/src/helpers/CSelectCopyAction.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/IGisItem.h"
-#include "gis/prj/IGisProject.h"
-#include "helpers/CProgressDialog.h"
-#include "helpers/CSelectCopyAction.h"
-
-#include <QtWidgets>
-
-CSelectCopyAction::CSelectCopyAction(const IGisItem *src, const IGisItem *tar, QWidget *parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-
-    labelIcon1->setPixmap(src->getIcon());
-    labelInfo1->setText(src->getInfo(IGisItem::eFeatureShowName));
-    labelIcon2->setPixmap(tar->getIcon());
-    labelInfo2->setText(tar->getInfo(IGisItem::eFeatureShowName));
-
-    adjustSize();
-
-    connect(pushCopy,  &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
-    connect(pushSkip,  &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
-    connect(pushClone, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
-
-    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectCopyAction");
-    CProgressDialog::setAllVisible(false);
-}
-
-CSelectCopyAction::CSelectCopyAction(const IGisProject * src, const IGisProject * tar, QWidget * parent)
-    : QDialog(parent)
-    , result(eResultNone)
-{
-    setupUi(this);
-
-    labelIcon1->setPixmap(src->getIcon());
-    labelInfo1->setText(src->getInfo());
-    labelIcon2->setPixmap(tar->getIcon());
-    labelInfo2->setText(tar->getInfo());
-
-    pushClone->setEnabled(false);
-
-    adjustSize();
-
-    connect(pushCopy, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
-    connect(pushSkip, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
-
-    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectCopyAction");
-    CProgressDialog::setAllVisible(false);
-}
-
-CSelectCopyAction::~CSelectCopyAction()
-{
-    CCanvas::restoreOverrideCursor("~CSelectCopyAction");
-    CProgressDialog::setAllVisible(true);
-}
-
-bool CSelectCopyAction::allOthersToo()
-{
-    return checkAllOtherToo->isChecked();
-}
-
-void CSelectCopyAction::slotSelectResult()
-{
-    if(sender() == pushCopy)
-    {
-        result = eResultCopy;
-    }
-    else if(sender() == pushSkip)
-    {
-        result = eResultSkip;
-    }
-    else if(sender() == pushClone)
-    {
-        result = eResultClone;
-    }
-
-    accept();
-}
diff --git a/src/helpers/CToolBarSetupDialog.cpp b/src/helpers/CToolBarSetupDialog.cpp
deleted file mode 100644
index 47fa1d6..0000000
--- a/src/helpers/CToolBarSetupDialog.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-**********************************************************************************************/
-
-#include "helpers/CToolBarConfig.h"
-#include "helpers/CToolBarSetupDialog.h"
-
-bool CToolBarSetupDialog::CItemFilter::shouldBeMoved(QListWidgetItem *item)
-{
-    CDialogItem * dialogItem = dynamic_cast<CDialogItem *>(item);
-    if (dialogItem != nullptr)
-    {
-        return dialogItem->actionName != "separator";
-    }
-    return true;
-}
-
-CToolBarSetupDialog::CToolBarSetupDialog(QWidget * const & parent, CToolBarConfig * const & config) : QDialog(parent), config(config)
-{
-    setupUi(this);
-
-    selectActionsWidget->setFilter(new CItemFilter(this));
-
-    connect(buttonBox, &QDialogButtonBox::clicked, this, &CToolBarSetupDialog::slotButtonClicked);
-
-    configure();
-
-    selectActionsWidget->setLabelAvailable(tr("Available Actions"));
-    selectActionsWidget->setLabelSelected(tr("Selected Actions"));
-}
-
-CToolBarSetupDialog::~CToolBarSetupDialog()
-{
-    selectActionsWidget->clear();
-}
-
-void CToolBarSetupDialog::accept()
-{
-    QStringList actionNames;
-    for (const QListWidgetItem * const selectedItem : selectActionsWidget->selected())
-    {
-        const CDialogItem * const setupDialogItem = dynamic_cast<const CDialogItem * const>(selectedItem);
-        if (setupDialogItem != nullptr)
-        {
-            actionNames << setupDialogItem->actionName;
-        }
-    }
-    config->setConfiguredActionsByName(actionNames);
-    config->setVisibleInFullscreen(checkFullscreen->isChecked());
-    QDialog::accept();
-}
-
-void CToolBarSetupDialog::slotButtonClicked(QAbstractButton *button) const
-{
-    if(buttonBox->buttonRole(button) == QDialogButtonBox::ResetRole)
-    {
-        config->setDefaultConfiguredActions();
-        configure();
-    }
-}
-
-void CToolBarSetupDialog::configure() const
-{
-    QList<QListWidgetItem *> availableItems;
-    QList<QListWidgetItem *> selectedItems;
-
-    for(QAction * const & action : config->availableActions())
-    {
-        availableItems << new CDialogItem(action->icon(),action->iconText(),action->objectName());
-    }
-    for(QAction * const & action : config->configuredActions())
-    {
-        if (action->isSeparator())
-        {
-            selectedItems << new CDialogItem(action->icon(),"---------------",action->objectName());
-        }
-        else
-        {
-            QString configuredName = action->objectName();
-            for(QListWidgetItem * const & item : availableItems)
-            {
-                if(configuredName == dynamic_cast<CDialogItem * const>(item)->actionName)
-                {
-                    selectedItems << item;
-                    break;
-                }
-            }
-        }
-    }
-    selectActionsWidget->setSelected(selectedItems);
-    selectActionsWidget->setAvailable(availableItems);
-    checkFullscreen->setChecked(config->visibleInFullscreen());
-}
-
diff --git a/src/icons/16x16/Aircraft.png b/src/icons/16x16/Aircraft.png
new file mode 100644
index 0000000..226641b
Binary files /dev/null and b/src/icons/16x16/Aircraft.png differ
diff --git a/src/icons/hicolor/16x16/apps/QMapShack.png b/src/icons/16x16/QMapShack.png
similarity index 100%
copy from src/icons/hicolor/16x16/apps/QMapShack.png
copy to src/icons/16x16/QMapShack.png
diff --git a/src/icons/16x16/QMapTool.png b/src/icons/16x16/QMapTool.png
new file mode 100644
index 0000000..a44d3e3
Binary files /dev/null and b/src/icons/16x16/QMapTool.png differ
diff --git a/src/icons/32x32/AddOverview.png b/src/icons/32x32/AddOverview.png
new file mode 100644
index 0000000..d1ed5b7
Binary files /dev/null and b/src/icons/32x32/AddOverview.png differ
diff --git a/src/icons/32x32/Aircraft.png b/src/icons/32x32/Aircraft.png
new file mode 100644
index 0000000..ccc5649
Binary files /dev/null and b/src/icons/32x32/Aircraft.png differ
diff --git a/src/icons/32x32/CombineMap.png b/src/icons/32x32/CombineMap.png
new file mode 100644
index 0000000..7705cfe
Binary files /dev/null and b/src/icons/32x32/CombineMap.png differ
diff --git a/src/icons/32x32/CutMap.png b/src/icons/32x32/CutMap.png
new file mode 100644
index 0000000..40dbc64
Binary files /dev/null and b/src/icons/32x32/CutMap.png differ
diff --git a/src/icons/32x32/GridTool.png b/src/icons/32x32/GridTool.png
new file mode 100644
index 0000000..3a05553
Binary files /dev/null and b/src/icons/32x32/GridTool.png differ
diff --git a/src/icons/32x32/GridWizzard.png b/src/icons/32x32/GridWizard.png
similarity index 100%
rename from src/icons/32x32/GridWizzard.png
rename to src/icons/32x32/GridWizard.png
diff --git a/src/icons/32x32/LoadGcp.png b/src/icons/32x32/LoadGcp.png
new file mode 100644
index 0000000..cb5e2bb
Binary files /dev/null and b/src/icons/32x32/LoadGcp.png differ
diff --git a/src/icons/32x32/LoadShape.png b/src/icons/32x32/LoadShape.png
new file mode 100644
index 0000000..276666f
Binary files /dev/null and b/src/icons/32x32/LoadShape.png differ
diff --git a/src/icons/32x32/LogProject.png b/src/icons/32x32/LogProject.png
index ad0a18c..dae3f27 100755
Binary files a/src/icons/32x32/LogProject.png and b/src/icons/32x32/LogProject.png differ
diff --git a/src/icons/32x32/NoGo.png b/src/icons/32x32/NoGo.png
index 2074a4e..3434883 100644
Binary files a/src/icons/32x32/NoGo.png and b/src/icons/32x32/NoGo.png differ
diff --git a/src/icons/32x32/NotPossible.png b/src/icons/32x32/NotPossible.png
new file mode 100644
index 0000000..efd315c
Binary files /dev/null and b/src/icons/32x32/NotPossible.png differ
diff --git a/src/icons/32x32/OpenSky.png b/src/icons/32x32/OpenSky.png
new file mode 100644
index 0000000..71adfd4
Binary files /dev/null and b/src/icons/32x32/OpenSky.png differ
diff --git a/src/icons/32x32/Pause.png b/src/icons/32x32/Pause.png
new file mode 100644
index 0000000..35776d4
Binary files /dev/null and b/src/icons/32x32/Pause.png differ
diff --git a/src/icons/32x32/PointAdd.png b/src/icons/32x32/PointAdd.png
index a5eb20d..f26eca6 100644
Binary files a/src/icons/32x32/PointAdd.png and b/src/icons/32x32/PointAdd.png differ
diff --git a/src/icons/32x32/PointDel.png b/src/icons/32x32/PointDel.png
index 1a1ff78..a065507 100644
Binary files a/src/icons/32x32/PointDel.png and b/src/icons/32x32/PointDel.png differ
diff --git a/src/icons/32x32/PointDelAll.png b/src/icons/32x32/PointDelAll.png
new file mode 100644
index 0000000..3c326a5
Binary files /dev/null and b/src/icons/32x32/PointDelAll.png differ
diff --git a/src/icons/32x32/PointMove.png b/src/icons/32x32/PointMove.png
index c262e4e..c1a512f 100644
Binary files a/src/icons/32x32/PointMove.png and b/src/icons/32x32/PointMove.png differ
diff --git a/src/icons/32x32/QMapTool.png b/src/icons/32x32/QMapTool.png
new file mode 100644
index 0000000..4670b22
Binary files /dev/null and b/src/icons/32x32/QMapTool.png differ
diff --git a/src/icons/32x32/Rasterize.png b/src/icons/32x32/Rasterize.png
new file mode 100644
index 0000000..00fecfc
Binary files /dev/null and b/src/icons/32x32/Rasterize.png differ
diff --git a/src/icons/32x32/Record.png b/src/icons/32x32/Record.png
new file mode 100644
index 0000000..059446b
Binary files /dev/null and b/src/icons/32x32/Record.png differ
diff --git a/src/icons/32x32/RefAdd.png b/src/icons/32x32/RefAdd.png
new file mode 100644
index 0000000..9894b9b
Binary files /dev/null and b/src/icons/32x32/RefAdd.png differ
diff --git a/src/icons/32x32/RefDel.png b/src/icons/32x32/RefDel.png
new file mode 100644
index 0000000..e9f286f
Binary files /dev/null and b/src/icons/32x32/RefDel.png differ
diff --git a/src/icons/32x32/RefDelAll.png b/src/icons/32x32/RefDelAll.png
new file mode 100644
index 0000000..dd85dbb
Binary files /dev/null and b/src/icons/32x32/RefDelAll.png differ
diff --git a/src/icons/32x32/RefMove.png b/src/icons/32x32/RefMove.png
new file mode 100644
index 0000000..20bb2bf
Binary files /dev/null and b/src/icons/32x32/RefMove.png differ
diff --git a/src/icons/32x32/RefMoveAuto.png b/src/icons/32x32/RefMoveAuto.png
new file mode 100644
index 0000000..f43399e
Binary files /dev/null and b/src/icons/32x32/RefMoveAuto.png differ
diff --git a/src/icons/32x32/ReferenceMap.png b/src/icons/32x32/ReferenceMap.png
new file mode 100644
index 0000000..45f15a3
Binary files /dev/null and b/src/icons/32x32/ReferenceMap.png differ
diff --git a/src/icons/32x32/RegularScreen.png b/src/icons/32x32/RegularScreen.png
index 4fa80bd..ca91ead 100644
Binary files a/src/icons/32x32/RegularScreen.png and b/src/icons/32x32/RegularScreen.png differ
diff --git a/src/icons/32x32/Reload.png b/src/icons/32x32/Reload.png
new file mode 100644
index 0000000..7f089dc
Binary files /dev/null and b/src/icons/32x32/Reload.png differ
diff --git a/src/icons/32x32/SaveGcp.png b/src/icons/32x32/SaveGcp.png
new file mode 100644
index 0000000..b8792b1
Binary files /dev/null and b/src/icons/32x32/SaveGcp.png differ
diff --git a/src/icons/32x32/SaveShape.png b/src/icons/32x32/SaveShape.png
new file mode 100644
index 0000000..a639416
Binary files /dev/null and b/src/icons/32x32/SaveShape.png differ
diff --git a/src/icons/32x32/SelectColor.png b/src/icons/32x32/SelectColor.png
index 2bbd88d..21977e4 100644
Binary files a/src/icons/32x32/SelectColor.png and b/src/icons/32x32/SelectColor.png differ
diff --git a/src/icons/32x32/SetupSummary.png b/src/icons/32x32/SetupSummary.png
new file mode 100644
index 0000000..e869f66
Binary files /dev/null and b/src/icons/32x32/SetupSummary.png differ
diff --git a/src/icons/32x32/ShowSummary.png b/src/icons/32x32/ShowSummary.png
new file mode 100644
index 0000000..9edd3ad
Binary files /dev/null and b/src/icons/32x32/ShowSummary.png differ
diff --git a/src/icons/32x32/SmlProject.png b/src/icons/32x32/SmlProject.png
index 825c5b4..b783844 100644
Binary files a/src/icons/32x32/SmlProject.png and b/src/icons/32x32/SmlProject.png differ
diff --git a/src/icons/32x32/Sort.png b/src/icons/32x32/Sort.png
new file mode 100644
index 0000000..d94e35c
Binary files /dev/null and b/src/icons/32x32/Sort.png differ
diff --git a/src/icons/32x32/ToggleRealTime.png b/src/icons/32x32/ToggleRealTime.png
new file mode 100644
index 0000000..05c11a7
Binary files /dev/null and b/src/icons/32x32/ToggleRealTime.png differ
diff --git a/src/icons/32x32/WptAvoid.png b/src/icons/32x32/WptAvoid.png
index d765cdf..4b32a9d 100644
Binary files a/src/icons/32x32/WptAvoid.png and b/src/icons/32x32/WptAvoid.png differ
diff --git a/src/icons/32x32/WptDelProx.png b/src/icons/32x32/WptDelProx.png
index 393c8bb..6f70f73 100644
Binary files a/src/icons/32x32/WptDelProx.png and b/src/icons/32x32/WptDelProx.png differ
diff --git a/src/icons/32x32/WptEditProx.png b/src/icons/32x32/WptEditProx.png
index cdd3419..e1697e0 100644
Binary files a/src/icons/32x32/WptEditProx.png and b/src/icons/32x32/WptEditProx.png differ
diff --git a/src/icons/48x48/AddOverview.png b/src/icons/48x48/AddOverview.png
new file mode 100644
index 0000000..d5f6433
Binary files /dev/null and b/src/icons/48x48/AddOverview.png differ
diff --git a/src/icons/48x48/Aircraft.png b/src/icons/48x48/Aircraft.png
new file mode 100644
index 0000000..6a5b951
Binary files /dev/null and b/src/icons/48x48/Aircraft.png differ
diff --git a/src/icons/48x48/CombineMap.png b/src/icons/48x48/CombineMap.png
new file mode 100644
index 0000000..a576cc5
Binary files /dev/null and b/src/icons/48x48/CombineMap.png differ
diff --git a/src/icons/48x48/CutMap.png b/src/icons/48x48/CutMap.png
new file mode 100644
index 0000000..eb901c7
Binary files /dev/null and b/src/icons/48x48/CutMap.png differ
diff --git a/src/icons/48x48/GridTool.png b/src/icons/48x48/GridTool.png
new file mode 100644
index 0000000..8c6c10d
Binary files /dev/null and b/src/icons/48x48/GridTool.png differ
diff --git a/src/icons/48x48/GridWizzard.png b/src/icons/48x48/GridWizard.png
similarity index 100%
rename from src/icons/48x48/GridWizzard.png
rename to src/icons/48x48/GridWizard.png
diff --git a/src/icons/48x48/LoadGcp.png b/src/icons/48x48/LoadGcp.png
new file mode 100644
index 0000000..7e68ad0
Binary files /dev/null and b/src/icons/48x48/LoadGcp.png differ
diff --git a/src/icons/48x48/LoadShape.png b/src/icons/48x48/LoadShape.png
new file mode 100644
index 0000000..764a0cb
Binary files /dev/null and b/src/icons/48x48/LoadShape.png differ
diff --git a/src/icons/48x48/LogProject.png b/src/icons/48x48/LogProject.png
index 3779457..4e54293 100755
Binary files a/src/icons/48x48/LogProject.png and b/src/icons/48x48/LogProject.png differ
diff --git a/src/icons/48x48/NoGo.png b/src/icons/48x48/NoGo.png
index efc3c05..fcfc203 100644
Binary files a/src/icons/48x48/NoGo.png and b/src/icons/48x48/NoGo.png differ
diff --git a/src/icons/48x48/NotPossible.png b/src/icons/48x48/NotPossible.png
new file mode 100644
index 0000000..6f33c83
Binary files /dev/null and b/src/icons/48x48/NotPossible.png differ
diff --git a/src/icons/48x48/OpenSky.png b/src/icons/48x48/OpenSky.png
new file mode 100644
index 0000000..16ded40
Binary files /dev/null and b/src/icons/48x48/OpenSky.png differ
diff --git a/src/icons/48x48/Pause.png b/src/icons/48x48/Pause.png
new file mode 100644
index 0000000..c08c581
Binary files /dev/null and b/src/icons/48x48/Pause.png differ
diff --git a/src/icons/48x48/PointAdd.png b/src/icons/48x48/PointAdd.png
index 4740fb9..b84218c 100644
Binary files a/src/icons/48x48/PointAdd.png and b/src/icons/48x48/PointAdd.png differ
diff --git a/src/icons/48x48/PointDel.png b/src/icons/48x48/PointDel.png
index c76bfb7..5572eff 100644
Binary files a/src/icons/48x48/PointDel.png and b/src/icons/48x48/PointDel.png differ
diff --git a/src/icons/48x48/PointDelAll.png b/src/icons/48x48/PointDelAll.png
new file mode 100644
index 0000000..bc90967
Binary files /dev/null and b/src/icons/48x48/PointDelAll.png differ
diff --git a/src/icons/48x48/PointMove.png b/src/icons/48x48/PointMove.png
index 372778b..dfc290e 100644
Binary files a/src/icons/48x48/PointMove.png and b/src/icons/48x48/PointMove.png differ
diff --git a/src/icons/48x48/QMapTool.png b/src/icons/48x48/QMapTool.png
new file mode 100644
index 0000000..9aa37f4
Binary files /dev/null and b/src/icons/48x48/QMapTool.png differ
diff --git a/src/icons/48x48/Rasterize.png b/src/icons/48x48/Rasterize.png
new file mode 100644
index 0000000..96945c0
Binary files /dev/null and b/src/icons/48x48/Rasterize.png differ
diff --git a/src/icons/48x48/Record.png b/src/icons/48x48/Record.png
new file mode 100644
index 0000000..b4d96ee
Binary files /dev/null and b/src/icons/48x48/Record.png differ
diff --git a/src/icons/48x48/RefAdd.png b/src/icons/48x48/RefAdd.png
new file mode 100644
index 0000000..e9b1796
Binary files /dev/null and b/src/icons/48x48/RefAdd.png differ
diff --git a/src/icons/48x48/RefDel.png b/src/icons/48x48/RefDel.png
new file mode 100644
index 0000000..c70a581
Binary files /dev/null and b/src/icons/48x48/RefDel.png differ
diff --git a/src/icons/48x48/RefDelAll.png b/src/icons/48x48/RefDelAll.png
new file mode 100644
index 0000000..21202c8
Binary files /dev/null and b/src/icons/48x48/RefDelAll.png differ
diff --git a/src/icons/48x48/RefMove.png b/src/icons/48x48/RefMove.png
new file mode 100644
index 0000000..628d583
Binary files /dev/null and b/src/icons/48x48/RefMove.png differ
diff --git a/src/icons/48x48/RefMoveAuto.png b/src/icons/48x48/RefMoveAuto.png
new file mode 100644
index 0000000..b5b528c
Binary files /dev/null and b/src/icons/48x48/RefMoveAuto.png differ
diff --git a/src/icons/48x48/ReferenceMap.png b/src/icons/48x48/ReferenceMap.png
new file mode 100644
index 0000000..6ea31e1
Binary files /dev/null and b/src/icons/48x48/ReferenceMap.png differ
diff --git a/src/icons/48x48/RegularScreen.png b/src/icons/48x48/RegularScreen.png
index 3af0298..332e4eb 100644
Binary files a/src/icons/48x48/RegularScreen.png and b/src/icons/48x48/RegularScreen.png differ
diff --git a/src/icons/48x48/Reload.png b/src/icons/48x48/Reload.png
new file mode 100644
index 0000000..ba052b8
Binary files /dev/null and b/src/icons/48x48/Reload.png differ
diff --git a/src/icons/48x48/SaveGcp.png b/src/icons/48x48/SaveGcp.png
new file mode 100644
index 0000000..b9785d7
Binary files /dev/null and b/src/icons/48x48/SaveGcp.png differ
diff --git a/src/icons/48x48/SaveShape.png b/src/icons/48x48/SaveShape.png
new file mode 100644
index 0000000..4ed128a
Binary files /dev/null and b/src/icons/48x48/SaveShape.png differ
diff --git a/src/icons/48x48/SelectColor.png b/src/icons/48x48/SelectColor.png
index 8a8081c..4cba9e1 100644
Binary files a/src/icons/48x48/SelectColor.png and b/src/icons/48x48/SelectColor.png differ
diff --git a/src/icons/48x48/SetupSummary.png b/src/icons/48x48/SetupSummary.png
new file mode 100644
index 0000000..6b44d08
Binary files /dev/null and b/src/icons/48x48/SetupSummary.png differ
diff --git a/src/icons/48x48/ShowSummary.png b/src/icons/48x48/ShowSummary.png
new file mode 100644
index 0000000..11fdb85
Binary files /dev/null and b/src/icons/48x48/ShowSummary.png differ
diff --git a/src/icons/48x48/SmlProject.png b/src/icons/48x48/SmlProject.png
index b0a429d..0c07854 100644
Binary files a/src/icons/48x48/SmlProject.png and b/src/icons/48x48/SmlProject.png differ
diff --git a/src/icons/48x48/Sort.png b/src/icons/48x48/Sort.png
new file mode 100644
index 0000000..3d3c5ef
Binary files /dev/null and b/src/icons/48x48/Sort.png differ
diff --git a/src/icons/48x48/ToggleRealTime.png b/src/icons/48x48/ToggleRealTime.png
new file mode 100644
index 0000000..893cdac
Binary files /dev/null and b/src/icons/48x48/ToggleRealTime.png differ
diff --git a/src/icons/48x48/WptAvoid.png b/src/icons/48x48/WptAvoid.png
index 05aef7e..db80e5e 100644
Binary files a/src/icons/48x48/WptAvoid.png and b/src/icons/48x48/WptAvoid.png differ
diff --git a/src/icons/48x48/WptDelProx.png b/src/icons/48x48/WptDelProx.png
index 177dc79..9e0d8b8 100644
Binary files a/src/icons/48x48/WptDelProx.png and b/src/icons/48x48/WptDelProx.png differ
diff --git a/src/icons/48x48/WptEditProx.png b/src/icons/48x48/WptEditProx.png
index 958b501..9980711 100644
Binary files a/src/icons/48x48/WptEditProx.png and b/src/icons/48x48/WptEditProx.png differ
diff --git a/src/icons/hicolor/8x8/apps/QMapShack.png b/src/icons/8x8/QMapShack.png
similarity index 100%
copy from src/icons/hicolor/8x8/apps/QMapShack.png
copy to src/icons/8x8/QMapShack.png
diff --git a/src/icons/8x8/QMapTool.png b/src/icons/8x8/QMapTool.png
new file mode 100644
index 0000000..24075f7
Binary files /dev/null and b/src/icons/8x8/QMapTool.png differ
diff --git a/src/icons/AddOverview.svg b/src/icons/AddOverview.svg
new file mode 100644
index 0000000..d18a36f
--- /dev/null
+++ b/src/icons/AddOverview.svg
@@ -0,0 +1,78 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="AddOverview.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-4.8705478"
+     inkscape:cy="48.792091"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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">
+    <path
+       style="fill:#ffffff;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 25.181818,37.636366 15,0.181818 20,14.909091 -54.9999998,0 z"
+       id="rect4139"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#ffffff;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 28.931814,20.454549 7.500007,0.09091 10.000009,7.454545 -27.500024,0 z"
+       id="rect4139-8"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="fill:#ffffff;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="m 30.806813,10.363639 3.750011,0.04546 5.000013,3.727273 -13.750037,0 z"
+       id="rect4139-8-2"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
diff --git a/src/icons/Aircraft.svg b/src/icons/Aircraft.svg
new file mode 100644
index 0000000..adbe982
--- /dev/null
+++ b/src/icons/Aircraft.svg
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="64"
+   height="64"
+   viewBox="0 0 64.000001 64.000001"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Aircraft.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="8"
+     inkscape:cx="19.265864"
+     inkscape:cy="12.413805"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     units="px"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4136" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-988.36216)">
+    <rect
+       style="fill:none;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4211"
+       width="64"
+       height="64"
+       x="1.2318577"
+       y="986.96216" />
+    <path
+       id="path4242-0"
+       style="fill:#000080;fill-rule:evenodd;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 25.998368,1042.403 -7.02843,2.7912 0.03661,-5.7952 6.919102,-4.0498 0.01066,-14.9667 -22.1405192,6.0252 -0.7400981,-6.4172 23.4940403,-15.9458 0.0027,-7.99476 c 0.137964,-3.10281 2.72845,-5.61561 5.876261,-5.61263 3.147813,0.002 5.733682,2.52064 5.878691,5.55443 l 0.01561,7.92536 23.49404,15.9459 -0.916875,6.5057 -22.007935,-5.9812 0.156183,14.8967 6.911519,4.0703 0.03125,6.0192 -7.023067,-3.0044 C 34,1040.3622 31,1040.3622 25.998368,1042.4033 Z"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccsccccccccccc" />
+  </g>
+</svg>
diff --git a/src/icons/CombineMap.svg b/src/icons/CombineMap.svg
new file mode 100644
index 0000000..98196f8
--- /dev/null
+++ b/src/icons/CombineMap.svg
@@ -0,0 +1,81 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="CombineMap.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-13"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#d4aa00;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4139"
+       width="20"
+       height="40"
+       x="5"
+       y="4" />
+    <rect
+       style="fill:#554400;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="35"
+       height="30"
+       x="15"
+       y="29" />
+    <rect
+       style="fill:#aa8800;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4143"
+       width="20"
+       height="20"
+       x="40"
+       y="14" />
+  </g>
+</svg>
diff --git a/src/icons/CutMap.svg b/src/icons/CutMap.svg
new file mode 100644
index 0000000..6fdba84
--- /dev/null
+++ b/src/icons/CutMap.svg
@@ -0,0 +1,73 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="CutMap.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-17.090909"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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:#f9f9f9;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="55"
+       height="55"
+       x="5"
+       y="4" />
+    <path
+       style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 5,59 0,-10 10.090909,-9.727273 0.363636,-25 9.727273,-0.181818 L 25.181818,4 44.454545,4.1818182 50,9 60,9 60,19.363636 C 60,34 60,39 60,49 l 0,10 z"
+       id="path4139"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccc" />
+  </g>
+</svg>
diff --git a/src/icons/GridTool.svg b/src/icons/GridTool.svg
new file mode 100644
index 0000000..22cce4c
--- /dev/null
+++ b/src/icons/GridTool.svg
@@ -0,0 +1,116 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="FridTool.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="23.495362"
+     inkscape:cy="53.818182"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g4168"
+       transform="translate(-0.29571364,0.49757827)">
+      <rect
+         y="-1"
+         x="0"
+         height="65"
+         width="65"
+         id="rect4141"
+         style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4145"
+         d="m 15,4 0,20"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4147"
+         d="m 5,14 20,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4149"
+         d="m 50,4 0,20"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4151"
+         d="m 40,14 20,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4153"
+         d="m 15,39 0,20"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4155"
+         d="m 5,49 20,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4157"
+         d="m 50,39 0,20"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4159"
+         d="m 40,49 20,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <path
+       style="fill:#000080;stroke:#000000;stroke-width:1.13124371;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 32.590798,12.714628 -2.157429,0.07067 -0.636623,2.367451 0,0.282681 0.318322,2.014098 -3.006253,0.742037 -0.671982,-1.94343 -0.106001,-0.212008 -1.697647,-1.80209 -1.909847,0.91871 0.353661,2.473458 0.141401,0.21201 1.061043,1.73142 -2.440369,1.908095 -1.379344,-1.484074 -0.212263,-0.176677 -2.298898,-0.954048 -1.379335,1.625416 1.379335,2.120103 0.176822,0.141333 1.697646,1.130724 -1.450074,2.685472 -1.874481,-0.742035 -0.247576,-0.07069 -2.440365,0.07069 -0.636619,2.049434  [...]
+       id="path6034"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/icons/GridWizzard.svg b/src/icons/GridWizard.svg
similarity index 100%
rename from src/icons/GridWizzard.svg
rename to src/icons/GridWizard.svg
diff --git a/src/icons/LoadGcp.svg b/src/icons/LoadGcp.svg
new file mode 100644
index 0000000..6f98436
--- /dev/null
+++ b/src/icons/LoadGcp.svg
@@ -0,0 +1,121 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="LoadGcp.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="19.272727"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="65"
+       height="65"
+       x="0"
+       y="-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,4 0,20"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,14 20,0"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,4 0,20"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,14 20,0"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,39 0,20"
+       id="path4153"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,49 20,0"
+       id="path4155"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,39 0,20"
+       id="path4157"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,49 20,0"
+       id="path4159"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g3789"
+       transform="matrix(0.89395638,0,0,0.8832193,16.11963,17.368264)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3014"
+         d="m 6.8181815,14 -2,5 0,30 40.0000005,0 0,-30 -23,0 -2,-5 -13.0000005,0 z"
+         style="fill:#007cff;fill-opacity:1;stroke:#007cff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3016"
+         d="m 4.8181815,49 5,-25 40.0000005,0 -5,25 z"
+         style="fill:#000080;stroke:#000080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/LoadShape.svg b/src/icons/LoadShape.svg
new file mode 100644
index 0000000..ec67b89
--- /dev/null
+++ b/src/icons/LoadShape.svg
@@ -0,0 +1,80 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="LoadShape.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-19.818182"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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">
+    <path
+       style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 5,59 0,-10 10.090909,-9.727273 0.363636,-25 9.727273,-0.181818 L 25.181818,4 44.454545,4.1818182 50,9 60,9 60,19.363636 C 60,34 60,39 60,49 l 0,10 z"
+       id="path4139"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <g
+       id="g3789"
+       transform="matrix(0.89395638,0,0,0.8832193,13.574176,13.277355)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3014"
+         d="m 6.8181815,14 -2,5 0,30 40.0000005,0 0,-30 -23,0 -2,-5 -13.0000005,0 z"
+         style="fill:#007cff;fill-opacity:1;stroke:#007cff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path3016"
+         d="m 4.8181815,49 5,-25 40.0000005,0 -5,25 z"
+         style="fill:#000080;stroke:#000080;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/LogProject.svg b/src/icons/LogProject.svg
old mode 100755
new mode 100644
diff --git a/src/icons/NoGo.svg b/src/icons/NoGo.svg
index 7f503b4..3ed919a 100644
--- a/src/icons/NoGo.svg
+++ b/src/icons/NoGo.svg
@@ -13,8 +13,11 @@
    height="64"
    id="svg2"
    version="1.1"
-   inkscape:version="0.48.5 r10040"
-   sodipodi:docname="NoGo.svg">
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="NoGo.svg"
+   inkscape:export-filename="/home/norbert/Development/QMapShack/QMapShack_brouter/src/icons/48x48/NoGo.png"
+   inkscape:export-xdpi="93.910004"
+   inkscape:export-ydpi="93.910004">
   <defs
      id="defs4" />
   <sodipodi:namedview
@@ -25,15 +28,15 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="7.9195959"
-     inkscape:cx="-2.923257"
-     inkscape:cy="37.730236"
+     inkscape:cx="20.701538"
+     inkscape:cy="36.972622"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:window-width="1920"
-     inkscape:window-height="1012"
-     inkscape:window-x="-2"
-     inkscape:window-y="-3"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
      inkscape:window-maximized="1">
     <inkscape:grid
        type="xygrid"
@@ -51,7 +54,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -62,8 +65,17 @@
      transform="translate(0,-988.36218)">
     <path
        style="fill:#ff0000;stroke:#000080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
-       d="M 34.65625 6.5 C 22.229855 6.5169515 12.170548 16.604855 12.1875 29.03125 L 12.1875 29.09375 C 12.242637 41.492957 22.319432 51.516915 34.71875 51.5 C 47.145145 51.483048 57.204452 41.395145 57.1875 28.96875 C 57.170548 16.542355 47.082645 6.4830485 34.65625 6.5 z M 34.65625 14.3125 C 37.268512 14.308937 39.718252 14.993509 41.84375 16.1875 L 21.875 36.15625 C 20.695254 34.051183 20.011482 31.644463 20 29.0625 L 20 29.03125 C 19.988945 20.927079 26.552079 14.323555 34.65625 14. [...]
+       d="M 34.65625,6.5 C 22.229855,6.5169515 12.170548,16.604855 12.1875,29.03125 l 0,0.0625 C 12.242637,41.492957 22.319432,51.516915 34.71875,51.5 47.145145,51.483048 57.204452,41.395145 57.1875,28.96875 57.170548,16.542355 47.082645,6.4830485 34.65625,6.5 Z"
        transform="translate(0,988.36218)"
-       id="path3005" />
+       id="path3005"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="sccsss" />
+    <rect
+       style="fill:#ffffff;stroke:#000080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect4136"
+       width="35"
+       height="10"
+       x="17.1875"
+       y="1012.3622" />
   </g>
 </svg>
diff --git a/src/icons/NotPossible.svg b/src/icons/NotPossible.svg
new file mode 100644
index 0000000..5e2bc99
--- /dev/null
+++ b/src/icons/NotPossible.svg
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="64"
+   height="64"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="NoGo.svg"
+   inkscape:export-filename="/home/norbert/Development/QMapShack/QMapShack_brouter/src/icons/48x48/NoGo.png"
+   inkscape:export-xdpi="93.910004"
+   inkscape:export-ydpi="93.910004">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="7.9195959"
+     inkscape:cx="23.638615"
+     inkscape:cy="37.730236"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1366"
+     inkscape:window-height="744"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-988.36218)">
+    <path
+       style="fill:#ff0000;stroke:#000080;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 34.65625 6.5 C 22.229855 6.5169515 12.170548 16.604855 12.1875 29.03125 L 12.1875 29.09375 C 12.242637 41.492957 22.319432 51.516915 34.71875 51.5 C 47.145145 51.483048 57.204452 41.395145 57.1875 28.96875 C 57.170548 16.542355 47.082645 6.4830485 34.65625 6.5 z M 34.65625 14.3125 C 37.268512 14.308937 39.718252 14.993509 41.84375 16.1875 L 21.875 36.15625 C 20.695254 34.051183 20.011482 31.644463 20 29.0625 L 20 29.03125 C 19.988945 20.927079 26.552079 14.323555 34.65625 14. [...]
+       transform="translate(0,988.36218)"
+       id="path3005" />
+    <path
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.37880722;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 32.355581,42.924976 c -1.090435,-0.197663 -2.397809,-0.583598 -3.242082,-0.95706 l -0.610784,-0.270179 9.39273,-9.393365 c 5.166002,-5.166351 9.430522,-9.393365 9.476711,-9.393365 0.117018,0 0.678314,1.505158 1.012385,2.714785 0.241229,0.873453 0.279045,1.32627 0.279451,3.34613 3.79e-4,2.128 -0.02908,2.445091 -0.331427,3.561522 -1.470623,5.430328 -5.938002,9.504401 -11.397817,10.394359 -1.374699,0.224079 -3.334083,0.222869 -4.579167,-0.0028 l 0,1e-6 z"
+       id="path4135"
+       inkscape:connector-curvature="0"
+       transform="translate(0,988.36218)" />
+    <path
+       style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 21.780213,34.706443 c -1.253537,-2.916764 -1.530063,-6.237669 -0.766643,-9.20692 0.442597,-1.721441 1.582866,-3.973201 2.730735,-5.392552 3.522022,-4.35502 9.418922,-6.237473 14.723692,-4.700211 1.183966,0.3431 2.317957,0.794432 2.317957,0.922555 0,0.04371 -4.228488,4.307673 -9.396641,9.475477 l -9.396641,9.396006 -0.212459,-0.494355 z"
+       id="path4137"
+       inkscape:connector-curvature="0"
+       transform="translate(0,988.36218)" />
+  </g>
+</svg>
diff --git a/src/icons/OpenSky.svg b/src/icons/OpenSky.svg
new file mode 100644
index 0000000..633155d
--- /dev/null
+++ b/src/icons/OpenSky.svg
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="64"
+   height="64"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="OpenSky.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.2"
+     inkscape:cx="7.443237"
+     inkscape:cy="29.600996"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid2985"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-988.3622)">
+    <g
+       id="g4183">
+      <path
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0"
+         id="path4167"
+         d="m 54.375,1005.9337 -44.4642854,9.5535 40.0178574,-11.5893"
+         style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:10;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="cccc"
+         inkscape:connector-curvature="0"
+         id="path4169"
+         d="m 37.053572,1006.9158 -20.267857,18.625 m 0.08929,0.1786 28.714286,-19.125"
+         style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:6.19999981;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0"
+         id="path4171"
+         d="m 11.821429,1014.9158 -3.1071433,-14.1429 7.9821433,9.875"
+         style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:4.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    </g>
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:3.3;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,1042.3622 55,0"
+       id="path4188"
+       inkscape:connector-curvature="0" />
+    <rect
+       style="fill:none;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect4139"
+       width="64"
+       height="64"
+       x="0"
+       y="988.36218" />
+  </g>
+</svg>
diff --git a/src/icons/Pause.svg b/src/icons/Pause.svg
new file mode 100644
index 0000000..3e4a6eb
--- /dev/null
+++ b/src/icons/Pause.svg
@@ -0,0 +1,88 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Pause.svg">
+  <defs
+     id="defs3515" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.5851455"
+     inkscape:cx="-36.001006"
+     inkscape:cy="59.396395"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3012" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g3792"
+       style="fill:none;stroke:#000000;stroke-linecap:round" />
+    <rect
+       style="fill:none;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect4176"
+       width="63.971481"
+       height="63.9072"
+       x="0"
+       y="0.029766813" />
+    <g
+       id="g4229"
+       transform="translate(-0.00943947,0.48216178)">
+      <rect
+         y="9"
+         x="5"
+         height="45"
+         width="21.375904"
+         id="rect4197"
+         style="fill:#000080;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="9.0024099"
+         x="37.614456"
+         height="45"
+         width="21.375904"
+         id="rect4197-7"
+         style="fill:#000080;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/PointAdd.svg b/src/icons/PointAdd.svg
index e3af96a..293e733 100644
--- a/src/icons/PointAdd.svg
+++ b/src/icons/PointAdd.svg
@@ -278,15 +278,15 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="11"
-     inkscape:cx="23.339261"
+     inkscape:cx="18.339261"
      inkscape:cy="30.971502"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="1051"
-     inkscape:window-x="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
      inkscape:window-y="0"
      inkscape:window-maximized="1">
     <inkscape:grid
@@ -339,7 +339,7 @@
     </g>
     <text
        xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#55d400;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
        x="27.074331"
        y="41.14505"
        id="text4315"
@@ -349,6 +349,6 @@
          id="tspan4317"
          x="27.074331"
          y="41.14505"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#008000">+</tspan></text>
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#55d400;">+</tspan></text>
   </g>
 </svg>
diff --git a/src/icons/PointDel.svg b/src/icons/PointDel.svg
index dd9831f..e951549 100644
--- a/src/icons/PointDel.svg
+++ b/src/icons/PointDel.svg
@@ -278,15 +278,15 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="11"
-     inkscape:cx="16.066534"
+     inkscape:cx="-6.433466"
      inkscape:cy="30.971502"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="1051"
-     inkscape:window-x="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
      inkscape:window-y="0"
      inkscape:window-maximized="1">
     <inkscape:grid
@@ -339,7 +339,7 @@
     </g>
     <text
        xml:space="preserve"
-       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#aa0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
        x="-1.4926199"
        y="66.322571"
        id="text4315"
@@ -349,6 +349,6 @@
          id="tspan4317"
          x="-1.4926199"
          y="66.322571"
-         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#aa0000">+</tspan></text>
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#ff0000;">+</tspan></text>
   </g>
 </svg>
diff --git a/src/icons/PointDelAll.svg b/src/icons/PointDelAll.svg
new file mode 100644
index 0000000..763dea5
--- /dev/null
+++ b/src/icons/PointDelAll.svg
@@ -0,0 +1,79 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="PointDelAll.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-19.818182"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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">
+    <path
+       style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 5,59 0,-10 10.090909,-9.727273 0.363636,-25 9.727273,-0.181818 L 25.181818,4 44.454545,4.1818182 50,9 60,9 60,19.363636 C 60,34 60,39 60,49 l 0,10 z"
+       id="path4139"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="-12.47047"
+       y="71.622498"
+       id="text4315"
+       sodipodi:linespacing="125%"
+       transform="matrix(0.72874008,-0.72874008,0.68611569,0.68611569,0,0)"><tspan
+         sodipodi:role="line"
+         id="tspan4317"
+         x="-12.47047"
+         y="71.622498"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#ff0000">+</tspan></text>
+  </g>
+</svg>
diff --git a/src/icons/PointMove.svg b/src/icons/PointMove.svg
index 4ba2bdb..abe4167 100644
--- a/src/icons/PointMove.svg
+++ b/src/icons/PointMove.svg
@@ -278,15 +278,15 @@
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
      inkscape:zoom="11"
-     inkscape:cx="27.657443"
+     inkscape:cx="26.012402"
      inkscape:cy="32.697415"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
      inkscape:window-width="1920"
-     inkscape:window-height="1051"
-     inkscape:window-x="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
      inkscape:window-y="0"
      inkscape:window-maximized="1">
     <inkscape:grid
@@ -339,33 +339,34 @@
     </g>
     <g
        id="g4291"
-       transform="matrix(1.1910314,0,0,1.106179,-4.6063547,-1.9811613)">
+       transform="matrix(1.1910314,0,0,1.106179,-4.6063547,-1.9811613)"
+       style="fill:#55d400;stroke:#55d400">
       <g
          transform="matrix(2.7713857,0,0,2.1726845,-12.642604,-13.556808)"
-         style="fill:#008000;stroke:#008000"
+         style="fill:#55d400;stroke:#55d400"
          id="g4303">
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="m 7,14 3,-5 3,5"
            id="path4299"
            inkscape:connector-curvature="0" />
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="M 13,14 7,14"
            id="path4301"
            inkscape:connector-curvature="0" />
       </g>
       <g
          transform="matrix(2.7713857,0,0,-2.1726845,-12.642603,54.298899)"
-         style="fill:#008000;stroke:#008000"
+         style="fill:#55d400;stroke:#55d400"
          id="g4303-3">
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="m 7,14 3,-5 3,5"
            id="path4299-6"
            inkscape:connector-curvature="0" />
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="M 13,14 7,14"
            id="path4301-7"
            inkscape:connector-curvature="0" />
@@ -373,33 +374,34 @@
     </g>
     <g
        id="g4291-3"
-       transform="matrix(0,-1.1910314,1.106179,0,21.991776,38.594107)">
+       transform="matrix(0,-1.1910314,1.106179,0,21.991776,38.594107)"
+       style="fill:#55d400;stroke:#55d400">
       <g
          transform="matrix(2.7713857,0,0,2.1726845,-12.642604,-13.556808)"
-         style="fill:#008000;stroke:#008000"
+         style="fill:#55d400;stroke:#55d400"
          id="g4303-6">
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="m 7,14 3,-5 3,5"
            id="path4299-7"
            inkscape:connector-curvature="0" />
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="M 13,14 7,14"
            id="path4301-5"
            inkscape:connector-curvature="0" />
       </g>
       <g
          transform="matrix(2.7713857,0,0,-2.1726845,-12.642603,54.298899)"
-         style="fill:#008000;stroke:#008000"
+         style="fill:#55d400;stroke:#55d400"
          id="g4303-3-3">
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="m 7,14 3,-5 3,5"
            id="path4299-6-5"
            inkscape:connector-curvature="0" />
         <path
-           style="fill:#008000;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
            d="M 13,14 7,14"
            id="path4301-7-6"
            inkscape:connector-curvature="0" />
diff --git a/src/icons/QMapTool.svg b/src/icons/QMapTool.svg
new file mode 100644
index 0000000..12dfceb
--- /dev/null
+++ b/src/icons/QMapTool.svg
@@ -0,0 +1,2222 @@
+<?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="149.76425"
+   height="158.90781"
+   id="svg3462"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="QMapTool.svg">
+  <defs
+     id="defs3464" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.8890873"
+     inkscape:cx="8.8867466"
+     inkscape:cy="59.556736"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4658" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3467">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     transform="translate(-18.801369,114.11195)">
+    <g
+       id="g7848">
+      <rect
+         y="-112.61033"
+         x="20.394142"
+         height="155.90781"
+         width="146.76425"
+         id="rect3167"
+         style="fill:#ffffff;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <g
+         transform="matrix(0.08207728,0,0,0.08432853,97.850287,-36.544001)"
+         id="g5153">
+        <path
+           d="m 498.84632,-32.609374 c -0.583,-0.917 -1.334,-3.333 -1.167,-3.833 0.167,-0.5 1.917,-3.75 1.833,-4.167 -0.084,-0.417 -1.417,-2.417 -1.5,-2.833 -0.083,-0.416 0.667,-1.583 0.667,-1.583 l -1.5,-0.25 c 0,0 2.083,-1.334 2.333,-1.667 0.25,-0.333 -0.75,-2.167 -0.75,-2.167 l 0.417,-2.083 2.083,-0.417 1.5,0.167 c 0,0 2,-1.75 2.25,-2.083 0.25,-0.333 0.5,-1.917 0.5,-1.917 0,0 2.75,3.5 3.417,4.583 0.667,1.083 2.25,3.833 2.167,4.583 -0.083,0.75 -0.167,4.75 -0.167,4.75 l 0.917,-0.167 c 0 [...]
+           id="path3671"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 505.51332,-55.442374 c 0,0 -1.167,-2.917 -1.583,-2.917 -0.416,0 -1.583,-0.75 -1.583,-0.75 l 0.667,-1.417 0.25,-1.917 c 0,0 4.083,-2.417 4.667,-3 0.584,-0.583 4.167,-2.5 4.167,-2.5 l 0.5,-3.417 -0.333,-1 2.167,-3.583 2,-0.917 -1.583,-1.667 -0.667,-1.833 -2,0.333 0.417,1.917 c 0,0 -1.333,1.166 -1.833,1.583 -0.5,0.417 -2.083,2.25 -2.333,2.167 -0.25,-0.083 -2.833,-0.417 -2.833,-0.417 0,0 1.416,1.917 1.083,2.333 -0.333,0.416 -3.083,0 -3.083,0 0,0 -1.667,-0.167 -1.833,-0.583 -0 [...]
+           id="path3675"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 517.76332,-31.48438 c 0,0 1.125,-2.125 1.75,-2.125 0.625,0 4.625,-2.75 4.875,-3.125 0.25,-0.375 1.25,-2.125 1.25,-2.125 0,0 2.625,0.375 3.5,0.375 0.875,0 5.25,-0.25 5.875,-0.375 0.625,-0.125 3,-0.125 3.375,0 0.375,0.125 1.125,-1.25 1.25,-1.875 0.125,-0.625 1.375,-2.875 1.875,-3.125 0.5,-0.25 1,-2.75 1,-2.75 0,0 -0.125,-1.5 0.125,-1.875 0.25,-0.375 2.625,-1 2.625,-1 0,0 -0.625,1.875 -1.125,2.125 -0.5,0.25 -0.625,0.875 -0.25,1.5 0.375,0.625 2.125,-0.25 2.125,-0.25 l 4.25,-2 [...]
+           id="path3677"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 517.51332,-30.35938 -1.875,0.75 -0.875,1.25 -2.125,0.5 -0.875,1.5 0.5,1.875 0.875,1 1,-0.75 1,0.5 0,-2.125 1,1.625 0,2.25 -1.25,0.5 -1.375,1.25 0.75,1.5 1.125,0.25 -1,1.5 1.875,1.125 1,-1.625 -0.25,-1.5 1.25,1.875 -0.125,1.375 1.5,-1.75 0.625,-2.125 -0.375,-1.875 2,-2.5 0.875,-1.5 -1.625,-1.5 -1.5,0.125 0.875,-1.25 -1.75,-0.625 -1.25,-1.625 z"
+           id="path3679"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 522.88832,-27.48438 1.625,0.75 0.375,1.625 1.875,1.125 0.625,-2.375 0.75,-1.125 2.75,0.125 1.125,-0.75 1.375,-1.5 0.25,-1.5 -0.5,-1.625 -2.5,0.125 -1.5,0.625 -0.5,1.625 -1.875,0.5 -1.75,0.375 -0.75,1.375 -1.375,0.625 z"
+           id="path3681"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 557.13832,-71.23438 0,-1.875 0.25,-1.625 -1,-1 0,-1.875 1.375,-1.75 1.5,-0.875 -0.375,-3.375 1.5,2 2,0.375 1.5,-2.5 -0.875,-1.25 1.625,-1.5 -0.625,-1.75 1,-2.5 -0.875,-3.375 2,-2.25 1.75,0.25 0,2 0.625,2.25 2.375,2.375 3.5,1.75 1.375,1.125 0.625,0.75 2.25,-0.375 1.625,-1.625 0.375,2 -0.75,1.875 0.5,1.25 1.125,-0.625 -0.625,1.625 -2.625,1.125 -2,1.125 -1.75,-0.25 -2,0.875 -0.875,2.125 -0.625,2.625 -4.25,-2.375 -1.125,-0.875 -1.75,-1.25 -1.375,1.375 -1.25,0.75 -1.875,-1 -1. [...]
+           id="path3683"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 512.51332,-2.98338 -2.875,0.375 -0.25,1.375 1.625,0.75 1.5,-2.5 z"
+           id="path3685"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 506.13832,4.8916261 -2.25,1.25 -0.375,1 1.875,-0.375 0.75,-1.875 z"
+           id="path3687"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 470.5134,-143.77538 2.667,-4.333 3.333,-0.5 4.833,-0.167 4.333,-1 4,1.833 2.667,2 0.5,-1 3.167,2.833 1.167,3.167 2,4.5 2.333,5.333 1.667,3.5 0,2.833 1.333,1.333 4.167,0.667 2.667,0.5 1.5,3 2,2.167 1.167,-0.333 -0.5,2.167 1.167,1.333 0.333,3 1.167,1.167 3,-0.167 2.667,-0.667 3,-1.333 3.167,-0.833 2.5,-0.5 3.333,-1.167 -1.333,2.667 -0.5,3 -1.5,1.667 -0.667,2.5 -0.5,2.167 -1.667,3.167 -1.333,3.833 -1.5,1.5 0.167,1.667 -2,-0.833 -3.167,-1 -1,0.833 -1.5,2.5 -0.833,0 0.667,3.66 [...]
+           id="path3691"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 431.1384,38.01662 -4.875,-0.625 -3.375,0.75 -0.25,1.5 -1.875,1.75 c 0,0 0.25,2 0.625,2.5 0.375,0.5 3,1.25 3,1.25 0,0 2.375,0.25 2.875,-0.375 0.5,-0.625 1.625,-2.125 1.625,-2.125 l 0.5,-2.375 2,-1 -0.25,-1.25 z"
+           id="path3693"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 477.59632,13.308626 c 0,0 -2.583,0.333 -3,0.833 -0.417,0.5 -2.167,3.75 -2.167,3.75 l -1.75,2.667 -0.167,2.5 1,2.083 1.75,1.833 0,1.5 0.833,-0.25 0.417,-1.916 1.417,-1.917 0.667,-2.917 0.25,-2.666 1.5,-2.084 0.083,-3.25 -0.833,-0.166 z"
+           id="path3695"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 332.17932,-121.60937 2.667,-2.333 3,-0.167 1.167,-2.667 2.833,0.667 1.833,-2.333 3.667,0 2.333,-2 1.667,0.333 0.5,-1 2.167,2.167 5.667,-0.167 2,2.5 1.833,1 4,-0.333 6.667,1.667 2,-0.667 0.667,-5 -1.833,-0.833 -0.333,-3.5 1.5,-4.667 1.833,1.333 1.167,-3.5 3.167,1.667 3.833,1.5 3.5,0.833 0.833,1.5 3.167,0.167 0,3.333 1.667,3.333 3,0.833 3.333,0 2.5,-1 4.667,0.5 1.833,0.667 2.667,0 4.167,3.333 3.5,1.667 7.167,1.667 4.167,0 3.333,-1 2.833,-1.167 3,-1.5 1.5,-2.833 3.5,-1.667 2 [...]
+           id="path3697"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 472.63832,44.01662 2,0.25 0.375,-0.75 2.5,1.5 1.875,-0.625 0.875,0.25 -0.625,1.25 -0.625,0.875 1,2.25 1,1.375 0,2.125 -1.5,1.25 0.25,0.875 -2.5,1.5 -0.125,2.25 -0.875,0.875 1.5,0.75 1,1 0,1.375 -1.625,-0.375 0.375,1.625 1.375,1.25 1.875,-1.5 2.25,0 0.75,1.875 c 0,0 0.75,-1.625 1.125,-1.25 0.375,0.375 2.125,1.625 2.125,1.625 l -1.125,1.125 1,1.5 1.625,1.125 -0.5,1.625 -2.625,-1.375 -1.625,-2.25 -2.25,-1.75 0.5,2.625 -2,-1.5 -1.875,-0.625 c 0,0 -0.5,-0.375 -1.375,0.125 -0.8 [...]
+           id="path3699"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 467.88832,76.39162 -1.125,1.625 -1.5,0.25 1.125,1.125 -0.5,0.875 -1,1.125 -1.125,1.25 -2.375,2.625 -2.375,1.375 -1.5,2.375 -0.625,1.625 1.875,-1.625 2,-0.875 1.375,-1.875 1.875,-1.375 1.125,-2.125 -0.125,-0.875 1.75,0.375 1.25,-1.25 1.625,-1 1,-0.75 -1.875,-0.125 -0.75,-0.625 0.75,-2.125 -0.875,0 z"
+           id="path3701"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 476.01332,68.26662 -1.5,-1 -1.625,-0.375 -1.875,0.5 2.125,1.25 0.5,1.5 0.125,1.75 1.375,1 1.75,-1.25 0.125,-1.625 -0.75,-1 -0.25,-0.75 z"
+           id="path3703"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 484.63832,75.64162 -3.375,0.5 -0.625,-1.375 -1.75,-0.75 0.125,2.5 0.125,1.5 -1.875,1.5 c 0,0 1.25,1.25 1.5,0.875 0.25,-0.375 2.375,-2 2.375,-2 l 1.875,-0.75 0.875,-1 0.75,-1 z"
+           id="path3705"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 488.88832,71.14162 0.5,1.875 1.625,1 1.125,1.125 -0.5,1.375 1.375,1 1.875,0.125 -0.75,-2.125 -0.875,-1.875 0.5,-1.375 -1.875,-1.25 -1.625,-0.125 -1.375,0.25 z"
+           id="path3707"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 484.76332,78.39162 -1.125,0.125 -0.625,0.875 -0.375,2.5 -1.5,0.5 -0.75,0.625 1.625,1.5 1,0.875 c 0,0 -0.125,1.375 0.25,1.25 0.375,-0.125 1.75,-0.75 1.75,-0.75 l -0.875,-1.5 -0.25,-2.5 1.75,-1.375 0.125,-1.75 -1,-0.375 z"
+           id="path3709"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 487.51332,77.64162 -1.25,1.125 0.5,1.5 -0.75,1.375 -1.25,0.875 0.375,1.375 1.5,-0.125 0.75,-0.875 0.625,0.625 2,-0.375 0.125,-1.375 -2.125,-0.25 -0.125,-1.375 0.125,-1.5 -0.5,-1 z"
+           id="path3711"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 489.88832,74.89162 -1.125,0.75 0.5,1.625 -0.25,2.25 1,-0.25 0.75,1 0.5,1.875 1.25,-0.75 0.875,-0.5 -0.75,-2.25 -0.125,-1.25 -2,-1.25 -0.625,-1.25 z"
+           id="path3713"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 485.38832,87.89162 -1.75,1.125 -1.375,0.375 0.875,1.625 -2.625,0.125 -1.5,1.125 -0.125,2.75 0.375,1 -2.25,0.75 2.125,1.75 1.75,-1.25 -0.75,-1.125 -0.25,-0.75 1,-1.5 0.875,-1.5 1.125,1.375 1.5,-0.125 1.125,0.125 -0.5,-1.625 1.125,-0.375 1.5,1.75 1,1.5 -0.875,1.625 1.5,2.625 1.75,0.375 2.25,-0.625 -0.375,1.375 c 0,0 1.25,1.125 1.25,0.375 0,-0.75 0.5,-1.75 0.5,-1.75 l -0.75,-2.125 0.375,-1.25 0.75,-0.875 1.125,1.25 1.125,1.125 0.75,-1.875 0.5,-1.875 -0.625,-2.5 -0.375,-1 0.3 [...]
+           id="path3715"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 475.63832,99.76662 -1.75,-0.375 -1.5,0.75 1.125,1.625 1.25,-1 0.875,-1 z"
+           id="path3717"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 483.88832,70.89162 -0.375,1.5 0,1.125 2.25,-0.5 1.625,0.875 -0.5,-1.75 -1.75,-0.75 -1.25,-0.5 z"
+           id="path3719"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 488.51332,64.39162 0.125,1.5 0.625,0.75 1.75,-1.125 -1.25,-1.625 -1.25,0.5 z"
+           id="path3721"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 393.34632,26.058626 2,1.333 1.333,1.5 0.167,2.167 1,2 4.833,-0.334 0.667,1.5 0.667,1.834 1.333,0.666 -2,1.167 -2,0.5 0,2.5 2,1.5 2.167,1.667 3.167,4.5 2.833,2 1.5,2.333 2,2.167 0,2.333 0.5,1.833 0.167,2.334 0,2 0.667,2.5 0.167,4 -1,1.833 -2.667,1.5 -2.667,0.667 0.333,2 1.167,1.666 -1.833,-0.166 -2.667,-0.334 -1.833,1.334 -2.167,0.666 -1.333,0.167 -1,0.667 2.167,0.666 1,1 1.5,0.167 -1.167,2.667 -0.167,1.666 0,1.834 -0.5,0.666 2.5,-1 1.333,-1.833 1.833,-1.833 2.5,-0.5 -0.5, [...]
+           id="path3723"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 388.01332,29.391626 -1.167,1.833 -2,0.333 0.167,2 -1.167,1 0,1.334 2.333,-0.5 0.167,2.5 2.333,0.833 0.667,3.167 -0.5,2.666 -1,3.5 5,-2.666 2.167,1 1.667,-0.167 0.667,-1.833 1.667,0.5 1.667,1.833 2.333,1.167 1.667,3 0.167,3.166 2.5,3 0.833,3.5 -1.333,1.5 2.667,1.667 2.333,-1.833 2.167,0.5 1.667,-0.833 -0.667,-4.167 0,-2.333 -3.5,-4.5 -3.333,-2.167 -2.667,-4.333 -4.167,-3.167 0,-2.5 3.333,-1.5 -0.667,-0.833 -1.333,-3.334 -4.833,0.334 -1,-2 -0.167,-2.167 -3.333,-2.833 -1.833 [...]
+           id="path3725"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 406.84632,62.057626 -4.167,-0.166 -3.833,0.5 -2.667,0.666 -1,3.334 0.667,2.666 0.333,2.834 -0.333,3.166 1.333,3 1.833,-0.666 -0.5,2.166 0.333,1.167 2,-0.666 1.667,-0.834 4.667,-2 3.833,0.333 -0.833,-3.499 5.333,-2.167 1,-2.375 -0.667,-4.292 -0.167,-3.666 -1.667,0.833 -2.167,-0.5 -2.333,1.833 -2.665,-1.667 z"
+           id="path3727"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 383.26332,96.891626 1.375,0.125 1.125,-1.375 1.25,1.25 1.625,0.25 -0.25,2.25 2.875,-0.875 0.875,-0.125 -2.875,-3.125 -1.625,0.25 -1.375,-1.125 -1.5,-1.125 -1.125,-1 1.125,-0.75 -0.625,-3 -1.125,0.5 -0.625,-3.25 -1.75,0.25 -1.5,-2.25 0.75,-2.875 0.5,-1.5 1,-1.125 0.25,-2.25 1,-1.625 0.25,-0.875 0.75,-0.5 0,-2.875 -0.5,-1.75 0.875,-2.125 2.625,0.5 0.875,-0.625 -0.75,3 0.375,2 2.5,-0.375 1.75,0.25 1.875,1.625 -0.25,1.375 1.875,-1.125 1,1.25 0,-4.25 -1,-3.375 1.292,-3.459 4.3 [...]
+           id="path3729"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 400.88832,117.76662 -1,1.25 -2.625,0 -2.875,-2.125 -2.5,-1.375 -3,-2.5 0.25,-1.125 -2.75,-3.375 -0.875,-3.5 -0.375,-2.75 -0.625,-2.625 -1.75,-2.75 1.875,0.125 1.125,-1 1.25,0.875 1.125,0.625 -0.125,1.75 4.125,-0.875 3.125,2.125 2.25,2.75 0.375,3.25 -0.5,4 0,2.375 2.5,1.875 0.75,1.75 0.25,1.25 z"
+           id="path3731"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 425.26332,116.89162 1.625,2 1.5,2 3.5,-0.125 3.25,-0.125 3.125,-2.25 1,-0.5 3.5,1.125 2.125,-0.75 3,-2.75 1.5,-2.875 2,-2.875 0.75,-3 2,-0.875 3,0.75 3.125,0.625 2,-0.375 1.875,-0.625 -1.75,-1.375 0,-0.625 2.875,0 1.375,-1 -0.875,-1.875 -3.125,-1.25 -1.875,0.25 -0.875,0 0,-2.5 -2,-1.375 -0.75,-1.375 -0.75,1.625 -0.875,-1.5 -1,3.125 -0.25,1.875 -1.125,0.375 -2.125,0.625 -1.5,0.875 -0.125,1.5 -1.125,0.75 -1.375,-0.5 -0.625,1.75 -2.25,0 -0.375,2.75 -2.5,2 -2,2 -5,0.375 -2.5, [...]
+           id="path3733"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 532.67932,149.39162 -1.5,1.667 -0.333,2.333 0.667,2.5 1.167,-1.833 -0.833,-1.167 2.167,0 -0.5,-2.333 -0.835,-1.167 z"
+           id="path3741"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 519.84632,157.22462 -1.5,1.334 0,2.5 2.5,-2.5 -1,-1.334 z"
+           id="path3743"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 372.76332,102.89162 -3.875,-0.125 -3.25,-0.25 -1,-1.125 -2.25,-0.625 0.125,3.25 2.25,3 2.875,1.75 1.625,1.625 1.625,0.875 1.75,2.875 0.625,2.5 3.375,0.875 1.5,3 1.625,3.25 0.25,1.375 1.875,0.625 2,3.125 1.875,3.375 0.875,3.25 2.875,1.75 2,3.375 2.875,2.5 2.5,2.5 3,1.125 1.5,2.125 1,2.125 1.875,-1.125 2.625,-0.125 1.5,1.375 0.125,-3.375 0.125,-4.75 -0.125,-2 1.125,-1.625 -0.625,-2 -3.125,-1.25 -1.75,-0.625 -0.875,-2.5 -0.625,-3.25 -3.5,-0.125 -1.25,-0.75 0.75,-1.125 0.875, [...]
+           id="path3745"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 406.17932,133.55862 1.167,-1.834 1.5,1 1,-1.333 1.5,4.5 2,1.167 0,1.833 -2.167,-0.333 -1.167,-1.834 -1.667,-1.166 -2,-1.334 -0.166,-0.666 z"
+           id="path3747"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 416.84632,136.55862 -0.167,2.666 1.667,-0.166 0.5,-1.334 -2,-1.166 z"
+           id="path3749"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 425.26332,116.89162 -2.25,0.667 -1.167,2.5 0,2.333 0.5,2.667 2,2 -0.333,2.666 2.5,0.334 0.667,3 -0.5,2 0.833,3.166 3.667,-0.166 2.667,-0.334 0.833,2.167 0.167,1.167 4,-1.334 1.167,-1.166 2.5,2 2.833,-0.334 1.167,1.667 -0.333,2.5 4.833,-3 3.667,-1.833 -0.5,-2.5 1.167,-1.5 -1.333,-3.667 2,-1.5 2.167,-0.667 1.333,-2 -0.167,-1.666 1.333,-4 4.833,0.166 -4.333,-4.666 -1.833,-1.334 1.667,-0.166 -0.667,-3.334 -1.333,-2.5 0.167,-2 0.333,-1 -5.375,-1.333 -2,0.875 -0.625,2.125 -0.83 [...]
+           id="path3751"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 408.34632,152.05862 -0.167,1.333 -2.5,1.833 2.333,0.667 1.833,0.167 0.333,2 3,-0.167 3.167,0.667 2.667,1.5 2.667,-1.5 5,1 1.167,1.833 c 0,0 0.833,1.5 1.333,1.5 0.5,0 4.5,-0.167 4.5,-0.167 l 3,-1 4.333,1.167 1.5,-0.5 2.5,1.167 1.167,-0.167 -1.333,-2.167 2.333,1 1.333,0.667 1.167,0.833 1.5,-1.166 1.833,0 -0.667,1 2.5,0.5 0.832,-0.832 0,-0.002 0.667,1.334 c 0,0 -1.667,0.999 -0.333,1.166 1.334,0.167 5,0 5,0 l 1.167,-1.166 c 0,0 0.167,-1.169 0.667,-0.834 0.5,0.334 2.333,0.5 2. [...]
+           id="path3753"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 492.17932,117.72462 -1.333,1.834 -2.5,1.833 -3.5,-0.5 -4.5,0.333 -3.333,-1.5 -3.5,-0.5 -1.667,2.334 -1.5,0.833 -1.5,1 0.167,3 0,2.833 -2,1.5 0.167,3.334 -1,2.333 -2.667,0.667 1,3.333 1.167,0.5 1.167,-0.833 1.333,2.166 0.5,3 -1.5,2.5 0.667,2.5 4.333,-0.333 -1.167,-2.5 0.667,-2.5 0.167,-3.167 -0.667,-2.5 0.333,-1.5 1.667,-0.833 1.333,-0.167 0.167,3 c 0,0 -1.167,1.334 -0.667,1.334 0.5,0 2.333,1.333 2.333,1.333 l 0.833,1.167 -0.167,2.333 2.667,1.667 1,-2 0.167,3 1.667,-1.334  [...]
+           id="path3755"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 561.01332,136.22462 0,8.167 0.5,7.667 -1.333,2.166 1,2.167 0.333,9.167 -3.833,-3.667 -0.833,-1.167 -2.333,0.667 -2.667,-0.333 -4.167,0.666 1.667,-3 2,-0.666 1.333,-1.5 -1.5,-1.5 -1.333,-2.834 -1.333,-2.5 -1.833,-1.666 -5.333,-1.667 -5.5,-1.667 -1.5,0 -2.667,-1.833 -2.167,-1.667 -1.5,2 -1.667,0.167 -1.5,-2.5 -0.333,-1.833 -4.667,-1.834 1.167,-1.166 5.333,0.333 2.5,-0.167 1.667,-1 -2.167,-0.666 -4.333,-0.167 -1.667,0 -1,-1.833 -2.333,-1 -2.833,-0.167 -0.333,-1.833 c 0,0 0.8 [...]
+           id="path3757"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 504.84632,115.72462 -2.167,3.167 -0.5,3.333 1.333,1 -0.167,3.167 3.333,2.833 -1.333,-4.833 2.167,-0.667 -0.5,-2.5 1.333,-1.833 -2.5,0.667 -1.667,-1.167 0.668,-3.167 z"
+           id="path3759"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 504.84632,138.72462 2.333,-1 5.5,1.167 3.333,0 1,2.167 -1.5,1.666 -3.5,-2.166 -4.167,0 -2.5,-0.167 -0.499,-1.667 z"
+           id="path3761"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 497.51332,138.89162 c 0,0 -2,0.5 -1.667,1 0.333,0.5 1.333,2.5 1.833,2.5 0.5,0 3.167,-1.167 3.167,-1.167 l 0.5,-1.666 -1.5,-1.167 -2.333,0.5 z"
+           id="path3763"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 491.84632,164.55862 0.333,2.833 -1.833,2.167 -1.833,0.5 -1.833,0.833 -0.167,-2.5 1.833,-2.333 2.333,-0.834 1.167,-0.666 z"
+           id="path3765"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 469.84632,166.55862 -2.667,0.166 c 0,0 -2.833,0.168 -2.167,0.334 0.666,0.165 3.667,1.833 3.667,1.833 l 2.167,-0.833 0.667,2.5 2.167,0 0.167,-2 -2,-1.167 -1.333,-0.5 -0.668,-0.333 z"
+           id="path3767"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 491.84632,164.55863 0.417,2.458 2.5,-1.25 2.75,-0.5 2.875,-1.375 1.875,-1.375 -1.75,-1 -3.875,0.25 -1,1 -3.125,0.5 -0.667,1.292 z"
+           id="path3769"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 373.67932,-2.4413739 -3.667,3.16600005 1.5,2.16699995 -3,-0.5 -3,0.667 -2.667,3.666 -0.667,4.8339999 -2.167,5 -0.833,2.5 -2.333,-1.5 -2.333,-0.167 0.333,5.167 -0.5,3.5 -1.333,1 -0.833,2.666 -0.5,1.167 -1,-0.333 0.167,2.666 0.5,2 2.333,2.334 1.667,0.5 1,3.166 -0.333,1.5 1.667,-1.166 1.5,3.333 0.667,3.667 0.667,3.166 -2,1.334 0.167,2.333 3.167,1.333 2,-0.666 2.833,-1.834 2.167,-0.833 0.167,-3.333 2.167,2 0.833,1.5 0.667,1.5 0.5,3.666 2,4 0.667,2.667 1,3 0.167,3.667 0.833,3  [...]
+           id="path3771"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 333.84632,5.7246261 -0.833,3.167 -0.667,0.833 2.667,1.8339999 0.5,1.5 -1.5,0.666 -1,1.667 -1,-0.167 1.5,2.667 1.5,0 0.333,2.5 1,2.5 0.167,3.333 -0.167,3.5 3.167,-0.5 3.167,-1.5 0.167,-2.666 0.667,1.666 1.667,-0.833 0.167,-1.167 2,-0.333 1.167,2 0.333,2.667 0,2.166 2,2 -0.667,-3.166 1.5,0.333 0.833,-3.667 -1.167,-4.833 -1.5,-2.167 -1,3 -1.333,-0.333 -1.333,-1.333 0.667,-3 1.5,-0.667 1.333,-0.833 2,-3.5 -3.667,0 -7,0.166 -0.833,-2 -1,-3.6659999 -1.833,1 -1,-2 -0.833,0.333 - [...]
+           id="path3773"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 336.68032,1.2246261 -0.167,2.334 2.667,0.5 2.5,1.166 1.5,-1 2.833,0.334 3.333,0 0.5,-2.334 -1.667,-1 -0.167,-1.66599995 -4.5,-1.66700005 -2.833,0 -2.333,1.66700005 -1.666,1.66599995 z"
+           id="path3775"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 332.34632,-0.10837385 -1.167,1.83299995 0.833,3.167 -1.667,1.667 -2.167,0 -2.833,-1.167 -2,0.333 -2.333,-1.666 -3.5,-0.334 0,-2 -7.167,-0.666 -2.833,-1.66699995 -3.833,-1.83300005 -3.167,-1.667 -2.5,-1.667 4.167,-6.8330001 2.5,0.167 1.667,0 2.333,1.666 2.667,1.3340001 0.667,0.666 1.167,1.834 2.5,-0.667 3,1.167 1.167,1.333 1,1.167 4.5,0.166 2.667,3.00000005 4.332,0.667 z"
+           id="path3777"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 286.17932,90.224626 c 0.833,0 3.333,-0.833 3.333,-0.833 l -0.167,-2.833 1.833,-0.667 2.667,-0.333 -1,-1.5 1,-2.667 1,0.333 1.5,-2.333 -0.833,-5.5 1.833,-2.833 1.667,-2.5 -1,-4.5 -0.833,-2.667 1.667,-5 2,0.833 2.333,-2.833 3,0 1.333,-2 0,-2.333 1.833,-1.5 4.333,-3 3.833,-2 1.833,-4.334 1,-0.833 1.167,0.667 4.167,-1.334 2,-3 0,-3.5 2.833,-1.5 1.667,-4 0.5,2.834 0.833,1.333 2.833,-0.167 0.167,-4.833 -1.167,-4 -0.333,-3 -1.5,0 -1.5,-2.667 1,0.167 1,-1.667 1.5,-0.666 -0.5,-1.5 [...]
+           id="path3779"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 297.17932,83.224626 -0.333,4.5 -1.167,3 0.667,3.834 0.333,3.5 0.833,1.333 4.833,-0.5 2.333,-1.667 0.5,-4.666 -2,-1.667 -0.667,-2 -1.667,-2.333 -1,-1.667 -1.667,-0.833 -0.998,-0.834 z"
+           id="path3781"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 245.51332,20.391626 -2.667,-1 -1.667,-2.667 -2,-4 -2,0 -4.333,0.334 -2.667,0 -4,-0.667 -5.667,1 -3,0.333 -0.333,-1.666 0.667,-4.3339999 2.667,-1.666 2.333,-2 1,-1.334 -1.333,-0.333 -0.333,-2.99999995 -2.667,-3.33300005 -5,-5.667 4.667,2.333 3.333,0 2.667,-0.333 4.667,0.333 5,-2 2.333,-0.333 2.667,-8.0000001 3.333,-0.333 2.667,-2 2.333,0 0.667,1.333 3,-7.333 3,-0.667 -0.667,-5.333 4.667,-0.333 0,-2 1.667,-3 0.333,-3.667 -0.333,-3 3.667,-1.667 4.667,-2 3.333,1.333 2.167,-1. [...]
+           id="path3791"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 215.34632,-8.7743739 -0.167,-2.0000001 2.333,-3.334 0.333,-3.666 -2.833,-0.667 -0.833,-5.667 -1.167,-2.5 0.667,-2.333 -1,-1 0.333,-2.833 1.333,-3.167 1.5,-4.167 2,0.833 2.333,0.333 0.667,1 2.333,-0.833 1.333,-3.333 4.833,-1.5 1.667,-3.167 1,-2 2.167,-0.167 2.333,-0.5 2.167,0.167 2.667,0.333 3,0.833 4.333,-0.167 1.167,0.167 2,-2 2,-0.5 2.5,-4 1.833,0.167 0.667,2.333 0.833,0.167 0.667,2.833 -0.167,2.333 1.667,0.333 3.5,-2.167 2.167,-1.167 2,-0.333 1.167,1.167 3.167,-0.833 0 [...]
+           id="path3793"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 244.34632,-48.109374 1.667,-3 0.167,-2 -0.167,-4.5 -1.667,-1.167 -0.667,-0.667 -0.167,-1.167 3.667,-0.333 0.5,-2.667 1.5,-3.333 1.5,0.5 0.167,-1.667 1.167,0.333 3.667,-1.833 0.5,2 -1,1.167 1.167,1.167 -2,0.333 -2.333,0.5 -0.833,1 -2,-0.167 0.333,1.5 1.667,0 1.667,0.333 1.5,0.833 3.667,0 2,-0.667 0.833,0.167 1.5,1.333 3,-0.833 1.5,-0.667 2.833,0.833 0.167,1.5 0.833,2.333 0.167,1 2.167,-0.167 2,2 0.333,3.167 -1,0.833 -3,1 -1.833,-1 -2,0.333 -5.667,3.333 -1.667,-0.333 0.333, [...]
+           id="path3795"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 256.70032,-65.296374 4.188,-0.125 2.125,-1.25 2.313,-1.563 1.25,-1.25 -2.438,-1.375 -1.625,0.688 -1.313,-0.125 -1.5,-1.875 -2.625,0.938 -2.625,-1 0.25,-0.75 2.375,-1.125 1.563,-1.438 0.813,-0.625 -1.063,-1.438 1.625,-1.938 2.938,0.063 3.375,0 3.188,1.438 0.813,-0.875 -0.25,-2.875 2,-1.25 1.938,0.063 1.688,1.188 3.063,0.875 3.188,-0.375 2.5,-0.313 3.563,-0.125 2.375,-0.5 2,0.375 1.688,2.188 1.5,1.813 2.125,-0.063 0.375,1.188 -1.375,2.063 -2.5,0.813 -3.063,1.75 -3.188,2.125 [...]
+           id="path3797"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 184.01332,-49.484374 -0.875,-5.25 -0.25,-1.75 1.25,-2 -1.625,-0.625 -1,-1.375 0.75,-2.625 -3,-0.25 0.25,1.25 -1.375,-1.125 0.25,-3 0.75,-1.625 2,0.25 2.5,0.375 2.375,-0.25 1.125,-1.625 -0.125,-1 -2.25,-1.625 -1.375,-1.75 -0.875,-1.875 -2.5,0.75 -0.75,1.25 -0.25,2.75 -1.5,-2.375 0.75,-2.875 2.125,-1.5 3.625,-0.75 2.5,0.25 2.125,1.125 1.375,2.5 1.5,1.375 2.875,0.25 2.5,0.125 1.375,0.125 -0.25,-3.875 3,-0.75 1,-1.25 0.75,-0.5 0.625,-0.875 1.75,-0.125 1.75,1.625 0.75,1.25 1.3 [...]
+           id="path3799"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 194.13832,-73.359374 -0.625,-22 10.75,-2.25 -0.875,3.125 -1.125,3.625 0.25,1.875 0.625,3.25 3,0.5 1.625,-0.125 1.25,1.75 1.75,-1 0.5,-0.875 1.25,0.125 0.5,-2.375 1,0.25 3.75,2.875 4.75,-0.375 3.25,1.25 3.5,-0.625 2.875,2.75 1,5.125 1,2.375 -0.25,1.625 -1.75,1.375 2.25,1.625 5.125,0.5 3,0.75 1.125,1.375 2.375,0.875 1,-2 1.125,-3.125 2.125,-2.5 3,-0.375 3.25,-1.625 1,0.75 -2.813,1.875 -0.25,0.75 2.625,1 2.625,-0.938 1.5,1.875 1.313,0.125 1.625,-0.688 2.438,1.375 -5.188,4 -5 [...]
+           id="path3801"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 194.01332,-72.942374 -2.5,0.083 -1.5,-1.375 -1.375,-2.5 -2.625,-1.542 -2.667,0.333 -1.667,0.167 -1.667,0.833 -1.75,1.083 -0.583,1.917 -1,-0.833 0.333,-1.667 0.833,-2.333 0,-1 -3,-0.167 -1,-1.667 -1.5,0 -0.333,-1.667 -0.833,-2.167 -1.333,-2.5 -1.833,-0.5 -0.667,-2.667 2.5,0.5 3,0.5 -0.833,-1.833 2.5,-3.5 0.5,2.333 1,-2 3.167,0 0.667,1.333 3,-0.667 -1.5,1.833 -1,2.167 0.333,1.167 1.5,-1.5 1.667,-2.167 3.5,0.167 -0.5,-3 -1.5,-1.5 -2,-1.167 -0.667,-2.332996 -2.333,-3 -2,-2.5  [...]
+           id="path3803"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 217.51332,13.724626 -1.75,0.667 -4.25,-1.75 -4.75,0.5 -6.75,-2 -1.75,-0.5 -1,-5.2499999 -3,-0.75 -1.25,1.25 -3.25,1.25 1.25,-2 -5,2.25 -3.25,-2.5 -4.75,-1 -2.5,-3.49999995 -4,-0.25 -0.5,-4.00000005 -2,-3 -1.75,-3 -2.25,-0.5000001 -0.25,1.0000001 -2.5,-2.0000001 -1.5,0.25 -2.5,-2 0,-3.25 -2,-1.75 1,-3.5 -4,-4 -3.25,-0.5 -2.25,-6.5 0.5,-3.75 2,-2.25 0,-2.75 0,-1.25 -2,-0.5 -2.25,-2 0,-2.5 -2.25,-3 -1.25,-3.75 0,-3 -0.5,-3 1.5,-3 2.5,0.25 2.5,1.5 1.25,1.25 1.5,1.75 2,0.25 1. [...]
+           id="path3805"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 153.51332,-58.942374 0,-2.167 c 0,0 -0.333,-2.333 0.333,-1.833 0.666,0.5 1.333,1.167 1.333,1.167 l 0.333,-2.167 -1.167,-1.5 -2.167,-1 0,2.333 -1.333,0.667 -0.667,-2 -0.667,-1.833 -1.333,-0.5 -2.5,-2 -0.333,-2.5 4.5,1.667 1.333,-1.5 -1.5,-1.333 -1.167,-2.167 1.167,-0.333 3.833,1 2.667,2.5 1.833,0.667 2,-2.167 3,3.167 1.333,2.667 3.167,1.667 -3.167,2.667 -0.667,3.333 -0.5,2 -1.667,0.5 0.5,4.083 -3.25,-3 1.583,-2.417 -1.167,-0.833 0.833,-1.25 -1.333,-1.25 -5.163,3.665 z"
+           id="path3807"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 143.51332,-63.359374 -1.667,-1.583 -2,-0.5 0,-2.667 -0.333,-2 -1.5,-2 7.333,-0.167 0.333,2.5 2.5,2 1.333,0.5 1.333,3.833 1.333,-0.667 0,-2.333 2.167,1 1.167,1.5 -0.333,2.167 -1.333,-1.167 -0.333,4 -0.667,0.833 -1.583,-0.5 -1.5,-1.75 -2.083,-1.583 -1.667,-1.167 -1.333,-0.167 -1.167,-0.082 z"
+           id="path3809"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 138.01332,-72.109374 -2,-0.5 -0.667,-2 -3.167,1.333 -1.833,-0.5 -0.667,-3.833 -1.333,-2.333 -3.333,-1 -1.99991,-1.833 -1.5,-1.667 3.66691,-0.167 4.167,0 3.667,2 3.333,1 2.667,0.333 2.667,2.167 2.167,-0.167 3.333,0.333 1.833,2.833 -0.5,0.5 1.167,2.167 1.5,1.333 -1.333,1.5 -4,-1.5 -1.333,-0.5 -6.502,0.501 z"
+           id="path3811"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 144.01332,-49.775374 -2.167,0.333 -1.667,-0.5 -2.833,0.833 -2.167,0 -3,2.667 -2,2.167 -0.333,4 -0.333,3.5 -0.833,2.167 -10.33291,7 0.5,1.167 0.167,4.167 0.833,0.167 0.167,0.833 7.66691,0.834 16.667,13.8330001 6.833,0.333 5,-4.3330001 4.583,-0.5 -2.5,-2 0.083,-2.833 -2.083,-2.167 1,-3.5 -4,-4 -3.25,-0.5 -2.25,-6.5 0.5,-3.75 2,-2.25 -0.417,-3.833 -1.583,-0.667 -2.25,-2 0,-2.5 -2.001,-2.168 z"
+           id="path3813"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 132.17932,-49.109374 -1.333,1.5 -4,-0.333 -5.66691,2 -3.667,-1.5 -4.833,1.5 -1.667,-1.5 -1.667,0.833 0,2.5 -3.333,3.167 -1.5,2.167 0.833,0.167 0.5,4.167 2,0 0.5,1.833 -1.833,1.333 -0.333,2 -0.833,1 -0.333,3.167 1.833,1.167 0.667,1.333 2.167,-0.167 3,-1.333 15.99991,-10.5 0.833,-2.167 0.333,-7 4.833,-4.833 -1.333,-0.5 -1.167,-0.001 0,0 z"
+           id="path3815"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 151.84632,-6.6083739 3.833,0.5 2,2 1,-0.5 1.333,-2.333 0.667,-1.5 -1.833,-1.167 1.5,-0.333 1.917,-1.4170001 -6.083,0.75 -4.334,4.0000001 z"
+           id="path3817"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 105.34641,-28.275374 -2.167,-0.5 0.667,-2.333 1,-1.667 1,-1.667 1.5,0 1,1.833 -1.833,1.333 -0.333,2 -0.834,1.001 z"
+           id="path3819"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 105.01341,-25.109374 -0.5,1.5 -1.667,-0.167 -0.167,2.167 -0.333,2.5 1.167,0.833 -0.667,2.834 -0.667,7.5000001 6,2.166 2.333,-3.333 2,-0.5 1.667,-1.6670001 0,-1 1.167,-0.166 0,-0.667 -3.833,-3.5 0,-1.167 8.667,-3.166 -0.333,-1.167 -0.833,-0.167 -0.167,-4.167 -0.5,-1.167 -8.667,4.833 -2.167,0.167 -0.667,-1.333 -1.833,-1.166 z"
+           id="path3821"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 100.67941,-1.1083739 1.833,0.83300005 1.667,2.49999995 2.333,3.834 2.667,4.1659999 2,2.667 c 0,0 -0.333,1.167 -0.167,1.667 0.166,0.5 1.5,2.666 1.5,2.666 l 4.333,2.667 3.333,6 -1,3 0.833,2.5 0.333,2.167 3.333,2.5 2.49991,2 2.167,4.833 2.167,3.833 2.167,2.167 3,5.167 1.333,-1.667 0.833,-3.333 1.167,0 1,1 c 0,0 4.167,-0.666 4.833,-0.5 0.666,0.166 3.333,1 3.333,1 l 4.667,0.333 1.333,1.167 1.5,-1 2.167,-4 3.333,-2.167 5.167,-1.5 6.5,-0.333 3.333,-1 13.333,-5.334 1.5,-9.5 -0.66 [...]
+           id="path3823"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 180.67932,52.891626 3.333,-1 2.5,-0.667 1.667,0.667 1.833,-3.167 0.5,-1.833 2.667,0 1.833,-0.333 1.333,-3.834 4.667,-0.5 -0.667,-4.166 1.833,-2.5 0.667,0.666 1.167,-1.166 1.667,-3.334 2.333,-2.333 1.833,-3.333 -2.667,-2.334 -1.5,-1.833 -2.333,-1.167 -2.5,-0.166 -3.667,-1.667 -2,-3 -0.667,-1.167 -1.5,0.167 0,2.5 0.833,0.833 -1.833,0.334 -1.667,2.166 -0.833,3 1.5,3.5 -1.5,9.5 -12.833,5.5 -0.5,1.334 2.833,9.5 1.668,-0.167 z"
+           id="path3825"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 174.59632,19.308626 3.333,-0.334 1.083,-1 2.917,0.167 1.667,0.583 1.75,-0.916 1.583,-2.25 0.833,-1.667 1.917,-0.5 1.667,-2.333 1.25,-0.584 1,-0.083 0.083,-1.6669999 1.083,-0.833 0.667,1.417 -0.917,1.8329999 0.083,1.917 -0.083,1.666 -1.583,0.584 0.083,2.083 0.667,0.833 -2.083,0.584 -1.5,2.333 -0.75,2.917 -1.667,1.333 -8.667,-1.833 -3.25,-2.667 -1.166,-1.583 z"
+           id="path3827"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 173.26332,15.641626 -2.417,-1.833 -0.167,-2.167 0.333,-0.75 0.75,-2.2499999 1.417,0.583 0.833,2.3339999 -0.083,1.75 -0.666,2.333 z"
+           id="path3829"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 169.51332,6.9746261 -1.417,1.25 -0.083,1.667 1.167,1.4169999 1.667,-0.834 -0.25,-1.3329999 0.667,-1.25 -0.917,-1.167 -0.834,0.25 z"
+           id="path3831"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 176.17932,43.558626 2.833,9.5 -2,1.833 -0.167,3 -3.167,0.5 -1.333,1 -5.333,1.833 -4,1.167 -1.167,2.167 -5,0.333 -2,2.333 -4.333,0.167 -3.333,0.667 -0.833,1.5 -2,1.333 -2.833,-0.5 -0.667,0.333 -2.167,-0.5 -1,-2.833 -0.333,-2.167 -1,-2.166 0.333,-1.5 -1,-1.5 -0.667,-3.167 0.667,-1.333 0.167,-1 1.167,-2.167 0.667,-2.833 1.333,-0.5 1,1 4.833,-0.5 3.333,1 4.667,0.333 1.333,1.167 1.5,-1 2.167,-4 3.333,-2.167 5.167,-1.5 6,-0.167 3.833,-1.166 0,1.5 z"
+           id="path3833"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 101.76341,-7.3583739 -0.75,-4.7500001 -1.749996,-4.167 0.583,-1.083 0.249996,-1.833 0.083,-2.5 1.25,-0.917 0.167,-2.417 0.75,-1.75 0.833,-2 2,0.75 -0.333,3.25 -0.333,1.167 -1.667,0.083 -0.667,4.5 1.083,0.834 -0.5,2.416 -0.667,8.1670001 -0.332,0.25 z"
+           id="path3837"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 130.63832,-73.234374 -2.5,2.625 -1,0.125 -3.125,1.375 -1.49991,-0.375 -2.5,-0.25 -3.375,1.125 -2.375,-0.375 -2.375,-0.625 -0.5,0.375 -2.875,-1.5 -1.625,-0.375 -0.75,-1.875 -2.75,-0.25 -1.375,-1.75 -2.999996,0.375 -7.875,0.125 -1.875,2.125 -2.5,1.25 -0.625,1.75 -3.375,-0.125 -5.75,-0.5 -0.875,0.25 -2.75,-1.5 -2.375,-1.75 0.125,-2.25 -3.75,-0.5 -1.875,1.25 -0.25,2.5 -1.125,2.625 -1.5,1.125 0.375,1.25 3.125,0.125 1.5,0.125 2,-2.5 2.5,0.25 2.375,-0.25 1.375,-0.125 0.75,1 0.87 [...]
+           id="path3839"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 89.596414,-35.942374 1.917,-1.167 1.833,0 1.333,-0.917 2,0 3.083,-1.917 0.416996,1 -2.666996,2 -0.083,1.333 0.25,1 -1.583,0.417 -1.917,-0.083 -1.25,0.333 -1.083,0.5 -1.25,-0.167 -0.417,-1.333 -0.583,-0.999 z"
+           id="path3841"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 100.01341,-18.441374 -3.166996,2.333 -3.667,0.833 -2.667,-0.333 -2.667,-1.333 -0.5,-1.5 -2.667,1 -2,1 -0.833,-1.5 -2.5,1.666 -3.333,2 -2.833,-1.5 -3.5,0 -3,-1.333 -4,-1.167 -1.833,0.334 -1.667,-0.167 -0.5,-0.667 -1,1.167 0.167,1.333 0.667,1.167 -0.333,2 -0.667,1 1,3.0000001 0.333,2 -0.167,35.4999999 25.833,0 0,-1.167 1.333,0.167 0,1.167 8.333,-0.167 1,0.667 2,0 1.167,-2 1.666996,-0.334 1.5,-2.5 1.333,-0.166 1.667,-1.334 -0.833,-3.166 1.5,-0.834 -2.667,-1.833 -4.166996,-7. [...]
+           id="path3843"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 567.51332,172.05862 -2,5.333 -1,4.667 -0.667,9.333 -0.667,5.333 -1.667,5 -3.333,1 -3.667,-1.333 -1.333,-2.667 -3,-0.666 -4.333,-2.334 -2.333,-1.333 -3,-2 -2.333,-1.667 1.667,-4.666 1.333,-1.334 0.833,3.292 1.75,0 -0.375,-2.5 -1.375,0 -0.625,-2 1.375,-1.125 0.125,-1.375 1.375,-2.125 -1.5,-0.125 -1.125,-1.75 -0.875,1.25 0.125,1.625 -1,-2.25 -1.375,-0.375 -2.625,1.625 -2.5,-1.125 -2.625,0.125 -3.125,-1 -1.625,-1.625 -2.25,-0.5 -3,-0.25 -3,0.25 -2.75,-0.25 2.375,1.875 1.125,1 [...]
+           id="path3845"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 591.63832,312.76662 -0.625,1.75 1.5,2 0.125,1.875 -1.75,0.25 -2.75,0.5 -1.875,2.25 -2.375,-0.375 -2.75,-2.125 -2.375,-0.625 -1.375,0.875 0.875,3.375 0.5,2.75 1.375,1.625 -0.25,2.125 0.125,3 1.375,-0.75 0.75,1.875 1.5,0.5 c 0,0 -1.125,1.375 -0.5,1.5 0.625,0.125 3,0 3,0 l 1.5,0.625 0.5,-2.5 1.125,0.875 -0.25,-2.875 1.875,1.5 c 0,0 2.5,0.625 2.375,0.25 -0.125,-0.375 -0.875,-2.875 -0.875,-2.875 l 0.25,-2.5 0.375,-0.875 0.375,1 0.75,-1.25 -0.25,-2.625 -0.375,-2.75 -0.625,-2.37 [...]
+           id="path3847"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 561.51332,136.39163 3,2 4.167,1.833 5.167,1.667 1.667,1 1.5,0 4.333,4 0.5,3.833 6.333,1.667 2.333,0.5 2,-1.833 0.333,-2 5.167,0 1.833,-1 1.5,1.833 2.5,0 2.333,-2.667 1.666,-0.333 -0.5,-3.5 2.5,0 1,2.667 0.834,-1.667 -1.167,-2.833 -6.667,-3.834 0.167,-1.5 3.167,1.334 5,3.333 2.833,3.667 -1,2.5 -2.667,-0.167 -1.833,0.833 0.833,2 -3.166,0.667 -1.334,1 -3.667,1.5 -3.667,0.333 -2.5,-0.833 -2.333,-1.5 -1.833,1.5 -1,1.5 -0.5,1.667 -2.833,-0.167 0,1.833 2.5,2 1.667,1.834 1,2.5 1. [...]
+           id="path3849"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 698.76332,283.39163 1.75,5 3.25,4.5 2.25,2.75 1,2.25 0.75,4.75 0.5,4 -2.75,3 -3.25,0.75 0.5,3 4,0 3.75,2.25 -1,4.5 -2,1.5 -2.25,-0.25 -0.75,-2.5 -2.75,2 -1.5,-3 -0.25,-1 -3.25,2.75 0,4.75 -4,2.5 -2,4.25 -7.75,5.5 -3.25,1.75 -3,5 -3.25,4.5 0.25,2.5 5.5,0.75 2.5,2 3.5,0.75 4.5,-2.75 1.75,-3.25 1.25,-4.25 1.25,-0.75 0.25,-5 4,-0.75 2.25,-0.25 -0.5,-2.5 0.25,-1.5 2.75,-1.25 2.25,-4.75 0.75,-3.25 0.25,-1 2.25,-0.25 1.25,0.75 3.75,-1.25 2,-3.75 1,-1.75 1.5,-2.5 -0.75,-1.75 1.25 [...]
+           id="path3853"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 619.84632,147.39162 0.834,4.667 2.833,2.333 1.667,2.167 1.5,-2.5 -2.334,-2.334 -2.5,-1 -2,-3.333 z"
+           id="path3851"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 628.68032,155.22462 2.333,3.167 3,0 2.5,0.667 0.833,1.833 4.167,1.667 1.667,0.666 c 0,0 2.333,-1.166 2.833,-0.333 0.5,0.833 0.833,2.5 0.833,2.5 l 2.334,2.167 0.666,1.333 -1,0.5 -2.5,-2.167 -3.666,-1.333 -1.5,0.5 1.333,1.5 2.5,0.667 2.833,0.5 1.5,2.5 2.667,1.5 1.667,-0.834 -2.334,-2.5 -1.333,0 0.333,-1.833 -1,-2.833 -1.333,-2.667 -2.167,-0.167 -2,0 -2,-1.166 -2.166,-1.5 -1.5,-1.334 -1.834,0.167 -2.166,-0.5 -1.834,-0.833 -1.333,-1.167 -1,-1 -1.333,0.333 z"
+           id="path3861"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 720.34632,200.72463 -1.833,3.834 2.167,2.166 3.166,0.167 2.167,-2.333 -1.333,-1.667 -1.834,-1.333 2,-1.667 3.334,-0.167 2.833,0.167 -1.5,-1.667 2,-2.5 -3.833,1 -2.667,2.167 -2.333,2.333 -2.334,-0.5 z"
+           id="path3863"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 669.01332,218.39163 -7.5,-4.5 2.75,5.5 4.75,4.5 4.25,0 -3,-3.25 -1.25,-2.25 z"
+           id="path3869"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 761.01332,184.72463 3.5,2.167 0.833,-1.167 1,1.667 2,-1.333 -1.333,-1.667 -1.5,0.5 -2.167,-1.167 -2.333,1 z"
+           id="path3879"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 88.679414,-141.10937 -3.917,1.125 -1.75,3.375 -0.25,2.5 -2.5,-1.25 -2.25,-0.5 -1.625,-0.625 -1.375,0.75 -5.25,-0.75 -2.75,-0.75 -3.125,0 -6.375,-0.625 -3.25,1.625 -1.25,0.875 1.25,3.375 0.75,2.875 -0.625,2 -2.875,1.875 -1.75,2.375 -0.5,1.625 -2,0.375 -0.75,4.75 2.5,3.75 1.5,-1 3.25,0.875 3,0.375 1.5,0.75 2.375,-1.25 2.25,-0.25 3,-1.625 2,-1.125 1.625,-0.625 2.875,1.375 3.125,0.75 1.5,1.5 1.125,3 1.375,2 0.125,4.25 -1.875,1 -1.375,0.375 -0.625,2.374996 -1.25,0.875 -2.125,0 [...]
+           id="path3881"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 66.763414,-114.73437 0.625,1.125 1.25,2.125 1.875,1.625 1.5,3 0.5,2.75 -0.125,4.874996 0,0.625 2.125,-0.125 1.25,-0.875 0.625,-2.374996 3.25,-1.375 -0.125,-4.25 -1.375,-2 -1.125,-3 -1.5,-1.5 -2.75,-0.75 -3.25,-1.375 -2.75,1.5 z"
+           id="path3883"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 48.763414,-111.98437 -0.5,1.625 -2.375,1.125 -1.125,1.125 -0.75,1.875 -1,3 -2,1.625 -3,0.625 1.5,2.624996 1.875,2.25 1.5,0.75 0.5,1.5 1.75,2.25 2,0.5 1.5,-0.375 -0.375,1.75 1,1.625 0.5,1.375 5.75,0.75 3.75,0 1.875,0.25 4.5,-1.625 1.625,-1.25 2.5,0.875 0.75,0.25 1.125,0 0.75,1.25 1.375,0.25 1.125,-4.125 0.375,-2 0.75,1.5 1.875,-1.125 0.625,-2.125 -0.25,-2.625 -1.25,0.25 -1.625,0.125 -1.25,0.625 -1.75,-1.625 0,-3.249996 0,-4.5 -0.75,-2.25 -1.125,-2.75 -1.875,-1.625 -1.875,- [...]
+           id="path3885"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 66.013414,-74.734374 -1.875,-0.375 -0.375,2 -1.875,0.875 -3.125,-0.125 -2.375,-1 -1.625,-0.375 -2.5,1.375 -1.625,0 -0.25,-3.5 -2,-1.25 -0.5,-1 0.5,-3.75 1.375,-1.125 -1.375,-3 0.375,-2.625 1,1.875 2.75,0.375 5.125,0.375 1.625,0 1.875,0.25 3,-0.875 1.5,-0.75 1.625,-1.25 2.875,1.25 1.5,-0.125 0.75,1.25 1.375,0.25 0.125,2.875 -2.125,0.125 -0.625,0.625 -0.125,3 -1.5,1 -0.75,1.125 1.75,0.125 0.625,1.875 -2.875,-0.5 -2.25,1 z"
+           id="path3887"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 49.63836,-71.60938 -2.75,0.75 -1.125,-0.25 -1.25,1.5 -3.25,0.375 -0.625,3 -1.5,2.25 -0.25,1.25 -4,0.5 1.5,2.875 0.875,-1.625 1.125,2 1.375,0.75 0.375,1.5 -1.25,0.875 1.75,0.25 0.875,1.625 2.125,-0.125 3.75,0.125 1.875,1.375 -1.875,0 -2.375,-1 -2.5,0.375 -1.625,1.375 -1.125,-1.375 -1.25,-1.25 -0.625,1.5 1.25,1.125 0.625,0 -0.5,1.5 1.5,0.25 0.625,-0.75 0.25,-0.75 1.375,1.75 0.25,1.375 0.375,1.375 0.75,1.875 0.375,-1.625 1.875,1.125 0.5,2 c 0,0 0.875,-2 1.25,-1.5 0.375,0.5 1 [...]
+           id="path3889"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 51.51336,-38.48438 1.875,1.25 2,0 1.625,1.25 2.25,0 2.875,-0.125 2.375,-1.125 1.875,-1.125 1.625,0.125 0.625,-1.375 1.5,-1.75 1.125,0.5 1.25,-2.125 -1.125,-0.875 -1.75,1.5 -0.375,1.25 -1,1 -1.625,0.5 -0.875,1.125 -1.75,0.875 -1.25,0.625 -1.125,-0.625 -1.875,-0.5 -1.875,-0.125 -1.125,-0.375 -1.25,-0.75 -1.375,0.5 -2.125,-0.375 -0.5,0.75 z"
+           id="path3891"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 61.888414,-59.484374 1,1.125 1.25,0.75 1.125,-1.125 -1.375,-1.375 -2,0.625 z"
+           id="path3893"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 61.888414,-55.734374 -0.25,2.375 2,0.5 0.625,-1.625 -1,-1.5 -1.375,0.25 z"
+           id="path3895"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 58.388414,-63.484374 -0.375,1.75 1.75,0 0.75,-1.25 -2.125,-0.5 z"
+           id="path3897"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 41.263414,-69.234374 -1.75,-2.208 0.333,-3 1,-1.167 0.5,-1.5 2.167,-0.167 2,-1.5 1.5,0.667 0.875,0 1.125,1.333 1.375,0.917 0.25,3.5 -1,0.75 -2.292,0.5 -1.583,0 -1.75,1.667 -2.75,0.208 z"
+           id="path3899"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 35.513414,-62.775374 0,-1 -1.167,-1.667 -0.333,-3.667 0.167,-2.167 0.167,-1.167 0.333,-1.667 -0.333,-0.5 0.5,-4.667 2.5,0 1.333,1.167 1.333,1.167 -0.167,2.5 -0.167,2 0.333,1.667 1.25,1.542 -0.583,1.792 -0.042,1.208 -1.125,1.958 -0.625,1.542 -3.374,-0.041 z"
+           id="path3901"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 34.388414,-74.109374 -1.25,-1.125 -2,-1.625 -0.5,-2.625 0.5,-2.5 1.75,-1.625 1,-1.625 0.5,-0.5 1.25,1.125 2.25,2.125 -1.125,3 -1.875,-0.25 -0.5,5.625 z"
+           id="path3903"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 35.013414,-86.359374 -0.625,-3 -0.375,-3.25 -0.125,-2.625 0.25,-1.5 -1.375,-2.625 2.375,-1.374996 2.75,0.125 2.875,3.999996 2.125,1.25 1.125,2.125 1.125,1.625 2,0.5 1.5,-0.375 -0.375,1.75 0.625,1.5 -0.5,2.25 1.375,3 -1.375,2 -0.5,2.875 -1.375,-0.125 -1.375,-0.5 -1.625,1.458 -2.167,0.167 -1.458,2.375 0.125,-2.208 -1.5,-1.542 -1.75,-1 1.125,-3 -2.25,-2.125 -1.25,-1.125 0.625,-0.625 z"
+           id="path3905"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 27.638414,-80.984374 -1.375,0.5 0,-2 -1.625,-2.875 -2.875,-1.875 -1,-2.75 -1.125,-2.25 -0.75,-1.625 0.5,-1.375 2.125,0.875 1,-0.875 3.25,0.625 1.25,0.75 1.75,-0.5 1.625,0.375 2,1.625 1.625,-0.25 0.375,3.625 0.625,2.625 -1.125,1.125 -1.25,2.125 -1.5,1.125 -0.5,2.5 -1.25,-0.125 -1.75,-1.375 z"
+           id="path3907"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 16.263414,-96.859374 -3.125,-0.25 -2.875,0.25 -1.0000001,1.25 -1,1 2.2500001,2.5 0.125,-2.25 1,-0.625 2,1.5 0.625,1.375 1.125,0.375 c 0,0 -1.875,1.375 -1.5,1.5 0.375,0.125 2,1.25 2,1.25 l -0.375,1 -0.125,0.75 1.5,1.625 1.5,1.125 0.625,1.5 1.75,-0.75 1.625,0.25 1.25,1 0.375,1.5 0.875,0.375 1.25,0.75 1.25,0.875 1.375,1 1.375,1 1,0.125 -1,-2.25 -0.75,-0.5 -1.75,-1.375 -1,0.625 -0.375,-2.125 -1.625,-2.875 -2.875,-1.875 -2.875,-6.625 0.5,-1.375 2.125,0.875 1,-0.875 3.75,0.875  [...]
+           id="path3909"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 25.638414,-113.10937 -1.125,0.25 -0.5,2.25 -1.75,0.375 -1,3 -1,1.625 1.125,2.125 1.75,0.375 3.875,3.749996 5.75,0 2.375,-1.374996 2.75,0.125 3.125,-1 2,-1.625 1.75,-4.875 1.25,-1.5 2.25,-1.125 0.75,-1.625 -2.5,-3.75 -1.5,0.25 -5,-0.375 -1.75,1.25 -1.625,0.75 -3.5,0.625 -1.25,2 -2.5,0.25 -2.875,-0.125 -0.875,-1.625 z"
+           id="path3911"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 9.7634139,-97.109374 -0.375,-1.75 -1,-2.124996 0.75,-2.5 2.1250001,0.375 2.125,0.375 2.875,-1.25 1.625,-1.125 2.375,-0.5 1.125,2.125 -1.875,1.625 -2.875,4.124996 -0.375,0.875 -2.5,-0.125 -2.875,0.125 -1.1250001,-0.25 z"
+           id="path3913"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 24.513414,-112.85937 -1,-0.875 0.375,-1.75 -0.25,-1.375 -0.25,-1.375 1,-1 3,-0.375 2.875,-1.875 0.875,-1.25 0.125,-1.5 1.75,2.125 2.125,-0.875 1.75,1.375 1.875,-0.25 1.375,0 2.25,-0.375 1.375,-0.625 1.75,1.25 1.75,1.375 -0.75,4.125 -1.5,0.25 -2.75,-0.375 -2.25,0 -1.75,1.25 -1.625,0.75 -3.5,0.625 -1.25,2 -5.375,0.125 -0.75,-1.25 -1.25,-0.125 z"
+           id="path3915"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 53.388414,-135.48437 -0.375,-1.75 0.5,-3 -1.625,-0.875 0.625,-2 1.5,-1.75 0.125,-3.25 -1.25,-4.125 3.25,-0.75 0.625,-1.625 3.125,-1.875 1.125,0 1,-4.125 4,-3 -0.375,-2.375 1.375,-1.25 1.75,-0.875 2.5,0.125 1.125,-2 1,-1 0.625,0.875 5.375,0.5 1.125,1.833 3.5,-0.5 1.333,6.333 1.5,5 2.333,2.333 0.167,2 2.042,2.125 -0.875,3.042 -3.333,-0.167 1.5,6.5 -3.917,1.125 -1.75,3.375 -0.25,2.5 -2.125,-1.125 -2.625,-0.625 -1.625,-0.625 -1.375,0.75 -5.25,-0.75 -2.375,-0.75 -2.75,0.125 -7 [...]
+           id="path3917"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 71.138414,-184.35937 -1.375,1.625 -2.375,-0.375 -2.25,0.5 -4.5,-3.375 -4,0.875 -0.875,0.125 0,-2.5 -1,0 -0.625,1.625 -1.5,-1.875 -1.125,-1.875 -1.375,0.625 -0.375,1.625 -2,1.125 -1.25,0.5 -0.625,1.5 -0.75,-1.625 -0.625,-1.75 0.75,-1.375 1.625,0 0.375,-1.25 -0.75,-1.25 -1.5,-0.25 0.875,-0.75 2.375,-0.875 1.125,1.25 -1.25,1.75 -0.125,0.875 1.25,-0.125 1.25,-0.125 0.875,-0.875 -0.375,-1.375 -0.875,-0.5 1.375,-1.625 1.375,-1.5 1.75,-0.375 2.25,-1.875 0.75,0.625 2.875,0.125 1. [...]
+           id="path3919"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m 54.138414,-175.85937 -3.25,0.25 -1.125,-2.625 -1.75,-2.125 -1,-1.5 -3.875,1.875 -0.875,2.5 -0.375,2.5 -1.125,2.25 0,3.25 4,-2.5 9.875,-0.375 1.875,0.375 1.5,-0.5 1.625,1.75 3,1 3,3.75 1.375,-1.25 1.75,-0.875 2.5,0.125 1.125,-2 1,-1 -0.542,-1.125 0.042,-4.25 -0.042,-4.083 -0.833,-3.167 -0.875,-0.75 -0.875,1.625 -2.875,-0.375 -2.25,0.5 -4.5,-3.375 -4.875,1 -0.375,6 -0.375,2.625 -0.875,0.5 z"
+           id="path3921"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 40.513414,-168.23437 0.625,2 0.375,2.125 1.125,0.5 1.5,1 2.625,1 2.75,0.5 0.375,2.375 -0.125,1.625 1.875,1.375 0.875,1.75 0.375,1.75 3.25,-0.75 0.625,-1.625 3.125,-1.875 1.125,0 1,-4.125 4,-3 -0.375,-2.375 -3,-3.75 -3,-1 -1.625,-1.75 -1.5,0.5 -1.875,-0.375 -9.375,0.5 -4.5,2.375 -0.25,1.25 z"
+           id="path3923"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 30.513414,-125.98437 -3.125,-0.625 0.875,-1.75 -0.75,-0.875 -1.375,0.75 -2.5,-0.375 -0.5,1.375 -1.625,-1.5 0.25,-1.125 -3.125,-0.125 -2,-0.375 -0.75,-1.25 -0.875,-0.75 0.125,-2.875 -1,-2.25 -0.5,-4.875 -0.25,-1.25 -1.25,-1.75 0.125,-1.625 0.125,-1.25 -1.5,-2.625 0,-0.75 0.75,-1 1.5,0.625 -0.4566,1.08316 0.4163,0.91632 -0.2097,-0.87448 0.75,-2.125 2.5,-1 3.125,-0.875 1.875,-1.75 2.625,-1.25 3.875,-0.5 2.25,-0.25 1.5,1.375 -1.5,0 0.875,1.25 2.125,1 0.875,0.125 2.625,-2 2.62 [...]
+           id="path3925"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff"
+           sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
+        <path
+           d="m 21.638414,-117.98437 -1.125,-0.125 -1.5,-0.875 -3.5,-0.5 -0.25,1.75 -2.125,1.125 -2.75,-1 -5.0000001,-4.75 -1,-1.75 0.125,-1.75 -1.125,-2.375 2.625,-0.25 2.625,-1.5 2.1250001,-1.25 1.25,-0.125 0.375,-1.75 0.875,0.125 1.375,1.625 0.375,-1.25 1.125,1.375 0.5,0.625 5.125,0.5 -0.25,1.125 1.625,1.5 0.5,-1.375 2.5,0.375 1.375,-0.75 0.75,0.875 -0.5,1.875 2.75,0.5 0.75,1.75 -0.125,1.5 -0.875,1.25 -2.875,1.875 -3,0.375 -1,1 -1.75,0.25 z"
+           id="path3927"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 9.2634139,-116.35937 -3,2.75 0.5,2.125 -0.625,1 -3,-0.25 -2.62499997,1.125 -1.25,-0.25 -0.75000003,1 -1.875,-0.75 -2,0.25 -1.125,0.25 -1.375,0 0,1.625 0.75,0.625 1.125,0.5 0.875,-0.125 1.375,0.625 -0.125,0.75 1.75,0 2.00000003,-0.625 1.62499997,-0.5 1.125,-0.875 1.25,0.125 0.875,1 0,1.25 1.75,0.125 2,0.5 1.125,0.625 3.7500001,0.75 3.25,-1.5 1.25,-0.875 2,-0.375 1.375,-1.75 1,-3 1.75,-0.375 0.5,-2.25 -1,-0.875 0.375,-1.75 -0.5,-2.75 -1.75,0.25 -1.125,-0.125 -1.5,-0.875 -3. [...]
+           id="path3929"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 17.38836,-63.73438 -1.25,0.25 -1.625,-0.875 -0.5,-1.75 -0.875,-1.125 -1.5,0.625 -1,-1.5 -0.125,-1.375 -1.5,-1 -2.75,-0.125 -2.25,-1.25 -2,-2.25 -1.5,-1.25 -1.625,-1.25 -1.375,-1.625 -2.375,-2 0,-3.5 -0.75,-1.5 -0.875,-1.375 -1,-1.125 -0.875,0.25 -1.375,-1.125 -1.75,-0.25 -1.75,0.5 -0.875,1.75 -1.375,-0.625 -0.125,-1.375 -1.75,-0.125 -1.375,-0.75 -0.375,-3.375 -0.75,-1.125 1.5,-2.125 -0.25,-3.5 3.375,-1.25 0.875,0 1.25,-1.875 1.375,1.75 1.125,1.5 0.875,-1.125 -0.375,-1.625 [...]
+           id="path3931"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -10.32064,-70.35938 -1.667,1.083 -1.417,1.167 -0.833,-0.417 -0.833,-0.667 0.167,2.25 0.833,0.5 0.25,2.167 0,1.5 0.583,0.167 -0.833,1.25 0,1.75 0.833,2.083 1.083,0.583 1.5,-1.25 1.667,-0.167 1,-0.75 -0.417,-3.167 0,-2.083 -0.583,-0.667 1.167,-0.5 -0.083,-1.417 -0.667,-1.167 0.083,-1.083 -0.667,-0.75 -1.166,-0.415 z"
+           id="path3933"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -18.153586,-99.526374 -0.583,-0.916996 -0.333,-2 -1.333,-0.667 -1.917,0.667 -0.417,0.583 0.917,-2.333 1.667,-2.833 1.167,-1.667 1.833,-1.167 0.75,-0.333 2.5,0.417 1,0.167 1.5,-1.083 2.3329999,0 1.333,0.167 -0.083,1.083 -0.167,0.917 0.125,1.042 1.375,1.458 1.375,-0.458 1.125,0.542 0.417,1.333 -2.167,2.25 -4.167,0 0.167,1.75 -0.8749999,1.124996 -1.708,-2.374996 -1.083,-0.5 -0.75,1.5 -1.083,0 -2.918,1.331996 z"
+           id="path3935"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -16.903586,-110.69237 -0.167,-2.833 0.667,-2.417 1.583,-1.833 1.083,-2.083 -3.917,-0.25 -2.083,-0.75 -1.583,-0.417 -0.5,-0.917 0.167,-2.833 -0.667,-1.417 -0.417,-1 1.25,-2.167 -1.333,-1.333 -0.583,-1 0.333,-1.75 0.417,-1.833 -0.083,-2.083 -0.083,-1.167 1.667,-0.25 1.333,-1 1,-1.667 0.333,-2 0,-1.833 0.583,-1 -0.417,-1.083 -1.5,-0.417 -0.333,-0.917 1.083,-0.917 1.083,-0.833 2.333,-0.083 0.5,0.583 0.5,1.25 1,-0.167 -0.167,-1.583 0.333,-1 1.25,0 1.417,0.417 0.5,-0.583 -1.083 [...]
+           id="path3937"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -20.153586,-148.94237 -1.667,1 -3.167,-0.167 -2.167,0 0.167,1.833 2.167,1.667 0.333,2.333 -2.167,2.167 -1.167,-2.167 -0.333,-2.5 -1,-1.833 -0.833,1.5 -0.333,2.333 0,2 -1.5,1 0.333,2.167 1.833,0.333 -0.333,0.833 1.333,0.833 1.667,0 1.167,1.5 2.417,2.167 0.583,-3 -0.5,-4.167 2.167,0.083 1.833,-1.25 0.5,-1.417 0.333,-3.833 0.583,-1 -0.417,-1.083 -1.5,-0.417 -0.332,-0.915 z"
+           id="path3945"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -31.320586,-135.77537 -2,0.833 -0.833,0.5 -1,-0.333 -1.667,1.5 -1.333,0.667 1,1.5 1.167,0.167 0.833,1.333 2.333,0.167 2,2.667 0.5,1.5 2.167,-1.333 0.333,1.667 1.667,1.333 1.5,1.5 0.5,-3 1.167,-1.833 1.5,-2.667 -1.917,-2.333 -2.417,-2.167 -1.167,-1.5 -1.667,0 -1.333,-0.833 -1.333,0.665 z"
+           id="path3947"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -21.486586,-121.77537 -1.5,-0.167 -1.667,-0.167 0.5,-3 1.167,-1.833 1.333,1.917 0.167,3.25 z"
+           id="path3949"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -15.028586,-86.942374 c 0,0.76 -0.616,1.375 -1.375,1.375 -0.759,0 -1.375,-0.615 -1.375,-1.375 0,-0.76 0.616,-1.375 1.375,-1.375 0.759,0 1.375,0.616 1.375,1.375 z"
+           id="path3951"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -43.73664,-134.10938 -3.25,0 -1.25,-1.25 2.25,-1.5 1.75,-2.5 1.75,-0.25 0,-4.25 -2.75,-2 -2.75,0.25 -0.5,1.5 -1.25,-1.5 0.5,-2.5 -1,-2 -0.25,-2.25 -2.5,-3.5 -3,-2.75 -1.5,-1.75 -0.75,-5 -3,-3.25 -1.5,0.25 -1.5,0 1.25,-1.75 1.25,-0.25 -0.75,-2.5 1.75,-1.5 1,-3.25 1.5,-1.5 -0.75,-2.5 -5.5,0 -3,0.75 -0.5,-2 1.75,-2.25 2.5,-2.25 -0.25,-2.25 -2.167,0.5 -2,0.667 -3.333,0 -1,0.833 0,2.167 -1.833,1.333 0.167,1.833 c 0,0 -1.833,0.333 -1.5,1 0.333,0.667 0.5,2.833 0.5,2.833 l -2.333 [...]
+           id="path3953"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -54.82064,-207.27538 -1.833,1.333 0,2.167 -1.667,1.167 1.833,1 -0.167,1.5 1.833,-3 0.667,-2.5 -0.666,-1.667 z"
+           id="path3955"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -62.82064,-194.27538 -1.667,0.5 0.333,1.667 2.833,-0.167 -1.499,-2 z"
+           id="path3957"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -78.98664,-161.44238 -1.167,0.333 -0.833,0.167 -0.833,1.5 -1.333,1.5 -1.5,0 0.667,2.167 1.833,1.667 2.333,-1.5 0.667,-0.667 1.333,1.5 2.5,0.833 1,-1.5 -0.833,-2.333 0,-1.667 -1.5,-2 -2.334,0 z"
+           id="path3959"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -70.153586,-155.27537 -0.667,2.5 2.667,-2 -0.667,-1.333 -1.333,0.833 z"
+           id="path3961"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -77.861586,-140.48437 0,-1.875 1.625,-2.75 -0.125,-2 -0.75,-2.25 0.125,-2.75 1.667,-1.833 -2.5,-0.833 -1.333,-1.5 -0.667,0.667 -2.333,1.5 -1.958,-2 -0.542,-1.833 1.5,0 2.167,-3 -0.375,-1.667 -1.875,0 -1.375,0.75 -2.375,0.5 -1.125,1.5 0,2.125 1.75,0.25 0,1.375 -1,0.625 -0.5,1 -1.75,-0.25 -1.5,-0.375 -1.25,0.125 -0.5,2 -1.25,2 0.25,1.875 1,1 1.375,0.75 1.75,0.5 -1.5,1.625 -0.625,2 2.625,0.125 -4.25,1.125 -0.5,1.75 -1.25,0.5 1.875,0.75 -1.875,1.125 1.125,1.125 1.875,-1.125 - [...]
+           id="path3963"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 69.138414,-204.73437 -2.75,-0.125 -4.25,0 -2.875,0.625 -2,1.25 -1.875,1.25 -2.875,1 -3,0.625 -3.5,-1.25 1.5,-2.125 -1.5,-1.25 -2.5,-1.625 -1.75,-0.625 0.25,-3 0.875,-1.25 0,-2.375 0,-2.75 -0.875,-2.875 -0.25,-1.75 0.125,-1 -0.75,-1.75 0.625,-2.875 2.375,-2.625 0.625,-2 2.25,-2.625 2.5,-2.625 1.75,-1.625 2.625,-2.5 0.75,-2 2,-3.875 2.75,-0.5 0.25,-0.875 -0.5,-2.5 0.25,-2.625 -1.625,-2.25 -1.75,-1.5 -1.5,-1 -1,-3 -0.5,-1.625 0.875,-3.875 -1.125,-2.5 -0.125,-3.375 0.875,-2.6 [...]
+           id="path3969"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m 40.013414,-293.60937 -2.75,0.5 0,2.75 -0.5,2 0.5,2 -2,-0.25 -2.75,-0.5 -2.25,-1.25 -1.25,2.25 -0.5,3.75 -3,1 -2.75,1.5 -0.75,4 -1.5,2 0,2.75 -2.5,4.75 -1.5,4 -1.5,2.5 -2.25,0.25 -0.75,8.5 -2,4.25 -1.2500001,3.25 3.0000001,2.5 -1.5,2 -4.7500001,0.25 -1.5,3.5 -0.5,4 -1.5,3.75 1.5,4.75 -0.25,4.25 1,4.5 0.5,2.5 -0.5,1.75 0.25,5.25 -0.75,4 -2.625,3.625 -0.62499997,4.5 -2.37500003,-1.375 0.5,4.125 0.37500003,3.125 0.75,3.25 1.125,1.625 0.49999997,2.375 0.875,1.375 1.625,3.375 1 [...]
+           id="path3971"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m 32.388414,-183.48437 -2.5,1 -2.125,1.75 0.375,4.125 0.625,1.5 2.5,-4 0.125,-1.625 1,-2.75 z"
+           id="path3973"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 23.138414,-178.85937 -1.625,3.375 -0.875,5.125 2.375,-4.375 0.125,-4.125 z"
+           id="path3975"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 89.17936,-300.60938 -3.292,-0.375 -1.875,1.542 -3.333,-0.667 -1,2 -2.833,1.667 -1,3.333 -0.958,-0.25 0.375,-2.875 1.125,-2.75 0.625,-2.875 -2.25,-0.625 -3.125,-3.5 -3,1.125 -2.625,0.25 -2.75,3.5 -0.875,3.75 -0.125,2.25 -2.375,5.875 -2.125,1.5 -3.625,-2.375 -0.875,2.125 -2.625,0 -3.625,-1.25 -0.875,-2.75 -1.5,-3.125 -1.375,-1.875 -1.25,0 -0.875,4 -1.125,-0.625 -2.75,0.5 -0.125,3.125 -0.375,1.625 0.5,2 -4.75,-0.75 -2.25,-1.25 -1,1.75 -0.75,4.25 -5.75,2.5 -0.75,3.625 -1.5,2  [...]
+           id="path3977"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m 48.17936,-491.27537 -2.333,7.33299 -4.667,-1.333 -7,-5.66699 -4,8.99999 -2.333,-1.667 2.333,7.333 -0.667,3 8.333,0 5.333,-1 -5.333,4.333 -1,1.667 3.667,4.667 3.667,-1 6,3 0.333,2 7.333,-6.333 3.667,-5 5.333,-6 -3.333,-6.667 -5,0 -5.667,2 -1.667,-4.33299 -2.999,-5.333 z"
+           id="path3979"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m 19.84636,-480.60938 -2.667,6 1.333,8.667 0.333,9.667 -4.667,-10.667 -2,-6.333 -3.333,5.333 0.333,4.333 -3,-4.667 2.667,-3.333 0.333,-6.333 -7,3.333 -3.333,-1 -3.667,5 3.667,6 -1,4.667 3.667,-3 -0.333,9.667 -1.667,2.667 c 0,0 4.333,8 5,9 0.667,1 4,5.333 4,5.333 l 5,-5.333 1,-7.667 3.667,-1.667 -1.667,7 3.667,-4.333 0.667,4 1.667,3 -6.333,2 -2.667,6 c 0,0 -5.667,-1.333 -5.333,0 0.334,1.333 2,7.333 2,7.333 l 7.333,-3 4.667,-0.333 -8,3.333 4.333,4 -7.667,-0.667 0.667,5.667 5, [...]
+           id="path3981"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff" />
+        <path
+           d="m -87.98664,-67.98438 -0.375,3.875 -1,2.5 -1,2.875 -0.125,2.75 0.875,1.125 1.75,-0.625 -0.5,2.5 -0.125,3.375 -0.875,1.875 2.875,0.25 2.75,0.25 2.5,-1.25 0.25,-3.875 1.5,-1.375 -1,-1.5 0.5,-3.75 -1.5,-2.5 1.75,-0.875 0.875,-2.75 0.25,-2.625 -0.125,-3.125 2,-1.125 0.5,-1 -1.25,-1.25 -0.125,-1.125 -1.375,-0.25 -1.625,0.625 -4,-0.25 -0.375,-1.75 -2.75,2.5 -0.375,2.5 0.25,2.5 -0.125,1.5 z"
+           id="path3985"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -161.73664,-51.85938 -2,0.75 3.125,1.75 1.375,-1.875 -2.5,-0.625 z"
+           id="path3989"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -56.15364,-84.94238 -1.333,2.333 -3.75,-0.25 -3.5,-0.5 -2.75,-0.25 -2.5,0.5 -8.5,-0.5 -3.75,-0.5 -1.75,-1 -2.375,0.75 -0.5,1.125 -3.75,0.5 0,2.375 1.25,1.25 1.25,1.625 0.25,2.625 2.875,-2.125 0.375,1.75 4,0.25 1.625,-0.625 1.375,0.25 0.125,1.125 1.25,1.25 -0.875,1.25 -1.625,0.875 0.125,3.125 -0.25,2.625 -0.875,2.75 -1.75,0.5 1.5,2.875 -0.5,3.75 1,1.5 -1.5,1.375 -0.25,3.875 c 0,0 1.5,0.125 2.25,1.125 0.75,1 1.75,2.375 1.75,2.375 0,0 -0.375,2.125 0.875,2.625 1.25,0.5 2.125, [...]
+           id="path3991"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -36.73664,-63.35938 c -0.5,0.25 -3.125,1.625 -3.125,1.625 l -0.5,1 c 0,0 1.375,0.25 1.75,0.5 0.375,0.25 1.75,1.125 1.75,1.125 l 1.875,-2.125 -1.125,-0.75 -0.625,-1.375 z"
+           id="path3993"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -33.98664,-63.48438 2.125,1.25 1.125,-1.375 -1.875,-1 -1.375,1.125 z"
+           id="path3995"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -43.98664,-59.10938 -1.375,2 1.625,1.625 1.125,-2.5 -1.375,-1.125 z"
+           id="path3997"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -111.23664,-4.35838 -1.75,3.75 2.5,-0.5 0.25,-2.625 2.25,-1.75 -0.875,-1.375 -1.625,1.375 -0.125,1.125 -0.625,0 z"
+           id="path3999"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -121.36164,-3.23338 -1.75,1.375 -1.25,1.125 1.875,1.125 1.875,-1.875 -0.75,-1.75 z"
+           id="path4001"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -118.23664,-0.98338 -0.625,2.125 1.5,0.875 1.125,-2.125 -2,-0.875 z"
+           id="path4003"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -128.23664,-5.35838 -0.5,2.25 1.75,0.375 0.875,-1.875 -2.125,-0.75 z"
+           id="path4005"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 58.679414,-18.775374 -2.917,-1.583 -4.5,-0.75 -1.5,-2.25 -4.5,-1.75 -5.75,0.5 -2.5,3 0,4.5 -1.25,3 -3.5,2.5 -3.25,-2.75 -9.25,-1.75 -3.5,-1.75 0,-3.25 -4.5,-2.25 -4.5000001,-1 -3.5,0 -3.49999997,-1.25 -0.5,2.5 -5.50000003,3.5 -0.25,5.75 -2.75,0.5 -0.25,1.75 1,3.0000001 1.5,3.25 -0.5,3 0.25,3.00000005 0,4.24999995 -2.25,2.75 2.25,2.25 2.25,5.9999999 2.75,0 3,3.25 1.5,2 6.25,1.5 2.2500001,2 8.25,-3.25 34.25,17.75 0.75,-2.25 4.25,0.5 -0.083,-9 0.167,-35.4999999 -0.833,-3.750 [...]
+           id="path4007"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -8.7365861,-13.358374 -1.7499999,-8.5 -3,-2.25 -0.75,-2.25 -2.5,-5.25 3.25,-4.75 -0.25,-7.5 -0.5,-1.5 0.5,-0.75 2.25,-1 1.7499999,-1 3,-0.5 1.25,1.75 2.5,1.25 -0.75,1.75 -0.25,2.5 2.25,3.25 -1.25,2.25 -2.5,2 -2.25,1.75 1.75,1.5 3,-0.5 1,1.75 0.25,1.5 -0.25,1.75 2.25000003,0.5 -0.5,2.5 -5.50000003,3.5 -0.25,5.75 -2.75,0.5 z"
+           id="path4009"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -35.736586,41.391626 10.75,-3.25 26.7499999,-18 -3.5,-4.25 -2.75,0 -2.25,-5.9999999 -2.25,-2.25 2.25,-2.75 -0.25,-7.25 0.5,-3 -2.5,-6.2500001 0.25,-1.75 -1.7499999,-8.5 -3,-2.25 -3.25,-7.5 3.25,-4.75 -0.25,-7.5 -0.5,-1.5 -2,-1.25 -3.5,-0.5 -3,0.25 -3,0.5 -4.25,0 -3.25,-0.75 -3.25,1 -3.75,0.75 -3.75,0.5 -3.25,1 -3.5,3 -3.5,0 -4.25,3.75 1.75,3 0.75,7.75 1.75,1.25 -0.5,3 -5.75,1 -1.75,1.5 -3,0.75 0.25,3.25 -5.5,3 -2.25,2.7500001 -3.75,1.25 -1.5,2 -2.25,-1 -4.5,2.5 -2.75,1.5  [...]
+           id="path4011"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -87.736586,0.14162615 -18.500004,-0.25 6,-2.50000005 2.750004,-2.5 3.75,-1.5 1,-5.2500001 0,-5.5 1.5,-3 1.75,-1.75 -0.5,-1.25 3.5,-4 3.5,-1.75 4.25,-2.5 1.75,-3.75 1.25,-5 1.25,-0.5 2,2.25 2,1.25 3,-0.25 2.25,0.25 2.75,0.25 4,0 1.75,3 0.75,7.75 1.75,1.25 -0.5,3 -5.75,1 -2.5,1.75 -2.25,0.5 0.25,3.25 -5.5,3 -2.25,2.7500001 -3.75,1.25 -1.5,2 -2.25,-1 -7.25,4 -0.25,3.75000005 z"
+           id="path4013"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -122.73659,31.391626 16.75,-0.75 -1,-6.75 1.5,-2.5 3.5,-0.5 0.5,-12.2499999 14.000004,0 -0.25,-8.49999995 -18.500004,-0.25 -1.75,3.74999995 -1.5,2.5 -3,1.25 -0.75,3.4999999 -1.25,3.25 -2.5,3 -2.75,3.25 -1.5,5.5 -1.75,2 0.25,3.5 z"
+           id="path4015"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -92.236586,58.391626 2.5,-1.25 2.25,0.5 15.25,-0.25 0.25,-3 -1.5,-0.75 -3.75,-40 5,-0.25 -15,-10.4999999 -0.25,5.75 -14.000004,0 -0.5,12.2499999 -3.5,0.5 -1.5,2.5 1,6.75 -16.75,0.75 0,1.75 1,4 -0.25,2 0.75,2.25 1.5,1.75 0,3.5 -0.75,3.5 -1,3.25 4,-0.25 3.25,-0.25 2,1.75 2.75,0.5 1.75,2.25 4.25,4 2,-1 2.250004,-3 2.25,1.25 2.25,-1 2.5,0.75 z"
+           id="path4017"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -102.23659,63.141626 2.750004,2.25 0.75,2.25 0.5,4 4.5,2 2.5,-2.25 2,0 2.75,3.25 -0.25,3 3.75,1.75 3.75,0.75 2,-2 c 0,0 0.25,2 1,2 0.75,0 2.5,-1.5 2.5,-1.5 l 0.25,-2.75 1,-2.5 2.75,-1.75 1.5,-3.75 1.75,-2 2,0.25 5.25,-2.75 5.75,-4.5 5.75,0 7.25,0.5 6,-1.25 1,-2.5 2,-5.25 0.25,-0.75 0.25,-9.5 -4.75,1.25 -0.25,-3.75 -5.25,-2 -1,-1.75 -30,-20.5 -5,0.25 3.75,40 1.5,0.75 -1,3 -15.5,0 -1.25,-0.25 -3.25,1.5 -1.75,-1 -3,1.25 -1.5,-1.5 -2.250004,3 -2,1 1.25,1.75 z"
+           id="path4019"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -47.986586,60.141626 0.25,4.5 2,2 0.75,2 5.25,2 0.25,1 1.5,0.25 3,2.5 0.5,-3.75 3,-3.5 1,-2.5 8.75,0.5 2,2.75 5,-0.75 5.4999999,2.5 5.5,-2.25 4.75,-0.75 3.5,0.75 4.25,-2.75 2.0000001,-5 6,-8 0.25,-11 2.25,-4.5 -3.25,-6.25 -0.75,-6.25 -4,1 -2.2500001,-2 -6.25,-1.5 -1,-1 -26.7499999,18 -6,2 -0.25,9.5 -3.25,8.5 -5.25,1.25 -8,-0.5 -0.25,1.25 z"
+           id="path4021"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 9.2634139,65.391626 2.2500001,2.75 1.75,1 1.75,4.75 0.5,4.5 1.75,2.25 -6,1 0.5,3.25 3.75,2.25 2.25,4.5 4,0.25 1.5,0.5 8.5,-2.25 0.5,-3.5 5.25,-0.75 3.25,-2.5 2.25,-3.25 2.75,-2.75 4.5,-0.5 -2.25,-2.25 -0.5,-4.75 -3,-1 2.5,-3.25 -0.5,-2.75 2.75,-3.75 1,-3 3.5,0.25 0,-17.25 -34.25,-17.75 -4.25,2.25 0.75,6.25 3.25,6.25 -2.25,4.5 -0.25,11 -6,8 -2.0000001,5 0.5,0.75 z"
+           id="path4029"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 108.51341,62.391626 2.75,-0.25 2.125,1.375 1.75,-1.75 1.75,1.375 3.25,-0.75 1.375,1 2.62491,0.75 2.875,2.5 1.75,1.375 1.75,-0.125 3.625,2.5 1.875,-0.5 -3.625,-3.375 -2.5,-2.375 -3.75,-3.375 -2.49991,-1.125 -0.625,-1.5 -1.375,-0.5 -1.375,-4 -1.5,-5.375 -1.75,-2.125 -3.5,2.75 -1,0.625 -0.75,0.5 -2.875,9 -0.375,3.375 z"
+           id="path4033"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 103.51341,102.14163 2.625,0.75 0.375,3.25 4.75,0 4.5,3.5 6.75,0.875 0.875,-2 3.49991,-2.25 1.125,1.875 2.875,0.5 2,-1.375 2.25,-0.375 3.375,-2.375 6,-0.375 13.875,-13.500004 -4.625,0.25 -13.625,-5.375 -4.375,-4.75 0.125,-3.75 -2.375,-0.125 -1,0.75 -0.625,-4 1.125,-3.5 -2.5,-2.25 -1.75,0.125 -4.75,-3.5 -2.49991,-1.125 -1.375,-1 -3.25,0.75 -1.75,-1.375 -1.75,1.75 -2.125,-1.375 -2.75,0.25 -1,6.5 -2.25,0.75 -2.75,4.75 -0.5,3.5 -3.249996,0.75 -1.75,9.5 -2.375,0.5 0,3 2.375,1 4 [...]
+           id="path4035"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 137.38832,75.766626 -1.5,1.25 -2.375,-0.125 -1,0.75 -0.375,-3.625 0.875,-3.875 1.125,0.25 1.875,-0.5 1.375,2.375 -0.125,2.75 0.125,0.75 z"
+           id="path4037"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 138.38832,76.891626 1.625,2.125 3.25,1.75 3.5,-0.375 2.5,-1.5 3.375,0.375 2.875,-2.125 2.25,0.25 3.375,-0.5 5.375,-0.625 2.5,-2.25 3,0.5 -0.5,1.75 0,3.125 1.125,1.125 -2,0.75 -0.25,2.5 -0.75,3.125 c 0,0 -1.375,0.125 -1.375,0.5 0,0.375 -2.625,4.375 -2.625,4.375 l -2.75,5 -1.875,4.500004 -3,2.875 -0.375,2.5 -9.125,8.875 -4.75,2.625 -5.875,4.375 -3.375,4.25 -4,5.25 -2.5,-3.875 0.375,-15.875 2.5,-2.125 0,-1.5 2,-1.375 2.25,-0.375 2.75,-2.125 6.25,-0.5 14.25,-13.625004 -4.625, [...]
+           id="path4039"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 99.263414,109.26663 0.625,2.75 1.749996,3.5 0,3.75 -4.624996,5 0.125,5.25 16.999996,9.25 0,2.125 6.5,4.375 2.875,-4.5 3.24991,-6 3.75,-2.75 -2.5,-3.875 0.5,-15.5 2.375,-2.5 0,-1.5 -2.875,-0.5 -1.125,-1.875 -3.49991,2.25 -0.875,2 -6.75,-0.875 -4.5,-3.5 -4.75,0 -0.375,-3.25 -2.625,-0.75 -5.624996,4.875 1.375,2.25 z"
+           id="path4041"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 79.013414,131.26663 3,-1.375 14.75,-0.625 0.25,-5 4.624996,-5 0.125,-3.25 -1.999996,-3.625 -0.5,-3.125 -1.375,-2.25 -3.375,2.375 -9.75,0.75 -1.125,0.125 0.125,4.375 2.125,0.875 -1.125,1.625 -6.125,6.375 0.375,7.75 z"
+           id="path4043"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 76.763414,132.76663 -0.75,2.375 0.75,3 1.25,-0.25 1,0.125 1.125,-2.25 3.625,-0.375 0,-2.875 -1.75,-2.625 -3.125,1.75 -2.125,1.125 z"
+           id="path4045"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 76.513414,139.64163 1.25,5.125 1.75,-0.125 3.875,-3.875 -0.125,-1.875 -0.5,-1.25 1,-2.25 -3.625,0.375 -1.125,2.25 -1,-0.125 -1.25,0.25 -0.25,1.5 z"
+           id="path4047"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 77.513414,146.89163 1,3.5 0.125,2.75 3.25,3.25 c 0,0 1.375,4.625 1.75,5.125 0.375,0.5 4.75,2.875 4.75,2.875 l 4.625,0.875 5.125,1.875 1.375,2.25 0.999996,5.25 3.125,0 3,-0.625 0.75,1.125 6.375,-0.375 1.375,-1.75 1.75,1.25 2.5,-1.25 6.37491,-1.25 -3.49991,-3.625 -0.125,-3.125 -1.625,-3.125 -0.125,-4.375 1.125,-2 -3.5,-2.875 1.25,-3.5 1.375,-3.875 -6.5,-4.375 0,-2.125 -17.374996,-9.5 -14.75,0.625 1.75,2.625 0,2.875 -1,2.25 0.625,3.125 -3.875,3.875 -1.75,0.125 -0.25,2.125 z"
+           id="path4049"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 17.179414,92.391626 -2.333,4 -1.333,2.667 -1,0 1.333,4.000004 2.167,3.833 0.5,3.167 4,3.5 3.167,-5 6.667,0.5 0.833,-2.167 3.167,-4.167 5.333,2.334 8.167,1.833 1.667,-2.667 4,1 2.833,-2 1.5,0.667 3.833,-1.5 2.333,1 2.833,-0.667 3.917,1.667 -0.5,-2.75 -3.75,-3.000004 -1,-3.5 -4.5,-1.5 -1.833,-1.417 -0.917,-2.583 -3,-0.5 -0.5,-2.5 -1.75,-0.5 0,-5 -2.625,-2.25 -0.542,-2.167 -3.667,0.5 -3.833,4.167 -2.167,2.5 -2.667,2 -5.25,0.75 -0.5,3.5 -8.5,2.25 -1.917,-0.667 -3,0.167 -1.166,0.5 z"
+           id="path4051"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -121.31959,55.391626 -0.167,2.666 -2.833,2 2.167,5.334 4.667,0 2.833,-1 2,1.833 2.167,0.333 -0.167,0.667 -3.167,0 -1.667,-0.667 -4.667,1.167 -2.667,0.333 -0.333,3.334 5.5,-0.334 2.5,-1.5 7.667,0.167 3.167,1.167 6.083004,0.75 -0.25,-3.084 -1,-3.166 -2.333004,-1.667 -1.667,-2.333 -4.833,-4.167 -1,-1.667 -2.5,-0.833 -2.417,-1.833 -7.25,0.5 0.167,2 z"
+           id="path4053"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -122.15359,72.224626 2.833,1 1.833,0.833 0.833,3.834 1.5,-1.334 2,-2.333 2.833,-0.5 -0.167,-1.833 1.333,-2 -6,-0.334 -2.5,1.5 -5.5,0.334 1.002,0.833 z"
+           id="path4055"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -122.15359,65.391626 -0.667,2.666 6.833,-1.5 2.667,0.5 2.667,0.167 0.167,-0.667 -2.167,-0.333 -2,-1.833 -2,1 -5.5,0 z"
+           id="path4057"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -115.81959,78.391626 1.5,-0.834 1,2.334 2.167,2.333 1.833,1 0.667,2 2.667,0.333 1.667,-2.333 1.5,-1.5 2,0.333 1.667004,-1.333 0.833,0.5 2.167,5.167 -0.333,2.5 2.5,-1 1.833,0.166 1.5,3.334 0.167,1.5 2,0 2.167,-1.5 1.5,-1.5 0.333,-2 1.667,-0.667 -1.167,-4.167 -0.667,-2.333 1,-1 -3.083,-2.083 0.25,-3 -2.75,-3.25 -2,0 -2.5,2.25 -4.5,-2 -6.083004,-0.75 -3.167,-1.167 -1.667,0.167 -1.333,2 0.167,1.833 -2.833,0.5 -3.5,3.667 0.831,0.5 z"
+           id="path4059"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -100.48659,96.391626 2.000004,-3.667 2.333,-1.667 1.167,-1.166 0.167,-1.334 -1.5,0 0.167,-2.166 -2.167,-5.167 -0.833,-0.5 -1.833004,1.667 -1.833,-0.667 -1.5,1.5 -1.667,2.333 -2,0 0,2.667 1.167,2 1.333,0.667 0.667,2.666 4.332,2.834 z"
+           id="path4061"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -71.486586,80.724626 3.5,1.833 0.833,-0.833 3.5,0.333 1.833,2 -0.167,-7.166 10.333,-0.334 1.5,-0.333 2.167,0.667 2.833,0.166 1.833,-1.666 2.333,-0.334 1.667,-2.666 -0.417,-1.75 -5.25,-2 -0.75,-2 -2,-2 -0.417,-5.75 -5.333,0 -5.333,4.5 -5.667,2.75 -2,-0.25 -1.667,1.666 -1.667,4.5 -2.667,1.334 -1,2.5 -0.25,2.75 2.253,2.083 z"
+           id="path4063"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -87.320586,97.224626 3.333,1.333 2.667,2.334004 -0.833,4.333 -0.5,1.5 -6.5,-2.333 -3.167,-3 -3.333,-2.667004 -2.333,-1.167 -2.500004,-1.166 2.000004,-3.667 3.5,-2.833 0.167,-1.334 2.667,-0.5 1.5,3.334 0.167,1.5 2,0 1.667,-1 0.833,2.833 -0.167,1.5 -1.168,1 z"
+           id="path4065"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -79.820586,106.39163 6.333,-3 7,-0.167 3.5,-0.333 1.333,-0.334 -0.167,-2.5 -1.667,-4.000004 1.667,-4.833 1,-3.833 -1,-3.334 -1.333,-1.833 -4,-0.5 -0.833,0.833 -5.75,-3.916 -2.5,1.5 -1,-2 -2.417,2.083 -4,-0.5 -1,1 1.833,6.5 -1.667,0.667 -0.333,2 -2,2 0.833,2.833 -0.167,1.5 -1.167,1 6,3.167004 -1.333,6.333 2.835,-0.333 z"
+           id="path4067"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -48.486586,79.724626 -0.333,4.334 1.167,-0.167 0,4 0.5,4.833 0.333,3 2.333,2.834 -1.5,1.666004 -4.167,0.5 -3.833,2 -3,1 -2.5,1.167 -1.667,-1 -3,-0.833 2.5,-0.501 -0.167,-2.5 -1.667,-4.000004 2.667,-8.666 -1,-3.334 -0.167,-7.166 10.333,-0.334 1.5,-0.333 0.667,1.667 1.001,1.833 z"
+           id="path4069"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -46.153586,78.891626 2.5,3.833 1,5.167 0.667,7.667 0.5,2 -3,1 -2.333,-2.834 -0.833,-11.166 -1.167,-0.5 0.5,-4 -1.833,-3.834 4.167,1 -0.168,1.667 z"
+           id="path4071"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -37.486586,97.058626 -0.167,-11.834 3,-3.333 1,-3.5 0.5,0 -1.833,-4 -3,-2.5 -1.5,-0.25 -1,3.25 -2.833,0.5 -2,2.167 -0.667,-0.334 -0.167,1.667 2.5,3.833 0.833,4.167 0.833,8.333 0.5,2.334 4.001,-0.5 z"
+           id="path4073"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -31.320586,97.558626 3.833,3.666004 0.833,5.334 5.833,0.166 5.833,-1.333 1.373,-0.823 1.961,-1.177 1,-4.000004 5.4999999,-5 4.66700003,2.333 4.16699997,-7.833 2.167,-2.667 1.667,-3.5 1.333,-3 1.5000001,-3 2.333,-1.5 -0.5,-3.333 -0.833,-4.167 -2.8330001,-2.5 -4,2.167 -3.5,-0.75 -4.667,1.25 -5.5,2.167 -5.5829999,-2.917 -4.583,0.583 -2.417,-2.583 -8.75,-0.5 -1,2.5 -3,3.5 -0.5,3.75 1.667,3.333 -1.333,4.167 -2.5,3 -0.333,12.167 6.165,0.5 z"
+           id="path4075"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -7.9865861,110.89163 0.167,4.5 21.1670001,0.167 4.333,1.166 2.667,1.334 -0.167,-2.167 0.333,-2.333 -4,-3.5 -0.333,-2.667 -3.667,-8.333004 1,0 4.25,-7.417 -2.083,-4.083 -3.917,-2.667 -0.5,-3.25 6,-1 -1.75,-2.25 -0.667,-5.167 -1.583,-4.083 -1.583,-0.583 1,6.666 -2.333,1.5 -4.5000001,10 -2.167,2.167 -4.16699997,7.833 -4.16700003,-2.166 -5.9999999,4.833 -1,4.000004 -2.333,1.5 1,2 0.833,-0.667 1.167,2.167 2.6669999,-0.667 -0.667,2.334 1,0.833 z"
+           id="path4077"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -0.48658607,115.55863 -0.66700003,5.666 -4.833,-0.5 -0.667,1.334 -1.5,-1 -1.667,-0.667 2,-5 7.33400003,0.167 z"
+           id="path4079"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 7.5134139,115.55863 0.333,4.5 4.6670001,-0.667 -0.167,2.5 -1.167,1.833 -0.667,1.834 0.5,1.833 2.167,0.667 -0.5,6 -1.667,1.833 -2.0000001,-0.667 -2.5,0 -2.5,-2 -0.167,2.5 -2.333,-0.5 -1.33299997,1 0.667,2.5 1.33299997,0.5 -0.833,2.5 -2.16699997,-0.166 -1.16700003,1 -8.4999999,-9 -2.167,-4.667 2.333,-1.333 -0.167,-4.5 2.3329999,-2 1,1 1.167,-1.334 4.833,0.5 0.66700003,-5.666 8.00199997,0 z"
+           id="path4085"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 30.346414,109.05863 -0.167,2.666 -2.167,6.5 -1.667,4.334 0,4.166 -6.833,8 -0.167,6 -4.833,5 -2.167,-2 -2.5000001,1.5 -2,1.167 -1.5,0 -1.5,2.167 -1.833,1.833 0,2.333 3.833,-1.5 1.167,-1.5 2.8330001,1.334 10.833,-0.167 1.5,6.167 3.333,2.666 7.833,-0.166 0.167,-1.834 -0.333,-1.666 5,-0.834 0,2.167 5.5,-0.333 -0.333,2.166 0.833,4 -1.333,3 2.667,4.334 0.167,1.666 7.167,0.834 1.667,0 0.5,1 2.5,-1 2.333,1.833 4.667,1.833 1.667,-1.666 2.833,2.166 1.333,1 1.667,1.667 2.667,2.333 2 [...]
+           id="path4087"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 23.679414,108.55863 6.167,0.5 0.333,2.666 -3.833,11.334 0,3.666 -6.833,8 -0.167,6 -4.833,5 -2.667,-2 -4.0000001,2.667 -1.5,0 0,-1.667 -1.5,-0.166 -3.167,2.5 -1.49999997,-2.334 -2.16700003,-2.166 1.16700003,-1 2.16699997,0.166 0.667,-2.166 -1.16699997,-0.834 -0.667,-2.5 1.33299997,-1 2.333,0.5 0.667,-2.333 1.833,1.333 2.667,0.5 2.0000001,0.667 1.667,-1.833 0.5,-6 -2.167,-0.667 -0.5,-1.833 0.667,-1.834 1.167,-1.833 0.167,-2.5 -4.6670001,0.667 -0.333,-4.5 5.8330001,0 4.333,1 [...]
+           id="path4089"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 53.346414,173.05863 0,3.5 0.333,2.666 -0.5,2 -8,-0.333 0.333,15.5 2.333,1.833 2.167,1.5 0.667,1.334 6.833,-0.334 1.167,1.334 7.333,1.166 6,-5.333 2.333,-0.667 1,-3.5 5,-1.666 -0.5,-1.667 13.167,-4.833 -0.667,-2.334 0.833,-3.166 1.333,-1 0,-5.167 1.833,-2.5 -3.333,-6.125 -4.625,-0.875 -5.708,-3.333 -7,1.666 -1.833,3.334 0.333,2.333 0,3.5 -1.167,2.667 0.667,1.833 2.333,2.5 2.833,-1.167 0.667,4 -0.833,0.5 -3,0 -4.333,-4 -4.167,-3.166 -1.667,1.666 -4.667,-1.833 -2.333,-1.833  [...]
+           id="path4091"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 99.346414,188.05863 0.5,3.666 -0.667,3.5 2.499996,2.834 0.833,1.666 1,-4 1.333,-1.5 0.833,-5.666 -4.5,-5 -1.666996,-3 0.999996,-5.917 -0.999996,-5.25 -1.375,-2.25 -5.125,-1.875 2.833,5.625 -1.333,3 0,5.167 -1.333,1 -0.833,3.166 0.667,2.334 2,1.5 1,1.5 1.667,-0.667 1.667,0.167 z"
+           id="path4093"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 81.346414,192.39163 1.167,2.167 4,0.166 3,1.667 2.333,1 1,3.833 0,4.834 -1.5,1.666 1.5,2.334 0.167,2.833 -2,3.5 -1.5,3.167 -3.667,5.166 2.167,3.334 c 0,0 -1,2.166 -0.333,2.666 0.667,0.5 2.5,7.334 2.5,7.334 l -0.667,3.166 0.333,3.834 2.667,-0.334 -0.333,-2.666 -0.667,-0.167 1,-2.333 4.667,-1.5 4.666996,-3 1,-5.334 0.5,-7.333 -2,-1.333 -0.167,-3.667 -1.999996,-2.667 0.999996,-2.666 3.5,-1.5 2.333,-2.834 2.667,-0.166 0.833,-4 5.167,-2.5 4.833,-1.5 2.333,-2.334 2.83291,-3.333 [...]
+           id="path4095"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 163.17932,177.39163 -2.5,3.833 c 0,0 0,2 -0.5,2 -0.5,0 -4,0.5 -4,0.5 l 0.333,3.5 -1.667,2.334 -1.833,2.166 -3,1.334 1.333,2.5 -3,-1 -4.667,0.833 -1.5,0.833 0.333,1.834 -2.333,2.833 0.333,4.5 1,3.5 1.5,3.333 -1.5,3.167 -1.5,2.333 -1.333,2 -1.667,2.167 0.833,6 2.167,2.167 -1.333,2.666 2.5,3.5 c 0,0 2,1 2.333,1.667 0.333,0.667 2.333,2.333 2.333,2.333 l 2.5,-2 3.333,-0.333 3.167,-3.167 2.333,-8.666 3.5,-12.167 3.5,-9.667 0.333,-4 0.833,-2.666 -0.167,-3.5 0.667,-1.167 1,1.667  [...]
+           id="path4097"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 59.680414,202.72463 0.5,2 1.167,0.834 1.833,4.333 1.167,2 2.833,1 2,1.667 1.5,1.166 0.167,2.5 3.667,2.334 2.167,1.666 4,0.167 5.167,2.333 4.167,-5.833 3,-6 -0.167,-2.833 -1.5,-2.334 1.5,-2.333 0,-4.167 -1,-3.833 -5.333,-2.667 -4,-0.166 -1.167,-2.167 -1,-0.333 -5,1.666 -1,3.5 -2.333,0.667 -6,5.333 -6.335,-0.5 z"
+           id="path4099"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 0.84641393,200.22463 3.83299997,-0.666 3,-0.334 3.3330001,1.5 17.667,0 4.667,1.834 11.667,0.666 5.667,-2.166 6.833,-0.334 2.167,2 -2.167,0 -1.833,0.834 -3.333,2.166 -1.833,-1.666 -8.333,1.333 -0.833,0.333 0,16.167 -4,0.333 0.167,30.834 -2.667,0.666 -0.667,1.167 -4.167,0 -4.167,-0.5 -1.833,-2.5 -1,0 -1.667,2.333 -4.667,-4.833 -2,-5.333 -1.167,-4.667 -0.167,-3.667 -1.167,-4 -0.167,-4.5 0.167,-1.666 -1.667,-3.334 -1.8330001,-2 -3,-7 -1.167,-3.666 -3.5,-3.5 -0.16599997,-5.834 z"
+           id="path4101"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 9.8464139,171.89163 -1,6 -2,3.5 c 0,0 -2.833,2.999 -3,3.666 -0.167,0.667 -1.833,7 -1.833,7 l -1.83299997,5.334 0.667,2.833 6.33299997,-1 3.8330001,1.5 17.667,0 4.667,1.834 11.667,0.666 5.667,-2.166 -0.667,-1.334 -4.167,-2.833 -0.667,-16 8,0.333 0.5,-2 -0.333,-6.166 -6.667,-0.834 -0.167,-1.666 -2.667,-4.334 1.333,-3 -0.833,-4 0.333,-2.166 -5.167,-0.001 -0.333,-1.833 -5,0.834 0.333,1.666 -0.167,1.834 -6.833,0.166 -4.333,-2.666 -1.5,-6.167 -10.833,0.167 -2.8330001,-1.334 -1. [...]
+           id="path4103"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 1.6794139,147.05863 1.333,3.333 2.333,-2.667 1,-1.333 0,-1.667 -1.5,-0.166 -3.166,2.5 z"
+           id="path4105"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 37.513414,236.64163 2.75,3.25 0,3.75 0.25,1.75 6.25,-0.75 0.75,-2.75 3.25,-4 1.25,0.75 5.75,1 3.5,0 2,-4.25 1.5,-0.5 2.25,-5 4.5,-4.25 3,-2.25 2.167,-1.167 -5.833,-4 -0.167,-2.5 -3.5,-2.833 -2.833,-1 -3,-6.333 -1.167,-0.834 -0.5,-2 -2.167,0 -5.167,3 -1.833,-1.666 -9.167,1.666 0,16.167 -4,0.333 0.167,14.417 z"
+           id="path4107"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 45.513414,281.64163 4.5,0 2.5,-0.75 4.5,1.5 2.75,-1.75 2,-1.25 4.5,-0.5 3.25,-2 2.75,-2.5 4.75,-4.25 3.5,-4 5.75,-9.25 4.5,-4.5 1.75,-7.667 -2.667,0.334 -1.333,2.583 -4.75,-0.75 -0.25,-3.5 1.5,-3.25 4.25,0 0.917,-2.083 -1.917,-6.917 -1,-1.5 0.75,-1.583 -2.167,-3.334 -5.167,-2.333 -4,-0.167 -9.667,7.667 -2.25,5 -1.5,0.5 -2,4.25 -5.25,-0.25 -4,-0.75 -1.25,-0.75 -3.25,4 -0.75,2.75 -6.25,0.75 -0.25,-5.5 -2.75,-3.25 0,16.417 -2.667,0.666 -0.667,1.167 -4.167,0 -4.167,-0.5 -1.83 [...]
+           id="path4109"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 73.763414,253.76663 -1.75,1.25 -1.75,0.5 -3,3 0.75,1.875 1.5,2.375 1.75,1.25 0.875,-1.875 2.125,-1 1.75,-0.875 0.25,-2.25 0.5,-1.625 -1.5,-1.375 -1.5,-1.25 z"
+           id="path4111"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 89.513414,242.14163 0.375,-2.5 -4.5,0.375 -1.625,2.75 0,4.125 4.875,0.375 1.208,-2.208 -0.333,-2.917 z"
+           id="path4113"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 121.51336,-84.44238 7.83296,-0.167 3.667,2 6,1.333 2.667,2.167 5.5,0.167 1.833,2.833 4.5,1.167 2.667,2.5 1.833,0.667 2,-2.167 -2,-4.167 -2.75,-4 1,-3.5 -1.5,-0.75 -1.25,-2.5 -2.25,-0.75 2.5,-2.75 2,-5.25 0.75,-2 2,2.25 1.667,-1.583 0.333,-2.5 2,-2.667 -1.167,-2 -7.167,-6.833 -1.667,-2.833 2.5,-13.167 5.167,3.667 0.833,-2.5 -0.833,-2.333 1.5,-2 0.083,-3.25 3.083,0.417 3.833,-2.167 0.5,-1.667 3,1 -0.5,2.167 2.167,-1.5 2.333,0.167 2.667,-0.833 2.833,0.833 3.333,3.333 0.667,3 [...]
+           id="path4123"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 731.51332,-324.94238 -7.333,5 1,4.333 7.333,-2 5.333,0.667 2,-5.333 -4.666,-3.667 -3.667,1 z"
+           id="path4125"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 570.51332,-349.27538 -10.667,-1.333 -5,-0.667 4,-3.667 0.667,-4.333 -4.667,-2.333 1.667,-4.667 4.333,0 -0.667,6.333 1.667,1.333 2.667,-1 4.667,1.667 2.667,4 0.333,5 -1.667,-0.333 z"
+           id="path4127"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 553.51332,-377.94238 -1.667,4 -5.667,-4.667 0,-6.667 -2.333,-3.333 3.667,-5.667 2.667,-5 5.667,3 1,5.667 2,2 2.667,-1.333 -0.333,-5 3.333,-1 6.333,4.667 2.333,1.667 5,1 2,1.667 -3.333,4 -1.667,4 -4,-2 0,-5.667 -5,-2.333 2.333,6.333 1,3 3.333,1.333 -3.333,2 -4.333,-0.333 -3.333,0.333 -5.667,2 -0.667,-3.333 -2,-0.334 z"
+           id="path4129"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 584.51332,-387.94238 2,5.333 1.667,4.333 6.667,4 6,1 2.667,-3.333 -3.667,-4.667 -4.667,-1 -3.667,-2 -7,-3.666 z"
+           id="path4131"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 364.51332,-513.10937 -2.5,9.49999 -12,4.5 -0.5,8.00001 4.5,7.49999 2.5,3.5 -5.5,2 -6.5,-2.5 3,8.5 5.5,-1.5 4,-3 1,2 -5,7 5.5,4.5 2,5 5.5,0.5 3,5 8.5,1 5.5,-4 6,2.5 -4,9.5 -1.5,9 5.5,-2.5 11.5,-0.5 5.5,-6 0.5,-6.5 -6,-6 -4,-3 -1,-5 -4.5,-1 -1.5,7 -0.75,4 -4.75,-2 -2,-5.25 0.5,-6 0.75,-5 -1.25,-5.5 -3.25,-2.25 -2.5,2 -3.5,-3.75 -1.5,-1.5 -8,1.75 -4,2.75 0,3 -2.25,-2.25 0.25,-2.25 2.25,-1.25 3,-2.5 2.75,-2.74999 4.75,0 1.5,-1.25 -0.75,-4.75 2.75,-4.50001 -1.5,-5 -3.75,-1.75  [...]
+           id="path4133"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 243.17932,-413.27538 -5.667,3 -7,6.333 -7.333,5 -5,-1 -6.667,3.333 -5.667,4.667 -6.333,5.667 -1,5 -7,1.667 0.333,6.333 0,5.333 -3.667,3 -3,6.667 3,2 -3.667,4 -0.667,3 -4.333,5 -2.667,3.667 2,4 -2,4.667 -4.333,-0.667 1.333,6 3.667,3.333 1.333,-1.667 3.667,4 -1,2.667 0.667,3 5.667,1.333 4.333,1.333 4.667,-1 2,1.667 1,-2.333 -4,-2.667 -2.333,-4.333 -2.333,-7 -0.333,-5 -0.333,-8.333 4,-3.667 1.667,-5.667 2.333,-6 1.333,-5 2.333,1 1,-5.333 1.333,-4.333 2.667,-0.667 2.667,1.333 [...]
+           id="path4135"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 160.84632,-297.27538 -3.667,3.667 1.333,4.667 6,-1 3,-4.667 -3,-2.667 -3.666,0 z"
+           id="path4137"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 49.26336,-156.10938 -4.125,0.125 -3.625,-1.25 -3.875,0.125 -1.25,0 1.25,-1.375 -0.75,-1.375 2.75,-0.625 0.25,1.25 1.375,-1.125 -0.375,-2.25 1,-0.5 -0.375,-1 1.875,1.25 2.75,1 3.5,1.125 0.25,2 -0.125,1.625 -0.5,1 z"
+           id="path4139"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 228.26332,-516.60937 -4,3.75 -3.25,6.74999 3,4.5 2.75,-3 5.25,-0.5 -2,-5.75 0.5,-5.49999 -2.25,-0.25 z"
+           id="path4141"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 166.26332,-503.10938 -1.75,4.25 -4.5,2.75 -2,-4.75 -10,-0.75 -7,4.5 c 0,0 1,4.00001 1.75,4.00001 0.75,0 5.5,2.25 5.5,2.25 l 0.5,-6.75001 3.25,-1.5 4,2 2.5,1.5 -5,1 c 0,0 -3,2.00001 -2,2.00001 1,0 5,1 5,1 l -1.5,2.75 -5.25,2 3.25,4.49999 3.75,-1.25 -0.25,3.5 3.25,-1.5 c 0,0 1.75,-2.75 1.75,-3.5 0,-0.74999 -0.25,-3.24999 -0.25,-3.24999 l 4.25,0.25 1.25,-4.25 3.5,-1.5 1.75,-4.00001 -5.25,0.25 c 0,0 0.75,-3 1.5,-3 0.75,0 3,-1.5 3,-1.5 l -3,0.25 -2,-1.25 z"
+           id="path4143"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 208.76332,-500.60938 -1.25,4.75 -1,7.75001 7.5,-0.5 c 0,0 2.75,-0.25 2.25,-1.75 -0.5,-1.5 -3,-6.00001 -3,-6.00001 l 3.25,-2 1.25,-3 -4.25,0.5 -4.75,0.25 z"
+           id="path4145"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 185.51332,-507.35938 c 0,0 -0.25,2.75 0.5,3 0.75,0.25 4,0.75 4,0.75 l 2.75,3.25 4,1.75 2.75,0.75 -1.75,-3.5 -5.5,-2.75 -0.25,-1.5 -6.5,-1.75 z"
+           id="path4147"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 197.51332,-521.60937 -2,2 4.25,3.25 3.25,-1.75 -2.75,-2.5 -2.75,-1 z"
+           id="path4149"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 194.01332,-516.35937 -0.5,2 c 0,0 -5.75,0.75 -5,1.25 0.75,0.5 4.75,1.49999 4.75,1.49999 l 3.25,-1.74999 c 0,0 3.5,1 3,0.25 -0.5,-0.75 -1.75,-2.75 -1.75,-2.75 l -3.75,-0.5 z"
+           id="path4151"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 193.51332,-488.60937 -1.75,1.75 c 0,0 -0.5,6.49999 0.25,6.24999 0.75,-0.25 5,0.25 4.75,-0.75 -0.25,-1 -0.25,-2.25 -0.25,-3.25 0,-0.99999 0,-2.74999 0,-2.74999 l -3,-1.25 z"
+           id="path4153"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 198.51332,-490.60937 c 0,0 0.25,3 0.5,4 0.25,1 1.75,4.74999 1.75,4.74999 l 1.75,-4.49999 1.5,-1 -3.5,-2.5 -2,-0.75 z"
+           id="path4155"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 192.51332,-507.85938 c 0.75,1 2,2.75 2.75,3.25 0.75,0.5 3.5,2 3.5,2 l 1.25,-2 -3.25,-3.25 -4.25,0 z"
+           id="path4157"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 211.01332,-507.60938 0.25,2.5 3.5,2 1.75,-3.5 -2.5,-1 -3,0 z"
+           id="path4159"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m 179.51332,-488.35937 -1.5,2.5 c 0,0 -5.25,2.74999 -1.5,2.99999 3.75,0.25 7.25,0.5 7.25,0.5 l -0.5,-3.49999 -3.75,-2.5 z"
+           id="path4161"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -38.15364,-132.60938 -2.5,1.333 -2.333,1.167 -1,3.333 -0.833,1.667 -3.833,1.667 -0.167,2.167 -1.5,0.5 -3.167,-0.167 -1.333,0 -1.667,-1.5 -2.167,0 0.833,2.667 0.833,1.5 0.333,2.667 -2.5,0.167 -2.333,-0.167 -2.167,-1.5 -2.333,0.167 -2.833,1.5 -2.667,0.333 c 0,0 -2.5,0 -1.833,0.333 0.667,0.333 2.167,1 2.167,1 l 1.667,1 -0.833,1.167 2,1.333 1.667,-0.167 2.333,1.5 1,1 1.167,-0.167 1.833,0.167 -0.5,2.167 1.333,1.5 0.667,1.333 2.167,2 1.5,1.667 -0.167,1.167 0.5,2.167 0.5,0.833 - [...]
+           id="path4253"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -9.98664,-81.10938 -0.5,1.667 -1,0 -1.333,1.333 -0.5,1.833 0.833,1.667 1.333,2 1,1.167 1,-2.5 0.5,-1.833 -0.5,-3.167 0,-1.5 -0.833,-0.667 z"
+           id="path4255"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -672.46094,-297.1288 -0.167,95.333 4.667,0.833 2.167,-1.333 2,1.667 0.5,2 6.333,6.333 0.5,2.667 2.167,-2 1,-1.5 1.666,-0.333 0.5,-1.5 3.167,-1 1.667,0.833 0,1.667 6.833,7.5 0.167,2.667 3.5,5.5 1.833,4.5 3.167,4 6.5,4.333 -0.834,1.833 0.167,2.5 -1.167,3 -3.166,2.583 -0.334,1.417 3.5,-1.5 0.667,2.75 -1.167,1.5 1,1.25 0.417,1.917 -2.333,0.167 1.916,2.667 1.667,-1.083 1.167,-0.417 2.416,-1.25 1.084,1.083 -1.667,2.25 -0.75,1.75 0.833,3.417 0.584,-2.583 1.916,-1.25 0.667,3.417  [...]
+           id="path4163"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -407.21094,-170.7958 -2,4.5 1.5,3 3.75,-4.75 -3.25,-2.75 z"
+           id="path4165"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -433.71094,-252.5458 -1.25,4.5 -1.5,10 -2.25,3.5 -1,3.5 6.25,-1.75 0.25,4 4.5,-0.25 2.75,-3.5 3,-3.5 1.25,1.25 3.5,2.25 4,2 4.5,-3.25 -2.5,-2.25 -4,0.25 -1.25,-6 -6.25,-2.5 -3,-4 -3.75,0.25 -3.25,-4.5 z"
+           id="path4167"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -419.21094,-224.7958 -3,1.5 -2.75,-0.5 0,4.75 4.75,0.25 2.25,-4.75 -1.25,-1.25 z"
+           id="path4169"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -409.96094,-218.7958 0.25,2.75 2,3 1.5,-5.25 -2,-0.75 -1.75,0.25 z"
+           id="path4171"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -391.46094,-281.0458 -3.75,1.25 -2,4.75 0.25,4 1.75,1.75 5.5,-0.75 1.5,-5 0.5,-4.25 -3.75,-1.75 z"
+           id="path4173"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -419.46094,-300.5458 5.5,0 4,3.5 3,-1.25 -4.5,-2 -3.75,-2.5 7,0.5 4.25,2.25 0.25,-4.75 -1,-3 5,2.5 1.75,4.75 1.5,2.5 2,2.75 3.75,2.75 -2.75,2.5 0,4 3.75,-2.25 2.75,1 1.25,1.75 2.25,1.5 0.75,0 2,4.5 1.75,1.25 1.75,7.5 -0.25,4 -1.75,2.25 3.75,1 3.25,0.25 2.5,-3.75 5,4.75 c 0,0 1.5,0.75 0.75,1.25 -0.75,0.5 -7.5,2.75 -7.5,2.75 l -2,-3.25 -5.75,-0.5 -2.25,3 -2.25,3.5 -0.25,3 -3,2.5 -6,0.75 -6.75,-0.25 c 0,0 0.25,4 0,4.75 -0.25,0.75 0.75,5.25 0.75,5.25 l 6,2 3.5,-3.25 3.75,0.5  [...]
+           id="path4175"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -564.21094,-350.7958 -5.25,4 -4.75,4.5 -4.75,6.25 -3,5.25 -4,3 -0.75,6.75 -5.25,2 -4,3.5 -2.75,-3.5 -2.25,-6.25 -6.25,-2.25 2.25,-7.25 1,-8.25 c 0,0 2,-2.75 2,-3.75 0,-1 -0.75,-6.25 0,-6.75 0.75,-0.5 4.25,-4 4.25,-4 l -4.25,-7.5 8.25,-1 3.5,-1 5.25,1 2.75,4.25 2.5,2.75 2.5,-3.75 3.75,-0.25 c 0,0 4.25,3.5 4.5,4.25 0.25,0.75 3.75,4.25 3.75,4.25 l 2.5,3 -1.5,0.75 z"
+           id="path4177"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -559.71094,-347.5458 -4.25,2.25 -5.75,2.5 -5.75,6.25 -0.75,3.75 1.5,0.5 -3.25,4.25 0.25,4 3.75,-0.5 0.25,2.75 7.75,-0.25 2.75,1.5 -6.75,2.25 -6.75,1.5 4.5,5.25 5.25,2.25 7.5,-0.5 3.75,-0.25 3.75,3.5 -1.25,1.25 -11.25,0 -6.25,3.25 3,4.5 4.5,3.25 6,0 c 0,0 2,2.5 2,3.25 0,0.75 1.75,5.5 1.75,5.5 l 5.75,0.75 8,-1 c 0,0 4.5,-2.25 5.25,-2.5 0.75,-0.25 2.75,-1.75 4.5,-1.75 1.75,0 3.75,0 4.25,-1.25 0.5,-1.25 2,-4.5 3,-4 1,0.5 4.25,3.5 4.25,3.5 -0.25,1.25 2.25,3.25 2.25,3.25 l 5.5, [...]
+           id="path4179"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -487.21094,-357.0458 -2.5,1.25 -5.5,1 -1,-2 -2.25,1.25 -1.25,2.25 -0.75,2 c 0,0 3.5,2.5 2.5,3 -1,0.5 -4.25,1.75 -2.75,1.75 1.5,0 3.5,-0.5 3.5,-0.5 0,0 2.25,1.75 1.25,2 -1,0.25 -1.25,2 -1.25,2.75 0,0.75 -0.75,3.25 -0.75,3.25 l -2.25,0.75 c 0,0 -2.75,-4.25 -3.5,-4.25 -0.75,0 -1.5,-0.75 -2,0 -0.5,0.75 0,4.5 0,5.25 0,0.75 1,3.75 1,3.75 l 4,2.5 2.5,0.25 c 0,0 1.5,2 2,3 0.5,1 1.75,4.5 1.75,4.5 l 2,3.25 2.5,0 c 0,0 3.25,-1.75 2.5,-2.5 -0.75,-0.75 -1.25,-4 -1.25,-4 l 3.75,4.25 2. [...]
+           id="path4181"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -476.71094,-386.0458 -1.75,4 -1.75,2.75 -1,3.75 7.5,6.75 4.25,-0.75 c 0,0 1.75,-2.75 1.75,-3.75 0,-1 -0.25,-7.5 -0.25,-7.5 l -3.5,-3.75 -5.25,-1.5 z"
+           id="path4183"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -479.71094,-412.2958 c 0,0 -3.25,-1.25 -2.5,1 0.75,2.25 3.5,4 1.5,4.5 -2,0.5 -2,0.5 -2,0.5 l 2.25,4.25 2,0.75 -0.5,1.75 2.5,1.25 -0.25,1.75 c 0,0 2.75,-2.5 4.25,-1.75 1.5,0.75 4.75,1.75 4.75,1.75 l 0,-2.25 1.5,0.25 1,4.25 1,3.25 -0.25,3.25 2.25,2 0.25,1 -1.25,1.25 c 0,0 -0.25,2 -0.5,2.75 -0.25,0.75 0.25,3.75 0.25,3.75 l 1,0.5 0,3.75 4.25,2.75 c 0,0 4,-0.5 4,0.25 0,0.75 0,1.5 0.75,1.75 0.75,0.25 3.25,0.25 3.25,0.25 l 0.5,-2.5 2.5,-0.25 c 0,0 2,-2.75 1.5,-1.25 -0.5,1.5 -1,4 [...]
+           id="path4185"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -490.21094,-403.2958 -2,2 -3.5,-1.75 -3.5,0.25 -0.25,3.75 c 0,0 4,3.5 3.5,4.25 -0.5,0.75 1,4.5 -0.5,3 -1.5,-1.5 -4.75,-5 -4.75,-5 l -3,-3 c 0,0 -1.5,1 -1.5,1.75 0,0.75 1.5,5.25 1.5,5.25 0,0 1.25,3.25 0.25,2.75 -1,-0.5 -2.25,-0.25 -2.5,-1.5 -0.25,-1.25 1,-3 -0.5,-3 -1.5,0 -2.75,0.75 -3,0 -0.25,-0.75 0,-3.5 0,-3.5 -0.5,-1.75 -1.75,-4 -1.75,-4 l -2.5,-1 c 0,0 -2,2.5 -1,3.5 1,1 3.5,3.5 3.5,3.5 l -3.5,1 3,2 0.75,0.5 c 0,0 -2.25,2.75 -1.5,2.75 0.75,0 4.25,0 4.25,0 l 0.5,1.25 2. [...]
+           id="path4187"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -523.71094,-392.0458 c 0,0 -3.5,4 -4.25,3.5 -0.75,-0.5 -3.75,-3.25 -3.75,-3.25 0,0 -0.5,-3.25 0.5,-4.5 1,-1.25 0.75,-4 0.75,-4.75 0,-0.75 -3,-6 -3,-6 l -4,3.75 -2,3.5 2.5,4.5 1,3 c 0,0 -3.25,2.25 -1.75,3 1.5,0.75 3.5,2.5 3.5,2.5 0,0 -0.25,3.5 -1.25,3 -1,-0.5 -6,-1.5 -6,-1.5 l -3,-2 -3,-3.75 c 0,0 -2.5,-1.25 -3,-2 -0.5,-0.75 -1.5,-4 -1.5,-4 0,0 -2,0 -2.75,0 -0.75,0 -4,-1 -4,-1 0,0 0.75,-2.75 -1,-2.75 -1.75,0 -5,-1 -5.25,0 -0.25,1 1,5 1,5 0,0 2.5,0.5 1.25,0.25 -1.25,-0.25 - [...]
+           id="path4189"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -513.96094,-382.0458 c 0,0 -2.75,2.25 -2.75,3 0,0.75 -0.25,2.75 1,2.75 1.25,0 3.25,1 3.5,0 0.25,-1 0.25,-3 0.25,-3 l -2,-2.75 z"
+           id="path4191"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -565.21094,-417.7958 -4.25,-2.75 c 0,0 -0.5,1.25 -0.5,2 0,0.75 -1.25,2.25 -3,1.75 -1.75,-0.5 -6,-1.5 -6.5,-0.5 -0.5,1 -2,5.25 -2,5.25 0,0 -0.25,1.5 -1.5,2.5 -1.25,1 -3.5,2 -4,3.25 -0.5,1.25 -1.25,3.75 -1.25,3.75 l -1.25,2 c 0,0 -4,0.5 -4.5,1.25 -0.5,0.75 0,4 0,4 0,0 1.5,-0.25 0.75,1.75 -0.75,2 -0.5,7 1,3.5 1.5,-3.5 1.25,-6.25 2.5,-4.75 1.25,1.5 1,4 1.75,4 0.75,0 3,-3.5 3,-3.5 l 3.25,2.25 c 0,0 4.25,2.25 3.25,-1 -1,-3.25 -3.25,-6.75 -1.75,-5.5 1.5,1.25 4.25,4.25 4,2 -0.25, [...]
+           id="path4193"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -572.71094,-394.5458 -4.75,4.5 -2.5,2.25 2,2.75 3.5,-3.75 1.75,-5.75 z"
+           id="path4195"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -560.71094,-408.2958 0.75,2.5 5.75,0 -1,-2.25 -5.5,-0.25 z"
+           id="path4197"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -559.21094,-432.7958 -0.75,2.75 2.75,5 0.5,-3.75 -2.5,-4 z"
+           id="path4199"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -549.46094,-442.7958 -4.25,3.75 -0.25,1.5 4.5,-0.5 2.75,2.25 1.75,-2.5 3,1 3,-2 0,-4 -1.75,-1.5 c 0,0 -1,-2.75 -2.25,-1.75 -1.25,1 -5,3.5 -5,3.5 l -1.5,0.25 z"
+           id="path4201"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -539.71094,-432.2958 -7,1 -3.25,1.25 -3.75,2.75 1.25,3.75 0.75,5 c 0,0 4,-1.25 4.25,0 0.25,1.25 -2,4 1,1.25 3,-2.75 6.75,-5.75 6.75,-5.75 0,0 1.75,-3 0,-3.25 -1.75,-0.25 -4,-0.75 -4,-0.75 0,0 1.75,-1.75 3,-2.25 1.25,-0.5 2,-2 2,-2 l -1,-1 z"
+           id="path4203"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -514.96094,-460.2958 -2.75,0 -5.5,1.75 c 0,0 1,3.5 1,4.25 0,0.75 2.75,1 2.75,1 0,0 2,0.5 1.75,1.25 -0.25,0.75 -0.25,3.75 -0.25,3.75 l 5,-4 0.5,3.25 c 0,0 -1.5,0.75 -1,2 0.5,1.25 1.75,2 1.75,2.75 0,0.75 -1.75,3.75 -3,3 -1.25,-0.75 -2.5,-2.5 -2.5,-1 0,1.5 2,7 2,7 l 3.25,-2 2.5,-2 c 0,0 1,0 1.5,0.75 0.5,0.75 0.25,1.25 1.5,1.5 1.25,0.25 3.25,0.25 3.25,0.25 l 3,3.5 2.75,2.5 0.75,3.25 5.5,-2 -2,-6 -2.25,-3.5 0.25,-4.75 c 0,0 0,-2 -0.25,-3.25 -0.25,-1.25 -2,-3.25 -2,-3.25 l -4,- [...]
+           id="path4205"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -521.46094,-425.5458 3.75,5.5 c 0,0 0,4 0.75,5 0.75,1 4.75,2.25 4.25,1.25 -0.5,-1 -0.5,-4.75 -0.5,-4.75 l -3,-3.75 -5.25,-3.25 z"
+           id="path4207"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -505.96094,-429.2958 0.25,2.75 3.75,-0.75 c 0,0 2.25,-0.5 1.25,-1.25 -1,-0.75 -3.25,-1.75 -3.25,-1.75 l -2,1 z"
+           id="path4209"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -487.71094,-449.2958 -0.25,4.5 c 0,0 1,3 0.25,3.25 -0.75,0.25 -1.5,-1.75 -0.75,0.25 0.75,2 4,7 4,7 0,0 1.25,-2 1.75,-1 0.5,1 0.75,2.25 -0.5,2.25 -1.25,0 -4.75,-1.75 -3.25,0.5 1.5,2.25 1.25,3.75 1.75,4.5 0.5,0.75 1.75,4.25 2,2.5 0.25,-1.75 1.5,-3 2.75,-3 1.25,0 5.25,1 5.5,0 0.25,-1 1,-3.5 1,-3.5 l -2.25,-3.25 2.75,-2 c 0,0 0.25,-1.25 -0.5,-2.5 -0.75,-1.25 -3.5,-3 -3.5,-3 0,0 -0.25,0 -0.75,-1 -0.5,-1 -0.75,-2.75 -2,-3.25 -1.25,-0.5 -6.5,-2.25 -6.5,-2.25 l -1.5,0 z"
+           id="path4211"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -469.46094,-425.5458 -3.75,-0.5 -4.5,0 -0.25,3 c 0,0 3,3.75 4.75,3.75 1.75,0 6,0 6,0 l 0.75,-4.25 -3,-2 z"
+           id="path4213"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -455.96094,-423.5458 c 0,0 -0.25,3.25 0.25,4 0.5,0.75 2.75,4.75 3.5,4.75 0.75,0 2.25,-1 1.75,-2.5 -0.5,-1.5 -0.75,-4.25 -0.75,-4.25 l -4.75,-2 z"
+           id="path4215"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -461.46094,-508.5458 -4.75,-4 -3.75,0 -1.5,1.25 c 0,0 -1.75,1 -0.5,1.5 1.25,0.5 2,0.25 3.25,0.75 1.25,0.5 2.75,0.5 2.75,1.25 0,0.75 -0.5,2.25 -1.75,2.25 -1.25,0 -5.5,-2 -3.75,0.25 1.75,2.25 3.25,3 0.75,2.75 -2.5,-0.25 -3.5,-1 -3.5,-0.25 0,0.75 -1.5,5.5 -0.75,6.5 0.75,1 5,2.75 5,2.75 0,0 -1.5,2.75 -2.25,2 -0.75,-0.75 -5,-2.75 -5,-2.75 0,0 -2.5,2 -1,3.5 1.5,1.5 2.25,4 2.25,4 l -2.75,1.5 0.5,3.25 2.5,-0.5 c 0,0 1.25,-0.25 1,1.25 -0.25,1.5 -0.25,1.75 1.5,1.75 1.75,0 4.25,0 4, [...]
+           id="path4217"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -433.71094,-484.5458 -4.25,-0.25 -0.25,4.75 c 0,0 0,2.5 1.25,2.75 1.25,0.25 2.5,0 3,0.75 0.5,0.75 2,2.25 -0.5,1.75 -2.5,-0.5 -4.5,-2 -4.5,-1 0,1 0.5,4.25 1.5,4.5 1,0.25 2.5,1.25 3.5,1.75 1,0.5 2.75,1.25 3,2 0.25,0.75 1.5,3.5 1.5,4.75 0,1.25 0,2 0.75,3.75 0.75,1.75 3.25,4.5 3.25,4.5 0,0 -1.25,1.5 -2,1.25 -0.75,-0.25 -0.75,-0.25 -0.75,-0.25 0,0 -5.75,-2.25 -3.5,-0.25 2.25,2 5.5,3 5.5,3 0,0 4,1.5 5.25,0.75 1.25,-0.75 4.25,-1.5 4.25,-1.5 0,0 0.5,2.5 -0.75,2.5 -1.25,0 -7,-1 -6 [...]
+           id="path4219"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -632.96094,-152.4208 -2.375,2.5 -2.625,-2.75 -2.125,1.375 2.75,5.25 1.5,0.75 0,2.5 3.75,4.625 -1.5,-4.25 -0.25,-3.125 0.375,-2.75 0.875,-1.875 -0.375,-2.25 z"
+           id="path4221"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -559.29089,-16.294794 0.333,5.333 2,4.3340001 4,4 2.333,3.666 2.334,4.667 3.333,4 0.333,5.3329999 2.334,3.667 1.333,2 1,-0.333 1.667,2.333 1.333,2.667 -1.333,1 -4,-3.334 -4.334,-2.666 -2,-2 1,-3.667 -1,-3.333 -2.333,-0.334 -1,-1.6659999 -2,-0.334 -5.667,-5.333 2.667,-0.333 c 0,0 0.666,-1.334 0.333,-2.334 -0.333,-0.99999995 -2.666,-4.666 -2.666,-4.666 l -2.334,-2.667 -2.333,0 -0.333,-4.0000001 -2,-4 -2.292,-3 -0.542,-2.833 8.5,-0.167 16.667,5.833 13.833,0 -0.333,-1.333 6.6 [...]
+           id="path4223"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -448.29089,59.205206 1.083,0.083 1,0.834 0.833,-0.5 0.584,0.666 -0.25,1.167 -3.417,2 -0.417,2.333 -1.5,1.417 -2,1.75 -1.916,-1.167 -2.167,-0.083 -2.333,0 -1.667,-1.375 0.875,-0.625 -1,-1.625 -0.042,-2.125 1.042,-3 5.375,-1.125 0.125,-0.875 -1.875,-2 0.25,-4.417 7.5,-0.333 -0.083,9 z"
+           id="path4225"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -445.29089,56.705206 -1.334,1 -0.75,1.25 -0.916,0.25 0.083,-9 1.125,-0.25 1.125,-1.625 1.25,-0.375 0.5,-1.125 1.875,0.875 -1.542,0.75 -0.083,2.583 -0.333,3.084 -1,2.583 z"
+           id="path4227"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -423.21089,63.205206 -3.083,1.5 -1.667,0.25 -2.083,-0.833 -1.084,1.25 -1.333,0.833 -1.25,1.167 -0.583,0.416 -1.084,-0.333 -1.166,1.417 -2.167,1.083 -0.25,1.583 -2.083,0.834 0.25,-1.167 -1.084,-1.083 -0.666,-1.334 -1.584,-0.25 -1.416,-0.25 -2.084,-1.166 -1.25,-1.334 0.25,-2.083 3.584,-2.25 0.083,-0.917 2,-0.5 1,-1 2,1.084 2.083,-0.917 2.75,-0.417 1.75,-0.583 1,0.917 3.75,0.166 2.334,1.667 -1.25,0.75 1.583,0.75 0.5,-1.083 1.917,0.25 0.333,1.583 z"
+           id="path4229"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -450.38089,69.205206 2.25,0.667 0.75,1.416 2.334,0.084 1.5,-0.334 1.416,-0.916 -0.416,-1.334 -3,-0.5 -1.917,-0.916 -1.417,-1.584 -3.083,2.75 1.583,0.667 z"
+           id="path4231"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -433.96089,79.955206 1.75,-0.333 1.917,0.5 1.083,0 2.167,1.416 2,0.084 -0.417,-1.334 0.083,-3 1,-2.083 -0.5,-2.083 0.834,0.333 0,-4.333 0.916,-1.75 0.417,-2.334 -0.5,-1.833 -3.083,1.5 -1.667,0.25 -1.833,-0.917 -0.834,1.417 -1.833,0.75 -1.833,1.583 -0.834,-0.333 -1.416,1.417 -2.167,1.333 -0.167,1.667 -2.166,0.5 -0.25,0.666 1.916,1.834 1.5,1.666 1.25,1.334 0.834,1.333 1.833,0.75 z"
+           id="path4233"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -419.88089,87.205206 -0.916,0.667 0.166,2.25 -0.916,2.083 -1.167,-1.5 -1.167,0.083 0.5,1.084 -1.75,-0.417 -0.083,-1.833 -1.75,-1.25 -1.5,-0.917 -1.583,-1.75 -0.917,-0.083 -0.083,1.083 -2.084,-1.25 -1.416,-1.667 0.25,-1.5 0.083,-1.166 -0.167,-1.25 2.167,-0.25 1.833,0.75 1.167,-0.25 2.167,1.166 2,0.334 1.416,3 1.417,1.166 2.333,1.417 z"
+           id="path4235"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -399.88089,97.038206 1.917,-0.833 0.667,-2.083 -0.167,-2.084 -0.917,-1.25 -1.583,-1.583 -0.667,-1 -1.583,-0.25 -1.667,-0.333 -1.083,0 -0.833,-0.5 -2.25,0 -0.417,1 -1.583,0.666 -1.417,0.334 -1.667,0.833 c 0,0 -0.834,0.583 -1,0.333 -0.166,-0.25 -1.333,-1 -1.333,-1 l -1.417,-0.416 -0.416,0.916 -1.25,-0.416 -0.084,-1.084 -1,-0.916 -1.166,0.5 0.166,2.25 -0.916,2.083 1.333,0.667 2.5,0.083 1.5,0.5 0.583,0.417 -0.583,1.083 0.167,1.75 0.75,-1.5 2.083,0.167 0.417,1.666 2,-0.166 1.3 [...]
+           id="path4237"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -397.63089,99.205206 0.167,5.667004 -0.667,2 1,4.333 1.334,1 -1.334,2.333 -2.166,1.667 -4.167,1.333 0,4 3.167,3 2.666,2 2,1.834 5.334,-0.667 2.5,0.5 0.333,1 3,1.5 1.833,3.167 2.5,1.666 1.5,2.667 0.5,1.333 5.167,0 2.5,-0.333 2.333,0.5 2.5,2 -1.666,3 1.333,2.333 0.833,1 0.834,-2.333 2.5,-11.167 -1.834,-2.833 -1.166,-2.667 0.166,-1.833 3.167,-0.667 0.167,-1.5 -2.667,-1.333 0.333,-1.667 5.334,-0.5 1,-1 1.5,1 1.5,-1.166 2.333,4.166 1,-0.833 -3.333,-6 -1.334,-1.167 1.5,-2 -1.33 [...]
+           id="path4239"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -368.13089,148.20521 -3.5,1.167 -3.833,0.666 -2.5,2.167 -1,4 -1,2.833 -1.833,1.667 -0.5,2.5 2,3.833 2.166,2.334 -0.666,1.833 2.666,0.833 1.667,1.834 4.5,-0.834 1,-2.666 1.333,5.333 5,0 2.834,4.5 -0.5,5.333 0,4.167 -1.167,3.667 -0.5,4.166 0.833,2.667 0,2.333 -1.333,3.167 -1.667,1.5 -0.166,1.833 -2.5,1.834 -0.334,-1.667 -5.333,-5.833 -3.667,-2.167 -4.666,-2.333 c 0,0 -4.668,-2 -4.834,-2.5 -0.166,-0.5 -7.333,-7.334 -7.333,-7.334 l 1.167,-0.833 -1.5,-2.167 -3.334,-6.666 -3.66 [...]
+           id="path4241"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -403.29089,122.37221 -2.334,1.666 -2.5,1.5 -1.5,0.334 0,4.333 -2,3.667 -0.166,4 1.333,2.5 2.167,-1.5 0.833,1.833 -2,2.833 0.5,2.167 -1.167,2 0.667,1.333 1.667,-0.166 2.166,1.5 2.5,0.5 2.167,-2.167 0.167,-4 2.666,-2.167 3.5,-1.666 2.834,-2.834 3.333,-2.166 -0.167,-2.334 1.167,-0.333 -1.167,-2.167 1.334,-1.166 -0.5,-1.667 -2.5,-0.5 -5.334,0.667 -2,-1.834 -2.5,-1.666 -3.166,-2.5 z"
+           id="path4243"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -458.29089,128.20521 -0.917,1.083 0.417,1.334 1.416,0.083 -1.333,1.083 0,1.5 3.167,-0.333 0.416,-1.917 -0.333,-1.833 -2.833,-1 z"
+           id="path4245"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -370.29089,80.205206 2.833,-0.333 3.5,-0.834 -2.5,-1.833 0.833,-2.333 2.667,1.5 c 0,0 -0.5,1.666 0,1.666 0.5,0 3.167,0.834 3.167,0.834 l 1.333,1.666 1.333,2.334 6.167,0.166 1.667,-0.333 4,2.167 5.166,-0.334 -0.166,-1.666 4.333,0 4.833,-0.334 -2,1.5 0.834,2.667 1,-0.833 3.666,1.833 2.167,2.333 2,0.334 1.833,1.666 0.334,1.667 -2.5,1.833 -0.334,2.167 1.334,0.333 -0.667,1.167 -4.5,1.333004 0.333,1.167 0.667,2.833 1.833,2.167 0.167,1.5 -3,1.833 -4.5,1.5 -3,1.167 -3,-0.833 -2.3 [...]
+           id="path4247"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -322.13089,107.03821 0.667,3.5 2.167,1 -1.5,1.5 -1.667,2.5 1.667,2.667 1.166,0.833 0,2.667 4.167,3 4,-3.833 2.667,-0.667 2.166,0.833 -2,-3 -1,-3.833 -1.833,-0.833 -1.5,-2.5 1,-3.334 3,-2.333 0.167,-2.5 -2.667,-2.667 -3,-1.833004 -1.333,0.667 -0.334,-2.5 -1,-1.834 -2.666,-1.333 -1.5,0.5 -2.5,1.833 -0.334,2.167 1.167,0.833 -0.5,0.667 -4.5,1.333004 1,4.334 1.833,1.833 3,0.333 z"
+           id="path4249"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -303.63089,120.87221 c 0,0 -0.667,-1.834 0,-1.834 0.667,0 3.834,-1.333 3.834,-1.333 l 3.333,-1.833 0.5,-2.834 -2.167,-2.833 0.5,-2.667 1.334,-3.166 -2.834,-1.334 -2.666,-0.166 -2.5,0.5 -4.5,-0.667 -0.167,2.5 -3,2.667 -1,3 1.5,2.5 2,1.333 0.833,3.333 2,3 3,-0.166 z"
+           id="path4251"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -297.29089,120.70521 2.833,-0.167 2.5,0.167 1.5,-3.5 1.833,-3.5 3.5,-3 -0.833,-2.333 -1.667,-0.167 -3,-2.167 -3.666,-1.5 -2,-0.166 -1.334,3.166 -0.5,2.667 2.334,3.167 -0.667,2.5 -3.333,1.833 2.5,3 z"
+           id="path4257"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -361.96089,175.20521 4.25,2.25 0.75,-2.5 6.25,-1.5 3.75,0 2.25,3.5 4.75,5.25 5.5,0.75 6.25,4.75 4,1 0.75,6.75 -0.75,1.25 4,4.25 5,-0.5 1.25,4.75 2.5,2.25 -0.25,9 -1.75,1.5 0.75,9 9.25,0.25 2,7.25 4.75,-0.5 -1.5,8 3.25,2.25 0.25,6.5 -6.75,5 -3.25,3.5 -5.5,5 3,2.25 3.25,3.5 2,0.5 8.75,6 0.5,2.75 4.25,-4.75 6.5,-6.75 -2.5,5.5 2.25,-1.5 3.25,-5.5 1,-4.5 3.5,-3.75 3.25,-4.75 -0.75,-7 0.5,-5 6.25,-3.5 6.25,-3.5 3.75,-3.75 9,-0.5 3.75,-2 2.75,-2.75 1.25,-4.75 3.75,-4.5 1.25,-1.2 [...]
+           id="path4259"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -362.21089,207.95521 2,5 2.5,0.75 -1.25,2.5 -0.25,3.75 0.5,1.75 1.5,0.5 1.75,7.75 3.25,-0.5 4.25,-4.25 3.25,1 2.5,0.75 1.25,2.25 2.75,-4 3.5,0.5 1,1.75 2,-4.5 3,-8 4.75,-0.25 4.5,-0.75 5.25,2.25 0.75,1.75 1.75,-1.5 0.25,-9 -2.5,-2.25 -1.25,-4.75 -5,0.5 -4,-4.25 0.75,-1.25 -0.75,-6.75 -4,-1 -6.25,-4.75 -5.5,-0.75 -7,-8.75 -10,1.5 -1.5,2.5 -4.167,-1.75 2.834,4.5 -0.667,6.25 0.167,3.25 -1.167,3.667 -0.5,4.166 1.25,3.417 -1,3.75 -1.5,1.5 1,1.75 z"
+           id="path4261"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -332.21089,228.70521 3.25,3 5.25,5 4,0.25 3,1.75 4,2.5 1,1.75 -2.75,3.25 -0.75,3.75 10.25,1.75 2.75,-1 0.5,-2 3.25,-2 -0.25,-3 2.25,-0.5 -1.75,-1.25 1.5,-8 -4.75,0.5 -2,-7.25 -9.25,-0.25 -0.75,-9 -0.75,-1.75 -5.25,-2.25 -3.75,0.75 -5.5,0.25 -5,12.5 1.5,1.25 z"
+           id="path4263"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -352.21089,229.45521 -0.5,4 -1,2 -4.25,2.5 -0.5,4 -1.25,2 2.5,5.75 -0.5,2 -3,-0.25 -2.75,4.75 -1,5 -0.5,3.5 -1.5,3.75 -1.75,4.5 1.75,4.75 2.75,4 -0.5,3.5 -2,3.5 -0.75,7 -2.5,1 -1.75,2.5 0.75,6.75 1.75,3.75 -2.25,2.75 -1.75,6 -0.25,6.25 0,6.5 -1,2.5 0.5,2.5 -0.25,2.75 0.75,6 2,2.5 -1.25,3.75 0.75,5 -1.5,5 -2.75,1.5 -0.5,5 -1.5,3.75 -1.75,2.75 1,4 0.25,3.5 0,2.75 3.75,-0.75 0,3 0,3.5 2,2.74998 4,-0.25 4.25,1 3.25,0.75 2.75,0.5 -2.25,-3.99998 -1.75,-1.75 0.75,-3 -0.75,-3.25  [...]
+           id="path4265"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -359.33089,397.83029 0.5,15.62505 1.875,0 -0.25,0.875 0.375,2 3,0 1,-1.375 -2,-1 2.5,0.75 2.5,0.875 3,-1.25 2.125,-0.875 -0.375,-1.62505 c 0,0 -2.75,-0.25 -3.125,-0.375 -0.375,-0.125 -3,-1.5 -3,-1.5 l -2.75,-1.25 -1.125,-2 -1,-2.125 -0.625,-1.375 -1,-1.375 -0.125,-1.125 0.625,0.375 0,-1.875 -2.125,-1.375 z"
+           id="path4267"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -313.28947,386.15257 0,3.67842 -2.31008,1.74238 -2.11758,2.71042 -0.1925,2.90403 c 0,0 3.27261,1.35521 3.08011,0.1936 -0.19251,-1.16161 -0.19251,-3.29123 1.34754,-3.09763 1.54006,0.19361 3.08011,0.19361 3.08011,0.19361 l -0.1925,-2.71042 3.85013,-0.38721 1.73257,-2.90399 -3.65763,-2.90402 -1.92507,0.77441 -2.6951,-0.1936 z"
+           id="path4269"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -317.13961,387.12057 -1.54005,-1.54881 -3.27262,0 -0.1925,3.09762 -2.88761,1.16161 1.15504,3.09759 -2.69509,-0.5808 -1.34755,-1.93598 0.19251,3.29119 3.08011,2.51682 3.27261,-1.16161 1.54006,-3.48483 1.73256,-0.96797 2.31008,-2.12962 -1.34755,-1.35521 z"
+           id="path4271"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -230.30809,402.77339 7.2553,7.1813 4.9642,6.75905 0.3819,-6.75905 -3.8186,-4.2243 -8.7828,-2.957 z"
+           id="path4273"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -429.46089,31.205206 2,-0.333 0,-2.334 3.833,-1.5 3.5,-0.5 2.5,-1.5 2.5,0.167 3.5,0.667 2.167,1.666 c 0,0 1.333,-0.999 1.833,-0.666 0.5,0.333 1.834,2.833 1.834,2.833 l 3.833,-0.333 2.333,1.5 3.167,2.833 2.833,0.833 4.5,1.167 -1.333,1.667 4.167,0 2.166,0.5 0.167,1.333 -2.5,2 -4.833,0.167 -7.5,-0.834 2.666,-2 -2.166,-1.166 -2.667,-0.334 -1.667,-3 -2,-1.333 -3.166,0 -4,-1.833 -2.334,0 -3.833,-1.667 1.333,-0.833 -0.833,-0.5 -3.667,0.5 -2,1.833 -2.5,0.5 -2.333,1.833 -1.5,-1.333 z"
+           id="path4275"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -421.96089,31.538206 -0.5,2 1.833,-0.166 0.667,-1.5 -2,-0.334 z"
+           id="path4277"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -392.29089,49.205206 -2.334,-1.167 -3.833,-0.5 -3.167,0.5 2.667,1.667 -0.167,1.667 3.667,-0.834 3.167,-1.333 z"
+           id="path4279"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -373.46089,41.372206 0.333,1.666 -0.333,1.5 0.167,1.334 0.833,0.333 -0.667,0.667 -0.333,2.333 -1.667,-0.5 -2.5,0.333 -1.833,-0.666 -2.5,-0.167 0,0.833 -1.167,-1.166 -1.666,-0.334 c 0,0 0.333,-0.833 0.833,-0.833 0.5,0 3.5,0.167 3.5,0.167 l 2.833,0.333 1.667,-0.5 -0.667,-1 -0.5,-2.333 -1,-0.834 -2.5,-0.666 0.667,-0.834 2.333,0 2.5,1 1.667,-0.666 z"
+           id="path4281"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -372.96089,50.372206 1.667,0.666 1.333,-2.333 2.333,-1 c 0,0 -1.166,1.001 -0.166,1.167 1,0.166 3.5,-0.167 3.5,-0.167 l 2,-1.333 1.833,0.333 1.167,1 1.666,-2.167 -1.333,-2.333 -4.167,0 -1.166,-2 -2.167,-1.167 -3.333,0 -2.167,0.334 -1.667,-0.5 0.5,2.166 -0.5,1.834 0.5,1.666 -0.333,2.667 0.5,1.167 z"
+           id="path4283"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -738.21094,39.9552 0,4.125 0.5,1.875 2.5,-1.625 1.25,-1.75 -1,-1.625 -3.25,-1 z"
+           id="path4285"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -741.96094,36.4552 1.5,1.875 2.125,-0.625 -1.25,-1.25 -2.375,0 z"
+           id="path4287"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -748.21094,33.4552 1.125,2.25 0.875,-1.375 -0.5,-1.25 -1.5,0.375 z"
+           id="path4289"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -744.83094,35.9552 2.25,0.125 -0.125,-1.875 -1.75,0.25 -0.375,1.5 z"
+           id="path4291"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -754.83094,30.4552 c 0,0 -1.625,1.75 -1.125,1.875 0.5,0.125 2.5,0.375 2.5,0.375 l 0.5,-1.25 -1.875,-1 z"
+           id="path4293"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -675.46094,-298.2958 -6.5,-3.5 -6.5,-2.5 -4,3.5 -7,-4 -11.5,-2 -7,0 -5,-2 -0.5,-3.5 -6,0 -5,-2.5 -2,-0.5 -3,-3 -4.5,-0.5 -2.5,3.5 -7,2.5 -5,2.5 -3,5.5 -5,1 -3,6.5 -1,6 -5,3.5 -7,0.5 -2.5,4.5 5,5.5 5,3.5 3.5,6 4,1.5 3.5,1 c 0,0 -0.5,3 1,3 1.5,0 4,-0.5 4,-0.5 l -0.5,5.5 -4,-2 c 0,0 1.5,2 0,2 -1.5,0 -6.5,0 -6.5,0 l -3,0 0.5,-4 -4.5,0.5 -3.5,2.5 -2.5,2.5 -4,3 -3.5,2 6,6 1.5,4 3.5,1.5 8,-1 3.5,2 7.5,-2.5 -1,3 2,2.5 -1.5,4.5 -4.5,1.5 -5.5,4 -3.5,-0.5 -3.5,4 c 0,0 0,0 -1.5,3 -1. [...]
+           id="path4295"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -805.96094,-230.5458 -0.25,3.25 3,0 3.5,1.25 1.25,2.75 2.25,-2 1.75,-2.25 -3.75,-1.5 -2.5,-2.25 -2.75,0.5 -2.5,0.25 z"
+           id="path4297"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -724.71094,-184.5458 -3,3.75 -3.75,3.75 -1.75,1.5 1.5,3.75 2.5,-2 1.5,0.5 2.5,-3.25 3,-0.25 -1,-4.25 2,-1.25 -3.5,-2.25 z"
+           id="path4299"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -592.79094,-114.1288 0.333,2.167 1.667,3.5 -0.834,3.667 -1.833,-2.333 -1.167,-2.667 -2.666,-0.5 -4.167,-0.5 -1.167,0 0.667,2.333 2.333,3.333 0,3.333 0.667,3.667 3,0.333 1.167,1.667 -3.667,-0.5 -1.167,0.833 0.5,3.5 -0.666,3.833 0.166,4.5 -1.166,3 -1.334,4.333 1,3 0.667,3.833 0.5,2.833 -0.667,3.833 0.5,2.667 1.167,2.667 1,3.333 0.833,2.167 3.5,2.833 1.667,-0.167 2.333,0.333 -2.5,0.667 0.667,1.167 -2.167,0.333 2,2.167 2,2.167 -0.666,1.833 2.666,3.833 2.834,2.333 0.333,2.833  [...]
+           id="path4301"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -353.29089,47.205206 2.333,-0.167 3.833,1 2.334,0 -2.167,1 -2.333,0.834 -2.834,0 -1.166,-1.667 0,-1 z"
+           id="path4303"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -400.79089,15.872206 -2,3 1.833,1.833 1.333,0.833 0.5,1.667 1.167,-2.333 -0.5,-2.334 -2.333,-2.666 z"
+           id="path4305"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -379.13089,34.372206 -1.833,0.333 -0.333,1.333 2.833,0.334 0.167,-2.167 -0.834,0.167 z"
+           id="path4307"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -366.79089,210.87221 -0.5,8.5 1.666,7.666 -2,5.334 -0.333,8.666 -0.667,4.334 -0.666,8.333 -3,4.667 1,6.333 -1.334,4.333 0.334,7 0,5.334 -2.334,5.666 -2,6.667 -1.666,7.333 -1.667,0.667 -0.333,6 0.666,8.333 -1.333,3.667 -1.333,4.667 1.666,2.666 -2,1.334 -1.666,6.333 0.666,2.333 3.667,-3.333 0.667,-5 0,-2 2.333,-1.333 1,3.666 -2.333,5.667 -0.667,6.333 -2,6.334 -2,-3 c 0,0 -2.001,2.666 -1.667,3.666 0.334,1 1.334,4 1.334,4 l -0.334,1 -2,0.334 -3.666,3 0.333,2.333 4,-2.333 1.66 [...]
+           id="path4327"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -535.29089,249.37221 -4,1 3,2 2,-2 -1,-1 z"
+           id="path4329"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <path
+           d="m -293.96089,281.20521 0.25,2.25 -1.75,4.75 -3.5,1.75 -6.5,0 -3,-1.25 -2.25,-1.25 -2.25,-0.5 -1.25,-2.5 -1,-2.25 0.75,-2.5 -0.5,-4.25 2,-3.25 0.75,-4.75 1.5,-2.5 3.5,1.5 3.25,3.5 2,0.5 8.75,6 0.5,2.75 -1.25,2 z"
+           id="path4331"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
+        <rect
+           style="opacity:0;fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           id="rect4652"
+           width="46.024208"
+           height="31.463821"
+           x="-102.03697"
+           y="-363.61978" />
+        <path
+           d="m -135.22523,-233.95112 c -2.63439,0.20501 -6.73325,-0.86574 -7.92636,-1.90462 -1.19311,-1.03888 -4.09067,-1.2993 -6.22055,-1.73147 -2.13124,-0.43356 -5.0288,-1.55833 -3.23845,-2.16504 1.78899,-0.60532 5.53877,0.3463 4.68655,-2.33679 -0.85222,-2.68448 -0.25499,-2.77036 -1.36356,-2.68448 -1.10721,0.0873 -1.61854,-2.85624 -2.89756,-2.85624 -1.27765,0 -6.4769,0.60533 -4.77245,-0.953 1.70445,-1.55832 9.63081,0.0873 9.20401,-1.47106 -0.42543,-1.55832 -0.93676,-1.38518 -1.78898,- [...]
+           id="path1284"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.6871627;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.01163971px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 55.397714,88.459156 1.6955,-4.20113 0.1817,-1.77513 1.8773,-2.72187 3.5122,-0.35502 1.7561,3.13606 0.3028,0.82839 2.18,0.23668 1.2112,-0.5917 3.4517,0.41419 0.8478,0.76922 3.0278,0.0592 1.0294,-1.24259 2.1801,0.17751 -0.6056,-2.07099 2.7857,-1.06507 4.4811,2.78103 1.7562,-0.71005 2.9672,-4.02363 1.9378,-1.4201 -0.7266,-1.06508 0,-2.48518 -0.7267,-1.24259 2.6039,0.0592 -0.06,-0.94673 2.4828,0.17751 -0.6661,2.01181 0.4239,4.55617 3.3912,3.19523 -0.3029,-0.11837 0.4844,-2.89 [...]
+           id="path6487-7-0"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.01163971px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 55.387614,88.418786 1.6954,-4.20113 0.1819,-1.77513 1.8772,-2.72187 3.5122,-0.35502 1.7562,3.13606 0.3028,0.82839 2.1799,0.23668 1.2112,-0.5917 3.4517,0.41419 0.8478,0.76922 3.0277,0.0592 1.0296,-1.24259 2.1801,0.17751 -0.6057,-2.07099 2.7856,-1.06507 4.4812,2.78103 1.7561,-0.71005 2.9672,-4.02363 1.9379,-1.4201 -0.7267,-1.06508 0,-2.48518 -0.7267,-1.24259 2.604,0.0592 -0.06,-0.94673 2.4829,0.17751 -0.6662,2.01181 0.4239,4.55617 3.3911,3.19523 -0.2424,0.44374 -1.4231,7.33 [...]
+           id="path6487-4-9"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccc" />
+        <path
+           d="m -394.78719,48.580936 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -395.29689,19.297706 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-7"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -354.70559,75.036756 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-02"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -346.65839,78.468676 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-54"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -39.240086,-79.793184 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-06"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -17.483186,-123.6417 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-95"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -1.4165861,-106.5709 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90-59"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 6.4494139,-89.500104 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34939997,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.90110003,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-541"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 6.6168139,-75.441804 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34939997,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.90120003,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-30"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 19.336214,-36.948824 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-12"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -56.645686,-120.66141 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-47"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -65.082986,-120.97582 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-37"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -65.515686,-152.92983 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-157"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -150.86969,56.940566 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-9"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -17.483186,127.06473 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-5"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 192.78432,219.94995 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-8"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 207.95172,214.25968 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-3"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 143.85252,176.93823 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90-15-4"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 152.55532,182.12642 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-7"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 196.73862,144.97233 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-2"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 267.53212,114.17795 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90-15-71"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 445.28582,25.688176 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-27"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 454.04312,22.374596 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-6"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 403.15602,118.23157 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3495,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9011,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90-15-93"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 451.91292,104.03053 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-37"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 539.95932,95.273226 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-48"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 630.37252,64.267646 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-56"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 630.37252,75.155106 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-85"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 752.97482,78.705356 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-86"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 698.06412,96.930016 c 0,2.21859 -1.9011,4.013884 -4.2506,4.013884 -2.3494,0 -4.2505,-1.795294 -4.2505,-4.013884 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3495,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-368"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 716.28882,100.95365 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.221514 1.9012,-4.013894 4.2506,-4.013894 2.3494,0 4.2506,1.7953 4.2506,4.013894 z"
+           id="path4313-64-90-15-0"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 735.46022,106.39737 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-79"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 748.47782,130.06576 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-24"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 692.85712,189.94678 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-46"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 756.99842,222.37247 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-00"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 770.01602,212.19506 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-28"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 733.56672,164.6216 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-869"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 756.52502,175.03569 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3495,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9011,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
+           id="path4313-64-90-15-17"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 770.96282,186.15984 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-31"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <g
+           style="fill:#000080"
+           id="g10972"
+           transform="translate(-876.11048,-587.95599)">
+          <path
+             style="fill:#000080;stroke:#ffffff"
+             inkscape:connector-curvature="0"
+             id="path3965"
+             d="m 863.70684,428.01361 -0.833,-1.417 0.25,-3.125 -2.25,-0.25 -0.25,-4.875 0.25,-2.75 2,-0.375 -0.875,-2.875 1.75,-0.875 2.75,-0.75 2.125,-2.75 1.75,-1.75 1.375,-0.125 -0.875,2.125 0.75,1 -1,2.5 -1.125,0.625 1,1.625 -0.25,3 2.75,-0.875 -0.625,2.375 -3,0.625 c 0,0 -0.625,1 -0.5,1.375 0.125,0.375 0.25,2 0.25,2 l -1.25,0.25 -0.625,0.875 1.75,0.25 1.375,-1.125 1,1.5 1.5,0.875 -0.125,1.875 -2.375,0.875 -1.625,0 -0.5,-1.125 -0.25,-2 -0.375,-0.5 -0.75,0.375 -0.25,1.25 -0.125,1 0.2 [...]
+          <path
+             style="fill:#000080;stroke:#ffffff"
+             inkscape:connector-curvature="0"
+             id="path3967"
+             d="m 879.37384,418.97161 -2,0.875 -0.375,2 -1,-1.5 -1.625,1 c 0,0 -1,1.125 -0.5,1.5 0.5,0.375 1,2.625 1,2.625 l 1.375,0.25 1,1.375 -1.25,0.375 -2,0.25 0.5,1.625 1.875,0.625 0.75,-1.875 0.625,-0.75 0.625,-1.375 1.625,-0.75 -0.625,-1.625 -0.875,-1.25 0.625,-1.375 1,-0.125 -0.75,-1.875 z" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path74165-7"
+             d="m 516.08118,168.06867 -1.84094,1.53417 3.86596,4.986 2.57732,3.06835 c 0,0 -3.12958,0.95885 -4.05008,1.15062 -0.92045,0.19179 0.55231,2.49302 0.55231,2.49302 l 3.49777,2.10947 c 0,0 2.20914,1.72592 2.7614,2.49302 0.5523,0.76707 1.10456,1.15062 2.20913,1.53414 1.10457,0.38355 4.05003,0.57532 4.05003,0.57532 l 2.39326,-0.38354 c 0,0 0.92045,0 1.47275,-0.76708 0.55226,-0.76707 3.31366,-2.68479 3.31366,-2.68479 l 3.68189,-0.38353 2.20913,1.53415 c 0,0 1.47276,-1.15062 2.02502 [...]
+             style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.68662179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        </g>
+        <path
+           d="m -75.39004,-217.86582 c 0,2.21859 -1.90117,4.01388 -4.25058,4.01388 -2.34941,0 -4.25056,-1.79529 -4.25056,-4.01388 0,-2.22151 1.90115,-4.01389 4.25056,-4.01389 2.34941,0 4.25058,1.7953 4.25058,4.01389 z"
+           id="path4313-64-90-15-83"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -304.84159,-100.88063 c 0,2.218586 -1.9012,4.013876 -4.2506,4.013876 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.013876 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-7-6"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 124.18832,246.68446 c 0,2.21859 -1.90121,4.01388 -4.25061,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.25061,1.7953 4.25061,4.01389 z"
+           id="path4313-64-90-15-3-5"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 162.01182,387.93695 c 0,2.21859 -1.9012,4.01384 -4.2506,4.01384 -2.3494,0 -4.2505,-1.79525 -4.2505,-4.01384 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-3-2"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 240.67142,402.66469 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
+           id="path4313-64-90-15-3-8"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 282.17692,340.40649 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-3-1"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m 687.93954,632.29744 -836.17127,0 1.01972,-4.9987 32.97098,-22.21642 12.23665,-2.77706 9.857304,-7.22034 0.679814,-3.88787 -3.738977,-3.05476 -0.679814,-3.88787 3.059163,-1.11082 2.379349,3.88787 5.438513,-6.66493 3.059163,1.94394 2.379349,7.77575 5.438512,-1.94394 -1.359628,-2.77705 1.359628,-3.88788 -1.359628,-2.77705 7.817862,-1.11082 -0.679814,6.66493 13.59628,-1.11082 0,-6.38723 -1.699535,-2.77705 3.738978,-1.66623 6.79814,4.44328 -2.039442,3.61017 6.458233,5.83181 20 [...]
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3683-1" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m 687.93954,632.29744 -836.17127,0 1.01972,-4.9987 32.97098,-22.21642 12.23665,-2.77706 9.857304,-7.22034 0.679814,-3.88787 -3.738977,-3.05476 -0.679814,-3.88787 3.059163,-1.11082 2.379349,3.88787 5.438513,-6.66493 3.059163,1.94394 2.379349,7.77575 5.438512,-1.94394 -1.359628,-2.77705 1.359628,-3.88788 -1.359628,-2.77705 7.817862,-1.11082 -0.679814,6.66493 13.59628,-1.11082 0,-6.38723 -1.699535,-2.77705 3.738978,-1.66623 6.79814,4.44328 -2.039442,3.61017 6.458233,5.83181 20 [...]
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3685-7" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -527.22806,632.29744 208.70291,0 -0.67982,0 2.03945,-0.55541 0,-5.83182 4.41879,-4.44328 -3.73898,-12.21903 6.11833,-0.83312 1.35963,-4.44329 -5.09861,-3.88787 1.01972,-4.16558 -4.07888,-3.88787 4.07888,-4.9987 -1.01972,-4.72099 -3.05916,-2.77705 0.67981,-3.61017 -5.0986,-15.82921 -4.4188,-3.61017 -5.43851,0 -2.03944,-4.16558 2.03944,-2.49934 -2.71925,-2.22165 0.67981,-4.99869 3.05916,-3.88788 4.41879,0 -1.35962,-3.61016 2.37935,-2.22165 3.39907,2.22165 3.05916,-9.71969 1 [...]
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3687-4" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -527.22806,632.29744 208.70291,0 -0.67982,0 2.03945,-0.55541 0,-5.83182 4.41879,-4.44328 -3.73898,-12.21903 6.11833,-0.83312 1.35963,-4.44329 -5.09861,-3.88787 1.01972,-4.16558 -4.07888,-3.88787 4.07888,-4.9987 -1.01972,-4.72099 -3.05916,-2.77705 0.67981,-3.61017 -5.0986,-15.82921 -4.4188,-3.61017 -5.43851,0 -2.03944,-4.16558 2.03944,-2.49934 -2.71925,-2.22165 0.67981,-4.99869 3.05916,-3.88788 4.41879,0 -1.35962,-3.61016 2.37935,-2.22165 3.39907,2.22165 3.05916,-9.71969 1 [...]
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3689" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -630.5598,632.29744 -25.83293,0 9.5174,-4.9987 10.87702,0 5.43851,4.9987"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3691-0" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -630.5598,632.29744 -25.83293,0 9.5174,-4.9987 10.87702,0 5.43851,4.9987"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3693-9" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -562.23848,632.29744 -43.5081,0 0.3399,0 3.05917,-6.38723 9.51739,-11.10821 -1.35962,-7.49804 5.77842,0 4.75869,6.38722 5.77842,3.33246 0,-5.5541 14.95591,1.11082 1.69954,2.22164 -6.11833,4.44329 0,6.66492 5.43851,6.38723 -0.3399,0"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3695-4" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -562.23848,632.29744 -43.5081,0 0.3399,0 3.05917,-6.38723 9.51739,-11.10821 -1.35962,-7.49804 5.77842,0 4.75869,6.38722 5.77842,3.33246 0,-5.5541 14.95591,1.11082 1.69954,2.22164 -6.11833,4.44329 0,6.66492 5.43851,6.38723 -0.3399,0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3697-8" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -545.92295,632.29744 16.65545,0 -5.09861,-1.66623 -7.81786,-18.05085 -2.71926,4.44328 1.35963,13.60757 -2.71925,1.66623 0.3399,0"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3699-8" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -545.92295,632.29744 16.65545,0 -5.09861,-1.66623 -7.81786,-18.05085 -2.71926,4.44328 1.35963,13.60757 -2.71925,1.66623 0.3399,0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3701-2" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -381.74786,581.47736 -1.35962,2.77706 2.03944,3.88787 4.41879,1.94394 3.05916,3.88787 4.41879,1.11082 1.69954,3.88788 6.45823,1.11082 6.79814,-1.11082 5.09861,-3.05476 2.03944,-9.71969 -0.33991,-5.83181 -8.15777,-22.77183 -6.11832,2.49934 4.41879,15.82921 -1.69954,2.77705 -22.77377,2.77705"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3703-4" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -381.74786,581.47736 -1.35962,2.77706 2.03944,3.88787 4.41879,1.94394 3.05916,3.88787 4.41879,1.11082 1.69954,3.88788 6.45823,1.11082 6.79814,-1.11082 5.09861,-3.05476 2.03944,-9.71969 -0.33991,-5.83181 -8.15777,-22.77183 -6.11832,2.49934 4.41879,15.82921 -1.69954,2.77705 -22.77377,2.77705"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3705-5" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -381.74786,575.92326 9.5174,-1.11082 1.35963,-6.10952 -3.39907,-1.66623 -5.77842,2.49934 0.67981,2.77706 -2.37935,3.61017"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3707-5" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -381.74786,575.92326 9.5174,-1.11082 1.35963,-6.10952 -3.39907,-1.66623 -5.77842,2.49934 0.67981,2.77706 -2.37935,3.61017"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3709-1" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -329.06227,518.99367 4.07889,1.38852 6.45823,-4.16558 -2.37935,-2.77705 -2.37935,4.72099 -1.69953,-2.77705 -4.07889,3.61017"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3711-7" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -329.06227,518.99367 4.07889,1.38852 6.45823,-4.16558 -2.37935,-2.77705 -2.37935,4.72099 -1.69953,-2.77705 -4.07889,3.61017"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3713-1" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -294.05185,507.05234 2.37935,2.22164 4.41879,-0.83312 -3.73897,-3.33246 -3.05917,1.94394"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3715-1" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -294.05185,507.05234 2.37935,2.22164 4.41879,-0.83312 -3.73897,-3.33246 -3.05917,1.94394"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3717-5" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -306.62841,499.55429 1.69954,0.83312 -1.69954,-0.83312"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3719-2" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -306.62841,499.55429 1.69954,0.83312"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3721-7" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -304.92887,500.38741 5.77842,-3.33246 -5.43851,0 -2.03945,2.49934 1.69954,0.83312"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3723-61" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -304.92887,500.38741 5.77842,-3.33246 -5.43851,0 -2.03945,2.49934 1.69954,0.83312"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3725-4" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -307.30822,500.94282 -6.79814,1.38853 2.71926,0.83311 5.43851,-1.38852 -1.35963,-0.83312"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3727-2" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -307.30822,500.94282 -6.79814,1.38853 2.71926,0.83311 5.43851,-1.38852 -1.35963,-0.83312"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3729-3" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -305.94859,501.77594 -1.35963,-0.83312 1.35963,0.83312"
+           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3731-2" />
+        <path
+           inkscape:connector-curvature="0"
+           d="m -305.94859,501.77594 -1.35963,-0.83312"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
+           id="path3733-2" />
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.00000095px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
+           x="-325.6788"
+           y="-34.073654"
+           id="text10238"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan10240"
+             x="-325.6788"
+             y="-34.073654" /></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20.00000191px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
+           x="-717.97241"
+           y="46.259476"
+           id="text10242"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan10244"
+             x="-717.97241"
+             y="46.259476" /></text>
+        <text
+           xml:space="preserve"
+           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
+           x="-827.76105"
+           y="66.342789"
+           id="text10246"
+           sodipodi:linespacing="125%"><tspan
+             sodipodi:role="line"
+             id="tspan10248"
+             x="-827.76105"
+             y="66.342789" /></text>
+        <path
+           d="m -15.861526,-84.460434 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-06-3"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -628.03313,280.89936 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-6"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51300013;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -157.41464,448.26014 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
+           id="path4313-64-90-5-9"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -145.36467,425.49914 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
+           id="path4313-64-90-5-64"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -138.00079,320.06178 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.25051,-1.79529 -4.25051,-4.01388 0,-2.22151 1.90111,-4.01389 4.25051,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-63"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -109.21474,340.14508 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-2"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -144.3605,152.70101 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-1"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -95.491156,195.21065 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.349404,0 -4.250504,-1.79529 -4.250504,-4.01388 0,-2.22151 1.9011,-4.01389 4.250504,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-0"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -350.8837,-14.994484 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-5"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -371.73447,26.788286 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -410.12941,44.920676 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-7"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -70.721756,-41.102764 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-4"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 93.961234,-30.726394 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-62"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 281.74002,176.80096 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-01"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -745.85512,279.22576 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-6-1"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -520.92224,105.17055 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-6-6"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -113.2569,66.188856 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.0139 4.2506,-4.0139 2.3494,0 4.2506,1.79531 4.2506,4.0139 z"
+           id="path4313-64-90-15-9-1"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 207.09472,199.08685 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-2-7"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m 763.77522,110.09371 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-15-86-4"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -346.27222,47.609166 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-6"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -337.7516,44.058906 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-3"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -330.4144,39.798596 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-1"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -322.52015,43.334506 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-32"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -320.94704,51.159426 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-4"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -320.19638,59.457716 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-7"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -313.97328,45.490916 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-72"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -312.84482,53.705516 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34941,0 -4.25051,-1.79529 -4.25051,-4.01388 0,-2.22151 1.9011,-4.01389 4.25051,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-2"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -311.29347,60.796606 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-40"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -305.19916,67.062776 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-5"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -314.80762,67.782266 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-61"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -317.67408,87.501276 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-34"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -318.63517,77.852206 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-9"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -309.8229,74.354446 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-0"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -299.88218,73.881076 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-25"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -339.41948,54.460236 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-24"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+        <path
+           d="m -330.382,55.715446 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
+           id="path4313-64-90-5-8-43"
+           inkscape:connector-curvature="0"
+           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
+      </g>
+    </g>
+    <g
+       id="g6559"
+       transform="translate(8.2491224,-6.5330999)">
+      <g
+         transform="matrix(0.76097475,0.28566482,-0.27697216,0.78485765,46.070118,-29.357365)"
+         style="fill:none;stroke:#ffffff;stroke-width:17.23352242;stroke-miterlimit:4;stroke-dasharray:none"
+         id="g4785-9">
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 113.54215,15.035199 6.8404,18.793852"
+           id="path4692-9"
+           inkscape:connector-curvature="0" />
+        <g
+           id="g4781-6"
+           style="fill:none;stroke:#ffffff;stroke-width:17.23352242;stroke-miterlimit:4;stroke-dasharray:none">
+          <path
+             inkscape:connector-curvature="0"
+             id="path4660-0"
+             d="M 84.470435,-64.838678 113.54215,15.035199"
+             style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path4660-2-2"
+             d="M 82.833764,-64.838678 53.76205,15.035199"
+             style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        </g>
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="M 53.76205,15.035199 46.921648,33.829051"
+           id="path4692-6-7"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 38.801369,-15.204144 90.000001,0"
+           id="path4727-6"
+           inkscape:connector-curvature="0" />
+        <path
+           inkscape:connector-curvature="0"
+           id="path4739-1"
+           d="M 74.946205,-51.821313 A 22.685129,23.39617 0 0 1 61.629746,-78.309854 22.685129,23.39617 0 0 1 84.373691,-96.749989 22.685129,23.39617 0 0 1 106.18723,-77.150636 22.685129,23.39617 0 0 1 91.59277,-51.388232"
+           style="fill:none;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:17.23352242;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 84.058499,-109.68988 -0.25713,19.857401"
+           id="path4741-3"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cc" />
+      </g>
+      <g
+         transform="matrix(0.76097475,0.28566482,-0.27697216,0.78485765,46.119934,-28.297076)"
+         style="stroke:#550000"
+         id="g4785">
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 113.54215,15.035199 6.8404,18.793852"
+           id="path4692"
+           inkscape:connector-curvature="0" />
+        <g
+           id="g4781"
+           style="stroke:#550000;stroke-width:15;stroke-miterlimit:4;stroke-dasharray:none">
+          <path
+             inkscape:connector-curvature="0"
+             id="path4660"
+             d="M 84.470435,-64.838678 113.54215,15.035199"
+             style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:15;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path4660-2"
+             d="M 82.833764,-64.838678 53.76205,15.035199"
+             style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:15;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        </g>
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="M 53.76205,15.035199 46.921648,33.829051"
+           id="path4692-6"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 38.801369,-15.204144 90.000001,0"
+           id="path4727"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:none;stroke:#550000;stroke-width:4.63079357;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+           id="path4739"
+           sodipodi:type="arc"
+           sodipodi:cx="83.801628"
+           sodipodi:cy="-73.361259"
+           sodipodi:rx="22.685129"
+           sodipodi:ry="23.39617"
+           sodipodi:start="1.9718216"
+           sodipodi:end="1.2202115"
+           d="M 74.946205,-51.821313 A 22.685129,23.39617 0 0 1 61.629746,-78.309854 22.685129,23.39617 0 0 1 84.373691,-96.749989 22.685129,23.39617 0 0 1 106.18723,-77.150636 22.685129,23.39617 0 0 1 91.59277,-51.388232"
+           sodipodi:open="true" />
+        <path
+           style="fill:none;fill-rule:evenodd;stroke:#550000;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           d="m 84.058499,-109.68988 -0.25713,19.857401"
+           id="path4741"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cc" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/Rasterize.svg b/src/icons/Rasterize.svg
new file mode 100644
index 0000000..d84ac5d
--- /dev/null
+++ b/src/icons/Rasterize.svg
@@ -0,0 +1,142 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Rasterize.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="3.8890873"
+     inkscape:cx="-49.383218"
+     inkscape:cy="8.024022"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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">
+    <path
+       style="fill:#808000;fill-rule:evenodd;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+       d="m 2.314168,61.745546 0,-59.9999999 60,0 z"
+       id="path4150"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 63.021275,2.4526533 0,59.9999997 -60,0 z"
+       id="path4150-4"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#ff0000;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176"
+       sodipodi:type="arc"
+       sodipodi:cx="21.510124"
+       sodipodi:cy="54.598434"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 21.648717,59.596513 a 5,5 0 0 1 -5.136292,-4.846421 5,5 0 0 1 4.832979,-5.148944 5,5 0 0 1 5.161559,4.819504 5,5 0 0 1 -4.805995,5.174139"
+       sodipodi:open="true" />
+    <path
+       style="fill:#00ff00;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176-2"
+       sodipodi:type="arc"
+       sodipodi:cx="38.218964"
+       sodipodi:cy="54.201012"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 38.357557,59.19909 a 5,5 0 0 1 -5.136293,-4.846421 5,5 0 0 1 4.832979,-5.148943 5,5 0 0 1 5.161559,4.819503 5,5 0 0 1 -4.805995,5.174139"
+       sodipodi:open="true" />
+    <path
+       style="fill:#ff0000;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176-5"
+       sodipodi:type="arc"
+       sodipodi:cx="52.709297"
+       sodipodi:cy="53.569916"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 52.84789,58.567995 a 5,5 0 0 1 -5.136292,-4.846422 5,5 0 0 1 4.832979,-5.148943 5,5 0 0 1 5.161559,4.819503 5,5 0 0 1 -4.805995,5.174139"
+       sodipodi:open="true" />
+    <path
+       style="fill:#00ff00;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176-4"
+       sodipodi:type="arc"
+       sodipodi:cx="38.511044"
+       sodipodi:cy="38.798988"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 38.649636,43.797067 a 5,5 0 0 1 -5.136292,-4.846421 5,5 0 0 1 4.832979,-5.148944 5,5 0 0 1 5.161559,4.819504 5,5 0 0 1 -4.805995,5.174139"
+       sodipodi:open="true" />
+    <path
+       style="fill:#00ff00;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176-22"
+       sodipodi:type="arc"
+       sodipodi:cx="53.080963"
+       sodipodi:cy="38.712513"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 53.219556,43.710592 a 5,5 0 0 1 -5.136292,-4.846422 5,5 0 0 1 4.832979,-5.148943 5,5 0 0 1 5.161558,4.819503 5,5 0 0 1 -4.805994,5.17414"
+       sodipodi:open="true" />
+    <path
+       style="fill:#ff0000;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="path4176-1"
+       sodipodi:type="arc"
+       sodipodi:cx="53.167439"
+       sodipodi:cy="23.541859"
+       sodipodi:rx="5"
+       sodipodi:ry="5"
+       sodipodi:start="1.5430742"
+       sodipodi:end="1.5326183"
+       d="m 53.306031,28.539938 a 5,5 0 0 1 -5.136292,-4.846422 5,5 0 0 1 4.832979,-5.148943 5,5 0 0 1 5.161559,4.819503 5,5 0 0 1 -4.805995,5.174139"
+       sodipodi:open="true" />
+  </g>
+</svg>
diff --git a/src/icons/Record.svg b/src/icons/Record.svg
new file mode 100644
index 0000000..edd80c3
--- /dev/null
+++ b/src/icons/Record.svg
@@ -0,0 +1,88 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Record.svg">
+  <defs
+     id="defs3515" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="4.5851455"
+     inkscape:cx="-19.602485"
+     inkscape:cy="35.039408"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3012" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g3792"
+       style="fill:none;stroke:#000000;stroke-linecap:round" />
+    <g
+       id="g4172"
+       transform="matrix(1.2776886,0,0,1.2824305,10.638234,7.5887277)">
+      <ellipse
+         ry="19.977808"
+         rx="20.042089"
+         cy="19.022192"
+         cx="16.707911"
+         id="path4155-3"
+         style="fill:#ffffff;stroke:#ff0000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <ellipse
+         ry="10.01403"
+         rx="9.8211823"
+         cy="19.022192"
+         cx="16.707911"
+         id="path4155"
+         style="fill:#ff0000;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+    <rect
+       style="fill:none;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect4176"
+       width="63.971481"
+       height="63.9072"
+       x="0"
+       y="0.029766813" />
+  </g>
+</svg>
diff --git a/src/icons/RefAdd.svg b/src/icons/RefAdd.svg
new file mode 100644
index 0000000..bd07f19
--- /dev/null
+++ b/src/icons/RefAdd.svg
@@ -0,0 +1,359 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="RefAdd.svg">
+  <defs
+     id="defs3515">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4215"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4230"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4233"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker7570"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7572" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7453"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7353"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7355"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="scale(0.3) translate(-2.3,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path7255" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4212"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7079"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7081"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3901"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3895"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3874"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart-0"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4215-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7255-6" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4233-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="28.566534"
+     inkscape:cy="34.607866"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3090" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4284"
+       width="64"
+       height="64"
+       x="0"
+       y="0" />
+    <g
+       id="g4320"
+       transform="translate(-0.63636365,-15.090909)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300"
+         d="m 5,47.090909 55,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300-7"
+         d="m 32.5,74.590909 0,-55"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         d="m 40.218378,47.090908 a 7.7185264,7.7186804 0 0 1 -7.710377,7.718676 7.7185264,7.7186804 0 0 1 -7.726659,-7.702375 7.7185264,7.7186804 0 0 1 7.694059,-7.734943 7.7185264,7.7186804 0 0 1 7.742908,7.686041"
+         sodipodi:open="true"
+         sodipodi:end="6.2789616"
+         sodipodi:start="0"
+         sodipodi:ry="7.7186804"
+         sodipodi:rx="7.7185264"
+         sodipodi:cy="47.090908"
+         sodipodi:cx="32.499851"
+         sodipodi:type="arc"
+         id="path4180"
+         style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#0000ff;stroke-width:4.56263685;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#55d400;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="30.690956"
+       y="35.804699"
+       id="text4315"
+       sodipodi:linespacing="125%"
+       transform="scale(1.0305941,0.97031411)"><tspan
+         sodipodi:role="line"
+         id="tspan4317"
+         x="30.690956"
+         y="35.804699"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#55d400">+</tspan></text>
+  </g>
+</svg>
diff --git a/src/icons/RefDel.svg b/src/icons/RefDel.svg
new file mode 100644
index 0000000..e01ed31
--- /dev/null
+++ b/src/icons/RefDel.svg
@@ -0,0 +1,356 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="RefDel.svg">
+  <defs
+     id="defs3515">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4215"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4230"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4233"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker7570"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7572" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7453"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7353"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7355"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="scale(0.3) translate(-2.3,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path7255" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4212"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7079"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7081"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3901"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3895"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3874"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart-0"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4215-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7255-6" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4233-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="28.566534"
+     inkscape:cy="34.607866"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3090" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4284"
+       width="64"
+       height="64"
+       x="0"
+       y="0" />
+    <g
+       id="g4320"
+       transform="translate(-0.63636365,-15.090909)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300"
+         d="m 5,47.090909 55,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300-7"
+         d="m 32.5,74.590909 0,-55"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         d="m 40.218378,47.090908 a 7.7185264,7.7186804 0 0 1 -7.710377,7.718676 7.7185264,7.7186804 0 0 1 -7.726659,-7.702375 7.7185264,7.7186804 0 0 1 7.694059,-7.734943 7.7185264,7.7186804 0 0 1 7.742908,7.686041"
+         sodipodi:open="true"
+         sodipodi:end="6.2789616"
+         sodipodi:start="0"
+         sodipodi:ry="7.7186804"
+         sodipodi:rx="7.7185264"
+         sodipodi:cy="47.090908"
+         sodipodi:cx="32.499851"
+         sodipodi:type="arc"
+         id="path4180"
+         style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#0000ff;stroke-width:4.56263685;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <g
+       transform="matrix(0.72874008,-0.72874008,0.68611569,0.68611569,-2.0909091,2.6363636)"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4315">
+      <path
+         d="m 30.975139,42.020849 10.529561,0 0,7.612785 -10.529561,0 0,11.900445 -8.021134,0 0,-11.900445 -10.558728,0 0,-7.612785 10.558728,0 0,-11.404593 8.021134,0 0,11.404593 z"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#ff0000"
+         id="path5145"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/RefDelAll.svg b/src/icons/RefDelAll.svg
new file mode 100644
index 0000000..408afd1
--- /dev/null
+++ b/src/icons/RefDelAll.svg
@@ -0,0 +1,117 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="RefDelAll.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-81.181818"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="65"
+       height="65"
+       x="0"
+       y="-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,4 0,20"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,14 20,0"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,4 0,20"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,14 20,0"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,39 0,20"
+       id="path4153"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,49 20,0"
+       id="path4155"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,39 0,20"
+       id="path4157"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,49 20,0"
+       id="path4159"
+       inkscape:connector-curvature="0" />
+    <g
+       transform="matrix(0.72874008,-0.72874008,0.68611569,0.68611569,-18,18.818182)"
+       style="font-style:normal;font-weight:normal;font-size:21.23931313px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="text4315">
+      <path
+         d="m 30.975139,42.020849 10.529561,0 0,7.612785 -10.529561,0 0,11.900445 -8.021134,0 0,-11.900445 -10.558728,0 0,-7.612785 10.558728,0 0,-11.404593 8.021134,0 0,11.404593 z"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:59.735569px;font-family:Sans;-inkscape-font-specification:'Sans Bold';fill:#ff0000"
+         id="path5145"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/RefMove.svg b/src/icons/RefMove.svg
new file mode 100644
index 0000000..0c93bf0
--- /dev/null
+++ b/src/icons/RefMove.svg
@@ -0,0 +1,416 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="RefMove.svg">
+  <defs
+     id="defs3515">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4215"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4230"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4233"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker7570"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7572" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7453"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7353"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7355"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="scale(0.3) translate(-2.3,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path7255" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4212"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7079"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7081"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3901"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3895"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3874"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart-0"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4215-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7255-6" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4233-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="12.021079"
+     inkscape:cy="34.607866"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="993"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3090" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4284"
+       width="64"
+       height="64"
+       x="0"
+       y="0" />
+    <g
+       id="g4320"
+       transform="translate(-0.63636365,-15.090909)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300"
+         d="m 5,47.090909 55,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300-7"
+         d="m 32.5,74.590909 0,-55"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         d="m 40.218378,47.090908 a 7.7185264,7.7186804 0 0 1 -7.710377,7.718676 7.7185264,7.7186804 0 0 1 -7.726659,-7.702375 7.7185264,7.7186804 0 0 1 7.694059,-7.734943 7.7185264,7.7186804 0 0 1 7.742908,7.686041"
+         sodipodi:open="true"
+         sodipodi:end="6.2789616"
+         sodipodi:start="0"
+         sodipodi:ry="7.7186804"
+         sodipodi:rx="7.7185264"
+         sodipodi:cy="47.090908"
+         sodipodi:cx="32.499851"
+         sodipodi:type="arc"
+         id="path4180"
+         style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#0000ff;stroke-width:4.56263685;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <g
+       id="g4291"
+       transform="matrix(1.1910314,0,0,1.106179,-4.2427183,-1.981161)"
+       style="fill:#55d400;stroke:#55d400">
+      <g
+         transform="matrix(2.7713857,0,0,2.1726845,-12.642604,-13.556808)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="matrix(2.7713857,0,0,-2.1726845,-12.642603,54.298899)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303-3">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-6"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-7"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <g
+       id="g4291-3"
+       transform="matrix(0,-1.1910314,1.106179,0,22.355412,38.594107)"
+       style="fill:#55d400;stroke:#55d400">
+      <g
+         transform="matrix(2.7713857,0,0,2.1726845,-12.642604,-13.556808)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303-6">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-7"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-5"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="matrix(2.7713857,0,0,-2.1726845,-12.642603,54.298899)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303-3-3">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-6-5"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-7-6"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/RefMoveAuto.svg b/src/icons/RefMoveAuto.svg
new file mode 100644
index 0000000..8ddb5bc
--- /dev/null
+++ b/src/icons/RefMoveAuto.svg
@@ -0,0 +1,394 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="RefMoveAuto.svg">
+  <defs
+     id="defs3515">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4215"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4230"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4233"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker7570"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7572" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7453"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7353"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7355"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="scale(0.3) translate(-2.3,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path7255" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4212"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7079"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7081"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3901"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3895"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3874"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart-0"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4215-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7255-6" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4233-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="24.566534"
+     inkscape:cy="34.607866"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="993"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3090" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4284"
+       width="64"
+       height="64"
+       x="0"
+       y="0" />
+    <g
+       id="g4320"
+       transform="translate(-0.63636365,-15.090909)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300"
+         d="m 5,47.090909 55,0"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         inkscape:connector-curvature="0"
+         id="path4300-7"
+         d="m 32.5,74.590909 0,-55"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <path
+         d="m 40.218378,47.090908 a 7.7185264,7.7186804 0 0 1 -7.710377,7.718676 7.7185264,7.7186804 0 0 1 -7.726659,-7.702375 7.7185264,7.7186804 0 0 1 7.694059,-7.734943 7.7185264,7.7186804 0 0 1 7.742908,7.686041"
+         sodipodi:open="true"
+         sodipodi:end="6.2789616"
+         sodipodi:start="0"
+         sodipodi:ry="7.7186804"
+         sodipodi:rx="7.7185264"
+         sodipodi:cy="47.090908"
+         sodipodi:cx="32.499851"
+         sodipodi:type="arc"
+         id="path4180"
+         style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#0000ff;stroke-width:4.56263685;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+    </g>
+    <g
+       id="g4291-3"
+       transform="matrix(0,-1.1910314,1.106179,0,-3.0991335,29.957743)"
+       style="fill:#55d400;stroke:#55d400">
+      <g
+         transform="matrix(2.7713857,0,0,2.1726845,-12.642604,-13.556808)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303-6">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-7"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-5"
+           inkscape:connector-curvature="0" />
+      </g>
+      <g
+         transform="matrix(2.7713857,0,0,-2.1726845,-12.642603,54.298899)"
+         style="fill:#55d400;stroke:#55d400"
+         id="g4303-3-3">
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-6-5"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#55d400;fill-rule:evenodd;stroke:#55d400;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-7-6"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-weight:normal;font-size:20.02108002px;line-height:125%;font-family:Sans;-inkscape-font-specification:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="36.852524"
+       y="62.194321"
+       id="text4316"
+       sodipodi:linespacing="125%"
+       transform="scale(1.0476838,0.95448647)"><tspan
+         sodipodi:role="line"
+         id="tspan4318"
+         x="36.852524"
+         y="62.194321"
+         style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:31.282938px;font-family:Sans;-inkscape-font-specification:'Sans Bold'">A</tspan></text>
+  </g>
+</svg>
diff --git a/src/icons/ReferenceMap.svg b/src/icons/ReferenceMap.svg
new file mode 100644
index 0000000..38f7530
--- /dev/null
+++ b/src/icons/ReferenceMap.svg
@@ -0,0 +1,107 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ReferenceMap.svg.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="-81.181818"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="65"
+       height="65"
+       x="0"
+       y="-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,4 0,20"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,14 20,0"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,4 0,20"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,14 20,0"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,39 0,20"
+       id="path4153"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,49 20,0"
+       id="path4155"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,39 0,20"
+       id="path4157"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,49 20,0"
+       id="path4159"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/icons/Reload.svg b/src/icons/Reload.svg
new file mode 100644
index 0000000..3aaa5bd
--- /dev/null
+++ b/src/icons/Reload.svg
@@ -0,0 +1,64 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="SelectColor.svg">
+  <defs
+     id="defs3515" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="32"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="657"
+     inkscape:window-height="421"
+     inkscape:window-x="-2"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0" />
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.74318057;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+       d="m 37.816483,12.012065 -4.34375,4.875 c -0.69051,-0.53436 -1.40612,-1.04887 -2.1875,-1.5 -2.93379,-1.69382 -6.11785,-2.57391 -9.28125,-2.65625 -6.95948,-0.18115 -13.8048395,3.35817 -17.5312495,9.8125 -5.42023002,9.38812 -2.20062,21.39226 7.1874995,26.8125 9.38812,5.42023 21.39226,2.20062 26.8125,-7.1875 1.83501,-3.17832 2.64271,-6.64213 2.59375,-10.0625 l -9.78125,0.0937 c 0.0329,1.72523 -0.38663,3.45884 -1.3125,5.0625 -2.71012,4.69406 -8.71218,6.30388 -13.40625,3.59375 -4.69406 [...]
+       id="path4064"
+       inkscape:export-filename="/home/oeichler/dateien/cpp/MapRoom/src/icons/16x16/reset.png"
+       inkscape:export-xdpi="36.030266"
+       inkscape:export-ydpi="36.030266" />
+  </g>
+</svg>
diff --git a/src/icons/SaveGcp.svg b/src/icons/SaveGcp.svg
new file mode 100644
index 0000000..370e9e2
--- /dev/null
+++ b/src/icons/SaveGcp.svg
@@ -0,0 +1,139 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="SaveGcp.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="19.272727"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4139" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4141"
+       width="65"
+       height="65"
+       x="0"
+       y="-1" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,4 0,20"
+       id="path4145"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,14 20,0"
+       id="path4147"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,4 0,20"
+       id="path4149"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,14 20,0"
+       id="path4151"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 15,39 0,20"
+       id="path4153"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 5,49 20,0"
+       id="path4155"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 50,39 0,20"
+       id="path4157"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="m 40,49 20,0"
+       id="path4159"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4549"
+       transform="matrix(1.2484847,0,0,1.2363636,86.935722,-1210.1068)">
+      <rect
+         y="998.10114"
+         x="-49.82143"
+         height="29.999996"
+         width="30"
+         id="rect3366-5"
+         style="fill:#000080;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1017.6011"
+         x="-44.464287"
+         height="10.499999"
+         width="19.5"
+         id="rect4136-7"
+         style="fill:#cccccc;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1020.2748"
+         x="-40.067711"
+         height="5.0856576"
+         width="3.8534257"
+         id="rect4138-5"
+         style="fill:#000080;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1000.1259"
+         x="-45.793831"
+         height="14.050763"
+         width="21.944799"
+         id="rect4145-7"
+         style="fill:#ececec;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/SaveShape.svg b/src/icons/SaveShape.svg
new file mode 100644
index 0000000..2ca5ffd
--- /dev/null
+++ b/src/icons/SaveShape.svg
@@ -0,0 +1,98 @@
+<?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="svg3408"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="SaveShape.svg">
+  <defs
+     id="defs3410" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.5"
+     inkscape:cx="16.545455"
+     inkscape:cy="32"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3413">
+    <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">
+    <path
+       style="fill:#b3b3b3;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 5,59 0,-10 10.090909,-9.727273 0.363636,-25 9.727273,-0.181818 L 25.181818,4 44.454545,4.1818182 50,9 60,9 60,19.363636 C 60,34 60,39 60,49 l 0,10 z"
+       id="path4139"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccccccccccc" />
+    <g
+       id="g4549"
+       transform="matrix(1.2484847,0,0,1.2363636,82.11754,-1214.9249)">
+      <rect
+         y="998.10114"
+         x="-49.82143"
+         height="29.999996"
+         width="30"
+         id="rect3366-5"
+         style="fill:#000080;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1017.6011"
+         x="-44.464287"
+         height="10.499999"
+         width="19.5"
+         id="rect4136-7"
+         style="fill:#cccccc;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1020.2748"
+         x="-40.067711"
+         height="5.0856576"
+         width="3.8534257"
+         id="rect4138-5"
+         style="fill:#000080;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+      <rect
+         y="1000.1259"
+         x="-45.793831"
+         height="14.050763"
+         width="21.944799"
+         id="rect4145-7"
+         style="fill:#ececec;fill-opacity:1;stroke:#0000ff;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" />
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/SelectColor.svg b/src/icons/SelectColor.svg
index dda182a..3e7a0db 100644
--- a/src/icons/SelectColor.svg
+++ b/src/icons/SelectColor.svg
@@ -13,8 +13,8 @@
    height="64px"
    id="svg3513"
    version="1.1"
-   inkscape:version="0.48.4 r9939"
-   sodipodi:docname="FromMap.svg">
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="SelectColor.svg">
   <defs
      id="defs3515" />
   <sodipodi:namedview
@@ -24,18 +24,18 @@
      borderopacity="1.0"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="5.5"
-     inkscape:cx="32"
-     inkscape:cy="32"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="-46.24654"
+     inkscape:cy="34.743237"
      inkscape:current-layer="layer1"
      showgrid="true"
      inkscape:document-units="px"
      inkscape:grid-bbox="true"
-     inkscape:window-width="657"
-     inkscape:window-height="421"
-     inkscape:window-x="-2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
      inkscape:window-y="0"
-     inkscape:window-maximized="0" />
+     inkscape:window-maximized="1" />
   <metadata
      id="metadata3518">
     <rdf:RDF>
@@ -44,7 +44,7 @@
         <dc:format>image/svg+xml</dc:format>
         <dc:type
            rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
+        <dc:title />
       </cc:Work>
     </rdf:RDF>
   </metadata>
@@ -52,91 +52,139 @@
      id="layer1"
      inkscape:label="Layer 1"
      inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.66210139;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191"
+       sodipodi:cx="38.149799"
+       sodipodi:cy="11.277327"
+       sodipodi:rx="5.1731906"
+       sodipodi:ry="5.1371303"
+       d="M 42.609021,8.6731572 A 5.1731906,5.1371303 0 0 1 40.80104,15.688527 5.1731906,5.1371303 0 0 1 33.724878,13.938566 5.1731906,5.1371303 0 0 1 35.441312,6.9005565 5.1731906,5.1371303 0 0 1 42.53968,8.5594627"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="167.74112"
+       inkscape:transform-center-y="-40.420231" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#ff6600;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.87025416;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-1-7"
+       sodipodi:cx="28.334034"
+       sodipodi:cy="9.4692659"
+       sodipodi:rx="6.0682621"
+       sodipodi:ry="6.0458107"
+       d="M 33.564796,6.4044584 A 6.0682621,6.0458107 0 0 1 31.443995,14.66074 6.0682621,6.0458107 0 0 1 23.143507,12.601238 6.0682621,6.0458107 0 0 1 25.156921,4.3183116 6.0682621,6.0458107 0 0 1 33.483457,6.2706532"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="196.76387"
+       inkscape:transform-center-y="-47.569962" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.90427971;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-2"
+       sodipodi:cx="18.212276"
+       sodipodi:cy="14.250398"
+       sodipodi:rx="7.0509806"
+       sodipodi:ry="7.0284314"
+       d="m 24.290128,10.687469 a 7.0509806,7.0284314 0 0 1 -2.464251,9.598169 7.0509806,7.0284314 0 0 1 -9.644702,-2.394231 7.0509806,7.0284314 0 0 1 2.339474,-9.6291441 7.0509806,7.0284314 0 0 1 9.674968,2.2696541"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="228.62859"
+       inkscape:transform-center-y="-55.301467" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.92754292;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-1-6"
+       sodipodi:cx="13.169676"
+       sodipodi:cy="24.29217"
+       sodipodi:rx="8.0393333"
+       sodipodi:ry="8.0165215"
+       d="M 20.099475,20.228348 A 8.0393333,8.0165215 0 0 1 17.289803,31.175873 8.0393333,8.0165215 0 0 1 6.293181,28.445049 8.0393333,8.0165215 0 0 1 8.9605837,17.462195 8.0393333,8.0165215 0 0 1 19.991715,20.050927"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="260.67601"
+       inkscape:transform-center-y="-63.076014" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.95241332;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-1"
+       sodipodi:cx="16.732843"
+       sodipodi:cy="38.08551"
+       sodipodi:rx="9.0272388"
+       sodipodi:ry="9.0038157"
+       d="M 24.514204,33.521199 A 9.0272388,9.0038157 0 0 1 21.359269,45.816992 9.0272388,9.0038157 0 0 1 9.0113374,42.749848 9.0272388,9.0038157 0 0 1 12.006521,30.414373 9.0272388,9.0038157 0 0 1 24.393203,33.321927"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="292.70894"
+       inkscape:transform-center-y="-70.844286" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#008080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.96905339;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-1-3"
+       sodipodi:cx="30.09656"
+       sodipodi:cy="47.182976"
+       sodipodi:rx="10.018713"
+       sodipodi:ry="9.9952669"
+       d="m 38.732558,42.116067 a 10.018713,9.9952669 0 0 1 -3.501447,13.64974 10.018713,9.9952669 0 0 1 -13.704121,-3.404882 10.018713,9.9952669 0 0 1 3.324149,-13.69379 10.018713,9.9952669 0 0 1 13.747128,3.227718"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="324.85754"
+       inkscape:transform-center-y="-78.645275" />
+    <rect
+       style="fill:none;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none"
+       id="rect4177"
+       width="64.125"
+       height="64.25"
+       x="0"
+       y="-0.1250001" />
+    <path
+       sodipodi:type="arc"
+       style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1.9850167;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="path4191-15"
+       sodipodi:cx="45.631355"
+       sodipodi:cy="47.455017"
+       sodipodi:rx="11.010786"
+       sodipodi:ry="10.987074"
+       d="M 55.122507,41.885331 A 11.010786,10.987074 0 0 1 51.274341,56.889502 11.010786,10.987074 0 0 1 36.21321,53.146762 11.010786,10.987074 0 0 1 39.866522,38.094169 11.010786,10.987074 0 0 1 54.974918,41.642166"
+       sodipodi:start="5.7515649"
+       sodipodi:end="5.7256897"
+       sodipodi:open="true"
+       inkscape:transform-center-x="357.02561"
+       inkscape:transform-center-y="-86.449058" />
     <g
-       id="g4029"
-       inkscape:export-filename="/home/oeichler/dateien/cpp/MapRoom/src/icons/16x16/selectColor.png"
-       inkscape:export-xdpi="35.031654"
-       inkscape:export-ydpi="35.031654"
-       transform="translate(-355.39698,-171.88539)">
+       id="g3856"
+       transform="matrix(1.880201,0,0,1.4854749,77.517952,-39.050083)">
       <path
-         sodipodi:nodetypes="cccccc"
          inkscape:connector-curvature="0"
-         id="path4185"
-         d="m 363.83307,200.41809 c -2.82442,-7.84002 3.12987,-17.65666 9.38961,-20.86696 9.38961,-4.81545 15.64934,-1.60515 20.34415,1.60515 20.34414,14.44635 -0.80701,13.43234 -6.25974,19.26181 -5.2729,3.12211 19.09475,16.72011 -7.82468,16.0515 -6.25973,-1.60515 -9.30228,-4.12955 -15.64934,-16.0515 z"
-         style="fill:none;stroke:#000080;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+         id="path3828"
+         d="m -23.809459,52.661657 -0.134742,-7.426612 5.927764,-16.286397 3.098624,-0.716586 1.91307,2.540693 -5.927764,16.286397 z"
+         style="fill:none;stroke:#ffffff;stroke-width:3.04031777;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
       <path
-         transform="matrix(-0.31230026,-0.32032583,0.31230026,-0.32032583,425.69977,408.85785)"
-         sodipodi:open="true"
-         sodipodi:end="12.008875"
-         sodipodi:start="5.7515649"
-         d="m 394.89429,235.55622 c 3.96808,5.0605 1.71505,11.57543 -5.03229,14.55149 -6.74734,2.97606 -15.4339,1.28628 -19.40198,-3.77422 -3.96808,-5.0605 -1.71505,-11.57543 5.03229,-14.55149 6.62421,-2.92175 15.14625,-1.35194 19.212,3.53896"
-         sodipodi:ry="10.629921"
-         sodipodi:rx="14.173228"
-         sodipodi:cy="240.94485"
-         sodipodi:cx="382.67715"
-         id="path4189"
-         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000080;stroke-width:4.47129011;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
-      <path
-         inkscape:transform-center-y="-24.715677"
-         inkscape:transform-center-x="99.300349"
-         transform="matrix(0.43214642,0,0,0.59100922,227.38922,77.17196)"
-         sodipodi:open="true"
-         sodipodi:end="12.008875"
-         sodipodi:start="5.7515649"
-         d="m 385.24242,186.87259 c 1.98404,2.53025 0.85752,5.78772 -2.51615,7.27575 -3.37367,1.48803 -7.71695,0.64314 -9.70099,-1.88711 -1.98404,-2.53025 -0.85752,-5.78772 2.51615,-7.27575 3.3121,-1.46087 7.57312,-0.67597 9.606,1.76948"
-         sodipodi:ry="5.3149605"
-         sodipodi:rx="7.0866141"
-         sodipodi:cy="189.56691"
-         sodipodi:cx="379.13385"
-         id="path4191"
-         style="fill:#ffff00;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
+         inkscape:connector-curvature="0"
+         id="path3026"
+         d="m -18.016437,28.948648 5.011694,1.824107 -5.927764,16.286397 -4.876952,5.602505 -0.134742,-7.426612 z"
+         style="fill:#00ff00;stroke:#008000;stroke-width:1.52015889px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
       <path
-         inkscape:transform-center-y="-24.715677"
-         inkscape:transform-center-x="99.300349"
-         transform="matrix(0.43214642,0,0,0.59100922,217.45917,72.058052)"
-         sodipodi:open="true"
-         sodipodi:end="12.008875"
-         sodipodi:start="5.7515649"
-         d="m 385.24242,186.87259 c 1.98404,2.53025 0.85752,5.78772 -2.51615,7.27575 -3.37367,1.48803 -7.71695,0.64314 -9.70099,-1.88711 -1.98404,-2.53025 -0.85752,-5.78772 2.51615,-7.27575 3.3121,-1.46087 7.57312,-0.67597 9.606,1.76948"
-         sodipodi:ry="5.3149605"
-         sodipodi:rx="7.0866141"
-         sodipodi:cy="189.56691"
-         sodipodi:cx="379.13385"
-         id="path4191-2"
-         style="fill:#0000ff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
+         inkscape:connector-curvature="0"
+         id="path3032"
+         d="m -23.809459,52.661657 -0.134742,-7.426612 3.098624,-0.716586 1.91307,2.540693 z"
+         style="fill:none;stroke:#000000;stroke-width:1.52015889px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
       <path
-         inkscape:transform-center-y="-24.715677"
-         inkscape:transform-center-x="99.300349"
-         transform="matrix(0.43214642,0,0,0.59100922,208.49903,76.433473)"
-         sodipodi:open="true"
-         sodipodi:end="12.008875"
-         sodipodi:start="5.7515649"
-         d="m 385.24242,186.87259 c 1.98404,2.53025 0.85752,5.78772 -2.51615,7.27575 -3.37367,1.48803 -7.71695,0.64314 -9.70099,-1.88711 -1.98404,-2.53025 -0.85752,-5.78772 2.51615,-7.27575 3.3121,-1.46087 7.57312,-0.67597 9.606,1.76948"
-         sodipodi:ry="5.3149605"
-         sodipodi:rx="7.0866141"
-         sodipodi:cy="189.56691"
-         sodipodi:cx="379.13385"
-         id="path4191-1"
-         style="fill:#808000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
+         inkscape:connector-curvature="0"
+         id="path3034"
+         d="m -15.51059,29.860701 -5.334987,14.657758"
+         style="fill:none;stroke:#008000;stroke-width:1.52015889px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
       <path
-         inkscape:transform-center-y="-24.715677"
-         inkscape:transform-center-x="99.300349"
-         transform="matrix(0.43214642,0,0,0.59100922,207.46056,87.300285)"
-         sodipodi:open="true"
-         sodipodi:end="12.008875"
-         sodipodi:start="5.7515649"
-         d="m 385.24242,186.87259 c 1.98404,2.53025 0.85752,5.78772 -2.51615,7.27575 -3.37367,1.48803 -7.71695,0.64314 -9.70099,-1.88711 -1.98404,-2.53025 -0.85752,-5.78772 2.51615,-7.27575 3.3121,-1.46087 7.57312,-0.67597 9.606,1.76948"
-         sodipodi:ry="5.3149605"
-         sodipodi:rx="7.0866141"
-         sodipodi:cy="189.56691"
-         sodipodi:cx="379.13385"
-         id="path4191-15"
-         style="fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
-         sodipodi:type="arc" />
+         inkscape:connector-curvature="0"
+         id="path3036"
+         d="m -18.016437,28.948648 3.098624,-0.716586 1.91307,2.540693 z"
+         style="fill:none;stroke:#008000;stroke-width:1.52015889px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
     </g>
   </g>
 </svg>
diff --git a/src/icons/SetupSummary.svg b/src/icons/SetupSummary.svg
new file mode 100644
index 0000000..40d0ec0
--- /dev/null
+++ b/src/icons/SetupSummary.svg
@@ -0,0 +1,83 @@
+<?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="svg3020"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="SetupSummary.svg">
+  <defs
+     id="defs3022" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="16.374731"
+     inkscape:cy="29.282333"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4137" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3025">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       y="11.454543"
+       x="11.625697"
+       height="40"
+       width="37.47588"
+       id="rect4156-1"
+       style="fill:none;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
+    <g
+       transform="translate(1.0905358,0.86363673)"
+       id="g4174"
+       style="fill:none;stroke:#000000">
+      <path
+         id="path4172"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 55,14 55,4 5,4 18.71522,33.268709 5,59 55,59 55,49"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccc" />
+    </g>
+    <path
+       style="fill:#000080;stroke:#000000;stroke-width:1.13124371;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 43.829663,14.384026 -2.157429,0.07067 -0.636623,2.367451 0,0.282681 0.318322,2.014099 -3.006253,0.742037 -0.671982,-1.94343 -0.106001,-0.212008 -1.697647,-1.802091 -1.909847,0.91871 0.353661,2.473459 0.141401,0.21201 1.061043,1.73142 -2.440369,1.908095 -1.379344,-1.484074 -0.212263,-0.176677 -2.298898,-0.954048 -1.379335,1.625416 1.379335,2.120103 0.176822,0.141333 1.697646,1.130724 -1.450074,2.685472 -1.874481,-0.742035 -0.247576,-0.07069 -2.440365,0.07069 -0.636619,2.049434 [...]
+       id="path6034"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/icons/ShowSummary.svg b/src/icons/ShowSummary.svg
new file mode 100644
index 0000000..ca4d3d3
--- /dev/null
+++ b/src/icons/ShowSummary.svg
@@ -0,0 +1,111 @@
+<?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="svg3020"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ShowSummary.svg">
+  <defs
+     id="defs3022" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313709"
+     inkscape:cx="15.383105"
+     inkscape:cy="27.59424"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1912"
+     inkscape:window-height="1011"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3017" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3025">
+    <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">
+    <g
+       id="g4174"
+       style="fill:none;stroke:#000000">
+      <path
+         id="path4172"
+         style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         d="M 55,14 55,4 5,4 20.000064,33.995982 5,59 55,59 55,49"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccc" />
+    </g>
+    <g
+       id="g4181"
+       transform="translate(82.819882,4.0658639)">
+      <g
+         transform="translate(-70.017021,-3.7009707)"
+         id="g3019">
+        <rect
+           y="11.454543"
+           x="11.625697"
+           height="40"
+           width="37.47588"
+           id="rect4156-1"
+           style="fill:none;stroke:#000080;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+        <g
+           id="g3012">
+          <path
+             inkscape:connector-curvature="0"
+             d="m 12.578659,31.869715 c 5.995718,9.867863 18.720945,12.923577 28.422579,6.82512 2.822568,-1.774263 5.18323,-4.214229 6.882092,-7.113257 M 12.843943,31.039361 c 5.995719,-9.867863 18.720945,-12.923577 28.422579,-6.82512 2.822568,1.774263 5.18323,4.214228 6.882092,7.113257"
+             style="fill:#ffffff;stroke:#ffffff;stroke-width:4.43720007;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4129-7-3-9" />
+          <path
+             inkscape:connector-curvature="0"
+             d="m 12.578658,31.869715 c 5.995718,9.867863 18.720946,12.923577 28.42258,6.82512 2.822568,-1.774263 5.18323,-4.214229 6.882092,-7.113257 M 12.843942,31.039361 c 5.995719,-9.867863 18.720946,-12.923577 28.42258,-6.82512 2.822568,1.774263 5.18323,4.214228 6.882092,7.113257"
+             style="fill:#ffffff;stroke:#000080;stroke-width:2.03560519;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
+             id="path4129-7-3" />
+          <path
+             transform="matrix(0.89711754,0,0,0.95224119,-306.05544,0.63780763)"
+             sodipodi:type="arc"
+             style="fill:#000080;stroke:#000080;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+             id="path4149-5"
+             sodipodi:cx="375"
+             sodipodi:cy="32.362183"
+             sodipodi:rx="5"
+             sodipodi:ry="5"
+             d="m 379.43534,30.05399 a 5,5 0 0 1 -2.06344,6.709796 5,5 0 0 1 -6.73885,-1.966497 5,5 0 0 1 1.86914,-6.766497 5,5 0 0 1 6.79274,1.771394"
+             sodipodi:start="5.8033439"
+             sodipodi:end="5.7456747"
+             sodipodi:open="true" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/Sort.svg b/src/icons/Sort.svg
new file mode 100644
index 0000000..2e8fbca
--- /dev/null
+++ b/src/icons/Sort.svg
@@ -0,0 +1,387 @@
+<?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="svg3513"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="Sort.svg">
+  <defs
+     id="defs3515">
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4215"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4230"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Send"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4233"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.3) rotate(180) translate(-2.3,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible;"
+       id="marker7570"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow1Send">
+      <path
+         transform="scale(0.2) rotate(180) translate(6,0)"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         id="path7572" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7453"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path4227"
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7353"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7355"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253"
+       refX="0.0"
+       refY="0.0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         transform="scale(0.3) translate(-2.3,0)"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         id="path7255" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Sstart"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         id="path4212"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="marker7079"
+       style="overflow:visible;"
+       inkscape:isstock="true">
+      <path
+         id="path7081"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1"
+         transform="scale(0.2) rotate(180) translate(6,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Mend"
+       style="overflow:visible;">
+      <path
+         id="path3901"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(0.6) rotate(180) translate(0,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow2Lend"
+       style="overflow:visible;">
+      <path
+         id="path3895"
+         style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="scale(1.1) rotate(180) translate(1,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3880"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.4) translate(10,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Lstart"
+       style="overflow:visible">
+      <path
+         id="path3874"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
+         transform="scale(0.8) translate(12.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Mstart-0"
+       style="overflow:visible">
+      <path
+         inkscape:connector-curvature="0"
+         id="path3880-4"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+         transform="matrix(0.4,0,0,0.4,4,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart-3"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4230-6"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Send-7"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4215-5"
+         d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
+         transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
+    </marker>
+    <marker
+       inkscape:isstock="true"
+       style="overflow:visible"
+       id="marker7253-5"
+       refX="0"
+       refY="0"
+       orient="auto"
+       inkscape:stockid="Arrow2Sstart">
+      <path
+         inkscape:connector-curvature="0"
+         transform="matrix(0.3,0,0,0.3,-0.69,0)"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         id="path7255-6" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send-2"
+       style="overflow:visible"
+       inkscape:isstock="true">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4233-9"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
+         d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+         transform="matrix(-0.3,0,0,-0.3,0.69,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11"
+     inkscape:cx="25.884715"
+     inkscape:cy="34.607866"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="989"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3090" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3518">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="opacity:1;fill:none;fill-opacity:1;stroke:none;stroke-width:10;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4284"
+       width="64"
+       height="64"
+       x="0"
+       y="0" />
+    <rect
+       style="fill:#000080;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4325"
+       width="55"
+       height="11"
+       x="6.5454545"
+       y="1.8181819" />
+    <rect
+       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4327"
+       width="55"
+       height="8"
+       x="6.5454545"
+       y="13" />
+    <rect
+       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4327-9"
+       width="55"
+       height="8"
+       x="6.5454545"
+       y="21" />
+    <rect
+       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4327-1"
+       width="55"
+       height="8"
+       x="6.5454545"
+       y="29" />
+    <rect
+       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4327-5"
+       width="55"
+       height="8"
+       x="6.5454545"
+       y="37" />
+    <rect
+       style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4327-0"
+       width="55"
+       height="8"
+       x="6.5454545"
+       y="45" />
+    <g
+       id="g4362"
+       transform="translate(20,0)">
+      <path
+         sodipodi:nodetypes="cc"
+         inkscape:connector-curvature="0"
+         id="path4300-7"
+         d="m 13.798528,48.863636 0,-29.636363"
+         style="fill:none;fill-rule:evenodd;stroke:#000080;stroke-width:6;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+      <g
+         transform="matrix(3.3008074,0,0,-2.403378,-19.300455,80.083141)"
+         style="fill:#000080;stroke:#000080"
+         id="g4303-3">
+        <path
+           style="fill:#000080;fill-rule:evenodd;stroke:#000080;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 7,14 3,-5 3,5"
+           id="path4299-6"
+           inkscape:connector-curvature="0" />
+        <path
+           style="fill:#000080;fill-rule:evenodd;stroke:#000080;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 13,14 7,14"
+           id="path4301-7"
+           inkscape:connector-curvature="0" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/src/icons/ToggleRealTime.svg b/src/icons/ToggleRealTime.svg
new file mode 100644
index 0000000..4be088c
--- /dev/null
+++ b/src/icons/ToggleRealTime.svg
@@ -0,0 +1,113 @@
+<?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="svg3462"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ToggleRealTime.svg"
+   inkscape:export-filename="/home/norbert/Development/QMapShack/QMapShack_touch/src/icons/48x48/ToggleGis.png"
+   inkscape:export-xdpi="67.5"
+   inkscape:export-ydpi="67.5">
+  <defs
+     id="defs3464">
+    <inkscape:path-effect
+       effect="spiro"
+       id="path-effect4326"
+       is_visible="true" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.78"
+     inkscape:cx="-1.2056779"
+     inkscape:cy="30.311762"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1015"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1"
+     showguides="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3346" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata3467">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.12671447px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3336"
+       width="30.114006"
+       height="30.114006"
+       x="21.06686"
+       y="11.871966" />
+    <rect
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.12671447px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3338"
+       width="20.690577"
+       height="20.690577"
+       x="35.816578"
+       y="5.9311075" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1.54111087px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       id="rect3336-3"
+       width="41.189693"
+       height="41.189693"
+       x="3.9911385"
+       y="18.45553" />
+    <rect
+       style="fill:none;stroke:none"
+       id="rect3769"
+       width="28.615273"
+       height="28.615273"
+       x="5.4218798"
+       y="21.03591" />
+    <flowRoot
+       transform="translate(-47.854615,-997.38718)"
+       xml:space="preserve"
+       id="flowRoot3859"
+       style="font-style:normal;font-weight:normal;font-size:12px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
+         id="flowRegion3861"><rect
+           id="rect3863"
+           width="75.35714"
+           height="62.142857"
+           x="-9.4642859"
+           y="2.2142856" /></flowRegion><flowPara
+         id="flowPara3865" /></flowRoot>    <path
+       style="fill:#000080;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
+       d="m 7.776619,35.095081 14.142135,7.071068 7.071068,14.142135 10.606602,-31.819805 z"
+       id="path3377"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/src/icons/hicolor/scalable/apps/QMapShack.svg b/src/icons/hicolor/scalable/apps/QMapShack.svg
deleted file mode 100644
index 14f761c..0000000
--- a/src/icons/hicolor/scalable/apps/QMapShack.svg
+++ /dev/null
@@ -1,2117 +0,0 @@
-<?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="149.76425"
-   height="158.90781"
-   id="svg3462"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="QMapShack.svg">
-  <defs
-     id="defs3464" />
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="2.75"
-     inkscape:cx="0.84106947"
-     inkscape:cy="31.551972"
-     inkscape:current-layer="layer1"
-     showgrid="true"
-     inkscape:document-units="px"
-     inkscape:grid-bbox="true"
-     inkscape:window-width="1920"
-     inkscape:window-height="981"
-     inkscape:window-x="0"
-     inkscape:window-y="0"
-     inkscape:window-maximized="1"
-     fit-margin-top="0"
-     fit-margin-left="0"
-     fit-margin-right="0"
-     fit-margin-bottom="0" />
-  <metadata
-     id="metadata3467">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     id="layer1"
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     transform="translate(-18.801369,114.11195)">
-    <g
-       id="g5362">
-      <rect
-         y="-112.61195"
-         x="20.301369"
-         height="155.90781"
-         width="146.76425"
-         id="rect3167"
-         style="fill:#ffffff;stroke:#000080;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-      <g
-         transform="matrix(0.08207728,0,0,0.08432853,97.757513,-36.545624)"
-         id="g5153">
-        <path
-           d="m 498.84632,-32.609374 c -0.583,-0.917 -1.334,-3.333 -1.167,-3.833 0.167,-0.5 1.917,-3.75 1.833,-4.167 -0.084,-0.417 -1.417,-2.417 -1.5,-2.833 -0.083,-0.416 0.667,-1.583 0.667,-1.583 l -1.5,-0.25 c 0,0 2.083,-1.334 2.333,-1.667 0.25,-0.333 -0.75,-2.167 -0.75,-2.167 l 0.417,-2.083 2.083,-0.417 1.5,0.167 c 0,0 2,-1.75 2.25,-2.083 0.25,-0.333 0.5,-1.917 0.5,-1.917 0,0 2.75,3.5 3.417,4.583 0.667,1.083 2.25,3.833 2.167,4.583 -0.083,0.75 -0.167,4.75 -0.167,4.75 l 0.917,-0.167 c 0 [...]
-           id="path3671"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 505.51332,-55.442374 c 0,0 -1.167,-2.917 -1.583,-2.917 -0.416,0 -1.583,-0.75 -1.583,-0.75 l 0.667,-1.417 0.25,-1.917 c 0,0 4.083,-2.417 4.667,-3 0.584,-0.583 4.167,-2.5 4.167,-2.5 l 0.5,-3.417 -0.333,-1 2.167,-3.583 2,-0.917 -1.583,-1.667 -0.667,-1.833 -2,0.333 0.417,1.917 c 0,0 -1.333,1.166 -1.833,1.583 -0.5,0.417 -2.083,2.25 -2.333,2.167 -0.25,-0.083 -2.833,-0.417 -2.833,-0.417 0,0 1.416,1.917 1.083,2.333 -0.333,0.416 -3.083,0 -3.083,0 0,0 -1.667,-0.167 -1.833,-0.583 -0 [...]
-           id="path3675"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 517.76332,-31.48438 c 0,0 1.125,-2.125 1.75,-2.125 0.625,0 4.625,-2.75 4.875,-3.125 0.25,-0.375 1.25,-2.125 1.25,-2.125 0,0 2.625,0.375 3.5,0.375 0.875,0 5.25,-0.25 5.875,-0.375 0.625,-0.125 3,-0.125 3.375,0 0.375,0.125 1.125,-1.25 1.25,-1.875 0.125,-0.625 1.375,-2.875 1.875,-3.125 0.5,-0.25 1,-2.75 1,-2.75 0,0 -0.125,-1.5 0.125,-1.875 0.25,-0.375 2.625,-1 2.625,-1 0,0 -0.625,1.875 -1.125,2.125 -0.5,0.25 -0.625,0.875 -0.25,1.5 0.375,0.625 2.125,-0.25 2.125,-0.25 l 4.25,-2 [...]
-           id="path3677"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 517.51332,-30.35938 -1.875,0.75 -0.875,1.25 -2.125,0.5 -0.875,1.5 0.5,1.875 0.875,1 1,-0.75 1,0.5 0,-2.125 1,1.625 0,2.25 -1.25,0.5 -1.375,1.25 0.75,1.5 1.125,0.25 -1,1.5 1.875,1.125 1,-1.625 -0.25,-1.5 1.25,1.875 -0.125,1.375 1.5,-1.75 0.625,-2.125 -0.375,-1.875 2,-2.5 0.875,-1.5 -1.625,-1.5 -1.5,0.125 0.875,-1.25 -1.75,-0.625 -1.25,-1.625 z"
-           id="path3679"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 522.88832,-27.48438 1.625,0.75 0.375,1.625 1.875,1.125 0.625,-2.375 0.75,-1.125 2.75,0.125 1.125,-0.75 1.375,-1.5 0.25,-1.5 -0.5,-1.625 -2.5,0.125 -1.5,0.625 -0.5,1.625 -1.875,0.5 -1.75,0.375 -0.75,1.375 -1.375,0.625 z"
-           id="path3681"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 557.13832,-71.23438 0,-1.875 0.25,-1.625 -1,-1 0,-1.875 1.375,-1.75 1.5,-0.875 -0.375,-3.375 1.5,2 2,0.375 1.5,-2.5 -0.875,-1.25 1.625,-1.5 -0.625,-1.75 1,-2.5 -0.875,-3.375 2,-2.25 1.75,0.25 0,2 0.625,2.25 2.375,2.375 3.5,1.75 1.375,1.125 0.625,0.75 2.25,-0.375 1.625,-1.625 0.375,2 -0.75,1.875 0.5,1.25 1.125,-0.625 -0.625,1.625 -2.625,1.125 -2,1.125 -1.75,-0.25 -2,0.875 -0.875,2.125 -0.625,2.625 -4.25,-2.375 -1.125,-0.875 -1.75,-1.25 -1.375,1.375 -1.25,0.75 -1.875,-1 -1. [...]
-           id="path3683"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 512.51332,-2.98338 -2.875,0.375 -0.25,1.375 1.625,0.75 1.5,-2.5 z"
-           id="path3685"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 506.13832,4.8916261 -2.25,1.25 -0.375,1 1.875,-0.375 0.75,-1.875 z"
-           id="path3687"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 470.5134,-143.77538 2.667,-4.333 3.333,-0.5 4.833,-0.167 4.333,-1 4,1.833 2.667,2 0.5,-1 3.167,2.833 1.167,3.167 2,4.5 2.333,5.333 1.667,3.5 0,2.833 1.333,1.333 4.167,0.667 2.667,0.5 1.5,3 2,2.167 1.167,-0.333 -0.5,2.167 1.167,1.333 0.333,3 1.167,1.167 3,-0.167 2.667,-0.667 3,-1.333 3.167,-0.833 2.5,-0.5 3.333,-1.167 -1.333,2.667 -0.5,3 -1.5,1.667 -0.667,2.5 -0.5,2.167 -1.667,3.167 -1.333,3.833 -1.5,1.5 0.167,1.667 -2,-0.833 -3.167,-1 -1,0.833 -1.5,2.5 -0.833,0 0.667,3.66 [...]
-           id="path3691"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 431.1384,38.01662 -4.875,-0.625 -3.375,0.75 -0.25,1.5 -1.875,1.75 c 0,0 0.25,2 0.625,2.5 0.375,0.5 3,1.25 3,1.25 0,0 2.375,0.25 2.875,-0.375 0.5,-0.625 1.625,-2.125 1.625,-2.125 l 0.5,-2.375 2,-1 -0.25,-1.25 z"
-           id="path3693"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 477.59632,13.308626 c 0,0 -2.583,0.333 -3,0.833 -0.417,0.5 -2.167,3.75 -2.167,3.75 l -1.75,2.667 -0.167,2.5 1,2.083 1.75,1.833 0,1.5 0.833,-0.25 0.417,-1.916 1.417,-1.917 0.667,-2.917 0.25,-2.666 1.5,-2.084 0.083,-3.25 -0.833,-0.166 z"
-           id="path3695"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 332.17932,-121.60937 2.667,-2.333 3,-0.167 1.167,-2.667 2.833,0.667 1.833,-2.333 3.667,0 2.333,-2 1.667,0.333 0.5,-1 2.167,2.167 5.667,-0.167 2,2.5 1.833,1 4,-0.333 6.667,1.667 2,-0.667 0.667,-5 -1.833,-0.833 -0.333,-3.5 1.5,-4.667 1.833,1.333 1.167,-3.5 3.167,1.667 3.833,1.5 3.5,0.833 0.833,1.5 3.167,0.167 0,3.333 1.667,3.333 3,0.833 3.333,0 2.5,-1 4.667,0.5 1.833,0.667 2.667,0 4.167,3.333 3.5,1.667 7.167,1.667 4.167,0 3.333,-1 2.833,-1.167 3,-1.5 1.5,-2.833 3.5,-1.667 2 [...]
-           id="path3697"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 472.63832,44.01662 2,0.25 0.375,-0.75 2.5,1.5 1.875,-0.625 0.875,0.25 -0.625,1.25 -0.625,0.875 1,2.25 1,1.375 0,2.125 -1.5,1.25 0.25,0.875 -2.5,1.5 -0.125,2.25 -0.875,0.875 1.5,0.75 1,1 0,1.375 -1.625,-0.375 0.375,1.625 1.375,1.25 1.875,-1.5 2.25,0 0.75,1.875 c 0,0 0.75,-1.625 1.125,-1.25 0.375,0.375 2.125,1.625 2.125,1.625 l -1.125,1.125 1,1.5 1.625,1.125 -0.5,1.625 -2.625,-1.375 -1.625,-2.25 -2.25,-1.75 0.5,2.625 -2,-1.5 -1.875,-0.625 c 0,0 -0.5,-0.375 -1.375,0.125 -0.8 [...]
-           id="path3699"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 467.88832,76.39162 -1.125,1.625 -1.5,0.25 1.125,1.125 -0.5,0.875 -1,1.125 -1.125,1.25 -2.375,2.625 -2.375,1.375 -1.5,2.375 -0.625,1.625 1.875,-1.625 2,-0.875 1.375,-1.875 1.875,-1.375 1.125,-2.125 -0.125,-0.875 1.75,0.375 1.25,-1.25 1.625,-1 1,-0.75 -1.875,-0.125 -0.75,-0.625 0.75,-2.125 -0.875,0 z"
-           id="path3701"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 476.01332,68.26662 -1.5,-1 -1.625,-0.375 -1.875,0.5 2.125,1.25 0.5,1.5 0.125,1.75 1.375,1 1.75,-1.25 0.125,-1.625 -0.75,-1 -0.25,-0.75 z"
-           id="path3703"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 484.63832,75.64162 -3.375,0.5 -0.625,-1.375 -1.75,-0.75 0.125,2.5 0.125,1.5 -1.875,1.5 c 0,0 1.25,1.25 1.5,0.875 0.25,-0.375 2.375,-2 2.375,-2 l 1.875,-0.75 0.875,-1 0.75,-1 z"
-           id="path3705"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 488.88832,71.14162 0.5,1.875 1.625,1 1.125,1.125 -0.5,1.375 1.375,1 1.875,0.125 -0.75,-2.125 -0.875,-1.875 0.5,-1.375 -1.875,-1.25 -1.625,-0.125 -1.375,0.25 z"
-           id="path3707"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 484.76332,78.39162 -1.125,0.125 -0.625,0.875 -0.375,2.5 -1.5,0.5 -0.75,0.625 1.625,1.5 1,0.875 c 0,0 -0.125,1.375 0.25,1.25 0.375,-0.125 1.75,-0.75 1.75,-0.75 l -0.875,-1.5 -0.25,-2.5 1.75,-1.375 0.125,-1.75 -1,-0.375 z"
-           id="path3709"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 487.51332,77.64162 -1.25,1.125 0.5,1.5 -0.75,1.375 -1.25,0.875 0.375,1.375 1.5,-0.125 0.75,-0.875 0.625,0.625 2,-0.375 0.125,-1.375 -2.125,-0.25 -0.125,-1.375 0.125,-1.5 -0.5,-1 z"
-           id="path3711"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 489.88832,74.89162 -1.125,0.75 0.5,1.625 -0.25,2.25 1,-0.25 0.75,1 0.5,1.875 1.25,-0.75 0.875,-0.5 -0.75,-2.25 -0.125,-1.25 -2,-1.25 -0.625,-1.25 z"
-           id="path3713"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 485.38832,87.89162 -1.75,1.125 -1.375,0.375 0.875,1.625 -2.625,0.125 -1.5,1.125 -0.125,2.75 0.375,1 -2.25,0.75 2.125,1.75 1.75,-1.25 -0.75,-1.125 -0.25,-0.75 1,-1.5 0.875,-1.5 1.125,1.375 1.5,-0.125 1.125,0.125 -0.5,-1.625 1.125,-0.375 1.5,1.75 1,1.5 -0.875,1.625 1.5,2.625 1.75,0.375 2.25,-0.625 -0.375,1.375 c 0,0 1.25,1.125 1.25,0.375 0,-0.75 0.5,-1.75 0.5,-1.75 l -0.75,-2.125 0.375,-1.25 0.75,-0.875 1.125,1.25 1.125,1.125 0.75,-1.875 0.5,-1.875 -0.625,-2.5 -0.375,-1 0.3 [...]
-           id="path3715"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 475.63832,99.76662 -1.75,-0.375 -1.5,0.75 1.125,1.625 1.25,-1 0.875,-1 z"
-           id="path3717"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 483.88832,70.89162 -0.375,1.5 0,1.125 2.25,-0.5 1.625,0.875 -0.5,-1.75 -1.75,-0.75 -1.25,-0.5 z"
-           id="path3719"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 488.51332,64.39162 0.125,1.5 0.625,0.75 1.75,-1.125 -1.25,-1.625 -1.25,0.5 z"
-           id="path3721"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 393.34632,26.058626 2,1.333 1.333,1.5 0.167,2.167 1,2 4.833,-0.334 0.667,1.5 0.667,1.834 1.333,0.666 -2,1.167 -2,0.5 0,2.5 2,1.5 2.167,1.667 3.167,4.5 2.833,2 1.5,2.333 2,2.167 0,2.333 0.5,1.833 0.167,2.334 0,2 0.667,2.5 0.167,4 -1,1.833 -2.667,1.5 -2.667,0.667 0.333,2 1.167,1.666 -1.833,-0.166 -2.667,-0.334 -1.833,1.334 -2.167,0.666 -1.333,0.167 -1,0.667 2.167,0.666 1,1 1.5,0.167 -1.167,2.667 -0.167,1.666 0,1.834 -0.5,0.666 2.5,-1 1.333,-1.833 1.833,-1.833 2.5,-0.5 -0.5, [...]
-           id="path3723"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 388.01332,29.391626 -1.167,1.833 -2,0.333 0.167,2 -1.167,1 0,1.334 2.333,-0.5 0.167,2.5 2.333,0.833 0.667,3.167 -0.5,2.666 -1,3.5 5,-2.666 2.167,1 1.667,-0.167 0.667,-1.833 1.667,0.5 1.667,1.833 2.333,1.167 1.667,3 0.167,3.166 2.5,3 0.833,3.5 -1.333,1.5 2.667,1.667 2.333,-1.833 2.167,0.5 1.667,-0.833 -0.667,-4.167 0,-2.333 -3.5,-4.5 -3.333,-2.167 -2.667,-4.333 -4.167,-3.167 0,-2.5 3.333,-1.5 -0.667,-0.833 -1.333,-3.334 -4.833,0.334 -1,-2 -0.167,-2.167 -3.333,-2.833 -1.833 [...]
-           id="path3725"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 406.84632,62.057626 -4.167,-0.166 -3.833,0.5 -2.667,0.666 -1,3.334 0.667,2.666 0.333,2.834 -0.333,3.166 1.333,3 1.833,-0.666 -0.5,2.166 0.333,1.167 2,-0.666 1.667,-0.834 4.667,-2 3.833,0.333 -0.833,-3.499 5.333,-2.167 1,-2.375 -0.667,-4.292 -0.167,-3.666 -1.667,0.833 -2.167,-0.5 -2.333,1.833 -2.665,-1.667 z"
-           id="path3727"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 383.26332,96.891626 1.375,0.125 1.125,-1.375 1.25,1.25 1.625,0.25 -0.25,2.25 2.875,-0.875 0.875,-0.125 -2.875,-3.125 -1.625,0.25 -1.375,-1.125 -1.5,-1.125 -1.125,-1 1.125,-0.75 -0.625,-3 -1.125,0.5 -0.625,-3.25 -1.75,0.25 -1.5,-2.25 0.75,-2.875 0.5,-1.5 1,-1.125 0.25,-2.25 1,-1.625 0.25,-0.875 0.75,-0.5 0,-2.875 -0.5,-1.75 0.875,-2.125 2.625,0.5 0.875,-0.625 -0.75,3 0.375,2 2.5,-0.375 1.75,0.25 1.875,1.625 -0.25,1.375 1.875,-1.125 1,1.25 0,-4.25 -1,-3.375 1.292,-3.459 4.3 [...]
-           id="path3729"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 400.88832,117.76662 -1,1.25 -2.625,0 -2.875,-2.125 -2.5,-1.375 -3,-2.5 0.25,-1.125 -2.75,-3.375 -0.875,-3.5 -0.375,-2.75 -0.625,-2.625 -1.75,-2.75 1.875,0.125 1.125,-1 1.25,0.875 1.125,0.625 -0.125,1.75 4.125,-0.875 3.125,2.125 2.25,2.75 0.375,3.25 -0.5,4 0,2.375 2.5,1.875 0.75,1.75 0.25,1.25 z"
-           id="path3731"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 425.26332,116.89162 1.625,2 1.5,2 3.5,-0.125 3.25,-0.125 3.125,-2.25 1,-0.5 3.5,1.125 2.125,-0.75 3,-2.75 1.5,-2.875 2,-2.875 0.75,-3 2,-0.875 3,0.75 3.125,0.625 2,-0.375 1.875,-0.625 -1.75,-1.375 0,-0.625 2.875,0 1.375,-1 -0.875,-1.875 -3.125,-1.25 -1.875,0.25 -0.875,0 0,-2.5 -2,-1.375 -0.75,-1.375 -0.75,1.625 -0.875,-1.5 -1,3.125 -0.25,1.875 -1.125,0.375 -2.125,0.625 -1.5,0.875 -0.125,1.5 -1.125,0.75 -1.375,-0.5 -0.625,1.75 -2.25,0 -0.375,2.75 -2.5,2 -2,2 -5,0.375 -2.5, [...]
-           id="path3733"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 532.67932,149.39162 -1.5,1.667 -0.333,2.333 0.667,2.5 1.167,-1.833 -0.833,-1.167 2.167,0 -0.5,-2.333 -0.835,-1.167 z"
-           id="path3741"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 519.84632,157.22462 -1.5,1.334 0,2.5 2.5,-2.5 -1,-1.334 z"
-           id="path3743"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 372.76332,102.89162 -3.875,-0.125 -3.25,-0.25 -1,-1.125 -2.25,-0.625 0.125,3.25 2.25,3 2.875,1.75 1.625,1.625 1.625,0.875 1.75,2.875 0.625,2.5 3.375,0.875 1.5,3 1.625,3.25 0.25,1.375 1.875,0.625 2,3.125 1.875,3.375 0.875,3.25 2.875,1.75 2,3.375 2.875,2.5 2.5,2.5 3,1.125 1.5,2.125 1,2.125 1.875,-1.125 2.625,-0.125 1.5,1.375 0.125,-3.375 0.125,-4.75 -0.125,-2 1.125,-1.625 -0.625,-2 -3.125,-1.25 -1.75,-0.625 -0.875,-2.5 -0.625,-3.25 -3.5,-0.125 -1.25,-0.75 0.75,-1.125 0.875, [...]
-           id="path3745"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 406.17932,133.55862 1.167,-1.834 1.5,1 1,-1.333 1.5,4.5 2,1.167 0,1.833 -2.167,-0.333 -1.167,-1.834 -1.667,-1.166 -2,-1.334 -0.166,-0.666 z"
-           id="path3747"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 416.84632,136.55862 -0.167,2.666 1.667,-0.166 0.5,-1.334 -2,-1.166 z"
-           id="path3749"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 425.26332,116.89162 -2.25,0.667 -1.167,2.5 0,2.333 0.5,2.667 2,2 -0.333,2.666 2.5,0.334 0.667,3 -0.5,2 0.833,3.166 3.667,-0.166 2.667,-0.334 0.833,2.167 0.167,1.167 4,-1.334 1.167,-1.166 2.5,2 2.833,-0.334 1.167,1.667 -0.333,2.5 4.833,-3 3.667,-1.833 -0.5,-2.5 1.167,-1.5 -1.333,-3.667 2,-1.5 2.167,-0.667 1.333,-2 -0.167,-1.666 1.333,-4 4.833,0.166 -4.333,-4.666 -1.833,-1.334 1.667,-0.166 -0.667,-3.334 -1.333,-2.5 0.167,-2 0.333,-1 -5.375,-1.333 -2,0.875 -0.625,2.125 -0.83 [...]
-           id="path3751"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 408.34632,152.05862 -0.167,1.333 -2.5,1.833 2.333,0.667 1.833,0.167 0.333,2 3,-0.167 3.167,0.667 2.667,1.5 2.667,-1.5 5,1 1.167,1.833 c 0,0 0.833,1.5 1.333,1.5 0.5,0 4.5,-0.167 4.5,-0.167 l 3,-1 4.333,1.167 1.5,-0.5 2.5,1.167 1.167,-0.167 -1.333,-2.167 2.333,1 1.333,0.667 1.167,0.833 1.5,-1.166 1.833,0 -0.667,1 2.5,0.5 0.832,-0.832 0,-0.002 0.667,1.334 c 0,0 -1.667,0.999 -0.333,1.166 1.334,0.167 5,0 5,0 l 1.167,-1.166 c 0,0 0.167,-1.169 0.667,-0.834 0.5,0.334 2.333,0.5 2. [...]
-           id="path3753"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 492.17932,117.72462 -1.333,1.834 -2.5,1.833 -3.5,-0.5 -4.5,0.333 -3.333,-1.5 -3.5,-0.5 -1.667,2.334 -1.5,0.833 -1.5,1 0.167,3 0,2.833 -2,1.5 0.167,3.334 -1,2.333 -2.667,0.667 1,3.333 1.167,0.5 1.167,-0.833 1.333,2.166 0.5,3 -1.5,2.5 0.667,2.5 4.333,-0.333 -1.167,-2.5 0.667,-2.5 0.167,-3.167 -0.667,-2.5 0.333,-1.5 1.667,-0.833 1.333,-0.167 0.167,3 c 0,0 -1.167,1.334 -0.667,1.334 0.5,0 2.333,1.333 2.333,1.333 l 0.833,1.167 -0.167,2.333 2.667,1.667 1,-2 0.167,3 1.667,-1.334  [...]
-           id="path3755"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 561.01332,136.22462 0,8.167 0.5,7.667 -1.333,2.166 1,2.167 0.333,9.167 -3.833,-3.667 -0.833,-1.167 -2.333,0.667 -2.667,-0.333 -4.167,0.666 1.667,-3 2,-0.666 1.333,-1.5 -1.5,-1.5 -1.333,-2.834 -1.333,-2.5 -1.833,-1.666 -5.333,-1.667 -5.5,-1.667 -1.5,0 -2.667,-1.833 -2.167,-1.667 -1.5,2 -1.667,0.167 -1.5,-2.5 -0.333,-1.833 -4.667,-1.834 1.167,-1.166 5.333,0.333 2.5,-0.167 1.667,-1 -2.167,-0.666 -4.333,-0.167 -1.667,0 -1,-1.833 -2.333,-1 -2.833,-0.167 -0.333,-1.833 c 0,0 0.8 [...]
-           id="path3757"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 504.84632,115.72462 -2.167,3.167 -0.5,3.333 1.333,1 -0.167,3.167 3.333,2.833 -1.333,-4.833 2.167,-0.667 -0.5,-2.5 1.333,-1.833 -2.5,0.667 -1.667,-1.167 0.668,-3.167 z"
-           id="path3759"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 504.84632,138.72462 2.333,-1 5.5,1.167 3.333,0 1,2.167 -1.5,1.666 -3.5,-2.166 -4.167,0 -2.5,-0.167 -0.499,-1.667 z"
-           id="path3761"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 497.51332,138.89162 c 0,0 -2,0.5 -1.667,1 0.333,0.5 1.333,2.5 1.833,2.5 0.5,0 3.167,-1.167 3.167,-1.167 l 0.5,-1.666 -1.5,-1.167 -2.333,0.5 z"
-           id="path3763"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 491.84632,164.55862 0.333,2.833 -1.833,2.167 -1.833,0.5 -1.833,0.833 -0.167,-2.5 1.833,-2.333 2.333,-0.834 1.167,-0.666 z"
-           id="path3765"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 469.84632,166.55862 -2.667,0.166 c 0,0 -2.833,0.168 -2.167,0.334 0.666,0.165 3.667,1.833 3.667,1.833 l 2.167,-0.833 0.667,2.5 2.167,0 0.167,-2 -2,-1.167 -1.333,-0.5 -0.668,-0.333 z"
-           id="path3767"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 491.84632,164.55863 0.417,2.458 2.5,-1.25 2.75,-0.5 2.875,-1.375 1.875,-1.375 -1.75,-1 -3.875,0.25 -1,1 -3.125,0.5 -0.667,1.292 z"
-           id="path3769"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 373.67932,-2.4413739 -3.667,3.16600005 1.5,2.16699995 -3,-0.5 -3,0.667 -2.667,3.666 -0.667,4.8339999 -2.167,5 -0.833,2.5 -2.333,-1.5 -2.333,-0.167 0.333,5.167 -0.5,3.5 -1.333,1 -0.833,2.666 -0.5,1.167 -1,-0.333 0.167,2.666 0.5,2 2.333,2.334 1.667,0.5 1,3.166 -0.333,1.5 1.667,-1.166 1.5,3.333 0.667,3.667 0.667,3.166 -2,1.334 0.167,2.333 3.167,1.333 2,-0.666 2.833,-1.834 2.167,-0.833 0.167,-3.333 2.167,2 0.833,1.5 0.667,1.5 0.5,3.666 2,4 0.667,2.667 1,3 0.167,3.667 0.833,3  [...]
-           id="path3771"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 333.84632,5.7246261 -0.833,3.167 -0.667,0.833 2.667,1.8339999 0.5,1.5 -1.5,0.666 -1,1.667 -1,-0.167 1.5,2.667 1.5,0 0.333,2.5 1,2.5 0.167,3.333 -0.167,3.5 3.167,-0.5 3.167,-1.5 0.167,-2.666 0.667,1.666 1.667,-0.833 0.167,-1.167 2,-0.333 1.167,2 0.333,2.667 0,2.166 2,2 -0.667,-3.166 1.5,0.333 0.833,-3.667 -1.167,-4.833 -1.5,-2.167 -1,3 -1.333,-0.333 -1.333,-1.333 0.667,-3 1.5,-0.667 1.333,-0.833 2,-3.5 -3.667,0 -7,0.166 -0.833,-2 -1,-3.6659999 -1.833,1 -1,-2 -0.833,0.333 - [...]
-           id="path3773"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 336.68032,1.2246261 -0.167,2.334 2.667,0.5 2.5,1.166 1.5,-1 2.833,0.334 3.333,0 0.5,-2.334 -1.667,-1 -0.167,-1.66599995 -4.5,-1.66700005 -2.833,0 -2.333,1.66700005 -1.666,1.66599995 z"
-           id="path3775"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 332.34632,-0.10837385 -1.167,1.83299995 0.833,3.167 -1.667,1.667 -2.167,0 -2.833,-1.167 -2,0.333 -2.333,-1.666 -3.5,-0.334 0,-2 -7.167,-0.666 -2.833,-1.66699995 -3.833,-1.83300005 -3.167,-1.667 -2.5,-1.667 4.167,-6.8330001 2.5,0.167 1.667,0 2.333,1.666 2.667,1.3340001 0.667,0.666 1.167,1.834 2.5,-0.667 3,1.167 1.167,1.333 1,1.167 4.5,0.166 2.667,3.00000005 4.332,0.667 z"
-           id="path3777"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 286.17932,90.224626 c 0.833,0 3.333,-0.833 3.333,-0.833 l -0.167,-2.833 1.833,-0.667 2.667,-0.333 -1,-1.5 1,-2.667 1,0.333 1.5,-2.333 -0.833,-5.5 1.833,-2.833 1.667,-2.5 -1,-4.5 -0.833,-2.667 1.667,-5 2,0.833 2.333,-2.833 3,0 1.333,-2 0,-2.333 1.833,-1.5 4.333,-3 3.833,-2 1.833,-4.334 1,-0.833 1.167,0.667 4.167,-1.334 2,-3 0,-3.5 2.833,-1.5 1.667,-4 0.5,2.834 0.833,1.333 2.833,-0.167 0.167,-4.833 -1.167,-4 -0.333,-3 -1.5,0 -1.5,-2.667 1,0.167 1,-1.667 1.5,-0.666 -0.5,-1.5 [...]
-           id="path3779"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 297.17932,83.224626 -0.333,4.5 -1.167,3 0.667,3.834 0.333,3.5 0.833,1.333 4.833,-0.5 2.333,-1.667 0.5,-4.666 -2,-1.667 -0.667,-2 -1.667,-2.333 -1,-1.667 -1.667,-0.833 -0.998,-0.834 z"
-           id="path3781"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 245.51332,20.391626 -2.667,-1 -1.667,-2.667 -2,-4 -2,0 -4.333,0.334 -2.667,0 -4,-0.667 -5.667,1 -3,0.333 -0.333,-1.666 0.667,-4.3339999 2.667,-1.666 2.333,-2 1,-1.334 -1.333,-0.333 -0.333,-2.99999995 -2.667,-3.33300005 -5,-5.667 4.667,2.333 3.333,0 2.667,-0.333 4.667,0.333 5,-2 2.333,-0.333 2.667,-8.0000001 3.333,-0.333 2.667,-2 2.333,0 0.667,1.333 3,-7.333 3,-0.667 -0.667,-5.333 4.667,-0.333 0,-2 1.667,-3 0.333,-3.667 -0.333,-3 3.667,-1.667 4.667,-2 3.333,1.333 2.167,-1. [...]
-           id="path3791"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 215.34632,-8.7743739 -0.167,-2.0000001 2.333,-3.334 0.333,-3.666 -2.833,-0.667 -0.833,-5.667 -1.167,-2.5 0.667,-2.333 -1,-1 0.333,-2.833 1.333,-3.167 1.5,-4.167 2,0.833 2.333,0.333 0.667,1 2.333,-0.833 1.333,-3.333 4.833,-1.5 1.667,-3.167 1,-2 2.167,-0.167 2.333,-0.5 2.167,0.167 2.667,0.333 3,0.833 4.333,-0.167 1.167,0.167 2,-2 2,-0.5 2.5,-4 1.833,0.167 0.667,2.333 0.833,0.167 0.667,2.833 -0.167,2.333 1.667,0.333 3.5,-2.167 2.167,-1.167 2,-0.333 1.167,1.167 3.167,-0.833 0 [...]
-           id="path3793"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 244.34632,-48.109374 1.667,-3 0.167,-2 -0.167,-4.5 -1.667,-1.167 -0.667,-0.667 -0.167,-1.167 3.667,-0.333 0.5,-2.667 1.5,-3.333 1.5,0.5 0.167,-1.667 1.167,0.333 3.667,-1.833 0.5,2 -1,1.167 1.167,1.167 -2,0.333 -2.333,0.5 -0.833,1 -2,-0.167 0.333,1.5 1.667,0 1.667,0.333 1.5,0.833 3.667,0 2,-0.667 0.833,0.167 1.5,1.333 3,-0.833 1.5,-0.667 2.833,0.833 0.167,1.5 0.833,2.333 0.167,1 2.167,-0.167 2,2 0.333,3.167 -1,0.833 -3,1 -1.833,-1 -2,0.333 -5.667,3.333 -1.667,-0.333 0.333, [...]
-           id="path3795"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 256.70032,-65.296374 4.188,-0.125 2.125,-1.25 2.313,-1.563 1.25,-1.25 -2.438,-1.375 -1.625,0.688 -1.313,-0.125 -1.5,-1.875 -2.625,0.938 -2.625,-1 0.25,-0.75 2.375,-1.125 1.563,-1.438 0.813,-0.625 -1.063,-1.438 1.625,-1.938 2.938,0.063 3.375,0 3.188,1.438 0.813,-0.875 -0.25,-2.875 2,-1.25 1.938,0.063 1.688,1.188 3.063,0.875 3.188,-0.375 2.5,-0.313 3.563,-0.125 2.375,-0.5 2,0.375 1.688,2.188 1.5,1.813 2.125,-0.063 0.375,1.188 -1.375,2.063 -2.5,0.813 -3.063,1.75 -3.188,2.125 [...]
-           id="path3797"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 184.01332,-49.484374 -0.875,-5.25 -0.25,-1.75 1.25,-2 -1.625,-0.625 -1,-1.375 0.75,-2.625 -3,-0.25 0.25,1.25 -1.375,-1.125 0.25,-3 0.75,-1.625 2,0.25 2.5,0.375 2.375,-0.25 1.125,-1.625 -0.125,-1 -2.25,-1.625 -1.375,-1.75 -0.875,-1.875 -2.5,0.75 -0.75,1.25 -0.25,2.75 -1.5,-2.375 0.75,-2.875 2.125,-1.5 3.625,-0.75 2.5,0.25 2.125,1.125 1.375,2.5 1.5,1.375 2.875,0.25 2.5,0.125 1.375,0.125 -0.25,-3.875 3,-0.75 1,-1.25 0.75,-0.5 0.625,-0.875 1.75,-0.125 1.75,1.625 0.75,1.25 1.3 [...]
-           id="path3799"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 194.13832,-73.359374 -0.625,-22 10.75,-2.25 -0.875,3.125 -1.125,3.625 0.25,1.875 0.625,3.25 3,0.5 1.625,-0.125 1.25,1.75 1.75,-1 0.5,-0.875 1.25,0.125 0.5,-2.375 1,0.25 3.75,2.875 4.75,-0.375 3.25,1.25 3.5,-0.625 2.875,2.75 1,5.125 1,2.375 -0.25,1.625 -1.75,1.375 2.25,1.625 5.125,0.5 3,0.75 1.125,1.375 2.375,0.875 1,-2 1.125,-3.125 2.125,-2.5 3,-0.375 3.25,-1.625 1,0.75 -2.813,1.875 -0.25,0.75 2.625,1 2.625,-0.938 1.5,1.875 1.313,0.125 1.625,-0.688 2.438,1.375 -5.188,4 -5 [...]
-           id="path3801"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 194.01332,-72.942374 -2.5,0.083 -1.5,-1.375 -1.375,-2.5 -2.625,-1.542 -2.667,0.333 -1.667,0.167 -1.667,0.833 -1.75,1.083 -0.583,1.917 -1,-0.833 0.333,-1.667 0.833,-2.333 0,-1 -3,-0.167 -1,-1.667 -1.5,0 -0.333,-1.667 -0.833,-2.167 -1.333,-2.5 -1.833,-0.5 -0.667,-2.667 2.5,0.5 3,0.5 -0.833,-1.833 2.5,-3.5 0.5,2.333 1,-2 3.167,0 0.667,1.333 3,-0.667 -1.5,1.833 -1,2.167 0.333,1.167 1.5,-1.5 1.667,-2.167 3.5,0.167 -0.5,-3 -1.5,-1.5 -2,-1.167 -0.667,-2.332996 -2.333,-3 -2,-2.5  [...]
-           id="path3803"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 217.51332,13.724626 -1.75,0.667 -4.25,-1.75 -4.75,0.5 -6.75,-2 -1.75,-0.5 -1,-5.2499999 -3,-0.75 -1.25,1.25 -3.25,1.25 1.25,-2 -5,2.25 -3.25,-2.5 -4.75,-1 -2.5,-3.49999995 -4,-0.25 -0.5,-4.00000005 -2,-3 -1.75,-3 -2.25,-0.5000001 -0.25,1.0000001 -2.5,-2.0000001 -1.5,0.25 -2.5,-2 0,-3.25 -2,-1.75 1,-3.5 -4,-4 -3.25,-0.5 -2.25,-6.5 0.5,-3.75 2,-2.25 0,-2.75 0,-1.25 -2,-0.5 -2.25,-2 0,-2.5 -2.25,-3 -1.25,-3.75 0,-3 -0.5,-3 1.5,-3 2.5,0.25 2.5,1.5 1.25,1.25 1.5,1.75 2,0.25 1. [...]
-           id="path3805"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 153.51332,-58.942374 0,-2.167 c 0,0 -0.333,-2.333 0.333,-1.833 0.666,0.5 1.333,1.167 1.333,1.167 l 0.333,-2.167 -1.167,-1.5 -2.167,-1 0,2.333 -1.333,0.667 -0.667,-2 -0.667,-1.833 -1.333,-0.5 -2.5,-2 -0.333,-2.5 4.5,1.667 1.333,-1.5 -1.5,-1.333 -1.167,-2.167 1.167,-0.333 3.833,1 2.667,2.5 1.833,0.667 2,-2.167 3,3.167 1.333,2.667 3.167,1.667 -3.167,2.667 -0.667,3.333 -0.5,2 -1.667,0.5 0.5,4.083 -3.25,-3 1.583,-2.417 -1.167,-0.833 0.833,-1.25 -1.333,-1.25 -5.163,3.665 z"
-           id="path3807"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 143.51332,-63.359374 -1.667,-1.583 -2,-0.5 0,-2.667 -0.333,-2 -1.5,-2 7.333,-0.167 0.333,2.5 2.5,2 1.333,0.5 1.333,3.833 1.333,-0.667 0,-2.333 2.167,1 1.167,1.5 -0.333,2.167 -1.333,-1.167 -0.333,4 -0.667,0.833 -1.583,-0.5 -1.5,-1.75 -2.083,-1.583 -1.667,-1.167 -1.333,-0.167 -1.167,-0.082 z"
-           id="path3809"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 138.01332,-72.109374 -2,-0.5 -0.667,-2 -3.167,1.333 -1.833,-0.5 -0.667,-3.833 -1.333,-2.333 -3.333,-1 -1.99991,-1.833 -1.5,-1.667 3.66691,-0.167 4.167,0 3.667,2 3.333,1 2.667,0.333 2.667,2.167 2.167,-0.167 3.333,0.333 1.833,2.833 -0.5,0.5 1.167,2.167 1.5,1.333 -1.333,1.5 -4,-1.5 -1.333,-0.5 -6.502,0.501 z"
-           id="path3811"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 144.01332,-49.775374 -2.167,0.333 -1.667,-0.5 -2.833,0.833 -2.167,0 -3,2.667 -2,2.167 -0.333,4 -0.333,3.5 -0.833,2.167 -10.33291,7 0.5,1.167 0.167,4.167 0.833,0.167 0.167,0.833 7.66691,0.834 16.667,13.8330001 6.833,0.333 5,-4.3330001 4.583,-0.5 -2.5,-2 0.083,-2.833 -2.083,-2.167 1,-3.5 -4,-4 -3.25,-0.5 -2.25,-6.5 0.5,-3.75 2,-2.25 -0.417,-3.833 -1.583,-0.667 -2.25,-2 0,-2.5 -2.001,-2.168 z"
-           id="path3813"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 132.17932,-49.109374 -1.333,1.5 -4,-0.333 -5.66691,2 -3.667,-1.5 -4.833,1.5 -1.667,-1.5 -1.667,0.833 0,2.5 -3.333,3.167 -1.5,2.167 0.833,0.167 0.5,4.167 2,0 0.5,1.833 -1.833,1.333 -0.333,2 -0.833,1 -0.333,3.167 1.833,1.167 0.667,1.333 2.167,-0.167 3,-1.333 15.99991,-10.5 0.833,-2.167 0.333,-7 4.833,-4.833 -1.333,-0.5 -1.167,-0.001 0,0 z"
-           id="path3815"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 151.84632,-6.6083739 3.833,0.5 2,2 1,-0.5 1.333,-2.333 0.667,-1.5 -1.833,-1.167 1.5,-0.333 1.917,-1.4170001 -6.083,0.75 -4.334,4.0000001 z"
-           id="path3817"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 105.34641,-28.275374 -2.167,-0.5 0.667,-2.333 1,-1.667 1,-1.667 1.5,0 1,1.833 -1.833,1.333 -0.333,2 -0.834,1.001 z"
-           id="path3819"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 105.01341,-25.109374 -0.5,1.5 -1.667,-0.167 -0.167,2.167 -0.333,2.5 1.167,0.833 -0.667,2.834 -0.667,7.5000001 6,2.166 2.333,-3.333 2,-0.5 1.667,-1.6670001 0,-1 1.167,-0.166 0,-0.667 -3.833,-3.5 0,-1.167 8.667,-3.166 -0.333,-1.167 -0.833,-0.167 -0.167,-4.167 -0.5,-1.167 -8.667,4.833 -2.167,0.167 -0.667,-1.333 -1.833,-1.166 z"
-           id="path3821"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 100.67941,-1.1083739 1.833,0.83300005 1.667,2.49999995 2.333,3.834 2.667,4.1659999 2,2.667 c 0,0 -0.333,1.167 -0.167,1.667 0.166,0.5 1.5,2.666 1.5,2.666 l 4.333,2.667 3.333,6 -1,3 0.833,2.5 0.333,2.167 3.333,2.5 2.49991,2 2.167,4.833 2.167,3.833 2.167,2.167 3,5.167 1.333,-1.667 0.833,-3.333 1.167,0 1,1 c 0,0 4.167,-0.666 4.833,-0.5 0.666,0.166 3.333,1 3.333,1 l 4.667,0.333 1.333,1.167 1.5,-1 2.167,-4 3.333,-2.167 5.167,-1.5 6.5,-0.333 3.333,-1 13.333,-5.334 1.5,-9.5 -0.66 [...]
-           id="path3823"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 180.67932,52.891626 3.333,-1 2.5,-0.667 1.667,0.667 1.833,-3.167 0.5,-1.833 2.667,0 1.833,-0.333 1.333,-3.834 4.667,-0.5 -0.667,-4.166 1.833,-2.5 0.667,0.666 1.167,-1.166 1.667,-3.334 2.333,-2.333 1.833,-3.333 -2.667,-2.334 -1.5,-1.833 -2.333,-1.167 -2.5,-0.166 -3.667,-1.667 -2,-3 -0.667,-1.167 -1.5,0.167 0,2.5 0.833,0.833 -1.833,0.334 -1.667,2.166 -0.833,3 1.5,3.5 -1.5,9.5 -12.833,5.5 -0.5,1.334 2.833,9.5 1.668,-0.167 z"
-           id="path3825"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 174.59632,19.308626 3.333,-0.334 1.083,-1 2.917,0.167 1.667,0.583 1.75,-0.916 1.583,-2.25 0.833,-1.667 1.917,-0.5 1.667,-2.333 1.25,-0.584 1,-0.083 0.083,-1.6669999 1.083,-0.833 0.667,1.417 -0.917,1.8329999 0.083,1.917 -0.083,1.666 -1.583,0.584 0.083,2.083 0.667,0.833 -2.083,0.584 -1.5,2.333 -0.75,2.917 -1.667,1.333 -8.667,-1.833 -3.25,-2.667 -1.166,-1.583 z"
-           id="path3827"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 173.26332,15.641626 -2.417,-1.833 -0.167,-2.167 0.333,-0.75 0.75,-2.2499999 1.417,0.583 0.833,2.3339999 -0.083,1.75 -0.666,2.333 z"
-           id="path3829"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 169.51332,6.9746261 -1.417,1.25 -0.083,1.667 1.167,1.4169999 1.667,-0.834 -0.25,-1.3329999 0.667,-1.25 -0.917,-1.167 -0.834,0.25 z"
-           id="path3831"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 176.17932,43.558626 2.833,9.5 -2,1.833 -0.167,3 -3.167,0.5 -1.333,1 -5.333,1.833 -4,1.167 -1.167,2.167 -5,0.333 -2,2.333 -4.333,0.167 -3.333,0.667 -0.833,1.5 -2,1.333 -2.833,-0.5 -0.667,0.333 -2.167,-0.5 -1,-2.833 -0.333,-2.167 -1,-2.166 0.333,-1.5 -1,-1.5 -0.667,-3.167 0.667,-1.333 0.167,-1 1.167,-2.167 0.667,-2.833 1.333,-0.5 1,1 4.833,-0.5 3.333,1 4.667,0.333 1.333,1.167 1.5,-1 2.167,-4 3.333,-2.167 5.167,-1.5 6,-0.167 3.833,-1.166 0,1.5 z"
-           id="path3833"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 101.76341,-7.3583739 -0.75,-4.7500001 -1.749996,-4.167 0.583,-1.083 0.249996,-1.833 0.083,-2.5 1.25,-0.917 0.167,-2.417 0.75,-1.75 0.833,-2 2,0.75 -0.333,3.25 -0.333,1.167 -1.667,0.083 -0.667,4.5 1.083,0.834 -0.5,2.416 -0.667,8.1670001 -0.332,0.25 z"
-           id="path3837"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 130.63832,-73.234374 -2.5,2.625 -1,0.125 -3.125,1.375 -1.49991,-0.375 -2.5,-0.25 -3.375,1.125 -2.375,-0.375 -2.375,-0.625 -0.5,0.375 -2.875,-1.5 -1.625,-0.375 -0.75,-1.875 -2.75,-0.25 -1.375,-1.75 -2.999996,0.375 -7.875,0.125 -1.875,2.125 -2.5,1.25 -0.625,1.75 -3.375,-0.125 -5.75,-0.5 -0.875,0.25 -2.75,-1.5 -2.375,-1.75 0.125,-2.25 -3.75,-0.5 -1.875,1.25 -0.25,2.5 -1.125,2.625 -1.5,1.125 0.375,1.25 3.125,0.125 1.5,0.125 2,-2.5 2.5,0.25 2.375,-0.25 1.375,-0.125 0.75,1 0.87 [...]
-           id="path3839"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 89.596414,-35.942374 1.917,-1.167 1.833,0 1.333,-0.917 2,0 3.083,-1.917 0.416996,1 -2.666996,2 -0.083,1.333 0.25,1 -1.583,0.417 -1.917,-0.083 -1.25,0.333 -1.083,0.5 -1.25,-0.167 -0.417,-1.333 -0.583,-0.999 z"
-           id="path3841"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 100.01341,-18.441374 -3.166996,2.333 -3.667,0.833 -2.667,-0.333 -2.667,-1.333 -0.5,-1.5 -2.667,1 -2,1 -0.833,-1.5 -2.5,1.666 -3.333,2 -2.833,-1.5 -3.5,0 -3,-1.333 -4,-1.167 -1.833,0.334 -1.667,-0.167 -0.5,-0.667 -1,1.167 0.167,1.333 0.667,1.167 -0.333,2 -0.667,1 1,3.0000001 0.333,2 -0.167,35.4999999 25.833,0 0,-1.167 1.333,0.167 0,1.167 8.333,-0.167 1,0.667 2,0 1.167,-2 1.666996,-0.334 1.5,-2.5 1.333,-0.166 1.667,-1.334 -0.833,-3.166 1.5,-0.834 -2.667,-1.833 -4.166996,-7. [...]
-           id="path3843"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 567.51332,172.05862 -2,5.333 -1,4.667 -0.667,9.333 -0.667,5.333 -1.667,5 -3.333,1 -3.667,-1.333 -1.333,-2.667 -3,-0.666 -4.333,-2.334 -2.333,-1.333 -3,-2 -2.333,-1.667 1.667,-4.666 1.333,-1.334 0.833,3.292 1.75,0 -0.375,-2.5 -1.375,0 -0.625,-2 1.375,-1.125 0.125,-1.375 1.375,-2.125 -1.5,-0.125 -1.125,-1.75 -0.875,1.25 0.125,1.625 -1,-2.25 -1.375,-0.375 -2.625,1.625 -2.5,-1.125 -2.625,0.125 -3.125,-1 -1.625,-1.625 -2.25,-0.5 -3,-0.25 -3,0.25 -2.75,-0.25 2.375,1.875 1.125,1 [...]
-           id="path3845"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 591.63832,312.76662 -0.625,1.75 1.5,2 0.125,1.875 -1.75,0.25 -2.75,0.5 -1.875,2.25 -2.375,-0.375 -2.75,-2.125 -2.375,-0.625 -1.375,0.875 0.875,3.375 0.5,2.75 1.375,1.625 -0.25,2.125 0.125,3 1.375,-0.75 0.75,1.875 1.5,0.5 c 0,0 -1.125,1.375 -0.5,1.5 0.625,0.125 3,0 3,0 l 1.5,0.625 0.5,-2.5 1.125,0.875 -0.25,-2.875 1.875,1.5 c 0,0 2.5,0.625 2.375,0.25 -0.125,-0.375 -0.875,-2.875 -0.875,-2.875 l 0.25,-2.5 0.375,-0.875 0.375,1 0.75,-1.25 -0.25,-2.625 -0.375,-2.75 -0.625,-2.37 [...]
-           id="path3847"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 561.51332,136.39163 3,2 4.167,1.833 5.167,1.667 1.667,1 1.5,0 4.333,4 0.5,3.833 6.333,1.667 2.333,0.5 2,-1.833 0.333,-2 5.167,0 1.833,-1 1.5,1.833 2.5,0 2.333,-2.667 1.666,-0.333 -0.5,-3.5 2.5,0 1,2.667 0.834,-1.667 -1.167,-2.833 -6.667,-3.834 0.167,-1.5 3.167,1.334 5,3.333 2.833,3.667 -1,2.5 -2.667,-0.167 -1.833,0.833 0.833,2 -3.166,0.667 -1.334,1 -3.667,1.5 -3.667,0.333 -2.5,-0.833 -2.333,-1.5 -1.833,1.5 -1,1.5 -0.5,1.667 -2.833,-0.167 0,1.833 2.5,2 1.667,1.834 1,2.5 1. [...]
-           id="path3849"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 698.76332,283.39163 1.75,5 3.25,4.5 2.25,2.75 1,2.25 0.75,4.75 0.5,4 -2.75,3 -3.25,0.75 0.5,3 4,0 3.75,2.25 -1,4.5 -2,1.5 -2.25,-0.25 -0.75,-2.5 -2.75,2 -1.5,-3 -0.25,-1 -3.25,2.75 0,4.75 -4,2.5 -2,4.25 -7.75,5.5 -3.25,1.75 -3,5 -3.25,4.5 0.25,2.5 5.5,0.75 2.5,2 3.5,0.75 4.5,-2.75 1.75,-3.25 1.25,-4.25 1.25,-0.75 0.25,-5 4,-0.75 2.25,-0.25 -0.5,-2.5 0.25,-1.5 2.75,-1.25 2.25,-4.75 0.75,-3.25 0.25,-1 2.25,-0.25 1.25,0.75 3.75,-1.25 2,-3.75 1,-1.75 1.5,-2.5 -0.75,-1.75 1.25 [...]
-           id="path3853"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 619.84632,147.39162 0.834,4.667 2.833,2.333 1.667,2.167 1.5,-2.5 -2.334,-2.334 -2.5,-1 -2,-3.333 z"
-           id="path3851"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 628.68032,155.22462 2.333,3.167 3,0 2.5,0.667 0.833,1.833 4.167,1.667 1.667,0.666 c 0,0 2.333,-1.166 2.833,-0.333 0.5,0.833 0.833,2.5 0.833,2.5 l 2.334,2.167 0.666,1.333 -1,0.5 -2.5,-2.167 -3.666,-1.333 -1.5,0.5 1.333,1.5 2.5,0.667 2.833,0.5 1.5,2.5 2.667,1.5 1.667,-0.834 -2.334,-2.5 -1.333,0 0.333,-1.833 -1,-2.833 -1.333,-2.667 -2.167,-0.167 -2,0 -2,-1.166 -2.166,-1.5 -1.5,-1.334 -1.834,0.167 -2.166,-0.5 -1.834,-0.833 -1.333,-1.167 -1,-1 -1.333,0.333 z"
-           id="path3861"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 720.34632,200.72463 -1.833,3.834 2.167,2.166 3.166,0.167 2.167,-2.333 -1.333,-1.667 -1.834,-1.333 2,-1.667 3.334,-0.167 2.833,0.167 -1.5,-1.667 2,-2.5 -3.833,1 -2.667,2.167 -2.333,2.333 -2.334,-0.5 z"
-           id="path3863"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 669.01332,218.39163 -7.5,-4.5 2.75,5.5 4.75,4.5 4.25,0 -3,-3.25 -1.25,-2.25 z"
-           id="path3869"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 761.01332,184.72463 3.5,2.167 0.833,-1.167 1,1.667 2,-1.333 -1.333,-1.667 -1.5,0.5 -2.167,-1.167 -2.333,1 z"
-           id="path3879"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 88.679414,-141.10937 -3.917,1.125 -1.75,3.375 -0.25,2.5 -2.5,-1.25 -2.25,-0.5 -1.625,-0.625 -1.375,0.75 -5.25,-0.75 -2.75,-0.75 -3.125,0 -6.375,-0.625 -3.25,1.625 -1.25,0.875 1.25,3.375 0.75,2.875 -0.625,2 -2.875,1.875 -1.75,2.375 -0.5,1.625 -2,0.375 -0.75,4.75 2.5,3.75 1.5,-1 3.25,0.875 3,0.375 1.5,0.75 2.375,-1.25 2.25,-0.25 3,-1.625 2,-1.125 1.625,-0.625 2.875,1.375 3.125,0.75 1.5,1.5 1.125,3 1.375,2 0.125,4.25 -1.875,1 -1.375,0.375 -0.625,2.374996 -1.25,0.875 -2.125,0 [...]
-           id="path3881"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 66.763414,-114.73437 0.625,1.125 1.25,2.125 1.875,1.625 1.5,3 0.5,2.75 -0.125,4.874996 0,0.625 2.125,-0.125 1.25,-0.875 0.625,-2.374996 3.25,-1.375 -0.125,-4.25 -1.375,-2 -1.125,-3 -1.5,-1.5 -2.75,-0.75 -3.25,-1.375 -2.75,1.5 z"
-           id="path3883"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 48.763414,-111.98437 -0.5,1.625 -2.375,1.125 -1.125,1.125 -0.75,1.875 -1,3 -2,1.625 -3,0.625 1.5,2.624996 1.875,2.25 1.5,0.75 0.5,1.5 1.75,2.25 2,0.5 1.5,-0.375 -0.375,1.75 1,1.625 0.5,1.375 5.75,0.75 3.75,0 1.875,0.25 4.5,-1.625 1.625,-1.25 2.5,0.875 0.75,0.25 1.125,0 0.75,1.25 1.375,0.25 1.125,-4.125 0.375,-2 0.75,1.5 1.875,-1.125 0.625,-2.125 -0.25,-2.625 -1.25,0.25 -1.625,0.125 -1.25,0.625 -1.75,-1.625 0,-3.249996 0,-4.5 -0.75,-2.25 -1.125,-2.75 -1.875,-1.625 -1.875,- [...]
-           id="path3885"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 66.013414,-74.734374 -1.875,-0.375 -0.375,2 -1.875,0.875 -3.125,-0.125 -2.375,-1 -1.625,-0.375 -2.5,1.375 -1.625,0 -0.25,-3.5 -2,-1.25 -0.5,-1 0.5,-3.75 1.375,-1.125 -1.375,-3 0.375,-2.625 1,1.875 2.75,0.375 5.125,0.375 1.625,0 1.875,0.25 3,-0.875 1.5,-0.75 1.625,-1.25 2.875,1.25 1.5,-0.125 0.75,1.25 1.375,0.25 0.125,2.875 -2.125,0.125 -0.625,0.625 -0.125,3 -1.5,1 -0.75,1.125 1.75,0.125 0.625,1.875 -2.875,-0.5 -2.25,1 z"
-           id="path3887"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 49.63836,-71.60938 -2.75,0.75 -1.125,-0.25 -1.25,1.5 -3.25,0.375 -0.625,3 -1.5,2.25 -0.25,1.25 -4,0.5 1.5,2.875 0.875,-1.625 1.125,2 1.375,0.75 0.375,1.5 -1.25,0.875 1.75,0.25 0.875,1.625 2.125,-0.125 3.75,0.125 1.875,1.375 -1.875,0 -2.375,-1 -2.5,0.375 -1.625,1.375 -1.125,-1.375 -1.25,-1.25 -0.625,1.5 1.25,1.125 0.625,0 -0.5,1.5 1.5,0.25 0.625,-0.75 0.25,-0.75 1.375,1.75 0.25,1.375 0.375,1.375 0.75,1.875 0.375,-1.625 1.875,1.125 0.5,2 c 0,0 0.875,-2 1.25,-1.5 0.375,0.5 1 [...]
-           id="path3889"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 51.51336,-38.48438 1.875,1.25 2,0 1.625,1.25 2.25,0 2.875,-0.125 2.375,-1.125 1.875,-1.125 1.625,0.125 0.625,-1.375 1.5,-1.75 1.125,0.5 1.25,-2.125 -1.125,-0.875 -1.75,1.5 -0.375,1.25 -1,1 -1.625,0.5 -0.875,1.125 -1.75,0.875 -1.25,0.625 -1.125,-0.625 -1.875,-0.5 -1.875,-0.125 -1.125,-0.375 -1.25,-0.75 -1.375,0.5 -2.125,-0.375 -0.5,0.75 z"
-           id="path3891"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 61.888414,-59.484374 1,1.125 1.25,0.75 1.125,-1.125 -1.375,-1.375 -2,0.625 z"
-           id="path3893"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 61.888414,-55.734374 -0.25,2.375 2,0.5 0.625,-1.625 -1,-1.5 -1.375,0.25 z"
-           id="path3895"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 58.388414,-63.484374 -0.375,1.75 1.75,0 0.75,-1.25 -2.125,-0.5 z"
-           id="path3897"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 41.263414,-69.234374 -1.75,-2.208 0.333,-3 1,-1.167 0.5,-1.5 2.167,-0.167 2,-1.5 1.5,0.667 0.875,0 1.125,1.333 1.375,0.917 0.25,3.5 -1,0.75 -2.292,0.5 -1.583,0 -1.75,1.667 -2.75,0.208 z"
-           id="path3899"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 35.513414,-62.775374 0,-1 -1.167,-1.667 -0.333,-3.667 0.167,-2.167 0.167,-1.167 0.333,-1.667 -0.333,-0.5 0.5,-4.667 2.5,0 1.333,1.167 1.333,1.167 -0.167,2.5 -0.167,2 0.333,1.667 1.25,1.542 -0.583,1.792 -0.042,1.208 -1.125,1.958 -0.625,1.542 -3.374,-0.041 z"
-           id="path3901"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 34.388414,-74.109374 -1.25,-1.125 -2,-1.625 -0.5,-2.625 0.5,-2.5 1.75,-1.625 1,-1.625 0.5,-0.5 1.25,1.125 2.25,2.125 -1.125,3 -1.875,-0.25 -0.5,5.625 z"
-           id="path3903"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 35.013414,-86.359374 -0.625,-3 -0.375,-3.25 -0.125,-2.625 0.25,-1.5 -1.375,-2.625 2.375,-1.374996 2.75,0.125 2.875,3.999996 2.125,1.25 1.125,2.125 1.125,1.625 2,0.5 1.5,-0.375 -0.375,1.75 0.625,1.5 -0.5,2.25 1.375,3 -1.375,2 -0.5,2.875 -1.375,-0.125 -1.375,-0.5 -1.625,1.458 -2.167,0.167 -1.458,2.375 0.125,-2.208 -1.5,-1.542 -1.75,-1 1.125,-3 -2.25,-2.125 -1.25,-1.125 0.625,-0.625 z"
-           id="path3905"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 27.638414,-80.984374 -1.375,0.5 0,-2 -1.625,-2.875 -2.875,-1.875 -1,-2.75 -1.125,-2.25 -0.75,-1.625 0.5,-1.375 2.125,0.875 1,-0.875 3.25,0.625 1.25,0.75 1.75,-0.5 1.625,0.375 2,1.625 1.625,-0.25 0.375,3.625 0.625,2.625 -1.125,1.125 -1.25,2.125 -1.5,1.125 -0.5,2.5 -1.25,-0.125 -1.75,-1.375 z"
-           id="path3907"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 16.263414,-96.859374 -3.125,-0.25 -2.875,0.25 -1.0000001,1.25 -1,1 2.2500001,2.5 0.125,-2.25 1,-0.625 2,1.5 0.625,1.375 1.125,0.375 c 0,0 -1.875,1.375 -1.5,1.5 0.375,0.125 2,1.25 2,1.25 l -0.375,1 -0.125,0.75 1.5,1.625 1.5,1.125 0.625,1.5 1.75,-0.75 1.625,0.25 1.25,1 0.375,1.5 0.875,0.375 1.25,0.75 1.25,0.875 1.375,1 1.375,1 1,0.125 -1,-2.25 -0.75,-0.5 -1.75,-1.375 -1,0.625 -0.375,-2.125 -1.625,-2.875 -2.875,-1.875 -2.875,-6.625 0.5,-1.375 2.125,0.875 1,-0.875 3.75,0.875  [...]
-           id="path3909"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 25.638414,-113.10937 -1.125,0.25 -0.5,2.25 -1.75,0.375 -1,3 -1,1.625 1.125,2.125 1.75,0.375 3.875,3.749996 5.75,0 2.375,-1.374996 2.75,0.125 3.125,-1 2,-1.625 1.75,-4.875 1.25,-1.5 2.25,-1.125 0.75,-1.625 -2.5,-3.75 -1.5,0.25 -5,-0.375 -1.75,1.25 -1.625,0.75 -3.5,0.625 -1.25,2 -2.5,0.25 -2.875,-0.125 -0.875,-1.625 z"
-           id="path3911"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 9.7634139,-97.109374 -0.375,-1.75 -1,-2.124996 0.75,-2.5 2.1250001,0.375 2.125,0.375 2.875,-1.25 1.625,-1.125 2.375,-0.5 1.125,2.125 -1.875,1.625 -2.875,4.124996 -0.375,0.875 -2.5,-0.125 -2.875,0.125 -1.1250001,-0.25 z"
-           id="path3913"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 24.513414,-112.85937 -1,-0.875 0.375,-1.75 -0.25,-1.375 -0.25,-1.375 1,-1 3,-0.375 2.875,-1.875 0.875,-1.25 0.125,-1.5 1.75,2.125 2.125,-0.875 1.75,1.375 1.875,-0.25 1.375,0 2.25,-0.375 1.375,-0.625 1.75,1.25 1.75,1.375 -0.75,4.125 -1.5,0.25 -2.75,-0.375 -2.25,0 -1.75,1.25 -1.625,0.75 -3.5,0.625 -1.25,2 -5.375,0.125 -0.75,-1.25 -1.25,-0.125 z"
-           id="path3915"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 53.388414,-135.48437 -0.375,-1.75 0.5,-3 -1.625,-0.875 0.625,-2 1.5,-1.75 0.125,-3.25 -1.25,-4.125 3.25,-0.75 0.625,-1.625 3.125,-1.875 1.125,0 1,-4.125 4,-3 -0.375,-2.375 1.375,-1.25 1.75,-0.875 2.5,0.125 1.125,-2 1,-1 0.625,0.875 5.375,0.5 1.125,1.833 3.5,-0.5 1.333,6.333 1.5,5 2.333,2.333 0.167,2 2.042,2.125 -0.875,3.042 -3.333,-0.167 1.5,6.5 -3.917,1.125 -1.75,3.375 -0.25,2.5 -2.125,-1.125 -2.625,-0.625 -1.625,-0.625 -1.375,0.75 -5.25,-0.75 -2.375,-0.75 -2.75,0.125 -7 [...]
-           id="path3917"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 71.138414,-184.35937 -1.375,1.625 -2.375,-0.375 -2.25,0.5 -4.5,-3.375 -4,0.875 -0.875,0.125 0,-2.5 -1,0 -0.625,1.625 -1.5,-1.875 -1.125,-1.875 -1.375,0.625 -0.375,1.625 -2,1.125 -1.25,0.5 -0.625,1.5 -0.75,-1.625 -0.625,-1.75 0.75,-1.375 1.625,0 0.375,-1.25 -0.75,-1.25 -1.5,-0.25 0.875,-0.75 2.375,-0.875 1.125,1.25 -1.25,1.75 -0.125,0.875 1.25,-0.125 1.25,-0.125 0.875,-0.875 -0.375,-1.375 -0.875,-0.5 1.375,-1.625 1.375,-1.5 1.75,-0.375 2.25,-1.875 0.75,0.625 2.875,0.125 1. [...]
-           id="path3919"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m 54.138414,-175.85937 -3.25,0.25 -1.125,-2.625 -1.75,-2.125 -1,-1.5 -3.875,1.875 -0.875,2.5 -0.375,2.5 -1.125,2.25 0,3.25 4,-2.5 9.875,-0.375 1.875,0.375 1.5,-0.5 1.625,1.75 3,1 3,3.75 1.375,-1.25 1.75,-0.875 2.5,0.125 1.125,-2 1,-1 -0.542,-1.125 0.042,-4.25 -0.042,-4.083 -0.833,-3.167 -0.875,-0.75 -0.875,1.625 -2.875,-0.375 -2.25,0.5 -4.5,-3.375 -4.875,1 -0.375,6 -0.375,2.625 -0.875,0.5 z"
-           id="path3921"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 40.513414,-168.23437 0.625,2 0.375,2.125 1.125,0.5 1.5,1 2.625,1 2.75,0.5 0.375,2.375 -0.125,1.625 1.875,1.375 0.875,1.75 0.375,1.75 3.25,-0.75 0.625,-1.625 3.125,-1.875 1.125,0 1,-4.125 4,-3 -0.375,-2.375 -3,-3.75 -3,-1 -1.625,-1.75 -1.5,0.5 -1.875,-0.375 -9.375,0.5 -4.5,2.375 -0.25,1.25 z"
-           id="path3923"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 30.513414,-125.98437 -3.125,-0.625 0.875,-1.75 -0.75,-0.875 -1.375,0.75 -2.5,-0.375 -0.5,1.375 -1.625,-1.5 0.25,-1.125 -3.125,-0.125 -2,-0.375 -0.75,-1.25 -0.875,-0.75 0.125,-2.875 -1,-2.25 -0.5,-4.875 -0.25,-1.25 -1.25,-1.75 0.125,-1.625 0.125,-1.25 -1.5,-2.625 0,-0.75 0.75,-1 1.5,0.625 -0.4566,1.08316 0.4163,0.91632 -0.2097,-0.87448 0.75,-2.125 2.5,-1 3.125,-0.875 1.875,-1.75 2.625,-1.25 3.875,-0.5 2.25,-0.25 1.5,1.375 -1.5,0 0.875,1.25 2.125,1 0.875,0.125 2.625,-2 2.62 [...]
-           id="path3925"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff"
-           sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
-        <path
-           d="m 21.638414,-117.98437 -1.125,-0.125 -1.5,-0.875 -3.5,-0.5 -0.25,1.75 -2.125,1.125 -2.75,-1 -5.0000001,-4.75 -1,-1.75 0.125,-1.75 -1.125,-2.375 2.625,-0.25 2.625,-1.5 2.1250001,-1.25 1.25,-0.125 0.375,-1.75 0.875,0.125 1.375,1.625 0.375,-1.25 1.125,1.375 0.5,0.625 5.125,0.5 -0.25,1.125 1.625,1.5 0.5,-1.375 2.5,0.375 1.375,-0.75 0.75,0.875 -0.5,1.875 2.75,0.5 0.75,1.75 -0.125,1.5 -0.875,1.25 -2.875,1.875 -3,0.375 -1,1 -1.75,0.25 z"
-           id="path3927"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 9.2634139,-116.35937 -3,2.75 0.5,2.125 -0.625,1 -3,-0.25 -2.62499997,1.125 -1.25,-0.25 -0.75000003,1 -1.875,-0.75 -2,0.25 -1.125,0.25 -1.375,0 0,1.625 0.75,0.625 1.125,0.5 0.875,-0.125 1.375,0.625 -0.125,0.75 1.75,0 2.00000003,-0.625 1.62499997,-0.5 1.125,-0.875 1.25,0.125 0.875,1 0,1.25 1.75,0.125 2,0.5 1.125,0.625 3.7500001,0.75 3.25,-1.5 1.25,-0.875 2,-0.375 1.375,-1.75 1,-3 1.75,-0.375 0.5,-2.25 -1,-0.875 0.375,-1.75 -0.5,-2.75 -1.75,0.25 -1.125,-0.125 -1.5,-0.875 -3. [...]
-           id="path3929"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 17.38836,-63.73438 -1.25,0.25 -1.625,-0.875 -0.5,-1.75 -0.875,-1.125 -1.5,0.625 -1,-1.5 -0.125,-1.375 -1.5,-1 -2.75,-0.125 -2.25,-1.25 -2,-2.25 -1.5,-1.25 -1.625,-1.25 -1.375,-1.625 -2.375,-2 0,-3.5 -0.75,-1.5 -0.875,-1.375 -1,-1.125 -0.875,0.25 -1.375,-1.125 -1.75,-0.25 -1.75,0.5 -0.875,1.75 -1.375,-0.625 -0.125,-1.375 -1.75,-0.125 -1.375,-0.75 -0.375,-3.375 -0.75,-1.125 1.5,-2.125 -0.25,-3.5 3.375,-1.25 0.875,0 1.25,-1.875 1.375,1.75 1.125,1.5 0.875,-1.125 -0.375,-1.625 [...]
-           id="path3931"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -10.32064,-70.35938 -1.667,1.083 -1.417,1.167 -0.833,-0.417 -0.833,-0.667 0.167,2.25 0.833,0.5 0.25,2.167 0,1.5 0.583,0.167 -0.833,1.25 0,1.75 0.833,2.083 1.083,0.583 1.5,-1.25 1.667,-0.167 1,-0.75 -0.417,-3.167 0,-2.083 -0.583,-0.667 1.167,-0.5 -0.083,-1.417 -0.667,-1.167 0.083,-1.083 -0.667,-0.75 -1.166,-0.415 z"
-           id="path3933"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -18.153586,-99.526374 -0.583,-0.916996 -0.333,-2 -1.333,-0.667 -1.917,0.667 -0.417,0.583 0.917,-2.333 1.667,-2.833 1.167,-1.667 1.833,-1.167 0.75,-0.333 2.5,0.417 1,0.167 1.5,-1.083 2.3329999,0 1.333,0.167 -0.083,1.083 -0.167,0.917 0.125,1.042 1.375,1.458 1.375,-0.458 1.125,0.542 0.417,1.333 -2.167,2.25 -4.167,0 0.167,1.75 -0.8749999,1.124996 -1.708,-2.374996 -1.083,-0.5 -0.75,1.5 -1.083,0 -2.918,1.331996 z"
-           id="path3935"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -16.903586,-110.69237 -0.167,-2.833 0.667,-2.417 1.583,-1.833 1.083,-2.083 -3.917,-0.25 -2.083,-0.75 -1.583,-0.417 -0.5,-0.917 0.167,-2.833 -0.667,-1.417 -0.417,-1 1.25,-2.167 -1.333,-1.333 -0.583,-1 0.333,-1.75 0.417,-1.833 -0.083,-2.083 -0.083,-1.167 1.667,-0.25 1.333,-1 1,-1.667 0.333,-2 0,-1.833 0.583,-1 -0.417,-1.083 -1.5,-0.417 -0.333,-0.917 1.083,-0.917 1.083,-0.833 2.333,-0.083 0.5,0.583 0.5,1.25 1,-0.167 -0.167,-1.583 0.333,-1 1.25,0 1.417,0.417 0.5,-0.583 -1.083 [...]
-           id="path3937"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -20.153586,-148.94237 -1.667,1 -3.167,-0.167 -2.167,0 0.167,1.833 2.167,1.667 0.333,2.333 -2.167,2.167 -1.167,-2.167 -0.333,-2.5 -1,-1.833 -0.833,1.5 -0.333,2.333 0,2 -1.5,1 0.333,2.167 1.833,0.333 -0.333,0.833 1.333,0.833 1.667,0 1.167,1.5 2.417,2.167 0.583,-3 -0.5,-4.167 2.167,0.083 1.833,-1.25 0.5,-1.417 0.333,-3.833 0.583,-1 -0.417,-1.083 -1.5,-0.417 -0.332,-0.915 z"
-           id="path3945"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -31.320586,-135.77537 -2,0.833 -0.833,0.5 -1,-0.333 -1.667,1.5 -1.333,0.667 1,1.5 1.167,0.167 0.833,1.333 2.333,0.167 2,2.667 0.5,1.5 2.167,-1.333 0.333,1.667 1.667,1.333 1.5,1.5 0.5,-3 1.167,-1.833 1.5,-2.667 -1.917,-2.333 -2.417,-2.167 -1.167,-1.5 -1.667,0 -1.333,-0.833 -1.333,0.665 z"
-           id="path3947"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -21.486586,-121.77537 -1.5,-0.167 -1.667,-0.167 0.5,-3 1.167,-1.833 1.333,1.917 0.167,3.25 z"
-           id="path3949"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -15.028586,-86.942374 c 0,0.76 -0.616,1.375 -1.375,1.375 -0.759,0 -1.375,-0.615 -1.375,-1.375 0,-0.76 0.616,-1.375 1.375,-1.375 0.759,0 1.375,0.616 1.375,1.375 z"
-           id="path3951"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -43.73664,-134.10938 -3.25,0 -1.25,-1.25 2.25,-1.5 1.75,-2.5 1.75,-0.25 0,-4.25 -2.75,-2 -2.75,0.25 -0.5,1.5 -1.25,-1.5 0.5,-2.5 -1,-2 -0.25,-2.25 -2.5,-3.5 -3,-2.75 -1.5,-1.75 -0.75,-5 -3,-3.25 -1.5,0.25 -1.5,0 1.25,-1.75 1.25,-0.25 -0.75,-2.5 1.75,-1.5 1,-3.25 1.5,-1.5 -0.75,-2.5 -5.5,0 -3,0.75 -0.5,-2 1.75,-2.25 2.5,-2.25 -0.25,-2.25 -2.167,0.5 -2,0.667 -3.333,0 -1,0.833 0,2.167 -1.833,1.333 0.167,1.833 c 0,0 -1.833,0.333 -1.5,1 0.333,0.667 0.5,2.833 0.5,2.833 l -2.333 [...]
-           id="path3953"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -54.82064,-207.27538 -1.833,1.333 0,2.167 -1.667,1.167 1.833,1 -0.167,1.5 1.833,-3 0.667,-2.5 -0.666,-1.667 z"
-           id="path3955"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -62.82064,-194.27538 -1.667,0.5 0.333,1.667 2.833,-0.167 -1.499,-2 z"
-           id="path3957"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -78.98664,-161.44238 -1.167,0.333 -0.833,0.167 -0.833,1.5 -1.333,1.5 -1.5,0 0.667,2.167 1.833,1.667 2.333,-1.5 0.667,-0.667 1.333,1.5 2.5,0.833 1,-1.5 -0.833,-2.333 0,-1.667 -1.5,-2 -2.334,0 z"
-           id="path3959"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -70.153586,-155.27537 -0.667,2.5 2.667,-2 -0.667,-1.333 -1.333,0.833 z"
-           id="path3961"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -77.861586,-140.48437 0,-1.875 1.625,-2.75 -0.125,-2 -0.75,-2.25 0.125,-2.75 1.667,-1.833 -2.5,-0.833 -1.333,-1.5 -0.667,0.667 -2.333,1.5 -1.958,-2 -0.542,-1.833 1.5,0 2.167,-3 -0.375,-1.667 -1.875,0 -1.375,0.75 -2.375,0.5 -1.125,1.5 0,2.125 1.75,0.25 0,1.375 -1,0.625 -0.5,1 -1.75,-0.25 -1.5,-0.375 -1.25,0.125 -0.5,2 -1.25,2 0.25,1.875 1,1 1.375,0.75 1.75,0.5 -1.5,1.625 -0.625,2 2.625,0.125 -4.25,1.125 -0.5,1.75 -1.25,0.5 1.875,0.75 -1.875,1.125 1.125,1.125 1.875,-1.125 - [...]
-           id="path3963"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 69.138414,-204.73437 -2.75,-0.125 -4.25,0 -2.875,0.625 -2,1.25 -1.875,1.25 -2.875,1 -3,0.625 -3.5,-1.25 1.5,-2.125 -1.5,-1.25 -2.5,-1.625 -1.75,-0.625 0.25,-3 0.875,-1.25 0,-2.375 0,-2.75 -0.875,-2.875 -0.25,-1.75 0.125,-1 -0.75,-1.75 0.625,-2.875 2.375,-2.625 0.625,-2 2.25,-2.625 2.5,-2.625 1.75,-1.625 2.625,-2.5 0.75,-2 2,-3.875 2.75,-0.5 0.25,-0.875 -0.5,-2.5 0.25,-2.625 -1.625,-2.25 -1.75,-1.5 -1.5,-1 -1,-3 -0.5,-1.625 0.875,-3.875 -1.125,-2.5 -0.125,-3.375 0.875,-2.6 [...]
-           id="path3969"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m 40.013414,-293.60937 -2.75,0.5 0,2.75 -0.5,2 0.5,2 -2,-0.25 -2.75,-0.5 -2.25,-1.25 -1.25,2.25 -0.5,3.75 -3,1 -2.75,1.5 -0.75,4 -1.5,2 0,2.75 -2.5,4.75 -1.5,4 -1.5,2.5 -2.25,0.25 -0.75,8.5 -2,4.25 -1.2500001,3.25 3.0000001,2.5 -1.5,2 -4.7500001,0.25 -1.5,3.5 -0.5,4 -1.5,3.75 1.5,4.75 -0.25,4.25 1,4.5 0.5,2.5 -0.5,1.75 0.25,5.25 -0.75,4 -2.625,3.625 -0.62499997,4.5 -2.37500003,-1.375 0.5,4.125 0.37500003,3.125 0.75,3.25 1.125,1.625 0.49999997,2.375 0.875,1.375 1.625,3.375 1 [...]
-           id="path3971"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m 32.388414,-183.48437 -2.5,1 -2.125,1.75 0.375,4.125 0.625,1.5 2.5,-4 0.125,-1.625 1,-2.75 z"
-           id="path3973"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 23.138414,-178.85937 -1.625,3.375 -0.875,5.125 2.375,-4.375 0.125,-4.125 z"
-           id="path3975"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 89.17936,-300.60938 -3.292,-0.375 -1.875,1.542 -3.333,-0.667 -1,2 -2.833,1.667 -1,3.333 -0.958,-0.25 0.375,-2.875 1.125,-2.75 0.625,-2.875 -2.25,-0.625 -3.125,-3.5 -3,1.125 -2.625,0.25 -2.75,3.5 -0.875,3.75 -0.125,2.25 -2.375,5.875 -2.125,1.5 -3.625,-2.375 -0.875,2.125 -2.625,0 -3.625,-1.25 -0.875,-2.75 -1.5,-3.125 -1.375,-1.875 -1.25,0 -0.875,4 -1.125,-0.625 -2.75,0.5 -0.125,3.125 -0.375,1.625 0.5,2 -4.75,-0.75 -2.25,-1.25 -1,1.75 -0.75,4.25 -5.75,2.5 -0.75,3.625 -1.5,2  [...]
-           id="path3977"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m 48.17936,-491.27537 -2.333,7.33299 -4.667,-1.333 -7,-5.66699 -4,8.99999 -2.333,-1.667 2.333,7.333 -0.667,3 8.333,0 5.333,-1 -5.333,4.333 -1,1.667 3.667,4.667 3.667,-1 6,3 0.333,2 7.333,-6.333 3.667,-5 5.333,-6 -3.333,-6.667 -5,0 -5.667,2 -1.667,-4.33299 -2.999,-5.333 z"
-           id="path3979"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m 19.84636,-480.60938 -2.667,6 1.333,8.667 0.333,9.667 -4.667,-10.667 -2,-6.333 -3.333,5.333 0.333,4.333 -3,-4.667 2.667,-3.333 0.333,-6.333 -7,3.333 -3.333,-1 -3.667,5 3.667,6 -1,4.667 3.667,-3 -0.333,9.667 -1.667,2.667 c 0,0 4.333,8 5,9 0.667,1 4,5.333 4,5.333 l 5,-5.333 1,-7.667 3.667,-1.667 -1.667,7 3.667,-4.333 0.667,4 1.667,3 -6.333,2 -2.667,6 c 0,0 -5.667,-1.333 -5.333,0 0.334,1.333 2,7.333 2,7.333 l 7.333,-3 4.667,-0.333 -8,3.333 4.333,4 -7.667,-0.667 0.667,5.667 5, [...]
-           id="path3981"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff" />
-        <path
-           d="m -87.98664,-67.98438 -0.375,3.875 -1,2.5 -1,2.875 -0.125,2.75 0.875,1.125 1.75,-0.625 -0.5,2.5 -0.125,3.375 -0.875,1.875 2.875,0.25 2.75,0.25 2.5,-1.25 0.25,-3.875 1.5,-1.375 -1,-1.5 0.5,-3.75 -1.5,-2.5 1.75,-0.875 0.875,-2.75 0.25,-2.625 -0.125,-3.125 2,-1.125 0.5,-1 -1.25,-1.25 -0.125,-1.125 -1.375,-0.25 -1.625,0.625 -4,-0.25 -0.375,-1.75 -2.75,2.5 -0.375,2.5 0.25,2.5 -0.125,1.5 z"
-           id="path3985"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -161.73664,-51.85938 -2,0.75 3.125,1.75 1.375,-1.875 -2.5,-0.625 z"
-           id="path3989"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -56.15364,-84.94238 -1.333,2.333 -3.75,-0.25 -3.5,-0.5 -2.75,-0.25 -2.5,0.5 -8.5,-0.5 -3.75,-0.5 -1.75,-1 -2.375,0.75 -0.5,1.125 -3.75,0.5 0,2.375 1.25,1.25 1.25,1.625 0.25,2.625 2.875,-2.125 0.375,1.75 4,0.25 1.625,-0.625 1.375,0.25 0.125,1.125 1.25,1.25 -0.875,1.25 -1.625,0.875 0.125,3.125 -0.25,2.625 -0.875,2.75 -1.75,0.5 1.5,2.875 -0.5,3.75 1,1.5 -1.5,1.375 -0.25,3.875 c 0,0 1.5,0.125 2.25,1.125 0.75,1 1.75,2.375 1.75,2.375 0,0 -0.375,2.125 0.875,2.625 1.25,0.5 2.125, [...]
-           id="path3991"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -36.73664,-63.35938 c -0.5,0.25 -3.125,1.625 -3.125,1.625 l -0.5,1 c 0,0 1.375,0.25 1.75,0.5 0.375,0.25 1.75,1.125 1.75,1.125 l 1.875,-2.125 -1.125,-0.75 -0.625,-1.375 z"
-           id="path3993"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -33.98664,-63.48438 2.125,1.25 1.125,-1.375 -1.875,-1 -1.375,1.125 z"
-           id="path3995"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -43.98664,-59.10938 -1.375,2 1.625,1.625 1.125,-2.5 -1.375,-1.125 z"
-           id="path3997"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -111.23664,-4.35838 -1.75,3.75 2.5,-0.5 0.25,-2.625 2.25,-1.75 -0.875,-1.375 -1.625,1.375 -0.125,1.125 -0.625,0 z"
-           id="path3999"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -121.36164,-3.23338 -1.75,1.375 -1.25,1.125 1.875,1.125 1.875,-1.875 -0.75,-1.75 z"
-           id="path4001"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -118.23664,-0.98338 -0.625,2.125 1.5,0.875 1.125,-2.125 -2,-0.875 z"
-           id="path4003"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -128.23664,-5.35838 -0.5,2.25 1.75,0.375 0.875,-1.875 -2.125,-0.75 z"
-           id="path4005"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 58.679414,-18.775374 -2.917,-1.583 -4.5,-0.75 -1.5,-2.25 -4.5,-1.75 -5.75,0.5 -2.5,3 0,4.5 -1.25,3 -3.5,2.5 -3.25,-2.75 -9.25,-1.75 -3.5,-1.75 0,-3.25 -4.5,-2.25 -4.5000001,-1 -3.5,0 -3.49999997,-1.25 -0.5,2.5 -5.50000003,3.5 -0.25,5.75 -2.75,0.5 -0.25,1.75 1,3.0000001 1.5,3.25 -0.5,3 0.25,3.00000005 0,4.24999995 -2.25,2.75 2.25,2.25 2.25,5.9999999 2.75,0 3,3.25 1.5,2 6.25,1.5 2.2500001,2 8.25,-3.25 34.25,17.75 0.75,-2.25 4.25,0.5 -0.083,-9 0.167,-35.4999999 -0.833,-3.750 [...]
-           id="path4007"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -8.7365861,-13.358374 -1.7499999,-8.5 -3,-2.25 -0.75,-2.25 -2.5,-5.25 3.25,-4.75 -0.25,-7.5 -0.5,-1.5 0.5,-0.75 2.25,-1 1.7499999,-1 3,-0.5 1.25,1.75 2.5,1.25 -0.75,1.75 -0.25,2.5 2.25,3.25 -1.25,2.25 -2.5,2 -2.25,1.75 1.75,1.5 3,-0.5 1,1.75 0.25,1.5 -0.25,1.75 2.25000003,0.5 -0.5,2.5 -5.50000003,3.5 -0.25,5.75 -2.75,0.5 z"
-           id="path4009"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -35.736586,41.391626 10.75,-3.25 26.7499999,-18 -3.5,-4.25 -2.75,0 -2.25,-5.9999999 -2.25,-2.25 2.25,-2.75 -0.25,-7.25 0.5,-3 -2.5,-6.2500001 0.25,-1.75 -1.7499999,-8.5 -3,-2.25 -3.25,-7.5 3.25,-4.75 -0.25,-7.5 -0.5,-1.5 -2,-1.25 -3.5,-0.5 -3,0.25 -3,0.5 -4.25,0 -3.25,-0.75 -3.25,1 -3.75,0.75 -3.75,0.5 -3.25,1 -3.5,3 -3.5,0 -4.25,3.75 1.75,3 0.75,7.75 1.75,1.25 -0.5,3 -5.75,1 -1.75,1.5 -3,0.75 0.25,3.25 -5.5,3 -2.25,2.7500001 -3.75,1.25 -1.5,2 -2.25,-1 -4.5,2.5 -2.75,1.5  [...]
-           id="path4011"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -87.736586,0.14162615 -18.500004,-0.25 6,-2.50000005 2.750004,-2.5 3.75,-1.5 1,-5.2500001 0,-5.5 1.5,-3 1.75,-1.75 -0.5,-1.25 3.5,-4 3.5,-1.75 4.25,-2.5 1.75,-3.75 1.25,-5 1.25,-0.5 2,2.25 2,1.25 3,-0.25 2.25,0.25 2.75,0.25 4,0 1.75,3 0.75,7.75 1.75,1.25 -0.5,3 -5.75,1 -2.5,1.75 -2.25,0.5 0.25,3.25 -5.5,3 -2.25,2.7500001 -3.75,1.25 -1.5,2 -2.25,-1 -7.25,4 -0.25,3.75000005 z"
-           id="path4013"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -122.73659,31.391626 16.75,-0.75 -1,-6.75 1.5,-2.5 3.5,-0.5 0.5,-12.2499999 14.000004,0 -0.25,-8.49999995 -18.500004,-0.25 -1.75,3.74999995 -1.5,2.5 -3,1.25 -0.75,3.4999999 -1.25,3.25 -2.5,3 -2.75,3.25 -1.5,5.5 -1.75,2 0.25,3.5 z"
-           id="path4015"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -92.236586,58.391626 2.5,-1.25 2.25,0.5 15.25,-0.25 0.25,-3 -1.5,-0.75 -3.75,-40 5,-0.25 -15,-10.4999999 -0.25,5.75 -14.000004,0 -0.5,12.2499999 -3.5,0.5 -1.5,2.5 1,6.75 -16.75,0.75 0,1.75 1,4 -0.25,2 0.75,2.25 1.5,1.75 0,3.5 -0.75,3.5 -1,3.25 4,-0.25 3.25,-0.25 2,1.75 2.75,0.5 1.75,2.25 4.25,4 2,-1 2.250004,-3 2.25,1.25 2.25,-1 2.5,0.75 z"
-           id="path4017"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -102.23659,63.141626 2.750004,2.25 0.75,2.25 0.5,4 4.5,2 2.5,-2.25 2,0 2.75,3.25 -0.25,3 3.75,1.75 3.75,0.75 2,-2 c 0,0 0.25,2 1,2 0.75,0 2.5,-1.5 2.5,-1.5 l 0.25,-2.75 1,-2.5 2.75,-1.75 1.5,-3.75 1.75,-2 2,0.25 5.25,-2.75 5.75,-4.5 5.75,0 7.25,0.5 6,-1.25 1,-2.5 2,-5.25 0.25,-0.75 0.25,-9.5 -4.75,1.25 -0.25,-3.75 -5.25,-2 -1,-1.75 -30,-20.5 -5,0.25 3.75,40 1.5,0.75 -1,3 -15.5,0 -1.25,-0.25 -3.25,1.5 -1.75,-1 -3,1.25 -1.5,-1.5 -2.250004,3 -2,1 1.25,1.75 z"
-           id="path4019"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -47.986586,60.141626 0.25,4.5 2,2 0.75,2 5.25,2 0.25,1 1.5,0.25 3,2.5 0.5,-3.75 3,-3.5 1,-2.5 8.75,0.5 2,2.75 5,-0.75 5.4999999,2.5 5.5,-2.25 4.75,-0.75 3.5,0.75 4.25,-2.75 2.0000001,-5 6,-8 0.25,-11 2.25,-4.5 -3.25,-6.25 -0.75,-6.25 -4,1 -2.2500001,-2 -6.25,-1.5 -1,-1 -26.7499999,18 -6,2 -0.25,9.5 -3.25,8.5 -5.25,1.25 -8,-0.5 -0.25,1.25 z"
-           id="path4021"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 9.2634139,65.391626 2.2500001,2.75 1.75,1 1.75,4.75 0.5,4.5 1.75,2.25 -6,1 0.5,3.25 3.75,2.25 2.25,4.5 4,0.25 1.5,0.5 8.5,-2.25 0.5,-3.5 5.25,-0.75 3.25,-2.5 2.25,-3.25 2.75,-2.75 4.5,-0.5 -2.25,-2.25 -0.5,-4.75 -3,-1 2.5,-3.25 -0.5,-2.75 2.75,-3.75 1,-3 3.5,0.25 0,-17.25 -34.25,-17.75 -4.25,2.25 0.75,6.25 3.25,6.25 -2.25,4.5 -0.25,11 -6,8 -2.0000001,5 0.5,0.75 z"
-           id="path4029"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 108.51341,62.391626 2.75,-0.25 2.125,1.375 1.75,-1.75 1.75,1.375 3.25,-0.75 1.375,1 2.62491,0.75 2.875,2.5 1.75,1.375 1.75,-0.125 3.625,2.5 1.875,-0.5 -3.625,-3.375 -2.5,-2.375 -3.75,-3.375 -2.49991,-1.125 -0.625,-1.5 -1.375,-0.5 -1.375,-4 -1.5,-5.375 -1.75,-2.125 -3.5,2.75 -1,0.625 -0.75,0.5 -2.875,9 -0.375,3.375 z"
-           id="path4033"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 103.51341,102.14163 2.625,0.75 0.375,3.25 4.75,0 4.5,3.5 6.75,0.875 0.875,-2 3.49991,-2.25 1.125,1.875 2.875,0.5 2,-1.375 2.25,-0.375 3.375,-2.375 6,-0.375 13.875,-13.500004 -4.625,0.25 -13.625,-5.375 -4.375,-4.75 0.125,-3.75 -2.375,-0.125 -1,0.75 -0.625,-4 1.125,-3.5 -2.5,-2.25 -1.75,0.125 -4.75,-3.5 -2.49991,-1.125 -1.375,-1 -3.25,0.75 -1.75,-1.375 -1.75,1.75 -2.125,-1.375 -2.75,0.25 -1,6.5 -2.25,0.75 -2.75,4.75 -0.5,3.5 -3.249996,0.75 -1.75,9.5 -2.375,0.5 0,3 2.375,1 4 [...]
-           id="path4035"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 137.38832,75.766626 -1.5,1.25 -2.375,-0.125 -1,0.75 -0.375,-3.625 0.875,-3.875 1.125,0.25 1.875,-0.5 1.375,2.375 -0.125,2.75 0.125,0.75 z"
-           id="path4037"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 138.38832,76.891626 1.625,2.125 3.25,1.75 3.5,-0.375 2.5,-1.5 3.375,0.375 2.875,-2.125 2.25,0.25 3.375,-0.5 5.375,-0.625 2.5,-2.25 3,0.5 -0.5,1.75 0,3.125 1.125,1.125 -2,0.75 -0.25,2.5 -0.75,3.125 c 0,0 -1.375,0.125 -1.375,0.5 0,0.375 -2.625,4.375 -2.625,4.375 l -2.75,5 -1.875,4.500004 -3,2.875 -0.375,2.5 -9.125,8.875 -4.75,2.625 -5.875,4.375 -3.375,4.25 -4,5.25 -2.5,-3.875 0.375,-15.875 2.5,-2.125 0,-1.5 2,-1.375 2.25,-0.375 2.75,-2.125 6.25,-0.5 14.25,-13.625004 -4.625, [...]
-           id="path4039"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 99.263414,109.26663 0.625,2.75 1.749996,3.5 0,3.75 -4.624996,5 0.125,5.25 16.999996,9.25 0,2.125 6.5,4.375 2.875,-4.5 3.24991,-6 3.75,-2.75 -2.5,-3.875 0.5,-15.5 2.375,-2.5 0,-1.5 -2.875,-0.5 -1.125,-1.875 -3.49991,2.25 -0.875,2 -6.75,-0.875 -4.5,-3.5 -4.75,0 -0.375,-3.25 -2.625,-0.75 -5.624996,4.875 1.375,2.25 z"
-           id="path4041"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 79.013414,131.26663 3,-1.375 14.75,-0.625 0.25,-5 4.624996,-5 0.125,-3.25 -1.999996,-3.625 -0.5,-3.125 -1.375,-2.25 -3.375,2.375 -9.75,0.75 -1.125,0.125 0.125,4.375 2.125,0.875 -1.125,1.625 -6.125,6.375 0.375,7.75 z"
-           id="path4043"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 76.763414,132.76663 -0.75,2.375 0.75,3 1.25,-0.25 1,0.125 1.125,-2.25 3.625,-0.375 0,-2.875 -1.75,-2.625 -3.125,1.75 -2.125,1.125 z"
-           id="path4045"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 76.513414,139.64163 1.25,5.125 1.75,-0.125 3.875,-3.875 -0.125,-1.875 -0.5,-1.25 1,-2.25 -3.625,0.375 -1.125,2.25 -1,-0.125 -1.25,0.25 -0.25,1.5 z"
-           id="path4047"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 77.513414,146.89163 1,3.5 0.125,2.75 3.25,3.25 c 0,0 1.375,4.625 1.75,5.125 0.375,0.5 4.75,2.875 4.75,2.875 l 4.625,0.875 5.125,1.875 1.375,2.25 0.999996,5.25 3.125,0 3,-0.625 0.75,1.125 6.375,-0.375 1.375,-1.75 1.75,1.25 2.5,-1.25 6.37491,-1.25 -3.49991,-3.625 -0.125,-3.125 -1.625,-3.125 -0.125,-4.375 1.125,-2 -3.5,-2.875 1.25,-3.5 1.375,-3.875 -6.5,-4.375 0,-2.125 -17.374996,-9.5 -14.75,0.625 1.75,2.625 0,2.875 -1,2.25 0.625,3.125 -3.875,3.875 -1.75,0.125 -0.25,2.125 z"
-           id="path4049"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 17.179414,92.391626 -2.333,4 -1.333,2.667 -1,0 1.333,4.000004 2.167,3.833 0.5,3.167 4,3.5 3.167,-5 6.667,0.5 0.833,-2.167 3.167,-4.167 5.333,2.334 8.167,1.833 1.667,-2.667 4,1 2.833,-2 1.5,0.667 3.833,-1.5 2.333,1 2.833,-0.667 3.917,1.667 -0.5,-2.75 -3.75,-3.000004 -1,-3.5 -4.5,-1.5 -1.833,-1.417 -0.917,-2.583 -3,-0.5 -0.5,-2.5 -1.75,-0.5 0,-5 -2.625,-2.25 -0.542,-2.167 -3.667,0.5 -3.833,4.167 -2.167,2.5 -2.667,2 -5.25,0.75 -0.5,3.5 -8.5,2.25 -1.917,-0.667 -3,0.167 -1.166,0.5 z"
-           id="path4051"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -121.31959,55.391626 -0.167,2.666 -2.833,2 2.167,5.334 4.667,0 2.833,-1 2,1.833 2.167,0.333 -0.167,0.667 -3.167,0 -1.667,-0.667 -4.667,1.167 -2.667,0.333 -0.333,3.334 5.5,-0.334 2.5,-1.5 7.667,0.167 3.167,1.167 6.083004,0.75 -0.25,-3.084 -1,-3.166 -2.333004,-1.667 -1.667,-2.333 -4.833,-4.167 -1,-1.667 -2.5,-0.833 -2.417,-1.833 -7.25,0.5 0.167,2 z"
-           id="path4053"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -122.15359,72.224626 2.833,1 1.833,0.833 0.833,3.834 1.5,-1.334 2,-2.333 2.833,-0.5 -0.167,-1.833 1.333,-2 -6,-0.334 -2.5,1.5 -5.5,0.334 1.002,0.833 z"
-           id="path4055"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -122.15359,65.391626 -0.667,2.666 6.833,-1.5 2.667,0.5 2.667,0.167 0.167,-0.667 -2.167,-0.333 -2,-1.833 -2,1 -5.5,0 z"
-           id="path4057"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -115.81959,78.391626 1.5,-0.834 1,2.334 2.167,2.333 1.833,1 0.667,2 2.667,0.333 1.667,-2.333 1.5,-1.5 2,0.333 1.667004,-1.333 0.833,0.5 2.167,5.167 -0.333,2.5 2.5,-1 1.833,0.166 1.5,3.334 0.167,1.5 2,0 2.167,-1.5 1.5,-1.5 0.333,-2 1.667,-0.667 -1.167,-4.167 -0.667,-2.333 1,-1 -3.083,-2.083 0.25,-3 -2.75,-3.25 -2,0 -2.5,2.25 -4.5,-2 -6.083004,-0.75 -3.167,-1.167 -1.667,0.167 -1.333,2 0.167,1.833 -2.833,0.5 -3.5,3.667 0.831,0.5 z"
-           id="path4059"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -100.48659,96.391626 2.000004,-3.667 2.333,-1.667 1.167,-1.166 0.167,-1.334 -1.5,0 0.167,-2.166 -2.167,-5.167 -0.833,-0.5 -1.833004,1.667 -1.833,-0.667 -1.5,1.5 -1.667,2.333 -2,0 0,2.667 1.167,2 1.333,0.667 0.667,2.666 4.332,2.834 z"
-           id="path4061"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -71.486586,80.724626 3.5,1.833 0.833,-0.833 3.5,0.333 1.833,2 -0.167,-7.166 10.333,-0.334 1.5,-0.333 2.167,0.667 2.833,0.166 1.833,-1.666 2.333,-0.334 1.667,-2.666 -0.417,-1.75 -5.25,-2 -0.75,-2 -2,-2 -0.417,-5.75 -5.333,0 -5.333,4.5 -5.667,2.75 -2,-0.25 -1.667,1.666 -1.667,4.5 -2.667,1.334 -1,2.5 -0.25,2.75 2.253,2.083 z"
-           id="path4063"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -87.320586,97.224626 3.333,1.333 2.667,2.334004 -0.833,4.333 -0.5,1.5 -6.5,-2.333 -3.167,-3 -3.333,-2.667004 -2.333,-1.167 -2.500004,-1.166 2.000004,-3.667 3.5,-2.833 0.167,-1.334 2.667,-0.5 1.5,3.334 0.167,1.5 2,0 1.667,-1 0.833,2.833 -0.167,1.5 -1.168,1 z"
-           id="path4065"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -79.820586,106.39163 6.333,-3 7,-0.167 3.5,-0.333 1.333,-0.334 -0.167,-2.5 -1.667,-4.000004 1.667,-4.833 1,-3.833 -1,-3.334 -1.333,-1.833 -4,-0.5 -0.833,0.833 -5.75,-3.916 -2.5,1.5 -1,-2 -2.417,2.083 -4,-0.5 -1,1 1.833,6.5 -1.667,0.667 -0.333,2 -2,2 0.833,2.833 -0.167,1.5 -1.167,1 6,3.167004 -1.333,6.333 2.835,-0.333 z"
-           id="path4067"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -48.486586,79.724626 -0.333,4.334 1.167,-0.167 0,4 0.5,4.833 0.333,3 2.333,2.834 -1.5,1.666004 -4.167,0.5 -3.833,2 -3,1 -2.5,1.167 -1.667,-1 -3,-0.833 2.5,-0.501 -0.167,-2.5 -1.667,-4.000004 2.667,-8.666 -1,-3.334 -0.167,-7.166 10.333,-0.334 1.5,-0.333 0.667,1.667 1.001,1.833 z"
-           id="path4069"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -46.153586,78.891626 2.5,3.833 1,5.167 0.667,7.667 0.5,2 -3,1 -2.333,-2.834 -0.833,-11.166 -1.167,-0.5 0.5,-4 -1.833,-3.834 4.167,1 -0.168,1.667 z"
-           id="path4071"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -37.486586,97.058626 -0.167,-11.834 3,-3.333 1,-3.5 0.5,0 -1.833,-4 -3,-2.5 -1.5,-0.25 -1,3.25 -2.833,0.5 -2,2.167 -0.667,-0.334 -0.167,1.667 2.5,3.833 0.833,4.167 0.833,8.333 0.5,2.334 4.001,-0.5 z"
-           id="path4073"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -31.320586,97.558626 3.833,3.666004 0.833,5.334 5.833,0.166 5.833,-1.333 1.373,-0.823 1.961,-1.177 1,-4.000004 5.4999999,-5 4.66700003,2.333 4.16699997,-7.833 2.167,-2.667 1.667,-3.5 1.333,-3 1.5000001,-3 2.333,-1.5 -0.5,-3.333 -0.833,-4.167 -2.8330001,-2.5 -4,2.167 -3.5,-0.75 -4.667,1.25 -5.5,2.167 -5.5829999,-2.917 -4.583,0.583 -2.417,-2.583 -8.75,-0.5 -1,2.5 -3,3.5 -0.5,3.75 1.667,3.333 -1.333,4.167 -2.5,3 -0.333,12.167 6.165,0.5 z"
-           id="path4075"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -7.9865861,110.89163 0.167,4.5 21.1670001,0.167 4.333,1.166 2.667,1.334 -0.167,-2.167 0.333,-2.333 -4,-3.5 -0.333,-2.667 -3.667,-8.333004 1,0 4.25,-7.417 -2.083,-4.083 -3.917,-2.667 -0.5,-3.25 6,-1 -1.75,-2.25 -0.667,-5.167 -1.583,-4.083 -1.583,-0.583 1,6.666 -2.333,1.5 -4.5000001,10 -2.167,2.167 -4.16699997,7.833 -4.16700003,-2.166 -5.9999999,4.833 -1,4.000004 -2.333,1.5 1,2 0.833,-0.667 1.167,2.167 2.6669999,-0.667 -0.667,2.334 1,0.833 z"
-           id="path4077"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -0.48658607,115.55863 -0.66700003,5.666 -4.833,-0.5 -0.667,1.334 -1.5,-1 -1.667,-0.667 2,-5 7.33400003,0.167 z"
-           id="path4079"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 7.5134139,115.55863 0.333,4.5 4.6670001,-0.667 -0.167,2.5 -1.167,1.833 -0.667,1.834 0.5,1.833 2.167,0.667 -0.5,6 -1.667,1.833 -2.0000001,-0.667 -2.5,0 -2.5,-2 -0.167,2.5 -2.333,-0.5 -1.33299997,1 0.667,2.5 1.33299997,0.5 -0.833,2.5 -2.16699997,-0.166 -1.16700003,1 -8.4999999,-9 -2.167,-4.667 2.333,-1.333 -0.167,-4.5 2.3329999,-2 1,1 1.167,-1.334 4.833,0.5 0.66700003,-5.666 8.00199997,0 z"
-           id="path4085"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 30.346414,109.05863 -0.167,2.666 -2.167,6.5 -1.667,4.334 0,4.166 -6.833,8 -0.167,6 -4.833,5 -2.167,-2 -2.5000001,1.5 -2,1.167 -1.5,0 -1.5,2.167 -1.833,1.833 0,2.333 3.833,-1.5 1.167,-1.5 2.8330001,1.334 10.833,-0.167 1.5,6.167 3.333,2.666 7.833,-0.166 0.167,-1.834 -0.333,-1.666 5,-0.834 0,2.167 5.5,-0.333 -0.333,2.166 0.833,4 -1.333,3 2.667,4.334 0.167,1.666 7.167,0.834 1.667,0 0.5,1 2.5,-1 2.333,1.833 4.667,1.833 1.667,-1.666 2.833,2.166 1.333,1 1.667,1.667 2.667,2.333 2 [...]
-           id="path4087"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 23.679414,108.55863 6.167,0.5 0.333,2.666 -3.833,11.334 0,3.666 -6.833,8 -0.167,6 -4.833,5 -2.667,-2 -4.0000001,2.667 -1.5,0 0,-1.667 -1.5,-0.166 -3.167,2.5 -1.49999997,-2.334 -2.16700003,-2.166 1.16700003,-1 2.16699997,0.166 0.667,-2.166 -1.16699997,-0.834 -0.667,-2.5 1.33299997,-1 2.333,0.5 0.667,-2.333 1.833,1.333 2.667,0.5 2.0000001,0.667 1.667,-1.833 0.5,-6 -2.167,-0.667 -0.5,-1.833 0.667,-1.834 1.167,-1.833 0.167,-2.5 -4.6670001,0.667 -0.333,-4.5 5.8330001,0 4.333,1 [...]
-           id="path4089"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 53.346414,173.05863 0,3.5 0.333,2.666 -0.5,2 -8,-0.333 0.333,15.5 2.333,1.833 2.167,1.5 0.667,1.334 6.833,-0.334 1.167,1.334 7.333,1.166 6,-5.333 2.333,-0.667 1,-3.5 5,-1.666 -0.5,-1.667 13.167,-4.833 -0.667,-2.334 0.833,-3.166 1.333,-1 0,-5.167 1.833,-2.5 -3.333,-6.125 -4.625,-0.875 -5.708,-3.333 -7,1.666 -1.833,3.334 0.333,2.333 0,3.5 -1.167,2.667 0.667,1.833 2.333,2.5 2.833,-1.167 0.667,4 -0.833,0.5 -3,0 -4.333,-4 -4.167,-3.166 -1.667,1.666 -4.667,-1.833 -2.333,-1.833  [...]
-           id="path4091"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 99.346414,188.05863 0.5,3.666 -0.667,3.5 2.499996,2.834 0.833,1.666 1,-4 1.333,-1.5 0.833,-5.666 -4.5,-5 -1.666996,-3 0.999996,-5.917 -0.999996,-5.25 -1.375,-2.25 -5.125,-1.875 2.833,5.625 -1.333,3 0,5.167 -1.333,1 -0.833,3.166 0.667,2.334 2,1.5 1,1.5 1.667,-0.667 1.667,0.167 z"
-           id="path4093"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 81.346414,192.39163 1.167,2.167 4,0.166 3,1.667 2.333,1 1,3.833 0,4.834 -1.5,1.666 1.5,2.334 0.167,2.833 -2,3.5 -1.5,3.167 -3.667,5.166 2.167,3.334 c 0,0 -1,2.166 -0.333,2.666 0.667,0.5 2.5,7.334 2.5,7.334 l -0.667,3.166 0.333,3.834 2.667,-0.334 -0.333,-2.666 -0.667,-0.167 1,-2.333 4.667,-1.5 4.666996,-3 1,-5.334 0.5,-7.333 -2,-1.333 -0.167,-3.667 -1.999996,-2.667 0.999996,-2.666 3.5,-1.5 2.333,-2.834 2.667,-0.166 0.833,-4 5.167,-2.5 4.833,-1.5 2.333,-2.334 2.83291,-3.333 [...]
-           id="path4095"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 163.17932,177.39163 -2.5,3.833 c 0,0 0,2 -0.5,2 -0.5,0 -4,0.5 -4,0.5 l 0.333,3.5 -1.667,2.334 -1.833,2.166 -3,1.334 1.333,2.5 -3,-1 -4.667,0.833 -1.5,0.833 0.333,1.834 -2.333,2.833 0.333,4.5 1,3.5 1.5,3.333 -1.5,3.167 -1.5,2.333 -1.333,2 -1.667,2.167 0.833,6 2.167,2.167 -1.333,2.666 2.5,3.5 c 0,0 2,1 2.333,1.667 0.333,0.667 2.333,2.333 2.333,2.333 l 2.5,-2 3.333,-0.333 3.167,-3.167 2.333,-8.666 3.5,-12.167 3.5,-9.667 0.333,-4 0.833,-2.666 -0.167,-3.5 0.667,-1.167 1,1.667  [...]
-           id="path4097"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 59.680414,202.72463 0.5,2 1.167,0.834 1.833,4.333 1.167,2 2.833,1 2,1.667 1.5,1.166 0.167,2.5 3.667,2.334 2.167,1.666 4,0.167 5.167,2.333 4.167,-5.833 3,-6 -0.167,-2.833 -1.5,-2.334 1.5,-2.333 0,-4.167 -1,-3.833 -5.333,-2.667 -4,-0.166 -1.167,-2.167 -1,-0.333 -5,1.666 -1,3.5 -2.333,0.667 -6,5.333 -6.335,-0.5 z"
-           id="path4099"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 0.84641393,200.22463 3.83299997,-0.666 3,-0.334 3.3330001,1.5 17.667,0 4.667,1.834 11.667,0.666 5.667,-2.166 6.833,-0.334 2.167,2 -2.167,0 -1.833,0.834 -3.333,2.166 -1.833,-1.666 -8.333,1.333 -0.833,0.333 0,16.167 -4,0.333 0.167,30.834 -2.667,0.666 -0.667,1.167 -4.167,0 -4.167,-0.5 -1.833,-2.5 -1,0 -1.667,2.333 -4.667,-4.833 -2,-5.333 -1.167,-4.667 -0.167,-3.667 -1.167,-4 -0.167,-4.5 0.167,-1.666 -1.667,-3.334 -1.8330001,-2 -3,-7 -1.167,-3.666 -3.5,-3.5 -0.16599997,-5.834 z"
-           id="path4101"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 9.8464139,171.89163 -1,6 -2,3.5 c 0,0 -2.833,2.999 -3,3.666 -0.167,0.667 -1.833,7 -1.833,7 l -1.83299997,5.334 0.667,2.833 6.33299997,-1 3.8330001,1.5 17.667,0 4.667,1.834 11.667,0.666 5.667,-2.166 -0.667,-1.334 -4.167,-2.833 -0.667,-16 8,0.333 0.5,-2 -0.333,-6.166 -6.667,-0.834 -0.167,-1.666 -2.667,-4.334 1.333,-3 -0.833,-4 0.333,-2.166 -5.167,-0.001 -0.333,-1.833 -5,0.834 0.333,1.666 -0.167,1.834 -6.833,0.166 -4.333,-2.666 -1.5,-6.167 -10.833,0.167 -2.8330001,-1.334 -1. [...]
-           id="path4103"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 1.6794139,147.05863 1.333,3.333 2.333,-2.667 1,-1.333 0,-1.667 -1.5,-0.166 -3.166,2.5 z"
-           id="path4105"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 37.513414,236.64163 2.75,3.25 0,3.75 0.25,1.75 6.25,-0.75 0.75,-2.75 3.25,-4 1.25,0.75 5.75,1 3.5,0 2,-4.25 1.5,-0.5 2.25,-5 4.5,-4.25 3,-2.25 2.167,-1.167 -5.833,-4 -0.167,-2.5 -3.5,-2.833 -2.833,-1 -3,-6.333 -1.167,-0.834 -0.5,-2 -2.167,0 -5.167,3 -1.833,-1.666 -9.167,1.666 0,16.167 -4,0.333 0.167,14.417 z"
-           id="path4107"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 45.513414,281.64163 4.5,0 2.5,-0.75 4.5,1.5 2.75,-1.75 2,-1.25 4.5,-0.5 3.25,-2 2.75,-2.5 4.75,-4.25 3.5,-4 5.75,-9.25 4.5,-4.5 1.75,-7.667 -2.667,0.334 -1.333,2.583 -4.75,-0.75 -0.25,-3.5 1.5,-3.25 4.25,0 0.917,-2.083 -1.917,-6.917 -1,-1.5 0.75,-1.583 -2.167,-3.334 -5.167,-2.333 -4,-0.167 -9.667,7.667 -2.25,5 -1.5,0.5 -2,4.25 -5.25,-0.25 -4,-0.75 -1.25,-0.75 -3.25,4 -0.75,2.75 -6.25,0.75 -0.25,-5.5 -2.75,-3.25 0,16.417 -2.667,0.666 -0.667,1.167 -4.167,0 -4.167,-0.5 -1.83 [...]
-           id="path4109"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 73.763414,253.76663 -1.75,1.25 -1.75,0.5 -3,3 0.75,1.875 1.5,2.375 1.75,1.25 0.875,-1.875 2.125,-1 1.75,-0.875 0.25,-2.25 0.5,-1.625 -1.5,-1.375 -1.5,-1.25 z"
-           id="path4111"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 89.513414,242.14163 0.375,-2.5 -4.5,0.375 -1.625,2.75 0,4.125 4.875,0.375 1.208,-2.208 -0.333,-2.917 z"
-           id="path4113"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 121.51336,-84.44238 7.83296,-0.167 3.667,2 6,1.333 2.667,2.167 5.5,0.167 1.833,2.833 4.5,1.167 2.667,2.5 1.833,0.667 2,-2.167 -2,-4.167 -2.75,-4 1,-3.5 -1.5,-0.75 -1.25,-2.5 -2.25,-0.75 2.5,-2.75 2,-5.25 0.75,-2 2,2.25 1.667,-1.583 0.333,-2.5 2,-2.667 -1.167,-2 -7.167,-6.833 -1.667,-2.833 2.5,-13.167 5.167,3.667 0.833,-2.5 -0.833,-2.333 1.5,-2 0.083,-3.25 3.083,0.417 3.833,-2.167 0.5,-1.667 3,1 -0.5,2.167 2.167,-1.5 2.333,0.167 2.667,-0.833 2.833,0.833 3.333,3.333 0.667,3 [...]
-           id="path4123"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 731.51332,-324.94238 -7.333,5 1,4.333 7.333,-2 5.333,0.667 2,-5.333 -4.666,-3.667 -3.667,1 z"
-           id="path4125"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 570.51332,-349.27538 -10.667,-1.333 -5,-0.667 4,-3.667 0.667,-4.333 -4.667,-2.333 1.667,-4.667 4.333,0 -0.667,6.333 1.667,1.333 2.667,-1 4.667,1.667 2.667,4 0.333,5 -1.667,-0.333 z"
-           id="path4127"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 553.51332,-377.94238 -1.667,4 -5.667,-4.667 0,-6.667 -2.333,-3.333 3.667,-5.667 2.667,-5 5.667,3 1,5.667 2,2 2.667,-1.333 -0.333,-5 3.333,-1 6.333,4.667 2.333,1.667 5,1 2,1.667 -3.333,4 -1.667,4 -4,-2 0,-5.667 -5,-2.333 2.333,6.333 1,3 3.333,1.333 -3.333,2 -4.333,-0.333 -3.333,0.333 -5.667,2 -0.667,-3.333 -2,-0.334 z"
-           id="path4129"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 584.51332,-387.94238 2,5.333 1.667,4.333 6.667,4 6,1 2.667,-3.333 -3.667,-4.667 -4.667,-1 -3.667,-2 -7,-3.666 z"
-           id="path4131"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 364.51332,-513.10937 -2.5,9.49999 -12,4.5 -0.5,8.00001 4.5,7.49999 2.5,3.5 -5.5,2 -6.5,-2.5 3,8.5 5.5,-1.5 4,-3 1,2 -5,7 5.5,4.5 2,5 5.5,0.5 3,5 8.5,1 5.5,-4 6,2.5 -4,9.5 -1.5,9 5.5,-2.5 11.5,-0.5 5.5,-6 0.5,-6.5 -6,-6 -4,-3 -1,-5 -4.5,-1 -1.5,7 -0.75,4 -4.75,-2 -2,-5.25 0.5,-6 0.75,-5 -1.25,-5.5 -3.25,-2.25 -2.5,2 -3.5,-3.75 -1.5,-1.5 -8,1.75 -4,2.75 0,3 -2.25,-2.25 0.25,-2.25 2.25,-1.25 3,-2.5 2.75,-2.74999 4.75,0 1.5,-1.25 -0.75,-4.75 2.75,-4.50001 -1.5,-5 -3.75,-1.75  [...]
-           id="path4133"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 243.17932,-413.27538 -5.667,3 -7,6.333 -7.333,5 -5,-1 -6.667,3.333 -5.667,4.667 -6.333,5.667 -1,5 -7,1.667 0.333,6.333 0,5.333 -3.667,3 -3,6.667 3,2 -3.667,4 -0.667,3 -4.333,5 -2.667,3.667 2,4 -2,4.667 -4.333,-0.667 1.333,6 3.667,3.333 1.333,-1.667 3.667,4 -1,2.667 0.667,3 5.667,1.333 4.333,1.333 4.667,-1 2,1.667 1,-2.333 -4,-2.667 -2.333,-4.333 -2.333,-7 -0.333,-5 -0.333,-8.333 4,-3.667 1.667,-5.667 2.333,-6 1.333,-5 2.333,1 1,-5.333 1.333,-4.333 2.667,-0.667 2.667,1.333 [...]
-           id="path4135"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 160.84632,-297.27538 -3.667,3.667 1.333,4.667 6,-1 3,-4.667 -3,-2.667 -3.666,0 z"
-           id="path4137"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 49.26336,-156.10938 -4.125,0.125 -3.625,-1.25 -3.875,0.125 -1.25,0 1.25,-1.375 -0.75,-1.375 2.75,-0.625 0.25,1.25 1.375,-1.125 -0.375,-2.25 1,-0.5 -0.375,-1 1.875,1.25 2.75,1 3.5,1.125 0.25,2 -0.125,1.625 -0.5,1 z"
-           id="path4139"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 228.26332,-516.60937 -4,3.75 -3.25,6.74999 3,4.5 2.75,-3 5.25,-0.5 -2,-5.75 0.5,-5.49999 -2.25,-0.25 z"
-           id="path4141"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 166.26332,-503.10938 -1.75,4.25 -4.5,2.75 -2,-4.75 -10,-0.75 -7,4.5 c 0,0 1,4.00001 1.75,4.00001 0.75,0 5.5,2.25 5.5,2.25 l 0.5,-6.75001 3.25,-1.5 4,2 2.5,1.5 -5,1 c 0,0 -3,2.00001 -2,2.00001 1,0 5,1 5,1 l -1.5,2.75 -5.25,2 3.25,4.49999 3.75,-1.25 -0.25,3.5 3.25,-1.5 c 0,0 1.75,-2.75 1.75,-3.5 0,-0.74999 -0.25,-3.24999 -0.25,-3.24999 l 4.25,0.25 1.25,-4.25 3.5,-1.5 1.75,-4.00001 -5.25,0.25 c 0,0 0.75,-3 1.5,-3 0.75,0 3,-1.5 3,-1.5 l -3,0.25 -2,-1.25 z"
-           id="path4143"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 208.76332,-500.60938 -1.25,4.75 -1,7.75001 7.5,-0.5 c 0,0 2.75,-0.25 2.25,-1.75 -0.5,-1.5 -3,-6.00001 -3,-6.00001 l 3.25,-2 1.25,-3 -4.25,0.5 -4.75,0.25 z"
-           id="path4145"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 185.51332,-507.35938 c 0,0 -0.25,2.75 0.5,3 0.75,0.25 4,0.75 4,0.75 l 2.75,3.25 4,1.75 2.75,0.75 -1.75,-3.5 -5.5,-2.75 -0.25,-1.5 -6.5,-1.75 z"
-           id="path4147"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 197.51332,-521.60937 -2,2 4.25,3.25 3.25,-1.75 -2.75,-2.5 -2.75,-1 z"
-           id="path4149"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 194.01332,-516.35937 -0.5,2 c 0,0 -5.75,0.75 -5,1.25 0.75,0.5 4.75,1.49999 4.75,1.49999 l 3.25,-1.74999 c 0,0 3.5,1 3,0.25 -0.5,-0.75 -1.75,-2.75 -1.75,-2.75 l -3.75,-0.5 z"
-           id="path4151"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 193.51332,-488.60937 -1.75,1.75 c 0,0 -0.5,6.49999 0.25,6.24999 0.75,-0.25 5,0.25 4.75,-0.75 -0.25,-1 -0.25,-2.25 -0.25,-3.25 0,-0.99999 0,-2.74999 0,-2.74999 l -3,-1.25 z"
-           id="path4153"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 198.51332,-490.60937 c 0,0 0.25,3 0.5,4 0.25,1 1.75,4.74999 1.75,4.74999 l 1.75,-4.49999 1.5,-1 -3.5,-2.5 -2,-0.75 z"
-           id="path4155"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 192.51332,-507.85938 c 0.75,1 2,2.75 2.75,3.25 0.75,0.5 3.5,2 3.5,2 l 1.25,-2 -3.25,-3.25 -4.25,0 z"
-           id="path4157"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 211.01332,-507.60938 0.25,2.5 3.5,2 1.75,-3.5 -2.5,-1 -3,0 z"
-           id="path4159"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m 179.51332,-488.35937 -1.5,2.5 c 0,0 -5.25,2.74999 -1.5,2.99999 3.75,0.25 7.25,0.5 7.25,0.5 l -0.5,-3.49999 -3.75,-2.5 z"
-           id="path4161"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -38.15364,-132.60938 -2.5,1.333 -2.333,1.167 -1,3.333 -0.833,1.667 -3.833,1.667 -0.167,2.167 -1.5,0.5 -3.167,-0.167 -1.333,0 -1.667,-1.5 -2.167,0 0.833,2.667 0.833,1.5 0.333,2.667 -2.5,0.167 -2.333,-0.167 -2.167,-1.5 -2.333,0.167 -2.833,1.5 -2.667,0.333 c 0,0 -2.5,0 -1.833,0.333 0.667,0.333 2.167,1 2.167,1 l 1.667,1 -0.833,1.167 2,1.333 1.667,-0.167 2.333,1.5 1,1 1.167,-0.167 1.833,0.167 -0.5,2.167 1.333,1.5 0.667,1.333 2.167,2 1.5,1.667 -0.167,1.167 0.5,2.167 0.5,0.833 - [...]
-           id="path4253"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -9.98664,-81.10938 -0.5,1.667 -1,0 -1.333,1.333 -0.5,1.833 0.833,1.667 1.333,2 1,1.167 1,-2.5 0.5,-1.833 -0.5,-3.167 0,-1.5 -0.833,-0.667 z"
-           id="path4255"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -672.46094,-297.1288 -0.167,95.333 4.667,0.833 2.167,-1.333 2,1.667 0.5,2 6.333,6.333 0.5,2.667 2.167,-2 1,-1.5 1.666,-0.333 0.5,-1.5 3.167,-1 1.667,0.833 0,1.667 6.833,7.5 0.167,2.667 3.5,5.5 1.833,4.5 3.167,4 6.5,4.333 -0.834,1.833 0.167,2.5 -1.167,3 -3.166,2.583 -0.334,1.417 3.5,-1.5 0.667,2.75 -1.167,1.5 1,1.25 0.417,1.917 -2.333,0.167 1.916,2.667 1.667,-1.083 1.167,-0.417 2.416,-1.25 1.084,1.083 -1.667,2.25 -0.75,1.75 0.833,3.417 0.584,-2.583 1.916,-1.25 0.667,3.417  [...]
-           id="path4163"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -407.21094,-170.7958 -2,4.5 1.5,3 3.75,-4.75 -3.25,-2.75 z"
-           id="path4165"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -433.71094,-252.5458 -1.25,4.5 -1.5,10 -2.25,3.5 -1,3.5 6.25,-1.75 0.25,4 4.5,-0.25 2.75,-3.5 3,-3.5 1.25,1.25 3.5,2.25 4,2 4.5,-3.25 -2.5,-2.25 -4,0.25 -1.25,-6 -6.25,-2.5 -3,-4 -3.75,0.25 -3.25,-4.5 z"
-           id="path4167"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -419.21094,-224.7958 -3,1.5 -2.75,-0.5 0,4.75 4.75,0.25 2.25,-4.75 -1.25,-1.25 z"
-           id="path4169"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -409.96094,-218.7958 0.25,2.75 2,3 1.5,-5.25 -2,-0.75 -1.75,0.25 z"
-           id="path4171"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -391.46094,-281.0458 -3.75,1.25 -2,4.75 0.25,4 1.75,1.75 5.5,-0.75 1.5,-5 0.5,-4.25 -3.75,-1.75 z"
-           id="path4173"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -419.46094,-300.5458 5.5,0 4,3.5 3,-1.25 -4.5,-2 -3.75,-2.5 7,0.5 4.25,2.25 0.25,-4.75 -1,-3 5,2.5 1.75,4.75 1.5,2.5 2,2.75 3.75,2.75 -2.75,2.5 0,4 3.75,-2.25 2.75,1 1.25,1.75 2.25,1.5 0.75,0 2,4.5 1.75,1.25 1.75,7.5 -0.25,4 -1.75,2.25 3.75,1 3.25,0.25 2.5,-3.75 5,4.75 c 0,0 1.5,0.75 0.75,1.25 -0.75,0.5 -7.5,2.75 -7.5,2.75 l -2,-3.25 -5.75,-0.5 -2.25,3 -2.25,3.5 -0.25,3 -3,2.5 -6,0.75 -6.75,-0.25 c 0,0 0.25,4 0,4.75 -0.25,0.75 0.75,5.25 0.75,5.25 l 6,2 3.5,-3.25 3.75,0.5  [...]
-           id="path4175"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -564.21094,-350.7958 -5.25,4 -4.75,4.5 -4.75,6.25 -3,5.25 -4,3 -0.75,6.75 -5.25,2 -4,3.5 -2.75,-3.5 -2.25,-6.25 -6.25,-2.25 2.25,-7.25 1,-8.25 c 0,0 2,-2.75 2,-3.75 0,-1 -0.75,-6.25 0,-6.75 0.75,-0.5 4.25,-4 4.25,-4 l -4.25,-7.5 8.25,-1 3.5,-1 5.25,1 2.75,4.25 2.5,2.75 2.5,-3.75 3.75,-0.25 c 0,0 4.25,3.5 4.5,4.25 0.25,0.75 3.75,4.25 3.75,4.25 l 2.5,3 -1.5,0.75 z"
-           id="path4177"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -559.71094,-347.5458 -4.25,2.25 -5.75,2.5 -5.75,6.25 -0.75,3.75 1.5,0.5 -3.25,4.25 0.25,4 3.75,-0.5 0.25,2.75 7.75,-0.25 2.75,1.5 -6.75,2.25 -6.75,1.5 4.5,5.25 5.25,2.25 7.5,-0.5 3.75,-0.25 3.75,3.5 -1.25,1.25 -11.25,0 -6.25,3.25 3,4.5 4.5,3.25 6,0 c 0,0 2,2.5 2,3.25 0,0.75 1.75,5.5 1.75,5.5 l 5.75,0.75 8,-1 c 0,0 4.5,-2.25 5.25,-2.5 0.75,-0.25 2.75,-1.75 4.5,-1.75 1.75,0 3.75,0 4.25,-1.25 0.5,-1.25 2,-4.5 3,-4 1,0.5 4.25,3.5 4.25,3.5 -0.25,1.25 2.25,3.25 2.25,3.25 l 5.5, [...]
-           id="path4179"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -487.21094,-357.0458 -2.5,1.25 -5.5,1 -1,-2 -2.25,1.25 -1.25,2.25 -0.75,2 c 0,0 3.5,2.5 2.5,3 -1,0.5 -4.25,1.75 -2.75,1.75 1.5,0 3.5,-0.5 3.5,-0.5 0,0 2.25,1.75 1.25,2 -1,0.25 -1.25,2 -1.25,2.75 0,0.75 -0.75,3.25 -0.75,3.25 l -2.25,0.75 c 0,0 -2.75,-4.25 -3.5,-4.25 -0.75,0 -1.5,-0.75 -2,0 -0.5,0.75 0,4.5 0,5.25 0,0.75 1,3.75 1,3.75 l 4,2.5 2.5,0.25 c 0,0 1.5,2 2,3 0.5,1 1.75,4.5 1.75,4.5 l 2,3.25 2.5,0 c 0,0 3.25,-1.75 2.5,-2.5 -0.75,-0.75 -1.25,-4 -1.25,-4 l 3.75,4.25 2. [...]
-           id="path4181"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -476.71094,-386.0458 -1.75,4 -1.75,2.75 -1,3.75 7.5,6.75 4.25,-0.75 c 0,0 1.75,-2.75 1.75,-3.75 0,-1 -0.25,-7.5 -0.25,-7.5 l -3.5,-3.75 -5.25,-1.5 z"
-           id="path4183"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -479.71094,-412.2958 c 0,0 -3.25,-1.25 -2.5,1 0.75,2.25 3.5,4 1.5,4.5 -2,0.5 -2,0.5 -2,0.5 l 2.25,4.25 2,0.75 -0.5,1.75 2.5,1.25 -0.25,1.75 c 0,0 2.75,-2.5 4.25,-1.75 1.5,0.75 4.75,1.75 4.75,1.75 l 0,-2.25 1.5,0.25 1,4.25 1,3.25 -0.25,3.25 2.25,2 0.25,1 -1.25,1.25 c 0,0 -0.25,2 -0.5,2.75 -0.25,0.75 0.25,3.75 0.25,3.75 l 1,0.5 0,3.75 4.25,2.75 c 0,0 4,-0.5 4,0.25 0,0.75 0,1.5 0.75,1.75 0.75,0.25 3.25,0.25 3.25,0.25 l 0.5,-2.5 2.5,-0.25 c 0,0 2,-2.75 1.5,-1.25 -0.5,1.5 -1,4 [...]
-           id="path4185"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -490.21094,-403.2958 -2,2 -3.5,-1.75 -3.5,0.25 -0.25,3.75 c 0,0 4,3.5 3.5,4.25 -0.5,0.75 1,4.5 -0.5,3 -1.5,-1.5 -4.75,-5 -4.75,-5 l -3,-3 c 0,0 -1.5,1 -1.5,1.75 0,0.75 1.5,5.25 1.5,5.25 0,0 1.25,3.25 0.25,2.75 -1,-0.5 -2.25,-0.25 -2.5,-1.5 -0.25,-1.25 1,-3 -0.5,-3 -1.5,0 -2.75,0.75 -3,0 -0.25,-0.75 0,-3.5 0,-3.5 -0.5,-1.75 -1.75,-4 -1.75,-4 l -2.5,-1 c 0,0 -2,2.5 -1,3.5 1,1 3.5,3.5 3.5,3.5 l -3.5,1 3,2 0.75,0.5 c 0,0 -2.25,2.75 -1.5,2.75 0.75,0 4.25,0 4.25,0 l 0.5,1.25 2. [...]
-           id="path4187"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -523.71094,-392.0458 c 0,0 -3.5,4 -4.25,3.5 -0.75,-0.5 -3.75,-3.25 -3.75,-3.25 0,0 -0.5,-3.25 0.5,-4.5 1,-1.25 0.75,-4 0.75,-4.75 0,-0.75 -3,-6 -3,-6 l -4,3.75 -2,3.5 2.5,4.5 1,3 c 0,0 -3.25,2.25 -1.75,3 1.5,0.75 3.5,2.5 3.5,2.5 0,0 -0.25,3.5 -1.25,3 -1,-0.5 -6,-1.5 -6,-1.5 l -3,-2 -3,-3.75 c 0,0 -2.5,-1.25 -3,-2 -0.5,-0.75 -1.5,-4 -1.5,-4 0,0 -2,0 -2.75,0 -0.75,0 -4,-1 -4,-1 0,0 0.75,-2.75 -1,-2.75 -1.75,0 -5,-1 -5.25,0 -0.25,1 1,5 1,5 0,0 2.5,0.5 1.25,0.25 -1.25,-0.25 - [...]
-           id="path4189"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -513.96094,-382.0458 c 0,0 -2.75,2.25 -2.75,3 0,0.75 -0.25,2.75 1,2.75 1.25,0 3.25,1 3.5,0 0.25,-1 0.25,-3 0.25,-3 l -2,-2.75 z"
-           id="path4191"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -565.21094,-417.7958 -4.25,-2.75 c 0,0 -0.5,1.25 -0.5,2 0,0.75 -1.25,2.25 -3,1.75 -1.75,-0.5 -6,-1.5 -6.5,-0.5 -0.5,1 -2,5.25 -2,5.25 0,0 -0.25,1.5 -1.5,2.5 -1.25,1 -3.5,2 -4,3.25 -0.5,1.25 -1.25,3.75 -1.25,3.75 l -1.25,2 c 0,0 -4,0.5 -4.5,1.25 -0.5,0.75 0,4 0,4 0,0 1.5,-0.25 0.75,1.75 -0.75,2 -0.5,7 1,3.5 1.5,-3.5 1.25,-6.25 2.5,-4.75 1.25,1.5 1,4 1.75,4 0.75,0 3,-3.5 3,-3.5 l 3.25,2.25 c 0,0 4.25,2.25 3.25,-1 -1,-3.25 -3.25,-6.75 -1.75,-5.5 1.5,1.25 4.25,4.25 4,2 -0.25, [...]
-           id="path4193"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -572.71094,-394.5458 -4.75,4.5 -2.5,2.25 2,2.75 3.5,-3.75 1.75,-5.75 z"
-           id="path4195"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -560.71094,-408.2958 0.75,2.5 5.75,0 -1,-2.25 -5.5,-0.25 z"
-           id="path4197"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -559.21094,-432.7958 -0.75,2.75 2.75,5 0.5,-3.75 -2.5,-4 z"
-           id="path4199"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -549.46094,-442.7958 -4.25,3.75 -0.25,1.5 4.5,-0.5 2.75,2.25 1.75,-2.5 3,1 3,-2 0,-4 -1.75,-1.5 c 0,0 -1,-2.75 -2.25,-1.75 -1.25,1 -5,3.5 -5,3.5 l -1.5,0.25 z"
-           id="path4201"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -539.71094,-432.2958 -7,1 -3.25,1.25 -3.75,2.75 1.25,3.75 0.75,5 c 0,0 4,-1.25 4.25,0 0.25,1.25 -2,4 1,1.25 3,-2.75 6.75,-5.75 6.75,-5.75 0,0 1.75,-3 0,-3.25 -1.75,-0.25 -4,-0.75 -4,-0.75 0,0 1.75,-1.75 3,-2.25 1.25,-0.5 2,-2 2,-2 l -1,-1 z"
-           id="path4203"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -514.96094,-460.2958 -2.75,0 -5.5,1.75 c 0,0 1,3.5 1,4.25 0,0.75 2.75,1 2.75,1 0,0 2,0.5 1.75,1.25 -0.25,0.75 -0.25,3.75 -0.25,3.75 l 5,-4 0.5,3.25 c 0,0 -1.5,0.75 -1,2 0.5,1.25 1.75,2 1.75,2.75 0,0.75 -1.75,3.75 -3,3 -1.25,-0.75 -2.5,-2.5 -2.5,-1 0,1.5 2,7 2,7 l 3.25,-2 2.5,-2 c 0,0 1,0 1.5,0.75 0.5,0.75 0.25,1.25 1.5,1.5 1.25,0.25 3.25,0.25 3.25,0.25 l 3,3.5 2.75,2.5 0.75,3.25 5.5,-2 -2,-6 -2.25,-3.5 0.25,-4.75 c 0,0 0,-2 -0.25,-3.25 -0.25,-1.25 -2,-3.25 -2,-3.25 l -4,- [...]
-           id="path4205"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -521.46094,-425.5458 3.75,5.5 c 0,0 0,4 0.75,5 0.75,1 4.75,2.25 4.25,1.25 -0.5,-1 -0.5,-4.75 -0.5,-4.75 l -3,-3.75 -5.25,-3.25 z"
-           id="path4207"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -505.96094,-429.2958 0.25,2.75 3.75,-0.75 c 0,0 2.25,-0.5 1.25,-1.25 -1,-0.75 -3.25,-1.75 -3.25,-1.75 l -2,1 z"
-           id="path4209"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -487.71094,-449.2958 -0.25,4.5 c 0,0 1,3 0.25,3.25 -0.75,0.25 -1.5,-1.75 -0.75,0.25 0.75,2 4,7 4,7 0,0 1.25,-2 1.75,-1 0.5,1 0.75,2.25 -0.5,2.25 -1.25,0 -4.75,-1.75 -3.25,0.5 1.5,2.25 1.25,3.75 1.75,4.5 0.5,0.75 1.75,4.25 2,2.5 0.25,-1.75 1.5,-3 2.75,-3 1.25,0 5.25,1 5.5,0 0.25,-1 1,-3.5 1,-3.5 l -2.25,-3.25 2.75,-2 c 0,0 0.25,-1.25 -0.5,-2.5 -0.75,-1.25 -3.5,-3 -3.5,-3 0,0 -0.25,0 -0.75,-1 -0.5,-1 -0.75,-2.75 -2,-3.25 -1.25,-0.5 -6.5,-2.25 -6.5,-2.25 l -1.5,0 z"
-           id="path4211"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -469.46094,-425.5458 -3.75,-0.5 -4.5,0 -0.25,3 c 0,0 3,3.75 4.75,3.75 1.75,0 6,0 6,0 l 0.75,-4.25 -3,-2 z"
-           id="path4213"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -455.96094,-423.5458 c 0,0 -0.25,3.25 0.25,4 0.5,0.75 2.75,4.75 3.5,4.75 0.75,0 2.25,-1 1.75,-2.5 -0.5,-1.5 -0.75,-4.25 -0.75,-4.25 l -4.75,-2 z"
-           id="path4215"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -461.46094,-508.5458 -4.75,-4 -3.75,0 -1.5,1.25 c 0,0 -1.75,1 -0.5,1.5 1.25,0.5 2,0.25 3.25,0.75 1.25,0.5 2.75,0.5 2.75,1.25 0,0.75 -0.5,2.25 -1.75,2.25 -1.25,0 -5.5,-2 -3.75,0.25 1.75,2.25 3.25,3 0.75,2.75 -2.5,-0.25 -3.5,-1 -3.5,-0.25 0,0.75 -1.5,5.5 -0.75,6.5 0.75,1 5,2.75 5,2.75 0,0 -1.5,2.75 -2.25,2 -0.75,-0.75 -5,-2.75 -5,-2.75 0,0 -2.5,2 -1,3.5 1.5,1.5 2.25,4 2.25,4 l -2.75,1.5 0.5,3.25 2.5,-0.5 c 0,0 1.25,-0.25 1,1.25 -0.25,1.5 -0.25,1.75 1.5,1.75 1.75,0 4.25,0 4, [...]
-           id="path4217"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -433.71094,-484.5458 -4.25,-0.25 -0.25,4.75 c 0,0 0,2.5 1.25,2.75 1.25,0.25 2.5,0 3,0.75 0.5,0.75 2,2.25 -0.5,1.75 -2.5,-0.5 -4.5,-2 -4.5,-1 0,1 0.5,4.25 1.5,4.5 1,0.25 2.5,1.25 3.5,1.75 1,0.5 2.75,1.25 3,2 0.25,0.75 1.5,3.5 1.5,4.75 0,1.25 0,2 0.75,3.75 0.75,1.75 3.25,4.5 3.25,4.5 0,0 -1.25,1.5 -2,1.25 -0.75,-0.25 -0.75,-0.25 -0.75,-0.25 0,0 -5.75,-2.25 -3.5,-0.25 2.25,2 5.5,3 5.5,3 0,0 4,1.5 5.25,0.75 1.25,-0.75 4.25,-1.5 4.25,-1.5 0,0 0.5,2.5 -0.75,2.5 -1.25,0 -7,-1 -6 [...]
-           id="path4219"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -632.96094,-152.4208 -2.375,2.5 -2.625,-2.75 -2.125,1.375 2.75,5.25 1.5,0.75 0,2.5 3.75,4.625 -1.5,-4.25 -0.25,-3.125 0.375,-2.75 0.875,-1.875 -0.375,-2.25 z"
-           id="path4221"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -559.29089,-16.294794 0.333,5.333 2,4.3340001 4,4 2.333,3.666 2.334,4.667 3.333,4 0.333,5.3329999 2.334,3.667 1.333,2 1,-0.333 1.667,2.333 1.333,2.667 -1.333,1 -4,-3.334 -4.334,-2.666 -2,-2 1,-3.667 -1,-3.333 -2.333,-0.334 -1,-1.6659999 -2,-0.334 -5.667,-5.333 2.667,-0.333 c 0,0 0.666,-1.334 0.333,-2.334 -0.333,-0.99999995 -2.666,-4.666 -2.666,-4.666 l -2.334,-2.667 -2.333,0 -0.333,-4.0000001 -2,-4 -2.292,-3 -0.542,-2.833 8.5,-0.167 16.667,5.833 13.833,0 -0.333,-1.333 6.6 [...]
-           id="path4223"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -448.29089,59.205206 1.083,0.083 1,0.834 0.833,-0.5 0.584,0.666 -0.25,1.167 -3.417,2 -0.417,2.333 -1.5,1.417 -2,1.75 -1.916,-1.167 -2.167,-0.083 -2.333,0 -1.667,-1.375 0.875,-0.625 -1,-1.625 -0.042,-2.125 1.042,-3 5.375,-1.125 0.125,-0.875 -1.875,-2 0.25,-4.417 7.5,-0.333 -0.083,9 z"
-           id="path4225"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -445.29089,56.705206 -1.334,1 -0.75,1.25 -0.916,0.25 0.083,-9 1.125,-0.25 1.125,-1.625 1.25,-0.375 0.5,-1.125 1.875,0.875 -1.542,0.75 -0.083,2.583 -0.333,3.084 -1,2.583 z"
-           id="path4227"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -423.21089,63.205206 -3.083,1.5 -1.667,0.25 -2.083,-0.833 -1.084,1.25 -1.333,0.833 -1.25,1.167 -0.583,0.416 -1.084,-0.333 -1.166,1.417 -2.167,1.083 -0.25,1.583 -2.083,0.834 0.25,-1.167 -1.084,-1.083 -0.666,-1.334 -1.584,-0.25 -1.416,-0.25 -2.084,-1.166 -1.25,-1.334 0.25,-2.083 3.584,-2.25 0.083,-0.917 2,-0.5 1,-1 2,1.084 2.083,-0.917 2.75,-0.417 1.75,-0.583 1,0.917 3.75,0.166 2.334,1.667 -1.25,0.75 1.583,0.75 0.5,-1.083 1.917,0.25 0.333,1.583 z"
-           id="path4229"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -450.38089,69.205206 2.25,0.667 0.75,1.416 2.334,0.084 1.5,-0.334 1.416,-0.916 -0.416,-1.334 -3,-0.5 -1.917,-0.916 -1.417,-1.584 -3.083,2.75 1.583,0.667 z"
-           id="path4231"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -433.96089,79.955206 1.75,-0.333 1.917,0.5 1.083,0 2.167,1.416 2,0.084 -0.417,-1.334 0.083,-3 1,-2.083 -0.5,-2.083 0.834,0.333 0,-4.333 0.916,-1.75 0.417,-2.334 -0.5,-1.833 -3.083,1.5 -1.667,0.25 -1.833,-0.917 -0.834,1.417 -1.833,0.75 -1.833,1.583 -0.834,-0.333 -1.416,1.417 -2.167,1.333 -0.167,1.667 -2.166,0.5 -0.25,0.666 1.916,1.834 1.5,1.666 1.25,1.334 0.834,1.333 1.833,0.75 z"
-           id="path4233"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -419.88089,87.205206 -0.916,0.667 0.166,2.25 -0.916,2.083 -1.167,-1.5 -1.167,0.083 0.5,1.084 -1.75,-0.417 -0.083,-1.833 -1.75,-1.25 -1.5,-0.917 -1.583,-1.75 -0.917,-0.083 -0.083,1.083 -2.084,-1.25 -1.416,-1.667 0.25,-1.5 0.083,-1.166 -0.167,-1.25 2.167,-0.25 1.833,0.75 1.167,-0.25 2.167,1.166 2,0.334 1.416,3 1.417,1.166 2.333,1.417 z"
-           id="path4235"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -399.88089,97.038206 1.917,-0.833 0.667,-2.083 -0.167,-2.084 -0.917,-1.25 -1.583,-1.583 -0.667,-1 -1.583,-0.25 -1.667,-0.333 -1.083,0 -0.833,-0.5 -2.25,0 -0.417,1 -1.583,0.666 -1.417,0.334 -1.667,0.833 c 0,0 -0.834,0.583 -1,0.333 -0.166,-0.25 -1.333,-1 -1.333,-1 l -1.417,-0.416 -0.416,0.916 -1.25,-0.416 -0.084,-1.084 -1,-0.916 -1.166,0.5 0.166,2.25 -0.916,2.083 1.333,0.667 2.5,0.083 1.5,0.5 0.583,0.417 -0.583,1.083 0.167,1.75 0.75,-1.5 2.083,0.167 0.417,1.666 2,-0.166 1.3 [...]
-           id="path4237"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -397.63089,99.205206 0.167,5.667004 -0.667,2 1,4.333 1.334,1 -1.334,2.333 -2.166,1.667 -4.167,1.333 0,4 3.167,3 2.666,2 2,1.834 5.334,-0.667 2.5,0.5 0.333,1 3,1.5 1.833,3.167 2.5,1.666 1.5,2.667 0.5,1.333 5.167,0 2.5,-0.333 2.333,0.5 2.5,2 -1.666,3 1.333,2.333 0.833,1 0.834,-2.333 2.5,-11.167 -1.834,-2.833 -1.166,-2.667 0.166,-1.833 3.167,-0.667 0.167,-1.5 -2.667,-1.333 0.333,-1.667 5.334,-0.5 1,-1 1.5,1 1.5,-1.166 2.333,4.166 1,-0.833 -3.333,-6 -1.334,-1.167 1.5,-2 -1.33 [...]
-           id="path4239"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -368.13089,148.20521 -3.5,1.167 -3.833,0.666 -2.5,2.167 -1,4 -1,2.833 -1.833,1.667 -0.5,2.5 2,3.833 2.166,2.334 -0.666,1.833 2.666,0.833 1.667,1.834 4.5,-0.834 1,-2.666 1.333,5.333 5,0 2.834,4.5 -0.5,5.333 0,4.167 -1.167,3.667 -0.5,4.166 0.833,2.667 0,2.333 -1.333,3.167 -1.667,1.5 -0.166,1.833 -2.5,1.834 -0.334,-1.667 -5.333,-5.833 -3.667,-2.167 -4.666,-2.333 c 0,0 -4.668,-2 -4.834,-2.5 -0.166,-0.5 -7.333,-7.334 -7.333,-7.334 l 1.167,-0.833 -1.5,-2.167 -3.334,-6.666 -3.66 [...]
-           id="path4241"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -403.29089,122.37221 -2.334,1.666 -2.5,1.5 -1.5,0.334 0,4.333 -2,3.667 -0.166,4 1.333,2.5 2.167,-1.5 0.833,1.833 -2,2.833 0.5,2.167 -1.167,2 0.667,1.333 1.667,-0.166 2.166,1.5 2.5,0.5 2.167,-2.167 0.167,-4 2.666,-2.167 3.5,-1.666 2.834,-2.834 3.333,-2.166 -0.167,-2.334 1.167,-0.333 -1.167,-2.167 1.334,-1.166 -0.5,-1.667 -2.5,-0.5 -5.334,0.667 -2,-1.834 -2.5,-1.666 -3.166,-2.5 z"
-           id="path4243"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -458.29089,128.20521 -0.917,1.083 0.417,1.334 1.416,0.083 -1.333,1.083 0,1.5 3.167,-0.333 0.416,-1.917 -0.333,-1.833 -2.833,-1 z"
-           id="path4245"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -370.29089,80.205206 2.833,-0.333 3.5,-0.834 -2.5,-1.833 0.833,-2.333 2.667,1.5 c 0,0 -0.5,1.666 0,1.666 0.5,0 3.167,0.834 3.167,0.834 l 1.333,1.666 1.333,2.334 6.167,0.166 1.667,-0.333 4,2.167 5.166,-0.334 -0.166,-1.666 4.333,0 4.833,-0.334 -2,1.5 0.834,2.667 1,-0.833 3.666,1.833 2.167,2.333 2,0.334 1.833,1.666 0.334,1.667 -2.5,1.833 -0.334,2.167 1.334,0.333 -0.667,1.167 -4.5,1.333004 0.333,1.167 0.667,2.833 1.833,2.167 0.167,1.5 -3,1.833 -4.5,1.5 -3,1.167 -3,-0.833 -2.3 [...]
-           id="path4247"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -322.13089,107.03821 0.667,3.5 2.167,1 -1.5,1.5 -1.667,2.5 1.667,2.667 1.166,0.833 0,2.667 4.167,3 4,-3.833 2.667,-0.667 2.166,0.833 -2,-3 -1,-3.833 -1.833,-0.833 -1.5,-2.5 1,-3.334 3,-2.333 0.167,-2.5 -2.667,-2.667 -3,-1.833004 -1.333,0.667 -0.334,-2.5 -1,-1.834 -2.666,-1.333 -1.5,0.5 -2.5,1.833 -0.334,2.167 1.167,0.833 -0.5,0.667 -4.5,1.333004 1,4.334 1.833,1.833 3,0.333 z"
-           id="path4249"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -303.63089,120.87221 c 0,0 -0.667,-1.834 0,-1.834 0.667,0 3.834,-1.333 3.834,-1.333 l 3.333,-1.833 0.5,-2.834 -2.167,-2.833 0.5,-2.667 1.334,-3.166 -2.834,-1.334 -2.666,-0.166 -2.5,0.5 -4.5,-0.667 -0.167,2.5 -3,2.667 -1,3 1.5,2.5 2,1.333 0.833,3.333 2,3 3,-0.166 z"
-           id="path4251"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -297.29089,120.70521 2.833,-0.167 2.5,0.167 1.5,-3.5 1.833,-3.5 3.5,-3 -0.833,-2.333 -1.667,-0.167 -3,-2.167 -3.666,-1.5 -2,-0.166 -1.334,3.166 -0.5,2.667 2.334,3.167 -0.667,2.5 -3.333,1.833 2.5,3 z"
-           id="path4257"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -361.96089,175.20521 4.25,2.25 0.75,-2.5 6.25,-1.5 3.75,0 2.25,3.5 4.75,5.25 5.5,0.75 6.25,4.75 4,1 0.75,6.75 -0.75,1.25 4,4.25 5,-0.5 1.25,4.75 2.5,2.25 -0.25,9 -1.75,1.5 0.75,9 9.25,0.25 2,7.25 4.75,-0.5 -1.5,8 3.25,2.25 0.25,6.5 -6.75,5 -3.25,3.5 -5.5,5 3,2.25 3.25,3.5 2,0.5 8.75,6 0.5,2.75 4.25,-4.75 6.5,-6.75 -2.5,5.5 2.25,-1.5 3.25,-5.5 1,-4.5 3.5,-3.75 3.25,-4.75 -0.75,-7 0.5,-5 6.25,-3.5 6.25,-3.5 3.75,-3.75 9,-0.5 3.75,-2 2.75,-2.75 1.25,-4.75 3.75,-4.5 1.25,-1.2 [...]
-           id="path4259"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -362.21089,207.95521 2,5 2.5,0.75 -1.25,2.5 -0.25,3.75 0.5,1.75 1.5,0.5 1.75,7.75 3.25,-0.5 4.25,-4.25 3.25,1 2.5,0.75 1.25,2.25 2.75,-4 3.5,0.5 1,1.75 2,-4.5 3,-8 4.75,-0.25 4.5,-0.75 5.25,2.25 0.75,1.75 1.75,-1.5 0.25,-9 -2.5,-2.25 -1.25,-4.75 -5,0.5 -4,-4.25 0.75,-1.25 -0.75,-6.75 -4,-1 -6.25,-4.75 -5.5,-0.75 -7,-8.75 -10,1.5 -1.5,2.5 -4.167,-1.75 2.834,4.5 -0.667,6.25 0.167,3.25 -1.167,3.667 -0.5,4.166 1.25,3.417 -1,3.75 -1.5,1.5 1,1.75 z"
-           id="path4261"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -332.21089,228.70521 3.25,3 5.25,5 4,0.25 3,1.75 4,2.5 1,1.75 -2.75,3.25 -0.75,3.75 10.25,1.75 2.75,-1 0.5,-2 3.25,-2 -0.25,-3 2.25,-0.5 -1.75,-1.25 1.5,-8 -4.75,0.5 -2,-7.25 -9.25,-0.25 -0.75,-9 -0.75,-1.75 -5.25,-2.25 -3.75,0.75 -5.5,0.25 -5,12.5 1.5,1.25 z"
-           id="path4263"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -352.21089,229.45521 -0.5,4 -1,2 -4.25,2.5 -0.5,4 -1.25,2 2.5,5.75 -0.5,2 -3,-0.25 -2.75,4.75 -1,5 -0.5,3.5 -1.5,3.75 -1.75,4.5 1.75,4.75 2.75,4 -0.5,3.5 -2,3.5 -0.75,7 -2.5,1 -1.75,2.5 0.75,6.75 1.75,3.75 -2.25,2.75 -1.75,6 -0.25,6.25 0,6.5 -1,2.5 0.5,2.5 -0.25,2.75 0.75,6 2,2.5 -1.25,3.75 0.75,5 -1.5,5 -2.75,1.5 -0.5,5 -1.5,3.75 -1.75,2.75 1,4 0.25,3.5 0,2.75 3.75,-0.75 0,3 0,3.5 2,2.74998 4,-0.25 4.25,1 3.25,0.75 2.75,0.5 -2.25,-3.99998 -1.75,-1.75 0.75,-3 -0.75,-3.25  [...]
-           id="path4265"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -359.33089,397.83029 0.5,15.62505 1.875,0 -0.25,0.875 0.375,2 3,0 1,-1.375 -2,-1 2.5,0.75 2.5,0.875 3,-1.25 2.125,-0.875 -0.375,-1.62505 c 0,0 -2.75,-0.25 -3.125,-0.375 -0.375,-0.125 -3,-1.5 -3,-1.5 l -2.75,-1.25 -1.125,-2 -1,-2.125 -0.625,-1.375 -1,-1.375 -0.125,-1.125 0.625,0.375 0,-1.875 -2.125,-1.375 z"
-           id="path4267"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -313.28947,386.15257 0,3.67842 -2.31008,1.74238 -2.11758,2.71042 -0.1925,2.90403 c 0,0 3.27261,1.35521 3.08011,0.1936 -0.19251,-1.16161 -0.19251,-3.29123 1.34754,-3.09763 1.54006,0.19361 3.08011,0.19361 3.08011,0.19361 l -0.1925,-2.71042 3.85013,-0.38721 1.73257,-2.90399 -3.65763,-2.90402 -1.92507,0.77441 -2.6951,-0.1936 z"
-           id="path4269"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -317.13961,387.12057 -1.54005,-1.54881 -3.27262,0 -0.1925,3.09762 -2.88761,1.16161 1.15504,3.09759 -2.69509,-0.5808 -1.34755,-1.93598 0.19251,3.29119 3.08011,2.51682 3.27261,-1.16161 1.54006,-3.48483 1.73256,-0.96797 2.31008,-2.12962 -1.34755,-1.35521 z"
-           id="path4271"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.99999994;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -230.30809,402.77339 7.2553,7.1813 4.9642,6.75905 0.3819,-6.75905 -3.8186,-4.2243 -8.7828,-2.957 z"
-           id="path4273"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -429.46089,31.205206 2,-0.333 0,-2.334 3.833,-1.5 3.5,-0.5 2.5,-1.5 2.5,0.167 3.5,0.667 2.167,1.666 c 0,0 1.333,-0.999 1.833,-0.666 0.5,0.333 1.834,2.833 1.834,2.833 l 3.833,-0.333 2.333,1.5 3.167,2.833 2.833,0.833 4.5,1.167 -1.333,1.667 4.167,0 2.166,0.5 0.167,1.333 -2.5,2 -4.833,0.167 -7.5,-0.834 2.666,-2 -2.166,-1.166 -2.667,-0.334 -1.667,-3 -2,-1.333 -3.166,0 -4,-1.833 -2.334,0 -3.833,-1.667 1.333,-0.833 -0.833,-0.5 -3.667,0.5 -2,1.833 -2.5,0.5 -2.333,1.833 -1.5,-1.333 z"
-           id="path4275"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -421.96089,31.538206 -0.5,2 1.833,-0.166 0.667,-1.5 -2,-0.334 z"
-           id="path4277"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -392.29089,49.205206 -2.334,-1.167 -3.833,-0.5 -3.167,0.5 2.667,1.667 -0.167,1.667 3.667,-0.834 3.167,-1.333 z"
-           id="path4279"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -373.46089,41.372206 0.333,1.666 -0.333,1.5 0.167,1.334 0.833,0.333 -0.667,0.667 -0.333,2.333 -1.667,-0.5 -2.5,0.333 -1.833,-0.666 -2.5,-0.167 0,0.833 -1.167,-1.166 -1.666,-0.334 c 0,0 0.333,-0.833 0.833,-0.833 0.5,0 3.5,0.167 3.5,0.167 l 2.833,0.333 1.667,-0.5 -0.667,-1 -0.5,-2.333 -1,-0.834 -2.5,-0.666 0.667,-0.834 2.333,0 2.5,1 1.667,-0.666 z"
-           id="path4281"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -372.96089,50.372206 1.667,0.666 1.333,-2.333 2.333,-1 c 0,0 -1.166,1.001 -0.166,1.167 1,0.166 3.5,-0.167 3.5,-0.167 l 2,-1.333 1.833,0.333 1.167,1 1.666,-2.167 -1.333,-2.333 -4.167,0 -1.166,-2 -2.167,-1.167 -3.333,0 -2.167,0.334 -1.667,-0.5 0.5,2.166 -0.5,1.834 0.5,1.666 -0.333,2.667 0.5,1.167 z"
-           id="path4283"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -738.21094,39.9552 0,4.125 0.5,1.875 2.5,-1.625 1.25,-1.75 -1,-1.625 -3.25,-1 z"
-           id="path4285"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -741.96094,36.4552 1.5,1.875 2.125,-0.625 -1.25,-1.25 -2.375,0 z"
-           id="path4287"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -748.21094,33.4552 1.125,2.25 0.875,-1.375 -0.5,-1.25 -1.5,0.375 z"
-           id="path4289"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -744.83094,35.9552 2.25,0.125 -0.125,-1.875 -1.75,0.25 -0.375,1.5 z"
-           id="path4291"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -754.83094,30.4552 c 0,0 -1.625,1.75 -1.125,1.875 0.5,0.125 2.5,0.375 2.5,0.375 l 0.5,-1.25 -1.875,-1 z"
-           id="path4293"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -675.46094,-298.2958 -6.5,-3.5 -6.5,-2.5 -4,3.5 -7,-4 -11.5,-2 -7,0 -5,-2 -0.5,-3.5 -6,0 -5,-2.5 -2,-0.5 -3,-3 -4.5,-0.5 -2.5,3.5 -7,2.5 -5,2.5 -3,5.5 -5,1 -3,6.5 -1,6 -5,3.5 -7,0.5 -2.5,4.5 5,5.5 5,3.5 3.5,6 4,1.5 3.5,1 c 0,0 -0.5,3 1,3 1.5,0 4,-0.5 4,-0.5 l -0.5,5.5 -4,-2 c 0,0 1.5,2 0,2 -1.5,0 -6.5,0 -6.5,0 l -3,0 0.5,-4 -4.5,0.5 -3.5,2.5 -2.5,2.5 -4,3 -3.5,2 6,6 1.5,4 3.5,1.5 8,-1 3.5,2 7.5,-2.5 -1,3 2,2.5 -1.5,4.5 -4.5,1.5 -5.5,4 -3.5,-0.5 -3.5,4 c 0,0 0,0 -1.5,3 -1. [...]
-           id="path4295"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -805.96094,-230.5458 -0.25,3.25 3,0 3.5,1.25 1.25,2.75 2.25,-2 1.75,-2.25 -3.75,-1.5 -2.5,-2.25 -2.75,0.5 -2.5,0.25 z"
-           id="path4297"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -724.71094,-184.5458 -3,3.75 -3.75,3.75 -1.75,1.5 1.5,3.75 2.5,-2 1.5,0.5 2.5,-3.25 3,-0.25 -1,-4.25 2,-1.25 -3.5,-2.25 z"
-           id="path4299"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -592.79094,-114.1288 0.333,2.167 1.667,3.5 -0.834,3.667 -1.833,-2.333 -1.167,-2.667 -2.666,-0.5 -4.167,-0.5 -1.167,0 0.667,2.333 2.333,3.333 0,3.333 0.667,3.667 3,0.333 1.167,1.667 -3.667,-0.5 -1.167,0.833 0.5,3.5 -0.666,3.833 0.166,4.5 -1.166,3 -1.334,4.333 1,3 0.667,3.833 0.5,2.833 -0.667,3.833 0.5,2.667 1.167,2.667 1,3.333 0.833,2.167 3.5,2.833 1.667,-0.167 2.333,0.333 -2.5,0.667 0.667,1.167 -2.167,0.333 2,2.167 2,2.167 -0.666,1.833 2.666,3.833 2.834,2.333 0.333,2.833  [...]
-           id="path4301"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -353.29089,47.205206 2.333,-0.167 3.833,1 2.334,0 -2.167,1 -2.333,0.834 -2.834,0 -1.166,-1.667 0,-1 z"
-           id="path4303"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -400.79089,15.872206 -2,3 1.833,1.833 1.333,0.833 0.5,1.667 1.167,-2.333 -0.5,-2.334 -2.333,-2.666 z"
-           id="path4305"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -379.13089,34.372206 -1.833,0.333 -0.333,1.333 2.833,0.334 0.167,-2.167 -0.834,0.167 z"
-           id="path4307"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -366.79089,210.87221 -0.5,8.5 1.666,7.666 -2,5.334 -0.333,8.666 -0.667,4.334 -0.666,8.333 -3,4.667 1,6.333 -1.334,4.333 0.334,7 0,5.334 -2.334,5.666 -2,6.667 -1.666,7.333 -1.667,0.667 -0.333,6 0.666,8.333 -1.333,3.667 -1.333,4.667 1.666,2.666 -2,1.334 -1.666,6.333 0.666,2.333 3.667,-3.333 0.667,-5 0,-2 2.333,-1.333 1,3.666 -2.333,5.667 -0.667,6.333 -2,6.334 -2,-3 c 0,0 -2.001,2.666 -1.667,3.666 0.334,1 1.334,4 1.334,4 l -0.334,1 -2,0.334 -3.666,3 0.333,2.333 4,-2.333 1.66 [...]
-           id="path4327"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -535.29089,249.37221 -4,1 3,2 2,-2 -1,-1 z"
-           id="path4329"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <path
-           d="m -293.96089,281.20521 0.25,2.25 -1.75,4.75 -3.5,1.75 -6.5,0 -3,-1.25 -2.25,-1.25 -2.25,-0.5 -1.25,-2.5 -1,-2.25 0.75,-2.5 -0.5,-4.25 2,-3.25 0.75,-4.75 1.5,-2.5 3.5,1.5 3.25,3.5 2,0.5 8.75,6 0.5,2.75 -1.25,2 z"
-           id="path4331"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff" />
-        <rect
-           style="opacity:0;fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           id="rect4652"
-           width="46.024208"
-           height="31.463821"
-           x="-102.03697"
-           y="-363.61978" />
-        <path
-           d="m -135.22523,-233.95112 c -2.63439,0.20501 -6.73325,-0.86574 -7.92636,-1.90462 -1.19311,-1.03888 -4.09067,-1.2993 -6.22055,-1.73147 -2.13124,-0.43356 -5.0288,-1.55833 -3.23845,-2.16504 1.78899,-0.60532 5.53877,0.3463 4.68655,-2.33679 -0.85222,-2.68448 -0.25499,-2.77036 -1.36356,-2.68448 -1.10721,0.0873 -1.61854,-2.85624 -2.89756,-2.85624 -1.27765,0 -6.4769,0.60533 -4.77245,-0.953 1.70445,-1.55832 9.63081,0.0873 9.20401,-1.47106 -0.42543,-1.55832 -0.93676,-1.38518 -1.78898,- [...]
-           id="path1284"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.6871627;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.01163971px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 55.397714,88.459156 1.6955,-4.20113 0.1817,-1.77513 1.8773,-2.72187 3.5122,-0.35502 1.7561,3.13606 0.3028,0.82839 2.18,0.23668 1.2112,-0.5917 3.4517,0.41419 0.8478,0.76922 3.0278,0.0592 1.0294,-1.24259 2.1801,0.17751 -0.6056,-2.07099 2.7857,-1.06507 4.4811,2.78103 1.7562,-0.71005 2.9672,-4.02363 1.9378,-1.4201 -0.7266,-1.06508 0,-2.48518 -0.7267,-1.24259 2.6039,0.0592 -0.06,-0.94673 2.4828,0.17751 -0.6661,2.01181 0.4239,4.55617 3.3912,3.19523 -0.3029,-0.11837 0.4844,-2.89 [...]
-           id="path6487-7-0"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.01163971px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 55.387614,88.418786 1.6954,-4.20113 0.1819,-1.77513 1.8772,-2.72187 3.5122,-0.35502 1.7562,3.13606 0.3028,0.82839 2.1799,0.23668 1.2112,-0.5917 3.4517,0.41419 0.8478,0.76922 3.0277,0.0592 1.0296,-1.24259 2.1801,0.17751 -0.6057,-2.07099 2.7856,-1.06507 4.4812,2.78103 1.7561,-0.71005 2.9672,-4.02363 1.9379,-1.4201 -0.7267,-1.06508 0,-2.48518 -0.7267,-1.24259 2.604,0.0592 -0.06,-0.94673 2.4829,0.17751 -0.6662,2.01181 0.4239,4.55617 3.3911,3.19523 -0.2424,0.44374 -1.4231,7.33 [...]
-           id="path6487-4-9"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccc" />
-        <path
-           d="m -394.78719,48.580936 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -395.29689,19.297706 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-7"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -354.70559,75.036756 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-02"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -346.65839,78.468676 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-54"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -39.240086,-79.793184 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-06"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -17.483186,-123.6417 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-95"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -1.4165861,-106.5709 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90-59"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 6.4494139,-89.500104 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34939997,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.90110003,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-541"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 6.6168139,-75.441804 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34939997,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.90120003,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-30"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 19.336214,-36.948824 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-12"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -56.645686,-120.66141 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-47"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -65.082986,-120.97582 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-37"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -65.515686,-152.92983 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-157"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -150.86969,56.940566 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-9"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -17.483186,127.06473 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-5"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 192.78432,219.94995 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-8"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 207.95172,214.25968 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-3"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 143.85252,176.93823 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90-15-4"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 152.55532,182.12642 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-7"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 196.73862,144.97233 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-2"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 267.53212,114.17795 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90-15-71"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 445.28582,25.688176 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-27"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 454.04312,22.374596 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-6"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 403.15602,118.23157 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3495,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9011,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90-15-93"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 451.91292,104.03053 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-37"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 539.95932,95.273226 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-48"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 630.37252,64.267646 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-56"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 630.37252,75.155106 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-85"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 752.97482,78.705356 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-86"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 698.06412,96.930016 c 0,2.21859 -1.9011,4.013884 -4.2506,4.013884 -2.3494,0 -4.2505,-1.795294 -4.2505,-4.013884 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3495,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-368"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 716.28882,100.95365 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.221514 1.9012,-4.013894 4.2506,-4.013894 2.3494,0 4.2506,1.7953 4.2506,4.013894 z"
-           id="path4313-64-90-15-0"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 735.46022,106.39737 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-79"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 748.47782,130.06576 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-24"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 692.85712,189.94678 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-46"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 756.99842,222.37247 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-00"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 770.01602,212.19506 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-28"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 733.56672,164.6216 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-869"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 756.52502,175.03569 c 0,2.21859 -1.9011,4.01388 -4.2505,4.01388 -2.3495,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9011,-4.01389 4.2506,-4.01389 2.3494,0 4.2505,1.7953 4.2505,4.01389 z"
-           id="path4313-64-90-15-17"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 770.96282,186.15984 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-31"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <g
-           style="fill:#000080"
-           id="g10972"
-           transform="translate(-876.11048,-587.95599)">
-          <path
-             style="fill:#000080;stroke:#ffffff"
-             inkscape:connector-curvature="0"
-             id="path3965"
-             d="m 863.70684,428.01361 -0.833,-1.417 0.25,-3.125 -2.25,-0.25 -0.25,-4.875 0.25,-2.75 2,-0.375 -0.875,-2.875 1.75,-0.875 2.75,-0.75 2.125,-2.75 1.75,-1.75 1.375,-0.125 -0.875,2.125 0.75,1 -1,2.5 -1.125,0.625 1,1.625 -0.25,3 2.75,-0.875 -0.625,2.375 -3,0.625 c 0,0 -0.625,1 -0.5,1.375 0.125,0.375 0.25,2 0.25,2 l -1.25,0.25 -0.625,0.875 1.75,0.25 1.375,-1.125 1,1.5 1.5,0.875 -0.125,1.875 -2.375,0.875 -1.625,0 -0.5,-1.125 -0.25,-2 -0.375,-0.5 -0.75,0.375 -0.25,1.25 -0.125,1 0.2 [...]
-          <path
-             style="fill:#000080;stroke:#ffffff"
-             inkscape:connector-curvature="0"
-             id="path3967"
-             d="m 879.37384,418.97161 -2,0.875 -0.375,2 -1,-1.5 -1.625,1 c 0,0 -1,1.125 -0.5,1.5 0.5,0.375 1,2.625 1,2.625 l 1.375,0.25 1,1.375 -1.25,0.375 -2,0.25 0.5,1.625 1.875,0.625 0.75,-1.875 0.625,-0.75 0.625,-1.375 1.625,-0.75 -0.625,-1.625 -0.875,-1.25 0.625,-1.375 1,-0.125 -0.75,-1.875 z" />
-          <path
-             inkscape:connector-curvature="0"
-             id="path74165-7"
-             d="m 516.08118,168.06867 -1.84094,1.53417 3.86596,4.986 2.57732,3.06835 c 0,0 -3.12958,0.95885 -4.05008,1.15062 -0.92045,0.19179 0.55231,2.49302 0.55231,2.49302 l 3.49777,2.10947 c 0,0 2.20914,1.72592 2.7614,2.49302 0.5523,0.76707 1.10456,1.15062 2.20913,1.53414 1.10457,0.38355 4.05003,0.57532 4.05003,0.57532 l 2.39326,-0.38354 c 0,0 0.92045,0 1.47275,-0.76708 0.55226,-0.76707 3.31366,-2.68479 3.31366,-2.68479 l 3.68189,-0.38353 2.20913,1.53415 c 0,0 1.47276,-1.15062 2.02502 [...]
-             style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.68662179;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
-        </g>
-        <path
-           d="m -75.39004,-217.86582 c 0,2.21859 -1.90117,4.01388 -4.25058,4.01388 -2.34941,0 -4.25056,-1.79529 -4.25056,-4.01388 0,-2.22151 1.90115,-4.01389 4.25056,-4.01389 2.34941,0 4.25058,1.7953 4.25058,4.01389 z"
-           id="path4313-64-90-15-83"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -304.84159,-100.88063 c 0,2.218586 -1.9012,4.013876 -4.2506,4.013876 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.013876 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-7-6"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 124.18832,246.68446 c 0,2.21859 -1.90121,4.01388 -4.25061,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.25061,1.7953 4.25061,4.01389 z"
-           id="path4313-64-90-15-3-5"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 162.01182,387.93695 c 0,2.21859 -1.9012,4.01384 -4.2506,4.01384 -2.3494,0 -4.2505,-1.79525 -4.2505,-4.01384 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-3-2"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 240.67142,402.66469 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
-           id="path4313-64-90-15-3-8"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 282.17692,340.40649 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-3-1"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.5132829;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m 687.93954,632.29744 -836.17127,0 1.01972,-4.9987 32.97098,-22.21642 12.23665,-2.77706 9.857304,-7.22034 0.679814,-3.88787 -3.738977,-3.05476 -0.679814,-3.88787 3.059163,-1.11082 2.379349,3.88787 5.438513,-6.66493 3.059163,1.94394 2.379349,7.77575 5.438512,-1.94394 -1.359628,-2.77705 1.359628,-3.88788 -1.359628,-2.77705 7.817862,-1.11082 -0.679814,6.66493 13.59628,-1.11082 0,-6.38723 -1.699535,-2.77705 3.738978,-1.66623 6.79814,4.44328 -2.039442,3.61017 6.458233,5.83181 20 [...]
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3683-1" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m 687.93954,632.29744 -836.17127,0 1.01972,-4.9987 32.97098,-22.21642 12.23665,-2.77706 9.857304,-7.22034 0.679814,-3.88787 -3.738977,-3.05476 -0.679814,-3.88787 3.059163,-1.11082 2.379349,3.88787 5.438513,-6.66493 3.059163,1.94394 2.379349,7.77575 5.438512,-1.94394 -1.359628,-2.77705 1.359628,-3.88788 -1.359628,-2.77705 7.817862,-1.11082 -0.679814,6.66493 13.59628,-1.11082 0,-6.38723 -1.699535,-2.77705 3.738978,-1.66623 6.79814,4.44328 -2.039442,3.61017 6.458233,5.83181 20 [...]
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3685-7" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -527.22806,632.29744 208.70291,0 -0.67982,0 2.03945,-0.55541 0,-5.83182 4.41879,-4.44328 -3.73898,-12.21903 6.11833,-0.83312 1.35963,-4.44329 -5.09861,-3.88787 1.01972,-4.16558 -4.07888,-3.88787 4.07888,-4.9987 -1.01972,-4.72099 -3.05916,-2.77705 0.67981,-3.61017 -5.0986,-15.82921 -4.4188,-3.61017 -5.43851,0 -2.03944,-4.16558 2.03944,-2.49934 -2.71925,-2.22165 0.67981,-4.99869 3.05916,-3.88788 4.41879,0 -1.35962,-3.61016 2.37935,-2.22165 3.39907,2.22165 3.05916,-9.71969 1 [...]
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3687-4" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -527.22806,632.29744 208.70291,0 -0.67982,0 2.03945,-0.55541 0,-5.83182 4.41879,-4.44328 -3.73898,-12.21903 6.11833,-0.83312 1.35963,-4.44329 -5.09861,-3.88787 1.01972,-4.16558 -4.07888,-3.88787 4.07888,-4.9987 -1.01972,-4.72099 -3.05916,-2.77705 0.67981,-3.61017 -5.0986,-15.82921 -4.4188,-3.61017 -5.43851,0 -2.03944,-4.16558 2.03944,-2.49934 -2.71925,-2.22165 0.67981,-4.99869 3.05916,-3.88788 4.41879,0 -1.35962,-3.61016 2.37935,-2.22165 3.39907,2.22165 3.05916,-9.71969 1 [...]
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3689" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -630.5598,632.29744 -25.83293,0 9.5174,-4.9987 10.87702,0 5.43851,4.9987"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3691-0" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -630.5598,632.29744 -25.83293,0 9.5174,-4.9987 10.87702,0 5.43851,4.9987"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3693-9" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -562.23848,632.29744 -43.5081,0 0.3399,0 3.05917,-6.38723 9.51739,-11.10821 -1.35962,-7.49804 5.77842,0 4.75869,6.38722 5.77842,3.33246 0,-5.5541 14.95591,1.11082 1.69954,2.22164 -6.11833,4.44329 0,6.66492 5.43851,6.38723 -0.3399,0"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3695-4" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -562.23848,632.29744 -43.5081,0 0.3399,0 3.05917,-6.38723 9.51739,-11.10821 -1.35962,-7.49804 5.77842,0 4.75869,6.38722 5.77842,3.33246 0,-5.5541 14.95591,1.11082 1.69954,2.22164 -6.11833,4.44329 0,6.66492 5.43851,6.38723 -0.3399,0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3697-8" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -545.92295,632.29744 16.65545,0 -5.09861,-1.66623 -7.81786,-18.05085 -2.71926,4.44328 1.35963,13.60757 -2.71925,1.66623 0.3399,0"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3699-8" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -545.92295,632.29744 16.65545,0 -5.09861,-1.66623 -7.81786,-18.05085 -2.71926,4.44328 1.35963,13.60757 -2.71925,1.66623 0.3399,0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3701-2" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -381.74786,581.47736 -1.35962,2.77706 2.03944,3.88787 4.41879,1.94394 3.05916,3.88787 4.41879,1.11082 1.69954,3.88788 6.45823,1.11082 6.79814,-1.11082 5.09861,-3.05476 2.03944,-9.71969 -0.33991,-5.83181 -8.15777,-22.77183 -6.11832,2.49934 4.41879,15.82921 -1.69954,2.77705 -22.77377,2.77705"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3703-4" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -381.74786,581.47736 -1.35962,2.77706 2.03944,3.88787 4.41879,1.94394 3.05916,3.88787 4.41879,1.11082 1.69954,3.88788 6.45823,1.11082 6.79814,-1.11082 5.09861,-3.05476 2.03944,-9.71969 -0.33991,-5.83181 -8.15777,-22.77183 -6.11832,2.49934 4.41879,15.82921 -1.69954,2.77705 -22.77377,2.77705"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3705-5" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -381.74786,575.92326 9.5174,-1.11082 1.35963,-6.10952 -3.39907,-1.66623 -5.77842,2.49934 0.67981,2.77706 -2.37935,3.61017"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3707-5" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -381.74786,575.92326 9.5174,-1.11082 1.35963,-6.10952 -3.39907,-1.66623 -5.77842,2.49934 0.67981,2.77706 -2.37935,3.61017"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3709-1" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -329.06227,518.99367 4.07889,1.38852 6.45823,-4.16558 -2.37935,-2.77705 -2.37935,4.72099 -1.69953,-2.77705 -4.07889,3.61017"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3711-7" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -329.06227,518.99367 4.07889,1.38852 6.45823,-4.16558 -2.37935,-2.77705 -2.37935,4.72099 -1.69953,-2.77705 -4.07889,3.61017"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3713-1" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -294.05185,507.05234 2.37935,2.22164 4.41879,-0.83312 -3.73897,-3.33246 -3.05917,1.94394"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3715-1" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -294.05185,507.05234 2.37935,2.22164 4.41879,-0.83312 -3.73897,-3.33246 -3.05917,1.94394"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3717-5" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -306.62841,499.55429 1.69954,0.83312 -1.69954,-0.83312"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3719-2" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -306.62841,499.55429 1.69954,0.83312"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3721-7" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -304.92887,500.38741 5.77842,-3.33246 -5.43851,0 -2.03945,2.49934 1.69954,0.83312"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3723-61" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -304.92887,500.38741 5.77842,-3.33246 -5.43851,0 -2.03945,2.49934 1.69954,0.83312"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3725-4" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -307.30822,500.94282 -6.79814,1.38853 2.71926,0.83311 5.43851,-1.38852 -1.35963,-0.83312"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3727-2" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -307.30822,500.94282 -6.79814,1.38853 2.71926,0.83311 5.43851,-1.38852 -1.35963,-0.83312"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3729-3" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -305.94859,501.77594 -1.35963,-0.83312 1.35963,0.83312"
-           style="fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.81929612;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3731-2" />
-        <path
-           inkscape:connector-curvature="0"
-           d="m -305.94859,501.77594 -1.35963,-0.83312"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:0.81929612;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
-           id="path3733-2" />
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.00000095px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
-           x="-325.6788"
-           y="-34.073654"
-           id="text10238"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan10240"
-             x="-325.6788"
-             y="-34.073654" /></text>
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20.00000191px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
-           x="-717.97241"
-           y="46.259476"
-           id="text10242"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan10244"
-             x="-717.97241"
-             y="46.259476" /></text>
-        <text
-           xml:space="preserve"
-           style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:32px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000080;fill-opacity:1;stroke:none"
-           x="-827.76105"
-           y="66.342789"
-           id="text10246"
-           sodipodi:linespacing="125%"><tspan
-             sodipodi:role="line"
-             id="tspan10248"
-             x="-827.76105"
-             y="66.342789" /></text>
-        <path
-           d="m -15.861526,-84.460434 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-06-3"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -628.03313,280.89936 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-6"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51300013;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -157.41464,448.26014 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
-           id="path4313-64-90-5-9"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -145.36467,425.49914 c 0,2.2186 -1.9012,4.0139 -4.2506,4.0139 -2.3494,0 -4.2505,-1.7953 -4.2505,-4.0139 0,-2.2215 1.9011,-4.0139 4.2505,-4.0139 2.3494,0 4.2506,1.7953 4.2506,4.0139 z"
-           id="path4313-64-90-5-64"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -138.00079,320.06178 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.25051,-1.79529 -4.25051,-4.01388 0,-2.22151 1.90111,-4.01389 4.25051,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-63"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -109.21474,340.14508 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-2"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -144.3605,152.70101 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-1"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -95.491156,195.21065 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.349404,0 -4.250504,-1.79529 -4.250504,-4.01388 0,-2.22151 1.9011,-4.01389 4.250504,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-0"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -350.8837,-14.994484 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-5"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -371.73447,26.788286 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -410.12941,44.920676 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-7"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -70.721756,-41.102764 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-4"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 93.961234,-30.726394 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-62"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 281.74002,176.80096 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-01"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -745.85512,279.22576 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-6-1"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -520.92224,105.17055 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-6-6"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -113.2569,66.188856 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.0139 4.2506,-4.0139 2.3494,0 4.2506,1.79531 4.2506,4.0139 z"
-           id="path4313-64-90-15-9-1"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 207.09472,199.08685 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-2-7"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m 763.77522,110.09371 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2506,-1.79529 -4.2506,-4.01388 0,-2.22151 1.9012,-4.01389 4.2506,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-15-86-4"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328301;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -346.27222,47.609166 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-6"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -337.7516,44.058906 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-3"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -330.4144,39.798596 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-1"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -322.52015,43.334506 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-32"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -320.94704,51.159426 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-4"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -320.19638,59.457716 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-7"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -313.97328,45.490916 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-72"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -312.84482,53.705516 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.34941,0 -4.25051,-1.79529 -4.25051,-4.01388 0,-2.22151 1.9011,-4.01389 4.25051,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-2"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -311.29347,60.796606 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-40"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -305.19916,67.062776 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-5"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -314.80762,67.782266 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-61"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -317.67408,87.501276 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-34"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -318.63517,77.852206 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-9"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -309.8229,74.354446 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-0"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -299.88218,73.881076 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-25"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -339.41948,54.460236 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-24"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-        <path
-           d="m -330.382,55.715446 c 0,2.21859 -1.9012,4.01388 -4.2506,4.01388 -2.3494,0 -4.2505,-1.79529 -4.2505,-4.01388 0,-2.22151 1.9011,-4.01389 4.2505,-4.01389 2.3494,0 4.2506,1.7953 4.2506,4.01389 z"
-           id="path4313-64-90-5-8-43"
-           inkscape:connector-curvature="0"
-           style="fill:#000080;fill-opacity:1;stroke:#ffffff;stroke-width:1.51328313;stroke-miterlimit:4;stroke-dasharray:none" />
-      </g>
-    </g>
-  </g>
-</svg>
diff --git a/src/icons/makeicons b/src/icons/makeicons
index 1f3bfca..4d87160 100755
--- a/src/icons/makeicons
+++ b/src/icons/makeicons
@@ -4,10 +4,11 @@ function call_inkscape {
     # $1: width = height
     # $2: source file (*.svg)
     # $3: target file (*.png)
+    # $4: target path 
     echo -n "$1x$1 "    
     
-    if [ "$4" ==  "hicolor" ]; then        
-        inkscape -D -w $1 -h $1 $2 --export-png=./hicolor/$1x$1/apps/$3 >/dev/null 2>&1
+    if [[ $4 = *[!\ ]* ]]; then
+        inkscape -D -w $1 -h $1 $2 --export-png=./$4/$1x$1/apps/$3 >/dev/null 2>&1
     else
         inkscape -D -w $1 -h $1 $2 --export-png=$1x$1/$3 >/dev/null 2>&1
     fi
@@ -27,25 +28,47 @@ function convert {
     if [[ $1 =~ EditDetails\.svg ]]; then
         call_inkscape 16 $1 $NAME
     fi
+    if [[ $1 =~ Aircraft\.svg ]]; then
+        call_inkscape 16 $1 $NAME
+    fi
     if [[ $1 =~ QMapShack\.svg ]]; then
-        call_inkscape   8 $1 $NAME hicolor
-        call_inkscape  16 $1 $NAME hicolor 
-        call_inkscape  22 $1 $NAME hicolor 
-        call_inkscape  24 $1 $NAME hicolor 
-        call_inkscape  32 $1 $NAME hicolor 
-        call_inkscape  36 $1 $NAME hicolor 
-        call_inkscape  40 $1 $NAME hicolor 
-        call_inkscape  42 $1 $NAME hicolor 
-        call_inkscape  48 $1 $NAME hicolor 
-        call_inkscape  64 $1 $NAME hicolor 
-        call_inkscape  72 $1 $NAME hicolor 
-        call_inkscape  80 $1 $NAME hicolor 
-        call_inkscape  96 $1 $NAME hicolor 
-        call_inkscape 128 $1 $NAME hicolor 
-        call_inkscape 192 $1 $NAME hicolor 
-        call_inkscape 256 $1 $NAME hicolor 
-        call_inkscape 512 $1 $NAME hicolor
+        call_inkscape   8 $1 $NAME qmapshack/hicolor
+        call_inkscape  16 $1 $NAME qmapshack/hicolor 
+        call_inkscape  22 $1 $NAME qmapshack/hicolor 
+        call_inkscape  24 $1 $NAME qmapshack/hicolor 
+        call_inkscape  32 $1 $NAME qmapshack/hicolor 
+        call_inkscape  36 $1 $NAME qmapshack/hicolor 
+        call_inkscape  40 $1 $NAME qmapshack/hicolor 
+        call_inkscape  42 $1 $NAME qmapshack/hicolor 
+        call_inkscape  48 $1 $NAME qmapshack/hicolor 
+        call_inkscape  64 $1 $NAME qmapshack/hicolor 
+        call_inkscape  72 $1 $NAME qmapshack/hicolor 
+        call_inkscape  80 $1 $NAME qmapshack/hicolor 
+        call_inkscape  96 $1 $NAME qmapshack/hicolor 
+        call_inkscape 128 $1 $NAME qmapshack/hicolor 
+        call_inkscape 192 $1 $NAME qmapshack/hicolor 
+        call_inkscape 256 $1 $NAME qmapshack/hicolor 
+        call_inkscape 512 $1 $NAME qmapshack/hicolor
     fi
+    if [[ $1 =~ QMapTool\.svg ]]; then
+        call_inkscape   8 $1 $NAME qmaptool/hicolor
+        call_inkscape  16 $1 $NAME qmaptool/hicolor 
+        call_inkscape  22 $1 $NAME qmaptool/hicolor 
+        call_inkscape  24 $1 $NAME qmaptool/hicolor 
+        call_inkscape  32 $1 $NAME qmaptool/hicolor 
+        call_inkscape  36 $1 $NAME qmaptool/hicolor 
+        call_inkscape  40 $1 $NAME qmaptool/hicolor 
+        call_inkscape  42 $1 $NAME qmaptool/hicolor 
+        call_inkscape  48 $1 $NAME qmaptool/hicolor 
+        call_inkscape  64 $1 $NAME qmaptool/hicolor 
+        call_inkscape  72 $1 $NAME qmaptool/hicolor 
+        call_inkscape  80 $1 $NAME qmaptool/hicolor 
+        call_inkscape  96 $1 $NAME qmaptool/hicolor 
+        call_inkscape 128 $1 $NAME qmaptool/hicolor 
+        call_inkscape 192 $1 $NAME qmaptool/hicolor 
+        call_inkscape 256 $1 $NAME qmaptool/hicolor 
+        call_inkscape 512 $1 $NAME qmaptool/hicolor
+    fi    
 
     call_inkscape 32 $1 $NAME
     call_inkscape 48 $1 $NAME
diff --git a/src/icons/hicolor/128x128/apps/QMapShack.png b/src/icons/qmapshack/hicolor/128x128/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/128x128/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/128x128/apps/QMapShack.png
diff --git a/src/icons/hicolor/16x16/apps/QMapShack.png b/src/icons/qmapshack/hicolor/16x16/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/16x16/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/16x16/apps/QMapShack.png
diff --git a/src/icons/hicolor/192x192/apps/QMapShack.png b/src/icons/qmapshack/hicolor/192x192/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/192x192/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/192x192/apps/QMapShack.png
diff --git a/src/icons/hicolor/22x22/apps/QMapShack.png b/src/icons/qmapshack/hicolor/22x22/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/22x22/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/22x22/apps/QMapShack.png
diff --git a/src/icons/hicolor/24x24/apps/QMapShack.png b/src/icons/qmapshack/hicolor/24x24/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/24x24/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/24x24/apps/QMapShack.png
diff --git a/src/icons/hicolor/256x256/apps/QMapShack.png b/src/icons/qmapshack/hicolor/256x256/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/256x256/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/256x256/apps/QMapShack.png
diff --git a/src/icons/hicolor/32x32/apps/QMapShack.png b/src/icons/qmapshack/hicolor/32x32/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/32x32/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/32x32/apps/QMapShack.png
diff --git a/src/icons/hicolor/36x36/apps/QMapShack.png b/src/icons/qmapshack/hicolor/36x36/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/36x36/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/36x36/apps/QMapShack.png
diff --git a/src/icons/hicolor/40x40/apps/QMapShack.png b/src/icons/qmapshack/hicolor/40x40/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/40x40/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/40x40/apps/QMapShack.png
diff --git a/src/icons/hicolor/42x42/apps/QMapShack.png b/src/icons/qmapshack/hicolor/42x42/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/42x42/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/42x42/apps/QMapShack.png
diff --git a/src/icons/hicolor/48x48/apps/QMapShack.png b/src/icons/qmapshack/hicolor/48x48/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/48x48/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/48x48/apps/QMapShack.png
diff --git a/src/icons/hicolor/512x512/apps/QMapShack.png b/src/icons/qmapshack/hicolor/512x512/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/512x512/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/512x512/apps/QMapShack.png
diff --git a/src/icons/hicolor/64x64/apps/QMapShack.png b/src/icons/qmapshack/hicolor/64x64/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/64x64/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/64x64/apps/QMapShack.png
diff --git a/src/icons/hicolor/72x72/apps/QMapShack.png b/src/icons/qmapshack/hicolor/72x72/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/72x72/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/72x72/apps/QMapShack.png
diff --git a/src/icons/hicolor/80x80/apps/QMapShack.png b/src/icons/qmapshack/hicolor/80x80/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/80x80/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/80x80/apps/QMapShack.png
diff --git a/src/icons/hicolor/8x8/apps/QMapShack.png b/src/icons/qmapshack/hicolor/8x8/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/8x8/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/8x8/apps/QMapShack.png
diff --git a/src/icons/hicolor/96x96/apps/QMapShack.png b/src/icons/qmapshack/hicolor/96x96/apps/QMapShack.png
similarity index 100%
rename from src/icons/hicolor/96x96/apps/QMapShack.png
rename to src/icons/qmapshack/hicolor/96x96/apps/QMapShack.png
diff --git a/src/icons/qmaptool/hicolor/128x128/apps/QMapTool.png b/src/icons/qmaptool/hicolor/128x128/apps/QMapTool.png
new file mode 100644
index 0000000..95bad3e
Binary files /dev/null and b/src/icons/qmaptool/hicolor/128x128/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/16x16/apps/QMapTool.png b/src/icons/qmaptool/hicolor/16x16/apps/QMapTool.png
new file mode 100644
index 0000000..a44d3e3
Binary files /dev/null and b/src/icons/qmaptool/hicolor/16x16/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/192x192/apps/QMapTool.png b/src/icons/qmaptool/hicolor/192x192/apps/QMapTool.png
new file mode 100644
index 0000000..956e664
Binary files /dev/null and b/src/icons/qmaptool/hicolor/192x192/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/22x22/apps/QMapTool.png b/src/icons/qmaptool/hicolor/22x22/apps/QMapTool.png
new file mode 100644
index 0000000..234712e
Binary files /dev/null and b/src/icons/qmaptool/hicolor/22x22/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/24x24/apps/QMapTool.png b/src/icons/qmaptool/hicolor/24x24/apps/QMapTool.png
new file mode 100644
index 0000000..fc9aba7
Binary files /dev/null and b/src/icons/qmaptool/hicolor/24x24/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/256x256/apps/QMapTool.png b/src/icons/qmaptool/hicolor/256x256/apps/QMapTool.png
new file mode 100644
index 0000000..05d0f1a
Binary files /dev/null and b/src/icons/qmaptool/hicolor/256x256/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/32x32/apps/QMapTool.png b/src/icons/qmaptool/hicolor/32x32/apps/QMapTool.png
new file mode 100644
index 0000000..4670b22
Binary files /dev/null and b/src/icons/qmaptool/hicolor/32x32/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/36x36/apps/QMapTool.png b/src/icons/qmaptool/hicolor/36x36/apps/QMapTool.png
new file mode 100644
index 0000000..f40f05d
Binary files /dev/null and b/src/icons/qmaptool/hicolor/36x36/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/40x40/apps/QMapTool.png b/src/icons/qmaptool/hicolor/40x40/apps/QMapTool.png
new file mode 100644
index 0000000..423008f
Binary files /dev/null and b/src/icons/qmaptool/hicolor/40x40/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/42x42/apps/QMapTool.png b/src/icons/qmaptool/hicolor/42x42/apps/QMapTool.png
new file mode 100644
index 0000000..75b34a7
Binary files /dev/null and b/src/icons/qmaptool/hicolor/42x42/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/48x48/apps/QMapTool.png b/src/icons/qmaptool/hicolor/48x48/apps/QMapTool.png
new file mode 100644
index 0000000..9aa37f4
Binary files /dev/null and b/src/icons/qmaptool/hicolor/48x48/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/512x512/apps/QMapTool.png b/src/icons/qmaptool/hicolor/512x512/apps/QMapTool.png
new file mode 100644
index 0000000..c2fd876
Binary files /dev/null and b/src/icons/qmaptool/hicolor/512x512/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/64x64/apps/QMapTool.png b/src/icons/qmaptool/hicolor/64x64/apps/QMapTool.png
new file mode 100644
index 0000000..56a63e8
Binary files /dev/null and b/src/icons/qmaptool/hicolor/64x64/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/72x72/apps/QMapTool.png b/src/icons/qmaptool/hicolor/72x72/apps/QMapTool.png
new file mode 100644
index 0000000..cc884bd
Binary files /dev/null and b/src/icons/qmaptool/hicolor/72x72/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/80x80/apps/QMapTool.png b/src/icons/qmaptool/hicolor/80x80/apps/QMapTool.png
new file mode 100644
index 0000000..37a3ebb
Binary files /dev/null and b/src/icons/qmaptool/hicolor/80x80/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/8x8/apps/QMapTool.png b/src/icons/qmaptool/hicolor/8x8/apps/QMapTool.png
new file mode 100644
index 0000000..24075f7
Binary files /dev/null and b/src/icons/qmaptool/hicolor/8x8/apps/QMapTool.png differ
diff --git a/src/icons/qmaptool/hicolor/96x96/apps/QMapTool.png b/src/icons/qmaptool/hicolor/96x96/apps/QMapTool.png
new file mode 100644
index 0000000..0d48ff8
Binary files /dev/null and b/src/icons/qmaptool/hicolor/96x96/apps/QMapTool.png differ
diff --git a/src/locale/qmapshack.ts b/src/locale/qmapshack.ts
deleted file mode 100644
index 5790d43..0000000
--- a/src/locale/qmapshack.ts
+++ /dev/null
@@ -1,10141 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="de_DE">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <source>Change timestamp of track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Failed to read data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <source>Changed trackpoints, sacrificed all previous data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
-        <source>, %1-, %2-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <source>, %1%2%3, %4%5%6</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="589"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <source>This software is licensed under GPL3 or any later version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <source>Are you sure you want to delete '%1' from project '%2'?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <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="648"/>
-        <source>Load Map View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <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="666"/>
-        <source>Ext. Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation type="unfinished"></translation>
-    </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>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_ca.ts b/src/locale/qmapshack_ca.ts
deleted file mode 100644
index 57129f5..0000000
--- a/src/locale/qmapshack_ca.ts
+++ /dev/null
@@ -1,10223 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="ca">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API V%2, s'esperava V%3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API V%2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(no DBUS: la detecció i manipulació de dispositius està desactivada)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>A peu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Cotxe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Telefèric</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Natació</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Vaixell</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Esquí/Hivern</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>Sense activitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Total</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Ascens:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Descens:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Aeronàutica</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Transport Públic</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Distància:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Velocitat en Moviment:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Velocitat Total:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Temps en Moviment:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Temps Total:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Vista %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Configura el Fons del Mapa</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Esc.</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Imprimeix la sortida de depuració a la consola.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Imprimeix la sortida de depuració al fitxer de registre (temp. camí).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>No mostrar la pantalla de presentació.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Fitxer amb configuració QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>Fitxer</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Fitxers per a utilitzar més endavant.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>Ruta</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Totes les teves dades agrupades en carpetes. </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Perdut i trobat (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Perdut i trobat</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Totes les teves dades agrupades en carpetes. </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>Base de Dades MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation>Servidor:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation>(No PI)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Error:</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Totes les teves dades agrupades en carpetes. </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>Base de Dades SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Fitxer:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Error:</translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation>%1 h</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 dia</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>No s'ha pogut carregar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>No s'ha pogut carregar el fitxer "%1% . S'ometrà l'element.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>El Projecte ja és a la base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>El projecte "%1" ja és a la base de dades. S'ometrà l'element.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>%2 (%3) ha modificat l'element %1. 
-
-Per a resolver aquest conflicte heu de crear i desar una còpia idèntica, forçar la vostra versió o deixar-la estar I agafar-ne una de la base de dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Conflicte amb la base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Clona && Desa</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Desa forçosament</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Agafa'l remot</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Manca la carpeta...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>No s'ha pogut desar el projecte. La carpeta s'ha esborrat de la base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Desa...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>S'ha produït un error inesperat a la base de dades:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>El projecte '%1' és a punt de modificar-se desde la base de dades. Tanmateix hi ha canvis que no s'han desat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Desar els canvis?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Desactivar</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Afegir o suprimir camins a dades DEM. Pot haver-hi diverses fitxers en un camí, però els camins secundaris no s'analitzaran. Els formats compatibles són: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Selecciona el camí als fitxers DEM...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>  No s'ha pogut carregar el fitxer: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>Les dades DEM han de tenir un ample de banda de 16bit o 32bit.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>No s'ha trobat informació de georeferència.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>cap</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Cercant imatges...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>  No s'ha trobat cap imatge</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Voleu ordenar les fites al llarg d'un track, pero la correlació entre track i fita està desactivada. La voleu tornar a activar?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Correlació...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>Cap</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Crea el registre...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Resum de tots els tracks del projecte</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Fites</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Comentari</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Pistes</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>Des de l'inici</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>Al Següent</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>Al Final</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation>Distància:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation>Ascens:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation>Descens:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Àrees</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Rutes</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Edita el nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Introdueix el nom del nou projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Edita les paraules clau...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation> Introduïu les paraules clau.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Imprimir Diari</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Redueix els punts visibles del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation>Canvia l'elevació dels punts del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <source>Change timestamp of track points</source>
-        <translation>Canvia la data i hora dels punts del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
-        <source>Miscellaneous</source>
-        <translation>Miscel·lània</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Activitat</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Introducció d'un nou interval de proximitat. </translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Imatge%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Desconegut</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Arxiu - amplia per a carregar</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>S'ha carregat l'arxiu</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>No s'han trobat dades DEM per aquest punt. </translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Selecciona el camí d'exportació...</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Crear %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation> S'ha produït un error al crear %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>Fet !</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>Cancel·lat per l'usuari!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation> Error de base de dades: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>  Desa el projecte com a %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation> S'ha produït un error!</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>No hi ha extensions disponibles</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>ample</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>mitjà</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>fi</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>Error descodificant el fitxer FIT: CRC invàlid.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>Error descodificant el fitxer FIT: Final de fitxer inesperat %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>Error descodificant el fitxer FIT: tipus base desconegut %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation>Manca la definició del camp pel camp desenvolupament.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation>Error descodificant el fitxer FIT: Definició numèrica invàlida en el camp %1 en crear la definició del perfil del camp.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>Error descodificant el fitxer FIT: la versió del protocol %1 no està implementada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>Error descodificant el fitxer FIT: la capçalera de signatura del fitxer no coincideix. No és un fitxer FIT.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>  No s'ha pogut carregar el fitxer %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>  No s'ha pogut obrir el fitxer FIT %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>Error descodificant el fitxer FIT: No està implementada l'arquitectura %1 .</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>Error descodificant el fitxer FIT: desplaçament no vàlid %1 en l'estat 'contingut del registre'</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Avís...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation>Aquest és un típus de fitxer amb una codificació de polígon desconeguda. Informeu de l'error!</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation>Aquest és un típus de fitxer amb una codificació de polilínia desconeguda. Informeu de l'error!</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>prim</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>normal</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>ample</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>fort</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Clona</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Àrea: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Forma de l'àrea canviada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Nom canviat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Amplada del contorn canviada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Patró d'emplenar canviat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Opacitat canviada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Comentari canviat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Descripció canviada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Enllaços canviats</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Color canviat</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Clona</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Nom canviat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Comentari canviat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Descripció canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Enllaços canviats</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation>Llargada: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation>Temps: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation>Distància: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Llargada: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Temps: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Enrutat per darrera vegada :<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>amb %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Punts de la ruta canviats.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>El fixer FIT %1 no conté dades GPS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Error en obrir %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Sols s'admet lon/lat en format WGS 84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Failed to read data.</source>
-        <translation>Error en llegir les dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Clona</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <source>Changed trackpoints, sacrificed all previous data.</source>
-        <translation>Punts del track canviats, les dades antigues s'han perdut.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
-        <source>, %1-, %2-</source>
-        <translation>, %1-, %2-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation>Temps: %1%2, Velocitat: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Temps: -, Velocitat: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation>Moviment: %1%2, Velocitat: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>Moviment: -, Velocitat: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Inici: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Inici: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Final: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Final: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Punts: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>Elevacions invàlidess!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>Marques horàries invàlides !</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>Posicions no vàlides!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Activitats: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Index: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Índex: visible %1, total %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation>, Pendent: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... I no es mostren %1 etiquetes</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Distància: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>En moviment: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Amagar punt %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Amagar punts %1..%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>, %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation>punts invàlids....</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation>El track '%1' té %2 punts invàlids dels %3 punts que es mostren. Vols amagar els punts invàlids?</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation>mín.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation>màx.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation>Longitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <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="589"/>
-        <source>Ele.: %1%2</source>
-        <translation>Ele.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation>, Velocitat: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Ascens: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Descens: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Ascens: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation>, Descens: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Distància: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation>, En moviment: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Ascens: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Descens: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Ascens: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation>, Descens: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Distància: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation>, Hora: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>S'han suprimit definitivament els punts %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Mostrar els punts.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Nom canviat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Comentari canviat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Descripció canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Enllaços canviats</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Elevació dels punts %1 to %2 %3 canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Activitat de tot el track canviada a '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Activitat del rang(%2..%3) canviada a '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Utilitzar l'algoritme de Douglas Peuker per amagar punts (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Amagar punts amb dades invàlides.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Fes visibles tots els punts amagats del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>S'han suprimit definitivament tots els punts amagats del track. </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Perfil suau utilitzant un filtre de Mitjana de mida %1 </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>S'ha afegit des d'un fitxer DEM el pendent d'un terreny.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Substituides les dades d'elevació amb les dades dels fitxers DEM</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Substituides les dades d'elevació amb valors interpolats. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>Desplaçament de les dades d'elevació de %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Inici del track canviat a %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Suprimeix les marques horàries.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Posa una marca horària inventada amb %1 sec. de valor delta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Velocitat canviada a %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (Segment %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>S'ha suprimit definitivament l'extensió %1 de tots els punts del track. </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Convertir els subpunts obtinguts d'un itinerari a punts de track</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Copia del track de QLandkarte GT la informació de l'indicador</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Arxivat</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>No disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_Clona</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation>Elevació: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation>Proximitat: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Nom canviat</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Posició canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Elevació canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Proximitat canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Icona canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Comentari canviat</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Descripció canviada</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Enllaços canviats</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Imatges canviades</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Afegir imatge</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Degut a canvis en el sistema de base de dades, QMapShack desconeix el nom de fitxer de la vostre base de dades '%1'. Heu de seleccionar-la de nou en el següent pas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Selecciona el fitxer de base de dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Afegeix base de dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Afegir Carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Canvia el nom de la Carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Copia la carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Moure Carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Suprimeix Carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Importar de Fitxers...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Exportar a GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Esborrar l'element</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Cercant Base de Dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Sinc. amb Base de Dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Suprimir base de dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Buit</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Suprimir base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Esteu segur que voleu suprimir '%1' de la llista?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Elimina la carpeta de les bases de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>Segur que voleu suprimir de la base de dades les carpetes seleccionades i totes les subcarpetes?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Operació incorrecta...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>La carpeta destí és una subcarpeta d'una de les que voleu moure. No es pot fer aquesta operació.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Nom de la carpeta...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Canvia el nom de la carpeta:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Suprimir elements...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Voleu esborrar tots els elements de Perdut i Trobat? Això els eliminarà de forma permament.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Voleu esborrar tots els elements seleccionats de Perdut i Trobat? Això els eliminarà de forma permament.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Segur que voleu suprimir '%1' de la carpeta '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Suprimeix...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>Importar Dades GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Edita...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Mostra en el Mapa</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Amagar del Mapa</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Ordena per Hora</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Ordena per Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Desa</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Desa com a GPX 1.1 sense ext...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Envia als Dispositius</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Sinc. amb Base de Dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Tanca</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Modifica el Projecte en el Dispositiu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Suprimeix</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Edita...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Copia a...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Desa autom.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Anomena i desa...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Perfil del Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Selecciona Rang</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Edita els Punts del Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Invertir Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Unir Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Copia el track amb les Fites</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Mostra la Bombolla</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Moure la Fita</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Proj. Fita...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Instruccions de l'Itinerari</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Calcular l'Itinerari</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Reinicia Ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Edita la Ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>Convertir a track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Edita els Punts de l'Àrea</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Crear Ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Canviar Icona (sols sel. fita)</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Assigna una Activitat al Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Deixar anar elements...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
-        <translation><b>Modifica els dispositius </b><p>Modifica %1<br/>Si us plau, espereu...</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>S'està desant l'espai de treball. Espera.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>S'està carregant l'espai de treball. Espera.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Tancar tots els projectes...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>S'eliminaran tots els projectes de l'espai de treball.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation>Suprimeix el projecte...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Esteu segur que voleu suprimir %1?</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation>Carregar projecte...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation>El projecte "%1" ja és a l'espai de treball.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation><b>Selecció d'Element: </b>Element seleccionat de la llista d'espais de treball. Feu clic en el mapa per tornar al comportament normal de selecció del ratolí.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation>Copia elements...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation>Canviar el símbol de les fites.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation>Tallar el Track...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation>Voleu suprimir el track original?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Error en carregar el fitxer %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>No és un fitxer GPX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>El fitxer existeix ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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>Aquest fitxer ja existeix i no s'ha creat a QMapShack. Si premeu 'si' es perdrà tota la informació d'aquest fitxer. Fins i tot si aquest fitxer té informació GPX i s'ha carregat a QMapShack, QMapShack no pot carregar i emmagatzemar tota la informació existent en aquest fitxer.  La informació es perdrà. Recomano utilitzar un altre fitxer. <b>Segur que voleu sobreescriure el fitxer?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Ha fallat la creació del fitxer '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Error en escriure al fitxer '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Error desant dades GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1m, %2m </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>N %1m, E %2m </translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation>de %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Talla l'historial abans de</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Talla l'historial després de</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Supresión de l'historial</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>La supressió és permanent i no es pot desfer. <b>Realment vols suprimir tot l'historial abans de fer aquest pas?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>Importar Base de Dades QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Selecciona la base de dades origen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Selecciona la base de dades destí...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation>Velocitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation>Cadència</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. de l'Aire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura de l'Aire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. de l'Aigua</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura de l'Aigua</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation>Profunditat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation>Profunditat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation>Ritme cardíac</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation>Ritme cardíac</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation>Cadencia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation>Velocitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation>Accel.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation>Accel·leració</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation>Camí</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation>Camí</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation>Dist.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation>Distància</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation>Ele.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation>Elevació</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation>Energia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation>Energia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation>Pres Niv. Mar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation>Pressió a Nivell de Mar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation>v. Velocitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation>Velocitat Vertical</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation>Pendent</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation>Velocitat per Distància*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation>Velocitat per Temps*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation>Elevació*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation>Progrés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation>Progrés*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation>Terr. Pendent</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation>Terreny Pendent*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Pendent*</translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation>Error en carregar el fitxer %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation>No és un fitxer de registre Openambit: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation>Dispositiu: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Temps de recuperació: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Efecte de la Sessió d'Entrenament: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energia: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Aquest fitxer de LOG no conté cap dada i QMapShack no el pot visualitzar: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Perdut i trobat</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Utilitza <b>Menu->Vista->Afegir vista de Mapa</b> per a obrir una nova vista. O <b>Menu->Fitxer->Carregar vista de Mapa</b> per a recuperar-ne un de desat. O feu clic <a href='newview'>aquí</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation>Ele.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation>Pendent: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Graella: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>Carregar Dades GIS...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Selecciona el fitxer de sortida</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>Vista QMapShack (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Selecciona el fitxer a carregar</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Fatal...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack ha detectat que la llibreria Proj4 no està instal·lada de forma correcte. Manquen les taules de conversió de les projeccions EPSG, emmagatzemades de normal a /usr/share/proj. Per a solucionar-ho contacteu el mantenidor del paquet de la distribució.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation>En aquest moment no hi ha cap mapa instal·lat. QMapShack no es diverteix si no té mapes. Podeu instal·lar-ne prement la tecla 'Ajuda. Vull mapes!' a la finestra 'Mapes' de l'acoblador. O bé, podeu prémer la tecla F1 per accedir a la documentació en línia que us explicarà com utilitzar QMapShack. 
-
-Si no es diverteix, perquè no l'hi doneu mapes? Per allotjar mapes a punt per a descarregar I instal·lar fa falta un bon servidor. I això no és un servei gratuït. El projecte no te els diners. A més, els mapes I les dades DEM tenen drets d'autor. Per tant, abans d'empaquetar les dades s'ha de demanar permís al propietari dels drets d'autor. Tot això no és tan senzill com sembla i, en alguns casos s'han de pagar royalties. El projecte simplement no disposa de [...]
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Ha fallat ...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Sense especificar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Francès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Alemany</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Holandes</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Anglès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italià</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Finlandés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Suec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Espanyol</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Basc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Català</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Gallec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Gal·lès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gaèlic</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Danès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Noruec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portuguès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Eslovac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Txec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Croat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Hongarès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Polonès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Turc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Grec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Eslovè</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Rus</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Estonià</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Letó</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Romanès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Albanès</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosnià</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Lituà</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Serbi</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Macedoni</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Búlgar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Autopista</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Autovia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Autovia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Carretera nacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Carretera comarcal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Carrer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Carretera privada</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Enllaç autopista, baixa velocitat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Enllaç autopista, alta velocitat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Carretera sense asfaltar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Enllaç d'autopistes</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Rotonda</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Ferrocarril</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Línia de costa</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Camí</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Rierol</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Zona horaria</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Transbordador</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Frontera provincial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Frontera estatal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Frontera internacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Riu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Corba de nivell mínima</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Corba de nivell intermèdia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Corba de nivell màxima</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Corba de profunditat mínima</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Corba de profunditat intermèdia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Corba de profunditat màxima</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Riera</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Pista d'aterratge</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Oleoducte</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Línia d'alta tensió</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Límit marí</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Límit de risc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Àrea urbana gran (&gt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Àrea urbana petita (&lt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Entorn rural</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Base militar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Aparcament</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Garatge</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Aeroport</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Centre comercial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Port</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Universitat/Institut</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Hospital</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Zona industrial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Reserva</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Zona artificial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Complex esportiu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Camp de golf</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Cementiri</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Parc Nacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Parc urbà</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Parc nacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Bosc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Oceà</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation>Blau (Desconegut)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Mar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Llac gran</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Llac mitjà</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>LLac petit</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Llac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Riu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Riu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Riu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Rierol</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Zona inundable</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Aiguamolls / Pantà</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Glacera</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Hort / Camp de cultiu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Matolls</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Tundra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Pla</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Llegir un tipus de fitxer extern...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Error en la lectura del tipus de fitxer: %1
-Retorn als típus interns..</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Error en llegir:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Error en obrir:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Format de fitxer incorrecte: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Error en llegir l'estructura del fitxer:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>S'està carregant %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Interromput per l'usuari:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>El fixer estates en format NT. QMapShack no és capaç de llegir fitxers de mapes en format NT: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>El fitxer conté dades bloquejades / xifrades. Garmin sols permet utilitzar aquest fitxer amb programari subministrat per Garmin.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Fita</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Desconegut</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Àrea</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Desactivat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Activat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>On vols desar els mapes?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Ha fallat ...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Error en obrir:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Format de fitxer incorrecte: </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Afegir o suprimir camins a mapes. Pot haver-hi diversos mapes en un camí, però els camins secundaris no s'analitzaran. Els formats compatibles són: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Selecciona el camí als mapes...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Selecciona el camí arrel...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>Selecciona el tipus de fitxer...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>No és un fitxer RMAP de TwoNav.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Subformat desconegut.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Versió desconeguda</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Error en llegir el punt de referència.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Projecció i datum desconeguts (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Capa %1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Error en carregar el fitxer: %1...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>El fitxer ha de tenir una paleta de 8 bits o escala de grisos.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>No s'ha trobat informació de georeferència.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>Creació de GDAL VRT</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Selecciona els fitxers...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Selecciona el fitxer destí...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fet !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>No s'ha pogut llegir: %1
-Estructura desconeguda.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Servei inesperat. S'esperava'* WMTS 1.0.0'. S'ha llegit '%1 %2'.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>No s'ha trobat informació de georeferència.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Àrea</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Editar Àrea</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>àrea</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Itinerari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Editar Punts de Ruta</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>itinerari</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Editar Punts de Track</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Avís!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Substitueix totes les dades originals per una simple línia de coordenades. Totes les altres dades es perdran definitivament.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>Afegir Punt d'Interès com una Fita</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Afegir Fita</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Afegir Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Afegir Ruta</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Afegir Àrea</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Selecciona elements en el Mapa</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Copia la posició</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Copia la posició (Graella)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Desa (Imprimeix) Mapa</b><br/>Selecciona una area rectangular en el mapa. Fes clic en el botó esquerra del ratolí i mou el ratolí. Fes clic al botó dret per interrompre. Per a ajustar la selecció apunta-fes clic-mou el ratolí a les cantonades.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Selecció de l'Interval</b><br/>Amb el botó esquerra del ratolí selecciona el primer punt del track. I després un segon. Fent un clic al botó esquerra del ratolí surts de la selecció de l'interval.<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Seleccionar Elements del Mapa</b><br/>Selecciona una àrea rectangular en el mapa. Fes clic en el botó esquerra del ratolí i mou el ratolí. Fes clic al botó dret per interrompre. Per a ajustar la selecció apunta-fes clic-mou el ratolí a les cantonades.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Seleccionats:</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 fites<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 tracks<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 rutes<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 àrees<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Selecciona imatges...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation>Distància [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation>Hora</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation>Distància [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation>Ele. [%1]</translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Imprimir Mapa...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Desa el mapa com a imatge...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Propietats de la impresora...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Pàgines: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Per a canviar la resolució fes Zoom en el mapa de sota amb la roda del ratolí:
-
-%1x%2 píxel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Impressió de les pàgines.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Desa el mapa...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Temps transcorregut: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Temps transcorregut: %1 segons.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>nord</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>sud</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>El valor
-'%1'
-no és una coordenada vàlida en la configuración activa:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Edita el nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation> Introduïu un nom nou a la fita.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished">Error en obrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>S'està migrant la base de dades de la versió 4 a la 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>S'està migrant la base de dades de la versió 5 a la 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>S'està migrant la base de dades de la versió 6 a la 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>S'està migrant la base de dades de la versió 7 a la 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>S'està migrant la base de dades de la versió 8 a la 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Obrir la base de dades: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Carpetes:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Tracks:           %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Itineraris: %1 (Sols es copiaran els itineraris bàsics)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Fites: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Superposicions: %1 (les àrees es convertiran a àrees, les línies de distància es convertiran a tracks, les altres superposicions es perdran)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Diaris: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Selecció de Mapes:   %1 (no es pot convertir a QMapShack)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Inicia la conversió de la base de dades a %1------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Ha fallat la creació de la base de dades destinació.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Interrompre ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Fet ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Restaura les carpetes...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>S'han importat %1 carpetes i %2 diaris</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Copia elements...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>S'han importat %1 tracks, %2 fites, %3 rutes, %4 àrees</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Importar de carpetes...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>No es pot convertir una superposició de tipus '%1'</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Track Corrupte...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>El nombre de punts del track no és igual al nombre de punts del track amd dades d'entrenament.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>El nombre de punts del track no és igual al nombre de punts de track amb dades ampliades.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>El nombre de punts del track no és igual al nombre de punts del track amb dades complementaries.</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Fitxer existent...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Suprimir %1 existents?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Suprimir el fitxer existent %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: deixa anar l'element amb QLGT DB ID %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Error en obrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation>original</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation>primera alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation>segona alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation>tercera alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation>BRouter (desconnectat)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (connectat)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation>perfil: %1, alternativa: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation>resposta buida</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation>Resposta dolente del servidor: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>BRouter</b><br/>La petició d'Itinerari s'ha enviat al servidor. Si us plau, espereu...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation>Calcular l'itinerari amb %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>BRouter</b><br/>Resposta dolenta del servidor:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Calculant el temps: %1s</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation>correr</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation>iniciant</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation>QMapShack es comunica amb BRouter mitjançant una connexió de xarxa. De normal, això es fa mitjançant una adreça especial a la que no ets pots connectar des de fora del dispositiu. Tanmateix BRouter escolta les connexions de totes les interfícies disponibles. No hi ha cap problema si estàs connectat a una xarxa privada amb un tallafocs actiu. Si estàs connectat a una xarxa pública, cada un dels ports que tinguis oberts representa un risc que algú pot utilitzar per ata [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation>Avís...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation>Entenc el risc. No m'ho diguis un altre cop.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation>Aturat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation>No instal·lat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation>En línia</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation>%1 no és accessible</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation>%1 resultat invàlid</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation>Error en analitzar la configuració en línia:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation>Error de xarxa:</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation>Restaura els Valors per Defecte</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation>Obrir Directori</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation>Selecciona l'Executable Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation>si us plau, selecciona el directori on instal·lar BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation>El directori seleccionat no existeix</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation>Crea un directori i hi instal·les BRrouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation>BRouter ja està instal·lat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation>actualitzar la instal·lació existent de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation>el directori està buit, crea una nova instal·lació de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation>Crea una nova instal·lació de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation>sembla que el Java-executable és vàlid</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation>no sembla que el Java-executable sigui vàlid</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation>No s'ha trobat l'Executable Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation>Error en carregar la pàgina d'instal·lació a %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation>No s'ha seleccionat la versión per a instal·lar de brouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation>%1 seleccionats per a baixar I instal·lar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation>Avís...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation>Baixada: %1<br/><br/>Es baixarà I s'instal·lara un fitxer zip des d'un servidor de baixades quen no compleix cap dels standards de seguretat normalment acceptats, utilitza HTTP en text pla. De normal s'hauria d'utilitzar HTTPS. Correu el risc que algú redireccioni la petició i baixeu un fitter zip amb codi maliciós. QMapShack no pot detectar-ho. <br/>Si no enteneu l'explicació o teniu algum dubte, no seguiu I cancel·leu la o [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation>Entenc el risc i vull continuar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation>iniciada la baixada %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation>Error de xarxa: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation>finalitzada la baixada %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation>descomprimint:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation>preparat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation>error en la baixada de brouter: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation>Recuperant desde %1 els perfils disponibles</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation>contingut del perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation>Error:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation>S'ha produït un error en crear el directori %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation>Error el directori %1 no existeix</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation>S'ha produït un error en crear el fitxer %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation>S'ha produït un error en escriure al fitxer %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation>Continuar amb la Configuració</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation>S'està determinant els itineraris disponibles.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation>Selecciona obsolets</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation>Elimina la Selecció</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation>Suprimeix selecció</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation>Baixada</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation>S'ha produït un error en suprimir %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation>Error en la creació de segments en el directori %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation>actualitzat: %1 (%2), obsolets: %3 (%4), per a baixar: %5 (%6)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation>s'està baixant: %1 of %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation>no hi ha dades locals, disponibles en línia: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation>les dades locals estan obsoletes (%1, %2 - remotes %3, %4)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation>Error de xarxa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation>Resultat invàlid, no s'han trobat fitxers</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation>no es pot analitzar: %1 no es una data</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation>no es pot analitzar: %1 la mida no és vàlida</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation>Error en la recuperació de les dades d'enrutament disponibles a %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation>el directori de segments no existeix:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation>Error en la creació del fitxer %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation>la sol·licitud amb aquest nom de fitxer no és vàlida %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation>no hi ha cap fitxer obert per aquesta sol·licitud %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation>Error en escriure al fitxer %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation>Error en canviar el nom del fitxer %1 a %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation>dades locals actualitzades (%1, %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation>No hi ha itineraris disponibles</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fet !!!
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! ha fallat !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Més ràpid</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Més curt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Vianant</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Anglés US</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Angles Britànic</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Danés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Holandés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Francés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Alemany</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italià</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Noruec</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Espanyol</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Suec</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>mode "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>evitar autopistes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>evitar carreteres de peatge</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>no estacional</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>evitar carreteres sense asfaltar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>no hi ha ferry</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>no creuar fronteres de països</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>La petició d'Itinerari s'ha enviat al servidor. Si us plau, espereu...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Resposta dolente del servidor:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Calculant el temps: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Avís...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>S'ha trobat una versió incorrecte de Routino. S'esperava %1 s'ha trobat %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>Més curt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>Més ràpid</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>Peu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>Cavall</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Cadira de rodes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Ciclomotor</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Cotxe amb motor</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Béns</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Anglès</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Alemany</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Francès</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Hongarès</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Holandes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Rus</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Polac</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>S'ha fet una crida a una funció sense estar activat l'entorn de variables de la base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>S'ha cridat a una funció sense establir les variables del perfil.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>S'ha cridat a una funció sense establir les variables de la traducció.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>La base de dades especificada per carregar no existeix.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>La base de dades especificada no es pot carregar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>El perfil XML especificat no existeix.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>El perfil XML especificat no es pot carregar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>El fitxer de traducció XML especificat no existeix.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>El fitxer de traducció XML especificat no es pot carregar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>El nom de perfil sol·licitat no existeix en el fitxer XML carregat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>En el fitxer XML carregat no existeix la traducció a aquest idioma.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation>A la base de dades de rutes no existeix cap autopista propera a les coordenades per a posar-hi una fita.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>El perfil i la base de dades no són compatibles.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>El perfil utilitzat no ha estat validat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>El perfil d'usuari especificat conté dades invàlides.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Les opciones especificades en l'itinerary no son coherentes entre si.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>No hi ha coincidència entre la llibreria i la versió de crida a la API.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>L'usuari ha interromput el càlcul de la ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>No s'ha trobat cap ruta cap a la fita %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Error desconegut %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>perfil "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, mode "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Calcular l'itinerari amb %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Calculant el temps: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Afegir o suprimir camins a dades Routino. Pot haver-hi diverses bases de dades en un camí, però els camins secundaris no s'analitzaran.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Selecciona el camí dels fitxers amb dades d'itineraris...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (desconnectat)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (en línia)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (en línia)</translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Crea una Base de Dades Routino</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Selecciona fitxers...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Selecciona el camí destí...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fet !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>No s'ha seleccionat cap interval</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Mode exacte</b><br/>Tots els elements han d'estar del tot dins de l'àrea seleccionada.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation><b>Mode d'intersecció</b><br/>Tots els elements han d'estar dins o com a mínim han d'interseccionar amb l'àrea seleccionada.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Afegir Tracks</b><br/>Afegir tracks a la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Afegir Fites</b><br/>Afegir fites a la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Afegir Itineraris</b><br/>Afegir itineraris a la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Afegir Àrees</b><br/>Afegir les àrees en la lista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Ignora Tracks</b><br/>Ignora tracks de la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Ignora Fites</b><br/>Ignora fites a la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Ignora Itineraris</b><br/>Ignora itineraris de la llista d'elements seleccionats<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation><b>Ignorar les Àrees</b><br/>Ignorar les àrees en la lista d'elements seleccionats<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Cercant la base de dades '%1':</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Resposta desconeguda</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Error: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Manca Requeriment</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>No es pot utilitzar MySQL ja que el controlador (QMYSQL) no està disponible.<br />Assegureu-vos d'haver instal·lat els paquets necessaris.<br />Si en aquest moment no sabeu que fer <a href="%1">podeu donar un cop d'ull a la wiki</a>.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Ja existeix una base de dades amb nom '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Nova base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Obrir base de dades...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Configura la base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Els canvis s'activaran després del reinici d'una aplicació.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Error en carregar el fitxer %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Ha fallat l'anàlisi de la marca horària `%1`</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 no existeix</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>No és un fitxer SLF: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Revisió incompatible %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Divisió %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Volta %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation>Error en carregar el fitxer %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation>No és un fitxer sml: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Temps de recuperació: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Efecte de la Sessió d'Entrenament: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energia: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation>Dispositiu: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation>Ús de la bateria: %1 %/hores</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Aquest fitxer SML no conté cap dada i QMapShack no el pot visualitzar: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Doble clic per editar el valor de l'elevació</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation>%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Error en carregar el fitxer %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Error en obrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Error en llegir %1
-línia %2, columna %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>No és un fitxer TCX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Aquest fitxer TCX conté almenys 1 exercici, però cap activitat o camí. Els exercicis que no tenen dades de posició, no es poden importar a QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>Aquest fitxer TCX no conté cap activitat ni cap camí: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>El fitxer ja existeix ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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>Aquest fitxer ja existeix i no s'ha creat a QMapShack. Si premeu 'si' es perdrà tota la informació d'aquest fitxer. Fins i tot si aquest fitxer té informació i s'ha carregat a QMapShack, QMapShack no pot carregar i emmagatzemar tota la informació existent en aquest fitxer. La informació es perdrà. Recomano utilitzar un altre fitxer. Segur que voleu sobreescriure el fitxer?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>El track <b>%1</b> que heu seleccionat conté punts de track amb marques horàries invàlides. Pot ser que el dispositiu no accepti el fitxer de camí TCX que s'ha generat si ho deixeu així. <b>Voleu aplicar un filtre amb velocitat constant de (10 m/s) i continuar?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Camí</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Activitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Cancel·la</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Track amb marques horàries invàlides...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>Activitat o camí?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack no sap en quin format vols desar el track <b>%1</b> . <b>El vols desar com a camí o com a activitat ? </b>Si el deseu com a camí, sols es desaran les fites molt properes al track. Si el deseu com a activitat les fites no es desaran.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Ha fallat la creació del fitxer '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Error en escriure al fitxer '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Error desant dades GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>Escolliu-ne un...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Resum del Recorregut de Senderisme (intern)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Cami de les Plantilles...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>No s'ha pogut llegir el fitxer de plantilla %1.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Previsualització...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Color...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Reinicia format</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Accions Disponibles</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Accions Seleccionades</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Error en obrir %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Desa les dades GIS a...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Sols s'admet lon/lat en format WGS 84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Error en llegir les dades.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Camí a les icones de l'usuari...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Participants</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Meteorologia</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>pluja</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>assolellat</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>neu</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>nuvols</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation> ventades</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>càlid</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>temperat</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>fred</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>gelades</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>boira</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>humitat</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Caràcter</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>caminada fàcil</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>escalada</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>alpí</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>pujada llarga</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>llarga distància</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>via ferrada</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>calamarsa/calamarsa suau</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation> Valoració</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>Valoració 5 estrelles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>Valoració 4 estrelles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>Valoració 3 estrelles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>Valoració 2 estrelles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>Valoració 1 estrella</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>Interromput</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Equipament</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>equip per a vies ferrades</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>equipació nocturna</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>sabates de neu</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>equip d'escalada</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>esquí</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>equip de càmping</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Detalls</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>Quant a....</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation><b>QMapShack</b>, Versió</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation>Qt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation>GDAL</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation>Proj4</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Txec:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation>Pavel Fric</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Alemany:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation>Oliver Eichler</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Holandes:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation>Harrie Klomp</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Francès:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation>Rainer Unseld </translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation>Jose Luis Domingo Lopez</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Espanyol:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Traducció:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Rus:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation>Wolfgang Thämelt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation>Win64:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation>OS X:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation>Helmut Schmidt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation>Ivo Kronenberg</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Binaris:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>...I molted gràcies a tots els mantenidors dels binaris Linux pel gran treball que fan. Agraïments especials a Dan Horák i Bas Couwenberg per la seva presencia a les llistes de discusió de temes relacionats amb les distribucions.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Col·laboradors:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <source>This software is licensed under GPL3 or any later version</source>
-        <translation>Aquest programari es distribueix sota llicència GPL3 o qualsevol altre versió posterior</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
-    </message>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Configurar la Vista Mapa...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Projecció & Datum</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Escales</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logarítmic</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>Quadrat (optimitzat per tesel·les TMS i WMTS)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation> Diàleg</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Unir Tracks...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Tracks Disponibles</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Tracks units</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Format de les coordenades...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>N48.8943° E013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>N48° 53.660 E013° 31.113</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Crear una ruta des de fites.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Tallar el Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Suprimir la primera part del track i mantenir la segona </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Mantenir les dues parts del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Mantenir la primera part del track i suprimir la segona </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Mode de Tall:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Marca això si voleu guardar el resultat en un track nou. 
-
-Si manteniu totes dues parts del track n'heu de crear de noves. 
-
-Si sols voleu mantenir una part suprimiu els punts, o marqueu això per a crear un track nou.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Crea un nou track</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>Ha canviat el format de base de dades pròpi de '%1'. QMapShack migrarà ara la teva base de dades. Després de la migració no es podrà utilitzar la base de dades amb versions antigues de QMapShack. Es recomana fer una còpia de la base de dades abans d'iniciar la operació.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Migrar base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>L'usuari ha interromput la migració</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Error en la migració de '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>Error en la migració</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>La version de la base de dades '%1' és més moderna que la instal·lada a QMapShack. No funcionarà.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Error en la inicialització</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Versió incorrecte de la base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>S'ha creat la base de dades amb la versió més recent de QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Error en la inicialització de '%1'.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Contrasenya...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Contrasenya de la base de dades '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Actualitzar la base de dades a la versió 5. Migrar tots els elements GIS.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Actualitzar la base de dades a la versió 3. Migrar tots els elements GIS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Actualitzar la base de dades a la versió 5. Migrar tots els elements GIS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Actualitzar la base de dades a la versió 6. Migrar tots els elements GIS.</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Configurar els camins als fitxers DEM</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Canvia l'opacitat del mapa</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala mínima per a visualitzar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Controla els intervals de l'escala en que es mostra el mapa. Utilitza els botons esquerra i dreta per a definir l'escala actual i el màxim i mínim de l'escala.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala màxima per a visualitzar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Relleu ombrejat</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Pendent</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation>> </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Per afegir fitxers amb dades d'elevació feu <b>Fitxer->Configurar camins DEM</b>.  O feu clic <a href='setup'><b>aquí</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Utilitza el menú contextual (clic al botó dret del ratolí o entrada) per activar un fitxer. Utilitzar arrossega I deixa anar per a moure el fitxer activat en el procés de selecció. </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Mou amunt</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Amagar DEM darrere de l'anterior</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Mou avall</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Mostra el DEM a sobre del següent</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>Tornar a carregar DEM</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation> Diàleg</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Posició:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Dificultat</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Terreny</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Actualitzar spoilers</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Consell:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation> Diàleg</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Aquesta àrea s'ha importat a QMapShack I ha estat modificada. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Amplada de la vora</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Estil</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Opacitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Punts</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Possició</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Paraules clau:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Mantenir l'ordre del projecte</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Ordena al llarg del track (diversos)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Ordena al llarg del track (un de sol)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Imprimir diari</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Reconstrueix el diari.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Aquesta ruta s'ha importat a QMapShack I ha estat modificada. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation>-
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Estil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Origen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Màxim</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Utilitza/edita mostrar fletxes de direcció en el track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Utilitza/edita mostrar fletxes de direcció en tots els tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Mínim</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Gràfics</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Amplada</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Utilitza/edita l'escala del track definida per l'usuari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Utilitza/edita el valor per defecte de l'escala a tots els tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>amb fletxes</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation>x</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Límits d'aquest track definits per l'usuari </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation>-
--
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Aquest track s'ha importat a QMapShack I ha estat modificat. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Límits automàtics</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Límits per a tots els tracks definits per l'usuari </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation>màx.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Activitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Assigna una Activitat al Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Per a tenir estadístiques dels tracks, seleccionar de la llista una activitat per a tot el track. O assigneu una activitat a una part del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Punts</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Temps</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Delta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Dist.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Velocitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Pendent</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Ascens</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Descens</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Possició</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation> Diàleg</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Possició:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Proximitat:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>La fita es va importar a QMapShack i es va modificar. Ja no es poden mostrar les dades originals. Vegeu l'historial de canvis. </translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Data/Hora:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Afegir imatges.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Suprimeix la imatge seleccionada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Ja existeix un projecte amb el mateix nom. Si premeu el botó 'ok' el suprimireu i el substituireu pel nou.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Editar elevació...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Altura</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Obtenir l'elevació del model d'elevació digital actiu</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Exportar base de dades a GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Exportar Camí:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 sense extensions</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Inici</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Aborta</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Tancar</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Suprimeix Punts del Track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Suprimeix definitivament els punts amagats del track. </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Suprimir l'extensió de tots els Punts del Track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Suprimeix</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>desde tots els Punts del Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Amagar Punts (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Amagar els punts del track que estiguin a una distància d'un altre inferior a</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Aplica ara el filtre.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Interpolar Dades d'Elevació</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Substitueix l'elevació dels punts del track amb dades interpolades</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Qualitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Previsualització</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Amagar Punts Invàlids</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Amagar punts amb dades invàlides.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Perfil Suau (Median Mètode)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Desplaçament suau dels punts d'elevació del track utilitzant un filtre de Mitjana de mida</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation>punts</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Canviar l'Hora</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Caviar l'inici del track a</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.aa HH:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Marques horàries inhabituals</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Incrementa la marca horària en</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation>seg.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>amb cada punt del track. 0 sec. es suprimiran les marques horàries.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Desplaçament de la Elevació</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Afegir un desplaçament de</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>a les elevacions dels punts del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Substitueix les Dades d'Elevació</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Substitueix l'elevació dels punts del track amb els valors carregats des dels fitxers DEM.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Reinicia els Punts Amagats del Track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Tornar a mostrar tots els punts del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Canviar Velocitat</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Estableix la velocitat a</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> km/h</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Divideix els segments en Tracks</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Crea un nou track per a cada un dels segments existents al track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><b>Convertir a punts els subpunts del track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Convertir els subpunts obtinguts d'un itinerari a punts de track normals</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Calcular el Pendent del Terreny</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Calcular el pendent d'un terrent basant-se en fitxers DEM carregats.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>Error decodificant FIT: L'estat del decodificador no és correcte %1 després del darrer byte del fitxer.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation>Error decodificant FIT: ja existeix un camp de desenvolupament amb field_definition_number %1.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation>Edat</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation>Per afegir una base de dades feu clic en el botó dret sobre la llista de bases de dades.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[sense nom]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>L'element no forma part del projecte a la base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>
-Es tracta d'un element nou o bé algú l'ha esborrat de la base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>L'element no existeix a la base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>És possible que s'hagi de desar l'element</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Versió inicial.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation>No tornar-ho a preguntar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3> Aquest element probablement és sols de lectura perquè no es va crear amb QMapShack. Normalment no voldreu canviar les dades importades. Però si ho heu de fer premeu 'Ok'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Mode de només lectura...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Descripció:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>--- sense descripció ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Comentari:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- sense comentari ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Enllaços:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- sense enllaços ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Edita el nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Introduir el Nou nom per a %1.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Desar el projecte?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>El projecte ha canviat. El voleu desar abans de tancar-lo?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Correlacionar tracks i fites.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>Va ser massa llarg per a tu? Per a d'altres cops, vols ometre en aquest projecte la correlació dels tracks i les fites?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Correlació cancel·lada...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Desa "%1" a...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Nom del fitxer: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Fites: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Tracks: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Itineraris: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Àrees: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <source>Are you sure you want to delete '%1' from project '%2'?</source>
-        <translation>Esteu segur que voleu suprimir '%1' del projecte '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Suprimir...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation>Opacitat</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation>Canvia l'opacitat de tots els elements GIS del kapa.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation>Neteja el Filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation>Configura el Filtre</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Configurar Graella...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Projecció</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>restaura valor per defecte</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Obtenir la projecció del mapa actual.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>assistent de projecció</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Color de la Graella</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>configurar el color de la graella</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Base de Dades origen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Base de Dades destí:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Inici</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Edita...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation>Enrutament</translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Enllaços...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Tipus</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Text</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>Uri</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Fitxer</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Vista</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Finestra</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Eina</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Mapes</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Model Dig. Elev. (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation>Espai de treball</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Barra d'eines</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation>Enrutament</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Afegir Vista de Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Mostra l'Escala</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Configurar el Tipus de Lletra del Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Mostra la Graella</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Configurar Graella</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Gira la Roda del Ratolí</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Configurar els Camins a Mapes</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>Text del PI</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Nit / Dia</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Consell Eina Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Configurar els Camins a DEM</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>Quant a</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Ajuda</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Configurar la Vista Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>Carregar Dades GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Carregar projectes des d'un fitxer</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Desa totes les dades GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation>Desa tots els projectes existents a l'espai de treball</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Configurar la Zona Horària</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Afegir un projecte buit</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Cerca a Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Tancar tots els projectes</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation>F8</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Configurar Unitats</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Configuració de l'espai de treball</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Desa la configuració en sortir.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Importar Base de Dades de QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>Importar base de dades QLandkarte GT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>Creador de VRT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>Frontal GUI per a gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Desa la Vista Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Escriu a un fitxer el mapa actual i la llista de DEM, incloent les propietats</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Carregar Vista Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Restaura d'un fitxer la vista activa amb el mapa actual i la llista de DEM, incloent les propietats</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Perfil Ext.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Tanca</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>Ctrl+Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Clona la Vista Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation>Ctrl+Shift+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Crea una Base de Dades Routino</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Desa(Imprimeix) la captura de pantalla</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Imprimir l'brea seleccionada del mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Configurar el Format de Coord.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Canviar el format en que es mostren les coordenades</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Configurar el Fons del Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Configura les Icones de les Fites</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Configurar el Camí a les Icones Personalitzades</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Tanca la Pestanya</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation>Ctrl+W</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation> Ajuda d'inici ràpid</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Configurar la Barra d'Eines</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Commuta Acoblador</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Commutar la visivilitat de la finestra acoblable</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation>Ctrl+D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Pantalla Completa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation>Mín./Màx. Valors del Track</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation>En la vista de mapa, al llarg de tot el track, mostrar els valors màxims i mínims de les propietats del track.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation>Base de Dades</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Per afegir mapes feu <b>Fitxer->Configurar Camins a Mapes</b>.  O feu clic <a href='setup'><b>aquí</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Utilitza el menú contextual (clic al botó dret del ratolí o entrada) per activar un mapa. Utilitzar arrossega I deixa anar per a moure el mapa activat en el procés de dibuix. </translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Ajuda! Vull mapes!
-No vull llegir la documentació!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Mou amunt</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Amagar mapa darrere del mapa anterior</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Mou avall</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Mostra el mapa a sobre del següent mapa</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Tornar a carregar Mapes</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>Aquest mapa requereix suport OpenSSL. Tanmateix donades les restriccions legals existents en alguns païssos, OpenSSL no és al paquet de QMapShack. Heu de cercar els binaris a la <a href='https://www.openssl.org/community/binaries.html'>Pàgina inicial de OpenSSL </a>. S'han de copiar a la carpeta del programa QMapShack els fitxers libeay32.dll i ssleay32.dll.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: %2 tesel·les pendents<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Configurar els Camins a Mapes</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Camí arrel de la memòria cau per a les tessel·les dels mapes en línia:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Ajuda! Vull mapes!
-No vull llegir la documentació!</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Canvia l'opacitat del mapa</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala mínima per a visualitzar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Controla els intervals de l'escala en que es mostra el mapa. Utilitza els botons esquerra i dreta per a definir l'escala actual i el màxim i mínim de l'escala.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala màxima per a visualitzar el mapa. </p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Àrees</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Línies</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Punts</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Detalls</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Mida de la memòria cau (MB)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Venciment (Dies)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Camí a la Memòria Cau</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>Tipus de fitxer:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Oblida els tipus de fitxer externs i utilitza els propis.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Carregar un tipus de fitxer extern.</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Opcions Avançades</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation>Sense font de Dades (-srcnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation>Sense Dades Destí (-vrtnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation>Projecció Objectiu (-a_srs)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation>Aquestes opcions s'utilitzen en casos molt puntuals, normalment s'han de deixar en blanc. Veure GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Ajuda</a> per a obtenir més informació.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation><ol>
-<li>Selecciona una o múltiples fonts de fitxers *.pbf .</li>
-<li>Selecciona un nom per al fitxer VRT destí.</li>
-<li>Prem el botó "Inicia".</li>
-</ol>
-
-Consell:
-<ul>
-<li>Si tens diversos fitxers posa'ls en una subcarpeta del camí a la carpeta de mapes. Crea el fitxer VRT al camí a la carpeta de mapes.</li>
-<li>Utilitza les opcions avançades per afegir un valor "sense dades" si els fitxers origen no tenen dades o no tenen una forma de mapa rectangular. Les àrees sense fitxer de mapa es veuran transparents.</li>
-<li>Les opcions "-a_srs" s'utilitzen per assignar una Projecció/Datum si els fitxers origen no en tenen. Aquestes opcions NO re-projecten les dades.</li>
-</ul></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Selecciona els fitxers origen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Fitxer Destí:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Inici</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Nova Línia</b><br/>Mou el ratolí, utilitzar el botó de l'esquerra per a crear punts. Un cop fet fes clic al botó esquerra del ratolí per a finalitzar.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Suprimir punt</b><br/>Moure el ratolí a prop d'un punt i fer clic al botó esquerra per suprimir-lo.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Selecció d'un Interval de Punts</b><br/>Inicia la selecció fent clic al botó esquerra sobre el primer punt. Finalitza la selecció fent clic al botó esquerra sobre el segon punt, selecciona les opcions. Per a cancel·lar fes clic al botó dret del ratolí.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Moure Punt</b><br/>Mou el ratolí prop del punt i prem el botó esquerra per adherir-l'ho al cursor. Mou el ratolí per a moure el punt. Deixa anar el punt fent clic al botó esquerra. Fes clic al botó dret del ratolí per a cancel·lar.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Afegir Punt</b><br/>Per afegir un punt, mou el ratolí prop de la línia del segment i prem el botó esquerra. El punt s'adherirà al cursor i el podràs moure. Deixa anar el punt fent clic al botó esquerra. Fes clic al botó dret del ratolí per a cancel·lar.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Sense Enrutament</b><br/>Tots els punts han d'ester connectats amb una línia recte.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Enrutament Automàtic</b><br/>La configuració actual de l'enrutador s'utiliza per a definir una ruta entre punts. <b>Nota:</b> L'enrutador seleccionat permet definir una ruta sobre la marxa. Els enrutadors Sense Connexió normalment permeten fer-ho, els enrutadors en línia no ho permeten.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Enrutament Vectorial</b><br/>Si es possible, connecta punts amb una línia en un mapa vectorial carregat, .<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1 Mètrica</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Distància:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Ascens:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Descens:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation><br/><b>Moure el mapa</b><br/>Manteniu premut el botó esquerra del ratolí i podreu moure el mapa.<br/><br/></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Reinicia Zoom</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Final de l'Interval</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Desa...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Afegir Fita</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Talla...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Mantenir premuda la tecla CTRL només per zoom vertical.
-Mantenir premuda la tecla ALT només per zoom horitzontal.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>No hi ha dades o són incorrectes.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Selecciona el fitter de sortida</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Posició ...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Introduir la nova posició</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Format amb possicions incorrectes. Ha de ser: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-o
-"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Imprimir mapa...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>En desar mapes en línia, assegureu-vos que tota l'extensió del mapa que vulgueu desar s'ha carregat a la memòria cau.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Desa</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>En imprimir mapes en línia, assegurat que tots els mapes que s'han d'imprimir s'han carregat a la memòria cau.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Imprimir</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Si us plau, espereu...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Auxiliar Proj4</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation>Mercator</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation>UTM</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>zona</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>definit per l'usuari</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation>Mercator Mundial (OSM)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Resultat:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Nord (Pol Nord)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Sud (Pol Sud)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Projecció</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Projecció de Fites</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Clona la fita i ves-hi:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation>mostrar el perfil d'itineraris seleccionat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation>enrutament al vol</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation>BRouter: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation>no s'està executant</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation>iniciar/parar BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation>Mostra la consola de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation>Configurar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation>Precaució! BRouter està mirant a tots els ports cercant connexions.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation>Perfil BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation>Configurar BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation>escollir quin BRouter s'utilitzarà</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation>BRouter-Web (connectat)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation>instal·lació local</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation>Mode Expert</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation>Directori de la instal·lació local de BRouter:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation>selecciona el directori d'instal·lació</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation>labelLocalDirResult</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation>crea o modifica la instal·lació</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation>Java Executable</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation>labelLocalJavaResult</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation>cerca el java instal·lat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation>Baixar i Instal·lar la Versió BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation>Fitxer a instal·lar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation>Baixar i Instal·lar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation>Perfils Disponibles</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation>Instal·lar perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation>suprimir perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation>Perfils instal·lats</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation>contingut del perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation>BRouter-Web URL:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation>Servei-URL</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation>Perfil-URL</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation>Nom d'amfitrió</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation>Port</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation>Directori del Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation>Directori dels segments</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation>Perfils Personalitzats dir</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation>Màx Temps d'execució</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation>Nombre de Subprocessos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation>Opcions de Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation>Perfils Url</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Autopistes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Estacional</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Idioma</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Frontera Internacional</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Evitar:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Transbordador</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Carretera de peatge</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Sense asfaltar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Direccions Cortesia de <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Mode</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Base de Dades</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Afegir camins a la base de dades Routino.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>idioma</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Per a utilitzar itineraris fora de línia cal definir el camí a les dades locals d'itineraris. Utilitza el boto configurar per a enregistrar un camí. Pots crear les teves dades locals d'itineraris fent <b>Eina->Crea Routino Base de Dades</b>.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Configurar la base de dades Routino...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Selecciona els fitxers origen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Inici</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Camí Destinació:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Prefix del Fitxer</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation><p>Per a crear una base de dades d'itineraris Routino s'han de baixar tots els fitxers *pbf de <a href='http://download.geofabrik.de/'>GeoFabrik</a>. El procés de creació d'una base de dades d'itineraris Routino és força lent i els fitxers resultants força grans. Per tot això es recomana que no baixeu tots els continents. Limiteu la baixada als països que realment necessiteu. No obstant, Routino no pot crear itineraris  [...]
-
-<ol>
-<li>Selecciona una o múltiples fonts de fitxers *.pbf .</li>
-<li>Selecciona el camí de la vostre base de dades Routino.</li>
-<li>Selecciona un prefixe. La base de dades apareixerà a la llista amb aquest prefix.</li>
-<li>Prem el botó "Inicia".</li>
-</ol></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Desa a l'original</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Desar com a nou</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Interrompre</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Moure punts. (Ctrl+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Afegir nous punts. (Ctrl++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>Ctrl++</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Selecciona un interval de punts. (Ctrl+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Suprimir un punt. (Ctrl+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation>Ctrl+-</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>No utilitzar ni auto-enrutament ni ajust de línia (Ctrl+O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation>0</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Utilitzar l'auto-enrutament entre punts. (Ctrl+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation>A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Ajustar la línia amb les línies d'un mapa vectorial. (Ctrl+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation>V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Desfés el darrer canvi</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Refès l'últim canvi</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Veure els detalls i editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Copia l'àrea a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Suprimir àrea del projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Editar la forma de l'àrea.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation>Desa l'àrea seleccionada com a imatge</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Imprimir l'àrea seleccionada</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Suprimir tots els punts entre el primer i l'últim</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Calcular una ruta entre el primer i el darrer punt seleccionats.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Amaga tots els punts.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Mostra tots els punts.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Assigna una Activitat per a l'interval seleccionat.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Copia els punts del track a un nou track.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Veure els detalls i editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Copia la ruta a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Suprimeix itinerari del projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Calcula la ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Reinicia el càlcul de la ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Moure els punts de l'itinerari.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Converteix la ruta a track</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Copia els elements seleccionats a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Crear una ruta des de les fites seleccionades.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Canvia la icona de totes les fites seleccionades.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Unir tots els tracks seleccionats en un de nou.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Assigna una Activitat per a tots els Tracks seleccionats.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Esborrar tots els elements seleccionats</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Selecciona tots els elements que intersecten amb l'àrea seleccionada.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Selecciona tots els elements que es troben de forma integra dins l'àrea seleccionada.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Afegeix tracks a la selecció.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Afegeix fites a la selecció.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Afegeix itineraris a la selecció.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Afegir àrees a la selecció.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Veure detalls del track I editar les propietats.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Copia el track a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Suprimeix track del projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Mostra a la pantalla el perfil i informació detallada sobre els punts.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Selecciona un interval de punts.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Editar la posició dels punts del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Invertir track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Combinar tracks.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Retalla el track en el punt seleccionat. Es pot utilizar per:
-
-* suprimir punts sobrants a l'inici o al final del track
-* utilitzar parts del track per a planificar un nou recorregut
-* retallar un track molt llarg en vàries etapes
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Assigna una Activitat per a tot el Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Copia el track i totes les fites adjuntes a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Veure els detalls i editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Copia la fita a un altre projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Suprimeix fites del projecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Mostra el contingut en una bombolla estàtica.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Mou fites a una nova ubicació.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Clona la fita i mou el clon a la distància i angle que diguis.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation type="unfinished">EtiquetaDeText</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Cerca...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Escriu la paraula que vols cercar i prem el botó de cerca. 
-Si introduïu 'word' es fa una cerca de la paraula exacte. Si introduïu 'word*', la paraula 'word' ha d'estar a l'inici de la cadena de text.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Cerca</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Tanca</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Selecciona els dispositius...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Copia l'element...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Substituir l'element existent</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>No copiïs l'element...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Crea un clon</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Substituir amb:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Mantenir l'element:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Al nom del clon s'hi afegirà '_Clone'</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>I també per a tots els altres elements.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Selecciona Carpeta Superior...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Afegir als elements seleccionats</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Suprimir dels elements seleccionats</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Seleccionat</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Mou els elements seleccionats amunt</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Mou els elements seleccionats avall</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Selecciona un projecte...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Selecciona un projecte de la llista o introdueix un nom de projecte nou.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Nom del nou projecte</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>S'ha creat un nou projecte com:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation>*.qms</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation>*.gpx</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Base de dades</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Copia l'element...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Substituir l'element existent</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>EtiquetaDeText</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>No substituir l'element</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Afegir un clon</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Al nom del clon s'hi afegirà '_Clone'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>I també per a tots els altres elements.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Utilitza l'element:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Substituir amb:</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Afegir base de dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Servidor</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation>Port</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Usuari</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Contrasenya</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Atenció!</span> Es recomanable deixar la contrasenya en blanc ja que QMapShack l'emmagatzema sense xifrar. En cas de deixar-la en blanc es demanara a cada arrancada.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Port:</b> Deixar el camp port buit si es vol utilizar el port per defecte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>No utilitzeu una contrasenya</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Fitxer:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Afegir una nova base de dades.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Obrir una base de dades existent.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulari</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Aplica el filtre a</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>només el nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>text complet</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Carpeta de les Bases de Dades...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Nom de la carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Grup</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Projecte</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Altres</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Nova Fita...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Símbol</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Posició</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Format amb possicions incorrectes. Ha de ser: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-o
-"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Configuració de l'espai de treball...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>A la sortida desa l'espai de treball, i tota la resta</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>minuts</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>mirant canvis a la base de dades fets per d'altres instàncies de QMapShack. Al port</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Insereix la Plantilla...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Plantilles</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Selecciona el camí de les vostres plantilles.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Previsualització</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Edita el text...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Desfés</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Refès</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation>Ctrl+Maj+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Talla</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation>Ctrl+X</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Copia</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Enganxa</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Plant.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation>A:L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation>A:C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation>A:R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation>A:B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation>C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Estàndard</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation>Llists de Pics (Disc)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation>Llists de Pics (Cercle)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation>Llists de Pics (Quadrat)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation>Llista ordenada (Decimal)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation>Llista ordenada (Minúscules llatines)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation>Llista ordenada (Majúscules llatines)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation>Llista ordenada (Minúscules romanes)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation>Llista ordenada (Majúscules romanes)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Alinea a l'esquerra</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Alinea a la dreta</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Alinea al centre</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Alinea el Bloc</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation>Ctrl+J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Subratllat</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Negreta</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation>Ctrl+B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Itàlica</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Normal</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Reinicia el format del text abans d'enganxar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Selecciona-ho Tot</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Suprimir</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Reinicia Típus de Lletra</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Reinicia Disseny</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Normal</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Enganxa sense reiniciar el format del text</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Insereix des d'un Plantilla</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Crea text utilitzant una plantilla.</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Retalla</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Còpia</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Enganxa</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Configura la zona horaria ...</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>UTC</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Local</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automàtic</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Imprimir data/hora a </translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>format llarg, o</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>format curt</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Nota:</b> En caviar algun dels elements GUI, les unitats no tindran efecte fins que no es reinicií QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Configurar la Barra d'Eines</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>La Barra d'Eines és visible en mode Pantalla Sencera</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Error en l'execució del programa extern `%1`:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>El procés no es pot iniciar.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation> Assegureu-vos que els paquets necessaris estan instal·lats, `%1` existeix i es pot executar.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>El procés extern ha fallat.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>S'ha product un error desconegut.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! ha fallat !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Format amb possicions incorrectes. Ha de ser: "[N|S] ddd mm.sss [W|E] ddd mm.sss" o "[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Els valors de la posició estan fora dels límits.</translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Configurar unitats...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation>Unitat de longitud</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Nàutic</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Imperial</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Mètric</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation>Unitats del pendent</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation>Graus (°)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation>Percentatge (%)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Nota:</b> En caviar algun dels elements GUI, les unitats no tindran efecte fins que no es reinicií QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Icones...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Icones externes:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Les icones personalitzades han d'estar en format *.bmp o bé *.png.</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_cs.ts b/src/locale/qmapshack_cs.ts
deleted file mode 100644
index df0477e..0000000
--- a/src/locale/qmapshack_cs.ts
+++ /dev/null
@@ -1,10196 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="cs_CZ">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API verze %2, očekávána verze %3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API verze %2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(žádné DBUS: zjišťování zařízení a zacházení s ním zakázáno)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>Chodec</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Jízdní kolo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Motocykl</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Lanovka</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Plavání</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Loď</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>Žádná činnost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Celkem</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Stoupání:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Klesání:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Lyže/Zima</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Letectví</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Veřejná doprava</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Vzdálenost:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Rychlost při pohybu:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Celková rychlost:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Čas při pohybu:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Celkový čas:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Pohled %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Nastavit pozadí mapy</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Esc</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Zobrazit výstup ladění v konzoli.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Uložit výstup ladění do souboru se zápisem (cesta temp).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>Neukazovat uvítací obrazovku.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Soubor s nastavením pro QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>Soubor</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Soubory pro pozdější potřebu.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>Cesta</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Všechna data seskupená podle složek.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Ztraceno a nalezeno (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Ztraceno a nalezeno</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Všechna data seskupená podle složek.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>Databáze MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation>Server: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation> (žádné heslo)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Chyba: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Všechna data seskupená podle složek.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>Databáze SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Soubor: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Chyba: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 m</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation>%1 h</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 dnů</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>Nepodařilo se nahrát...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>Nelze nahrát soubor "%1". Bude přeskočen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>Projekt již je v databázi...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>Projekt "%1" již byl zaveden do databáze. Bude přeskočen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>Prvek  %1 byl změněn pomocí %2 (%3).
-
-K vyřešení tohoto střetu můžete vytvořit a uložit klona, vynutit svoji verzi, nebo ji zahodit a vzít jednu z databáze</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Střet s databází...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Klonovat a uložit</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Vynutit uložení</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Vzít vzdálenou verzi</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Chybí složka...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>Nepodařilo se uložit projekt. Složka byla v databázi smazána.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Uložit...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Chyba</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Vyskytla se neočekávaná chyba databáze:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>Projekt '%1' se právě bude aktualizovat z databáze. Jsou tu ovšem neuložené změny.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Uložit změny?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Vypnout</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Zapnout</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Přidat nebo odstranit cesty obsahující data s výškovým modelem (DEM). V cestě může být více souborů, ale žádná podcesta není zpracována. Podporovanými formáty jsou: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Vybrat cestu k souboru s výškovým modelem...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>Nepodařilo se nahrát soubor %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>Výškový model (DEM) musí mít jedno pásmo s 16bitovými nebo 32bitovými daty.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>Nenalezeny žádné údaje o vyjádření prostorových vztahů.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>žádné</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Hledají se obrázky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>Nebyly nalezeny žádné obrázky</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>žádné</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Sestavit deník...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Cestovní body</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Informace</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Poznámka</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Stopy</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>Od začátku</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>K další</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>Na konec</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Oblasti</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Chcete řadit cestovní body podél cesty, ale vypnul jste svázání cestovních bodů a cest (dání do vzájemného vztahu). Chcete je opět zapnout?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Svázání...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Přehled všech stop v projektu</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Cesty</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Upravit název...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Zadejte nový název projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Upravit klíčová slova...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Zadejte klíčová slova.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Tisk deníku</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Omezit počet viditelných bodů stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <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="174"/>
-        <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="177"/>
-        <source>Miscellaneous</source>
-        <translation>Různé</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Barva</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Činnost</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Zadat nový poplach kvůli odstupu.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Obrázek %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Neznámý</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Archiv - Rozbalit k nahrání</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>Archiv - Nahráno</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>Pro tento bod nebyla nalezena žádná data výškového modelu (DEM).</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Vybrat cestu pro vyvedeni...</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Vytvořit %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation>Nepodařilo se vytvořit %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>Hotovo!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>Přerušeno uživatelem!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation>Chyba databáze: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>Uložit projekt jako %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation>Nepodařilo se!</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>Není dostupné žádné rozšíření</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>Hrubý</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>Střední</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>Jemný</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>Chyba při dekódování FIT: Neplatné CRC.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>Chyba při dekódování FIT: Neočekávaný konec souboru %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>Chyba při dekódování FIT: Neznámý datový typ %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation>Chybí vymezení pole pro vývojové pole.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation>Chyba dekódování FIT: neplatné vymezení pole číslo %1 při vytváření profilu vývojového pole.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>Chyba při dekódování FIT: Verze protokolu %1 není podporována.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>Chyba při dekódování FIT: Nesouhlasí signatura hlavičky. Soubor není FIT.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>Nepodařilo se otevřít soubor FIT %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>Chyba při dekódování FIT: Architektura %1 není podporována.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>Chyba při dekódování FIT: Neplatný posun %1 pro stav 'zaznamenaný obsah'</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Varování...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation>Toto je souborový typ s neznámým kódováním mnohoúhelníku. Nahlašte to, prosím!</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation>Toto je souborový typ s neznámým kódováním čáry. Nahlašte to, prosím!</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>Tenký</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>Obvyklý</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>Široký</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>Silný</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Oblast: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Změněn tvar oblasti.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Změněn název.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Změněna šířka okraje.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Změněn vzor výplně.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Změněna neprůhlednost.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Změněna poznámka.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Změněn popis.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Změněné odkazy</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Změněná barva</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>Stopa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Změněn název.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Změněná poznámka</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Změněný popis</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Změněné odkazy</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished">Délka: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation type="unfinished">Čas: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation type="unfinished">Vzdálenost: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Délka: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Výsledný čas: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Poslední spočítání cesty:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>s %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Změněné body cesty.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>Soubor FIT %1 neobsahuje žádná data GPS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Nepodařilo se otevřít %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <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="420"/>
-        <source>Failed to read data.</source>
-        <translation>Nepodařilo se přečíst data.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <source>Changed trackpoints, sacrificed all previous data.</source>
-        <translation>Změněny body stop. Obětována veškerá předchozí data.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation type="unfinished">min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation type="unfinished">max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished">Délka: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <source>, %1%2%3, %4%5%6</source>
-        <translation type="unfinished">, %1%2 %3, %4%5%6 {1%2%3,?}</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation type="unfinished">Čas: %1, Rychlost: %3%4 {1%2,?}</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation type="unfinished">Pohyb: %1, Rychlost: %3%4 {1%2,?}</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Začátek: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Začátek: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Konec: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Konec: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Body: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>Neplatné výšky!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>Neplatná časová razítka!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>Neplatné polohy!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Činnosti: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Rejstřík: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Rejstřík: viditelné %1, celkem %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... a %1 značek nezobrazeno</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Vzdálenost: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>Pohyb: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>Stopa</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Skrýt bod %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Skrýt body %1  %2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>, %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
-        <source>, %1-, %2-</source>
-        <translation>, %1-, %2-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Čas: -, Rychlost: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>Pohyb: -, Rychlost: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="589"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished">Výška: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Stoupání: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Klesání: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Stoupání: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Vzdálenost: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Stoupání: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Klesání: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Stoupání: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Vzdálenost: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Trvale odstraněné body %1 ... %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Ukázat body.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Změněný název</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Změněná poznámka</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Změněný popis</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Změněné odkazy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Výška bodu %1 byla změněna na %2 %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Činnost byla pro celou stopu změněna na '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Činnost byla změněna pro oblast (%2...%3) na '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Skrýt body pomocí algoritmu Douglas Peuker (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Skrýt body s neplatnými daty.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Nastavit znovu všechny skryté body stopy na viditelné</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Všechny skryté body stopy odstraněny trvale</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Profil vyhlazen středovým filtrem o velikosti %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>Přidán sklon území ze souboru s digitálním výškovým modelem (DEM).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Výšková data nahrazena daty ze souborů s digitálním výškovým modelem (DEM).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Výšková data nahrazena interpolovanými hodnotami. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>Výšková data posunuta o %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Začátek stopy změněn na %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Odstranit časová razítka.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Uměle utvořená časová razítka nastavena s odstupem %1 s.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Rychlost změněna na %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (část %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>Rozšíření %1 bylo odstraněno ze všech bodů stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Podbody převedeny ze stanovení směru cesty na body stopy</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Kopírovat informační příznak ze stopy QLandkarte GT</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Archivováno</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Dostupné</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>Nedostupné</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation type="unfinished">Výška: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation type="unfinished">Blízkost: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Změněný název</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Změněná poloha</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Změněná výška</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Změněná blízkost</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Změněná ikona</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Změněná poznámka</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Změněný popis</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Změněné odkazy</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Změněné obrázky</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Přidat obrázek</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Na základě změn v databázovém systému QMapShack souborové názvy ve vaší databázi '%1' už nezná. Musíte je v dalším kroku znovu zvolit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Vybrat soubor s databází.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Přidat databázi</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Přidat složku</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Přejmenovat složku</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Kopírovat složku</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Přesunout složku</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Smazat složku</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Zavést ze souborů...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Vyvést do GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Smazat prvek</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Prohledat databázi</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Seřídit s databází</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Odstranit databázi</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Prázdný</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Odstranit databázi...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Opravdu chcete '%1' odstranit ze seznamu?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>Opravdu chcete smazat vybrané složky a všechny podsložky z databáze?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Špatná operace...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>Cílová složka je podsložkou složky k přesunutí. Toto nebude pracovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Název složky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Přejmenovat složku:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Jste si jistý, že chcete smazat '%1' ze složky '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Smazat...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>Zavést údaje GIS...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Smazat složku s databází...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Odstranit prvky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Opravdu chcete smazat všechny prvky ze ztracených a nalezených? Tím budou trvale odstraněny.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Opravdu chcete smazat všechny vybrané prvky ze ztracených a nalezených? Tím budou trvale odstraněny.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Uložit</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Upravit...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Zavřít</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Aktualizovat projekt na zařízení</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Upravit...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Kopírovat do...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Automaticky. Uložit</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Uložit jako...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Kopírovat stopu s cestovními body</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Ukázat bublinu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Přesunout cestovní bod</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Promítnutí cestovního bodu...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Pokyny pro cestu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Spočítat cestu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Nastavit cestu znovu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Upravit cestu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>Převést na stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Vytvořit cestu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Změnit ikonu (pouze vybrané cestovní body)</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Nastavit činnost stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Zahodit prvky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <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="1256"/>
-        <source>Delete project...</source>
-        <translation>Smazat projekt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Opravdu chcete smazat %1?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Profil stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Ukázat na mapě</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Skrýt v mapě</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Řadit podle času</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Řadit podle názvu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Uložit jako GPX 1.1 w/o ext...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Poslat do zařízení</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Seřídit s databází</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Vybrat rozsah</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Upravit body stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Obrátit stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Spojit stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Upravit body oblasti</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Smazat</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Ukládá se pracovní prostor. Počkejte, prosím.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Nahrává se pracovní prostor. Počkejte, prosím.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Zavřít všechny projekty...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>Tímto budou všechny projekty odstraněny z pracovního prostoru.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation type="unfinished">Nahrát projekt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation type="unfinished">Projekt "%1" je již náhrán do pracovního prostoru.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation type="unfinished"><b>Výběr prvků: </b>Prvek vybrán ze seznamu pracovního prostoru. Klepněte na mapu pro přepnutí zpět do běžného chování při výběru myší.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation type="unfinished">Kopírovat prvky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation type="unfinished">Změnit značky cestovních bodů.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation type="unfinished">Rozkrojit stopu...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation type="unfinished">Opravdu chcete smazat původní stopu?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>Není souborem GPX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>Soubor existuje...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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="386"/>
-        <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="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Nepodařilo se zapsat soubor '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Nepodařilo se uložit data GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1m, %2m </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>N %1 m, E %2 m</translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation> od %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Vyjmout záznam minulosti před</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Vyjmout záznam minulosti po</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Odstranění záznamu minulosti</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>Odstranění je trvalé a nelze je vrátit zpět. <b>Opravdu chcete smazat záznamy před tímto krokem?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>Zavést databázi QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Vybrat zdrojovou databázi...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Vybrat cílovou databázi...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Teplota vzduchu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Teplota vody</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Hloubka</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Hloubka</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Tep srdce</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Rychlost chůze</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Rychlost chůze</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Rychlost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Rychlost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Zrychlení</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Směr</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Směr</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Teplota</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Vzdál.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Vzdálenost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Výška</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Výška</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Síla</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Síla</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Tlak u hladiny moře</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Sklon*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Sklon</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Postup</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Ztraceno a nalezeno</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Použít <b>Nabídka → Pohled → Přidat pohled na mapu</b> k otevření nového pohledu. Nebo <b>Nabídka → Soubor → Nahrát pohled na mapu</b> k obnovení uložené. Nebo klepněte <a href='newview'>sem</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished">Výška: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation type="unfinished">Sklon: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Mřížka: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>Nahrát data GIS...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Vybrat výstupní soubor</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>Pohled QMapShack (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Vybrat soubor k nahrání</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Kritické...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack zjistil, že knihovna Proj4 je nainstalována špatně. Chybí překladové tabulky pro promítání EPSG, jež jsou obvykle uloženy v /usr/share/proj. Spojte se, prosím, s údržbářem balíčku ve vaší distribuci, aby to spravil.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation>Nyní tu nejsou žádné mapy. S QMapShack bez map není žádná zábava. Mapy můžete nainstalovat po stisknutí tlačítka Pomoc! Potřebuji mapy! v panelovém okně Mapy. Nebo můžete stisknout klávesu F1 pro otevření dokumentace na internetu, která vám poví, jak QMapShack používat.
-
-A když to bez map nejde, proč je neposkytujete? Protože mít mapy připravené ke stažení vyžaduje dobrý server. A to není služba zadarmo. Projektu se (na to) nedostává peněz. A mapy a data výškových modelů (DEM) jsou chráněna autorskými právy (právy ke kopírování). Z toho důvodu musí být držitel práv před zabalením dat požádán. Není to tak lehké, jak to může znít a za některá data se platí poplatky za užívání. Projektu zkrátka chybí prostředky, aby to dělal. Myslíme si dále, že žádat po vá [...]
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Nepodařilo se...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Neurčeno</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Francouzský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Německý</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Holandský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Anglický</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Finský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Švédský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Španělský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Baskický</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Katalánský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Galicijský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Velšský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gaelský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Dánský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Norský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portugalský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Slovenský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Český</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Chorvatský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Maďarský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Polský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Turecký</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Řecký</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Slovinský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Ruský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Estonský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Lotyšský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Rumunský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Albánský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosenský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Litevský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Srbský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Makedonský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Bulharský</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Dálnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Silnice první třídy</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Jiné rychlostní silnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Rychlostní silnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Státní silnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Silnice v obytné oblasti</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Soukromá cesta</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Nájezd na dálnici/sjezd z dálnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Nájezd na dálnici/sjezd z dálnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Neasfaltovaná cesta</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Dalniční přivaděč</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Kruhový objezd</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Železnice, koleje</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Břeh</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Cesta</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Proud</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Časové pásmo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Přívoz</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Státní/Zemská hranice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Krajská/Obecní hranice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Mezinárodní hranice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Řeka</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Malá vrstevnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Střední vrstevnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Velká vrstevnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Malá hloubková čára</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Střední hloubková čára</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Velká hloubková čára</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Přerušovaný potok (Wadi)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Přistávací dráha</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Dálkové potrubí</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Elektrické vedení</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Hranice moře</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Nebezpečná hranice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Velkoměstská oblast (&gt;200 000)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Maloměstská oblast (&gt;200 000)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Městská obytná oblast</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Vojenská základna</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Parkoviště</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Parkovací budova</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Letiště</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Nákupní středisko</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Přístav</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Univerzita/Vysoká škola</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Nemocnice</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Průmyslový celek</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Chráněné území</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Zástavba</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Oblast pro tělesné činnosti</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Golfové hřiště</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Hřbitov</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Národní park</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Městské sady</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Státní park</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Les</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Oceán</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation>Modrá (neznámé)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Moře</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Velké jezero</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Střední jezero</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>Malé jezero</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Velmi velké jezero</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Veletok</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Velká řeka</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Střední řeka</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Malá řeka</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Přerušovaná voda</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Močál/Bažina</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Ledovec</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Sad/Plantáž</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Křoví</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Tundra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Rovina</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Přečíst vnější typ souboru...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Nepodařilo se přečíst typ souboru: %1
-Návrat k vnitřním typům.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Nepodařilo se přečíst: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Nepodařilo se otevřít: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Špatný formát souboru: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Nepodařilo se přečíst stavbu souboru: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Nahrává se %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Zrušeno uživatelem: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>Soubor je ve formátu NT. QMapShack nedokáže číst mapové soubory ve formátu NT: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>Soubor obsahuje zamknutá/zašifrovaná data. Garmin nechce, aby byl tento soubor použit s jiným programem než dodaným Garminem.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Podivuhodnost</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Neznámý</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Oblast</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Vypnout</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Zapnout</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>Kde chcete ukládat mapy?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Nepodařilo se...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Nepodařilo se otevřít: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Špatný formát souboru: </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Přidat nebo odstranit cesty obsahující mapy. V cestě může být více map, ale žádná podcesta není zpracována. Podporovanými formáty jsou: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Vybrat cestu k mapě...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Vybrat cestu ke kořeni...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>Vybrat typ souboru...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Toto není soubor TwoNav RMAP</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Neznámý podformát.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Neznámá verze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Nepodařilo se přečíst referenční bod.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Neznámé promítání a datum (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Vrstva %1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Nepodařilo se nahrát soubor %1
-</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>Soubor musí mít 8 bitovou barevnou paletu nebo být v odstínech šedi.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>Nenalezeny žádné údaje o vyjádření prostorových vztahů.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>Sestavit GDAL VRT</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Vybrat soubory...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Vybrat cílový soubor...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>Hotovo!</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Chyba při čtení: %1
-Neznámá stavba.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Neočekávaná služba. Očekáváno '* WMTS 1.0.0'. Přečteno '%1 %2'.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>Nenalezeny žádné údaje o soustavě souřadnic.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Oblast</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Upravit oblast</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>Oblast</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Cesta</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Upravit body cesty</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>Cesta</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Stopa</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Upravit body cesty</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Varování!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Tímto budou všechny původní údaje nahrazeny jednoduchou čárou souřadnic. Všechna ostatní data budou trvale ztracena.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>Stopa</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>Přidat POI jako cestovní bod</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Přidat cestovní bod</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Přidat stopu</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Přidat cestu</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Přidat oblast</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Vybrat prvky na mapě</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Kopírovat polohu</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Kopírovat polohu (mřížka)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Uložit mapu (vytisknout)</b><br/>Vyberte na mapě obdélníkovou oblast. použijte levé tlačítko myši a pohybujte myší. Zrušte výběr klepnutím pravým tlačítkem myši. Výběr lze upravit posunutím rohových bodů myší. Uložení/Vytištění následuje po klepnutí levým tlačítkem myši na odpovídající symbol uprostřed výběru.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Upravit rozsah</b><br/>Vyberte první bod stopy klepnutím levým tlačítkem myši. A potom druhý bod. Opusťte výběr rozsahu klepnutím pravým tlačítkem myši.<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Vybrat prvky na mapě</b><br/>Vyberte na mapě klepnutím levým tlačítkem myši obdélníkovou oblast. Výběr zrušíte klepnutím pravým tlačítkem myši. Výběr lze upravit posunutím rohových bodů myší.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Vybráno:</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 cestovní body<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 stopy<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 cesty<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 oblasti<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Vybrat obrázky...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation type="unfinished">Čas</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Tisk mapy...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Uložit mapu jako obrázek...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Vlastnosti tiskárny...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Strany: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Přibližujte a oddalujte pomocí kolečka myši na mapě dole pro změnu rozlišení:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Probíhá tisk stran.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Uložit mapu...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Uplynulý čas: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Uplynulý čas: %1 sekund.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>Sever</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>Jih</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>Zadání:
-'%1'
-není platným vymezením soustavy souřadnic
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Upravit název...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Zadat nový název cestovního bodu.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished">Nepodařilo se otevřít...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Přestěhovat databázi z verze 4 na verzi 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Přestěhovat databázi z verze 5 na verzi 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Přestěhovat databázi z verze 6 na verzi 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Přestěhovat databázi z verze 7 na verzi 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Přestěhovat databázi z verze 8 na verzi 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Otevřít databázi: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Složky: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Stopy: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Cesty: %1 (Bude koírována pouze základní cesta)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Cestovní body: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Překrytí:         %1 (oblasti budou převáděny jako oblasti, vzdálenostní čáry budou převedeny do stop, všechny ostatní překrývající prvky budou ztraceny)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Deníky:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Výběry map:       %1 (nelze převést do QMapShack)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Začít převádět databázi do %1------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Nepodařilo se vytvořit cílovou databázi.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Zrušit ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Hotovo ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Obnovit složky...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>Zavedeno %1 složek a %2 deníků</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Kopírovat prvky...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>Zavedeno %1 stop, %2 cestovních bodů, %3 cest, %4 oblastí</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Zavést složky...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>Překrytí typu '%1' nelze převést</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Poškozená stopa...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>Počet bodů stopy neodpovídá počtu bodů stopy cvičebních dat.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>Počet bodů stopy neodpovídá počtu rozšířených bodů stopy.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>Počet bodů stopy neodpovídá počtu stínových bodů stopy.</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Stávající soubor...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Odstranit stávající %1?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Odstranit stávající soubor %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: Zahodit prvek s ID DB QLGT %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Nepodařilo se otevřít...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation>Původní</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation>První náhradní</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation>Druhý náhradní</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation>Třetí náhradní</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation>BRouter (nepřipojeno)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (připojeno)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation>Profil: %1, náhradní: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation>Odpověď je prázdná</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation>Špatná odpověď od serveru: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>BRouter</b><br/>Požadavek na stanovení cesty poslán serveru. Počkejte, prosím...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation>Spočítat cestu s %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>BRouter</b><br/>Špatná odpověď od serveru:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Doba výpočtu: %1 s</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation>Chyba</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation>Běží</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation>Začíná</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation>QMapShack se s BRouter dorozumívá přes síťové spojení. Obyčejně se tak děje na zvláštní adrese, na kterou nelze dosáhnout vně vašeho zařízení. BRouter nicméně naslouchá spojení na všech dostupných rozhraních. Pokud jste ve své vlastní síti se zapnutým firewallem (ohnivou zdí), není to až zas takový problém. Pokud jste ve veřejné síti, každá otevřená přípojka (port) představuje nebezpečí, protože může být využita ještě někým dalším s možným úmyslem ohrozit váš systém. [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation>Varování...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation>Rozumím nebezpečí. Znovu už mě neupozorňovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation>Zastaveno</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation>Nenainstalováno</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation>Připojeno</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation>%1: Není přístupný</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation>%1 Neplatný výsledek</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation>Chyba při zpracování nastavení na internetu:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation>Síťová chyba:</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation>Obnovit výchozí hodnoty</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation>Otevřít adresář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation>Vybrat spustitelný soubor Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation>Vyberte, prosím, instalační adresář pro BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation>Vybraný adresář neexistuje</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation>Vytvořit adresář a nainstalovat do něj BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation>Stávající instalace BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation>Aktualizovat stávající instalaci BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation>Prázdný adresář. Vytvořit novou instalaci BRouter zde</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation>Vytvořit novou instalaci BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation>Zdá se, že se jedná o platný spustitelný soubor Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation>Zdá se, že se nejedná o platný spustitelný soubor Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation>Spustitelný soubor Java nenalezen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation>Chyba při nahrávání instalační stránky na %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation>Nvybrána žádná verze BRouter k nainstalování</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation>Vybráno %1 pro stažení a instalaci</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation>Varování...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation>Stáhnout: %1<br/><br/>Toto stáhne  nainstaluje soubor zip z umístění se staženými soubory, které není jakkoli se to vezme bezpečné, používající prostý HTTP. Obyčejně by to mělo být HTTPS. Nebezpečí spočívá v tom, že někdo přesměruje požadavek a pošle vám náhradou archiv zip se škodlivým programem. QMapShack toto nemá jak zjistit. <br/>Pokud tomu nerozumíte a máte pochybnosti, nepokračujte a přerušte. Místo toho použijte internetovou verzi BRouter.</ [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation>Rozumím nebezpečí a přeji si pokračovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation>Stahování %1 začalo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation>Chyba v síti: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation>Stahování %1 dokončeno</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation>Rozbalení:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation>Připraven.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation>Nepodařilo se stáhnout BRouter: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation>Získávají se dostupné profily z %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation>Obsah profilu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation>Chyba: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation>Chyba při vytváření adresáře %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation>Chyba adresář %1 neexistuje</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation>Chyba při vytváření souboru %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation>Chyba při zápisu do souboru %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation>Pokračovat v nastavování</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation>Dostupná data se stanovením cesty jsou určena.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation>Vybrat zastaralé</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation>Vyprázdnit výběr</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation>Smazat výběr</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation>Stáhnout</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation>Chyba při vytváření adresáře s částmi %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation>Nelze zpracovat: %1 není datum</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation>Nelze zpracovat: %1 není platná velikost</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation>Chyba při získávání dostupných dat se stanovením cesty z %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation>Adresář s částmi neexistuje: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation>Chyba při vytváření souboru %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation>Žádný platný požadavek pro souborový název %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation>Žádný otevřený soubor nepřiřazen k požadavku pro %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation>Chyba při zápisu do souboru %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation>Chyba při přejmenovávání souboru %1 na %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation>Aktuální: %1 (%2), zastaralé: %3 (%4), ke stažení: %5 (%6)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation>Stahuje se: %1 z %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation>Žádná místní data, dostupná na internetu: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation>Místní data zastaralá (%1, %2 - vzdálený %3, %4)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation>Chyba při odstraňování souboru %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation>Síťová chyba</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation>Neplatný výsledek, nenalezeny žádné soubory</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation>Místní data aktuální (%1, %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation>Nejsou dostupná žádná data se stanovením cesty</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>Hotovo!</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>Nepodařilo se!</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Nejrychlejší</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Nejkratší</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Jízdní kolo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Chodec</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Angličtina (USA)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Angličtina (britská)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Dánský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Holandský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Francouzský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Německý</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Norský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Španělský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Švédský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>Režim "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>Žádné rychlostní silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>Žádné silnice s mýtem</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>Žádné sezonní silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>Žádné nezpevněné silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>Žádné přívozy</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>Žádný přechod zemské hranice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Požadavek na stanovení cesty poslán serveru. Počkejte, prosím...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Špatná odpověď od serveru:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Doba výpočtu: %1 s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>Chodec</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>Jezdec</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Invalidní vozík</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Jízdní kolo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Moped</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Motorka</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Automobil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Nákladní automobil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>Nejkratší</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Nalezeno Routino s nesprávnou verzí. Očekávána %1, nalezena %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>Nejrychlejší</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Anglický</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Německý</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Francouzský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Maďarský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Holandský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Ruský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Polský</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná databáze.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná profilu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná jazyka.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>Databáze zadaná k nahrání neexistuje.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>Zadanou databázi se nepodařilo nahrát.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>Zadaný soubor s profilem XML neexistuje.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>Zadaný soubor s profilem XML se nepodařilo nahrát.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>Zadaný soubor s jazykem XML neexistuje.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>Zadaný soubor s jazykem XML se nepodařilo nahrát.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>Požadovaný název profilu v nahraném souboru XML není.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>Požadovaný jazyk v nahraném souboru XML není.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>Profil a databáze dohromady nepracují.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>Používaný profil nebyl schválen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>Uživatelem stanovený profil obsahoval neplatná data.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Zadané volby pro stanovení cesty si vzájemně neodpovídají.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>Knihovna a verze API si vzájemně neodpovídají.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>Výpočet cesty byl přerušen uživatelem.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>Nepodařilo se najít žádnou cestu k cestovnímu bodu %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Neznámá chyba: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>Profil "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, režim "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Varování...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation>V databázi cest není žádná hlavní silnice poblíž souřadnic k umístění cestovního bodu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Spočítat cestu s %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Doba výpočtu: %1 s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Přidat nebo odstranit cesty obsahující data Routino. V cestě může být více databází, ale žádná podcesta není zpracována.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Vybrat cestu k souboru s daty se stanovením cesty...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (nepřipojeno)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (nepřipojeno)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (připojeno)</translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Vytvořit databázi Routino</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Vybrat soubory...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Vybrat cílovou cestu...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>Hotovo!</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>Nevybrán žádný rozsah</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Přesný režim</b><br/>Všechny vybrané prvky musí být úplně uvnitř vybrané oblasti.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation><b>Protínající se režim</b><br/>Všechny vybrané prvky musí být uvnitř nebo alespoň protínat vybranou oblast.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Přidat stopy</b><br/>Přidat stopy do seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Přidat cestovní body</b><br/>Přidat cestovní body do seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Přidat cesty</b><br/>Přidat cesty do seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Přidat oblasti</b><br/>Přidat oblasti do seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Přehlížet stopy</b><br/>Přehlížet stopy v seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Přehlížet cestovní body</b><br/>Přehlížet cestovní body v seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Přehlížet cesty</b><br/>Přehlížet cesty v seznamu vybraných prvků.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation><b>Přehlížet oblasti</b><br/>Přehlížet oblasti v seznamu vybraných prvků.<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Prohledat databázi '%1':</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Neznámá odpověď</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Chyba: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Chybí požadavek</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>MySQL nemůže být toho času použita, protože není dostupný odpovídající ovladač (QMYSQL).<br />Ujistěte se, prosím, že byl nainstalován odpovídající balíček.<br />Pokud nevíte, co se má dělat, podívejte se na dokumentaci na <a href="%1">Wiki</a>.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Již je databáze s názvem '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Nová databáze...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Otevřít databázi...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Nastavit databázi...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Změny budou uvedeny v činnost po opětovném spuštění programu.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Nepodařilo se zpracovat časové razítko `%1`</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1: Neexistuje</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>Není souborem SLF: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Nepodporovaná změna %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Přestávka %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Kolo %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Dvakrát klepněte pro upravení hodnoty výšky</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation type="unfinished">%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Nepodařilo se nahrát soubor %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Nepodařilo se otevřít %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Chyba při čtení: %1
-Řádek %2, Sloupec %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>Není to soubor TCX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Tento soubor TCX obsahuje alespoň 1 řešení, ale není to ani činnost ani směr. A jelikož ta řešení neobsahují údaje o poloze, nelze je zavést do QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>Tento soubor TCX neobsahuje žádnou činnost ani směr: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>Soubor existuje...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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 QMapShack. Pokud stisknete Ano, všechna data v tomto poli budou ztracena.I když tento soubor obsahuje data a byl nahrán 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/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>Stopa <b>%1</b>, kterou jste vybrali, obsahuje body stopy s neplatnými časovými razítky. Zařízení nemusí vytvořený soubor TCX se směrem přijmout, pokud se to tak nechá. <b>Chcete použít filtr se stálou rychlostí (10 m/s) a pokračovat?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Směr</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Činnost</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Zrušit</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Stopa s neplatnými časovými razítky...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>Činnost nebo směr?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack neví, jak má být stopa <b>%1</b> uložena. <b>Chcete ji uložit jako směr nebo jako činnost? </b> Zapamatujte si, že pouze cestovní body, které jsou dostatečně blízko stopy, budou uloženy, když bude uložena jako směr. Cestovní body nebudou uloženy, když je stopa ukládána jako činnost.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Nepodařilo se vytvořit soubor '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Nepodařilo se zapsat soubor '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Nepodařilo se uložit data GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>Vybrat jeden...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Přehled pěšího výletu (vestavěno)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Cesta k předloze...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>Nepodařilo se přečíst soubor s předlohou %1.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Náhled...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>B&arva...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Nastavit formát znovu</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Dostupné činnosti</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Vybrané činnosti</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Nepodařilo se otevřít %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Uložit data GIS do...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <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="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Nepodařilo se přečíst data.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Cesta k uživatelským značkám...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Účastníci</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Počasí</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>Déšť</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>Slunečno</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>Sněžení</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>Oblačnost</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation>Větrno</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>Horko</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>Teplo</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>Chladno</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>Mrazivo</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>Mlhavo</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>Vlhko</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Povaha</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>Snadný pěší výlet</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>Lezení</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>Pěší výlet v horách</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>Velké stoupání</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>Velká vzdálenost</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>Zajištěná cesta</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>Kroupy/sněhové krupky</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation>Hodnocení</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>Hodnocení 5 hvězd</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>Hodnocení 4 hvězdy</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>Hodnocení 3 hvězdy</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>Hodnocení 2 hvězdy</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>Hodnocení 1 hvězda</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>Zrušeno</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Vybavení</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>Výstroj pro zajištěnou cestu</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>Noční výstroj</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>Sněžnice</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>Horolezecká výstroj</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>Lyže</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>Tábornické vybavení</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Podrobnosti</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>O programu...</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation><b>QMapShack</b>, verze</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation>Qt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation>GDAL</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation>Proj4</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Čeština:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Němčina:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation>Oliver Eichler</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Nizozemština:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Francouzština:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation>Rainer Unseld</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Ruština:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation>Wolfgang Thämelt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation>Pavel Fric</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Překlad</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation>Harrie Klomp</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Španělština:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation>Win64:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation>OS X:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Spustitelné soubory:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Přispěvatelé</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation>Jose Luis Domingo Lopez</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation>Ivo Kronenberg</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation>Helmut Schmidt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>... a poděkování všem tvůrcům spustitelných souborů pro Linux za jejich dobrou práci. Zvláštní poděkování Danovi Horákovi a Basi Couwenbergovi za účast v diskuzi v poštovním seznamu.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <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>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Nastavit pohled na mapu...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Promítání a datum</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Měřítka</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logaritmické</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>druhá mocnina (vyladěno pro dlaždice TMS a WMTS)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Spojit stopy...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Dostupné stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Spojené stopy</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Formát souřadnic...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>N48° 53.660 E013° 31.113</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>N48.8943° E013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Vytvořit cestu z cestovních bodů</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Rozkrojit stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Smazat první část stopy a zachovat druhou</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Zachovat obě části stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Zachovat první část stopy a smazat druhou</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Režim rozkrojení:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Toto zaškrtněte pro uložení výsledku do nové stopy.
-
-Pokud zachováte obě části stopy, musíte vytvořit nové.
-
-Pokud chcete zachovat pouze jednu polovinu, můžete jednoduše odstranit body, nebo toto zaškrtnout pro vytvoření nové stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Vytvořit novou stopu</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>Vnitřní formát databáze '%1' se změnil. QMapShack nyní vaši databázi přestěhuje. Po přestěhování databáze se staršími verzemi QMapShack nebude použitelná. Doporučuje se databázi nejprve zazálohovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Přestěhovat databázi...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>Přestěhování přerušeno uživatelem</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Nepodařilo se přestěhovat '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>Přestěhování se nepodařilo</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>Verze databáze '%1'je pokročilejší než ta, jíž rozumí vaše instalace QMapShacku. Toto nebude pracovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Nepodařilo se inicializovat</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Nesprávná verze databáze...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>Databáze vytvořena novější verzí QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Nepodařilo se inicializovat '%1'.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Heslo...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Heslo pro databázi '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Aktualizovat na verzi databáze 5. Přestěhovat všechny položky GIS.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Aktualizovat na verzi databáze 3. Přestěhovat všechny položky GIS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Aktualizovat na verzi databáze 5. Přestěhovat všechny položky GIS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Aktualizovat na verzi databáze 6. Přestěhovat všechny položky GIS.</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Stanovit cesty k souborům s výškovými modely</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Změnit neprůhlednost mapy</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Je zobrazeno ovládání rozmezí měřítka mapy. Použijte tlačítka vlevo a vpravo pro stanovení skutečného měřítka jako buď nejmenšího nebo největšího měřítka.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Stínování kopců</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Sklon</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation>> </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Pro přidání souborů s údaji o výšce použijte <b>Soubor → Nastavit cesty k výškovým modelům</b>. Nebo klepněte <a href='setup'><b>sem</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Použijte související nabídku (klepnutí pravým tlačítkem myši na položku) pro zapnutí souboru. Použijte přetažení a upuštění pro posunutí zapnutého souboru v pořadí procesů. </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Zapnout</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Posunout nahoru</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Skrýt výškový model za předchozí</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Posunout dolů</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Výškový model překrývá další</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>Nahrát výškový model znovu</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation>o:prázdný</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Poloha:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Obtížnost</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Území</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Nahrát spoiler znovu</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Rada:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Oblast byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Barva</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Šířka okraje</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Styl</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Neprůhlednost</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Informace</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Body</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Poloha</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Tisk deníku</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Zachovat pořadí projektu</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Řadit podél stopy (vícenásobně)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Řadit podél stopy (jednorázově)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Sestavit deník znovu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Klíčová slova:</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Informace</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Cesta byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation>-
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Rychlost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Styl</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Zdroj</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Nejvyšší hodnota</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Použít/Upravit uživatelsky stanovenou viditelnost směrových šipek pro tuto stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Použít/Upravit v systému stanovenou viditelnost směrových šipek pro všechny stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Nejnižší hodnota</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Použít/Upravit uživatelsky stanovený násobek zvětšení pro tuto stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Použít/Upravit výchozí násobek zvětšení systému pro všechny stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation>x </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Stopa byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Šířka</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>se směrovými šipkami</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Grafy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Činnost</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Nastavit činnost stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>K rozlišení statistik stop zvolte v seznamu činnost pro celou stopu. Nebo vyberte část stopy a přiřaďte jí činnost.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Body</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Čas</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Výška</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Rozdíl</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Vzdál.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Sklon</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Poloha</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Informace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation>max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Uživatelsky stanovené hraniční hodnoty pro tuto stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation>-
--
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Automatické hraniční hodnoty</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Uživatelsky stanovené hraniční hodnoty pro všechny stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Barva</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Stoupání</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Klesání</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filtr</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Cestovní bod byl zaveden do QMapShack a byl změněn. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Poloha:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Informace</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Výška</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Blízkost:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Přidat obrázky.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Smazat vybraný obrázek.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Datum/Čas:</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Je jiný projekt se stejným názvem. Pokud stisknete OK, bude odstraněn a nahrazen.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Upravit výšku...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Výška</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Získat výšku z činného digitálního výškového modelu.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Vyvést databázi do GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Cesta pro vyvedeni:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 bez rozšíření</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Spustit</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Přerušit</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Zavřít</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Odstranit body stopy</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Odstranit trvale všechny skryté body stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Odstranit rozšíření ze všech bodů stopy</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Odstranit</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>ze všech bodů stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Skrýt cestovní body (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Skrýt body stopy, když je vzdálenost k čáře mezi sousedícími body méně než</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Použít filtr nyní.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Interpolovat výšková data</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Nahradit výšková data bodů stopy interpolovanými daty.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Kvalita</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Náhled</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Skrýt neplatné body</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Skrýt body s neplatnými daty.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Vyhladit profil (Metoda střední hodnoty)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Zmenšit odchylku výšky bodů stopy pomocí filtru střední hodnoty o velikosti </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation>Body</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Změnit čas</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Změnit začáteční čas stopy na </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.yy HH:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Zastřít časová razítka</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Zvětšit časové razítko o </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation> s</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>pro každý cestovní bod. 0 s odstraní všechna časová razítka.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Vyrovnat výšku</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Přidat posun </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>ke každé výšce bodu stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Nahradit výšková data</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Nahradit výšková data bodů stopy daty z nahraných souborů s digitálními výškovými modely.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Nastavit znovu skryté body stopy</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Udělat všechny body stopy znovu viditelnými.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Změnit rychlost</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Změnit rychlost na </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> km/h</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Rozdělit části do stop</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Pro každou část v této stopě se vytvoří nová stopa.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><b>Převést podstopy cesty na body</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Převést podbody obdržené ze stanovení směru cesty na řádné body stopy</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Vypočítat sklon území</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Vypočítat sklon území z nahraných souborů s digitálními výškovými modely.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>Chyba při dekódování FIT: Nesprávný stav dekodéru %1 po posledním bytu dat v souboru.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation>Chyba dekódování FIT: vývojové pole s field_definition_number %1 již existuje.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation type="unfinished">Název</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation type="unfinished">Věk</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation type="unfinished">Pro přidání databáze klepněte pravým tlačítkem myši na seznam s databázemi výše.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[žádný název]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>Prvek není částí projektu v databázi.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>
-Buď je to nový prvek nebo byl v databázi někým smazán.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>Prvek není v databázi.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>Může být potřeba prvek uložit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Počáteční verze.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3> Tento prvek je pravděpodobně pouze pro čtení, protože nebyl vytvořen v programu QMapShack. Obvykle nemáte zájem měnit zavedená data. Ale pokud si myslíte, že je to tentokrát na místě, stiskněte OK.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Režim pouze pro čtení...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Popis:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>--- žádný popis ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Poznámka:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- žádná poznámka ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Odkazy:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- žádné odkazy ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Upravit název...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Zadat nový název %1.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Uložit projekt?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>Projekt byl změněn. Uložit jej před zavřením?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Svázat stopy a cestovní body.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>Trvalo to moc dlouho? Chcete svázání stop a cestovních bodů pro tento projekt přeskočit i v budoucnu?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Svázání zrušeno...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Uložit "%1" do...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Název souboru: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Cestovní body: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Stopy: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Cesty: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Oblasti: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <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>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Smazat...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation type="unfinished">Neprůhlednost</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation type="unfinished">Změnit neprůhlednost všech položek GIS na mapě.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation type="unfinished">Filtr</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation type="unfinished">Název</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation type="unfinished">Vyprázdnit filtr</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation type="unfinished">Nastavit filtr</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Nastavení mřížky...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Promítání</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>Obnovit výchozí</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Promítání převzít z nynější mapy.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>Průvodce pro promítání</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Barva mřížky</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>Nastavení barvy mřížky</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Zdrojová databáze:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Cílová databáze:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Spustit</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Upravit...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation>Cesta</translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Odkazy...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Text</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>URI</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Soubor</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Pohled</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Okno</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>Nápověda</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Nástroj</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Mapy</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Digitální výškový model</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Ukázat měřítko</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Nastavit písmo mapy</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Ukázat mřížku</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Nastavit mřížku</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Obrátit kolečko myši</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Nastavit cesty k mapám</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>Text POI</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Noc/Den</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Rada k nástroji pro mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Nastavit cesty k výškovým modelům</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>O programu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Nápověda</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Nástrojový panel</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation type="unfinished">Databáze</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation type="unfinished">Cesta</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Přidat pohled na mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Nastavit pohled na mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>Nahrát data GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Nahrát projekty ze souboru</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Uložit všechna data GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation>Uložit všechny projekty nacházející se v pracovním prostoru</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Nastavit časové pásmo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Přidat prázdný projekt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Hledat pomocí Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Zavřít všechny projekty</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation>F8</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Nastavit jednotky</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Nastavit pracovní prostor</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Nastavit uložení při ukončení.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Zavést databázi z QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>Zavést databázi GT QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>Sestavovač VRT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>Rozhraní pro gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Uložit pohled na mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Zapsat nynější činnou mapu a seznam výškových modelů včetně vlastností do souboru</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Nahrát pohled na mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Obnovit pohled s činnou mapou a seznam výškových modelů včetně vlastností ze souboru</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Ext. Profil</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Zavřít</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>Ctrl+Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Klonovat pohled na mapu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation>Ctrl+Shift+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Vytvořit databázi Routino</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Uložit (vytisknout) snímek obrazovky s mapou</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Vytisknout vybranou oblast mapy</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Nastavit formát souřadnic</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Změnit formát, v němž jsou souřadnice zobrazeny</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Nastavit pozadí mapy</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Stanovit ikony cestovních bodů</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Stanovit cestu k vlastním ikonám</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Zavřít kartu</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation>Ctrl+W</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation>Nápověda pro rychlý začátek</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Nastavit nástrojový panel</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Přepnout panely</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Přepnout viditelnost ukotvitelných oken</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation>Ctrl+D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Celá obrazovka</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Pro přidání map použijte <b>Soubor → Nastavit cesty k mapám</b>. Nebo klepněte <a href='setup'><b>sem</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Použijte související nabídku (klepnutí pravým tlačítkem myši na položku) pro zapnutí mapy. Použijte přetažení a upuštění pro posunutí zapnuté mapy v pořadí kreslení. </translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Pomoc! Chci mapy!
-Nechce se mi číst dokumentaci!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Zapnout</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Posunout nahoru</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Skrýt mapu za předchozí mapou</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Posunout dolů</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Mapa překrývá další</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Nahrát mapy znovu</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>Tato mapa vyžaduje podporu pro OpenSSL. Nicméně kvůli právním omezením v některých zemích není OpenSSL k QMapShack přibaleno. Můžete se podívat na <a href='https://www.openssl.org/community/binaries.html'>stránky OpenSSL</a>, kde najdete spustitelné soubory. Musíte zkopírovat libeay32.dll a ssleay32.dll do adresáře s programem QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Chyba...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: %2 dlaždic čeká<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Nastavit cesty k mapám</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Kořenová cesta (root) vyrovnávací paměti dlaždic pro internetové mapy:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Pomoc! Chci mapy!
-Nechce se mi číst dokumentaci!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Změnit neprůhlednost mapy</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Je zobrazeno ovládání rozmezí měřítka mapy. Použijte tlačítka vlevo a vpravo pro stanovení skutečného měřítka jako buď nejmenšího nebo největšího měřítka.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Oblasti</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Čáry</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Body</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Podrobnosti</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Cesta k vyrovnávací paměti</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>Typ souboru:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Zapomenout na vnější souborový typ a použít vnitřní typy.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Nahrát vnější typ souboru.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Velikost vyrovnávací paměti (MB)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Datum vypršení (dny)</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Pokročilé volby</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation>Zdroj, žádná data (-srcnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation>Cíl, žádná data (-vrtnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation>Cíl, promítání (-a_srs)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation>Tyto volby jsou pro určité případy a obyčejně je chcete ponechat prázdné. Podívejte se na GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Nápověda</a> pro další informace.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Vybrat zdrojové soubory:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Název cílového souboru:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Spustit</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Nová čára</b><br/>Posuňte ukazovátko myši a použijte levé tlačítko myši k upuštění bodů. Až to bude uděláno, použijte pravé tlačítko myši k zastavení.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Smazat bod</b><br/>Přesuňte ukazovátko myši blízko k bodu a stiskněte levé tlačítko myši pro jeho smazání.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Upravit rozsah bodů</b><br/>Klepněte levým tlačítkem myši na první bod pro započetí výběru. Klepněte levým tlačítkem myši na druhý bod pro dokončení výběru a vyberte z voleb. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Přesunout bod</b><br/>Přesuňte ukazovátko myši blízko k bodu a stiskněte levé tlačítko myši pro jeho držení v blízkosti ukazovátka. Posuňte myší pro přesunutí bodu. Upustěte bod klepnutím levým tlačítkem myši. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Přidat bod</b><br/>Přesuňte ukazovátko myši blízko k čáře a stiskněte levé tlačítko myši pro přidání bodu. Bod přilne k ukazovátku a vy jím budete moci pohnout. Bod upustěte klepnutím levým tlačítkem myši. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Žádné stanovení cesty</b><br/>Všechny body budou spojeny přímou čarou.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Automatické stanovení cesty</b><br/>Nynější nastavení směrování je používáno k vytváření cesty mezi body. <b>Poznámka:</b> Vybraný směrovač musí být schopen rychle směrovat (za běhu). Směrovače nepřipojené k internetu toto obvykle dokáží, směrovače připojené k internetu to běžně neumí.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Vektorové stanovení cesty</b><br/>Spojuje body čárou z nahrané vektorové mapy, je-li to možné.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1 metrika</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Vzdálenost:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Stoupání:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Klesání:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation><br/><b>Posunout mapu</b><br/>Pokud levé tlačítko myši podržíte stisknuté a myší pohnete, posunete mapu.<br/><br/></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Nastavit znovu zvětšení</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Ukončit výběr oblasti</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Uložit...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Přidat cestovní bod</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Vyjmout...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Pro (pouze) svislé přiblížení podržte klávesu Ctrl.
-Pro (pouze) vodorovné přiblížení podržte klávesu Alt.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Žádná nebo špatná data.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Vybrat výstupní soubor</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Poloha...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Zadat novou polohu</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Špatný polohový formát. Musí být: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-nebo
-"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Tisk mapy...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>Když tisknete výřez internetové mapy, ujistěte se, že mapa byla nahrána do vyrovnávací paměti.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Uložit</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>Když ukládáte výřez internetové mapy, ujistěte se, že mapa byla nahrána do vyrovnávací paměti.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Tisk</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Počkejte, prosím...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Průvodce pro Proj4</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation>Mercatorovo zobrazení</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation>UTM</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>Pásmo</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>Stanoveno uživatelem</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation>Světový Mercator (OSM)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Výsledek:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Sever (Severní pól)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Jih (Jižní pól)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Promítání</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Promítnutí cestovního bodu</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Klonovat cestovní bod a posunout o:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Náhradní</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation>Zobrazit vybraný profil stanovení cesty</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation>Stanovení cesty za běhu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation>BRouter: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation>Neběží</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation>Spustit/Zastavit BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation>Ukázat konzoli BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation>Nastavit</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation>Pozor! BRouter kvůli připojení naslouchá na všech přípojkách (port).</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation>Profil BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation>Nastavení BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation>Vybrat, který BRouter použít</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation>Stránky BRouter (připojeno)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation>Místní instalace</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation>Režim znalce</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation>Místní instalační adresář BRouter:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation>Vybrat instalační adresář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation>Vytvořit nebo aktualizovat instalaci</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation>Spustitelný soubor Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation>Hledat nainstalovanou Javu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation>Stáhnout a nainstalovat verzi BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation>o:prázdný</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation>Soubor k nainstalování</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation>Stáhnout a nainstalovat</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation>Dostupné profily</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation>Instalovat profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation>Odstranit profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation>Nainstalované profily</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation>Obsah profilu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation>Adresa (URL) stránek BRouter:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation>Adresa (URL) služby</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation>Adresa (URL) profilu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation>Jméno hostitelského počítače</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation>Přípojka (port)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation>Adresář s profilem</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation>Adresář s částmi</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation>Adresář s vlastními profily</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation>Nejdelší doba běhu programu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation>Počet vláken</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation>Volby pro Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation>Adresa (URL) profilu</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Rychlostní silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Sezonní silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Jazyk</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Zemské hranice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Vyhnout se:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Přívoz</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Silnice s mýtem</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Nezpevněné silnice</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>S přátelským povolením od <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Režim</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Databáze</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Přidat cestu pomocí databáze Routino.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Jazyk</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Pro použití stanovení cesty bez připojení k internetu je potřeba stanovit cesty k místním datům se stanovením cest. Použijte nástrojové tlačítko pro nastavení k zaregistrování cesty. Svá vlastní data se stanovením cest vytvoříte pomocí <b>Nástroj → Vytvořit databázi Routino</b>.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Nastavit databázi Routino...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Vybrat zdrojové soubory:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Spustit</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Cílová cesta:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Předpona souboru</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Uložit do předlohy</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Uložit jako nový</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Přerušit</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Přesunout body. (Ctrl+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Přidat nové body. (Ctrl++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>Ctrl++</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Vybrat rozsah bodů. (Ctrl+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Žádné automatické stanovení cesty nebo přichycení k čáře (Ctrl+O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Použít automatické stanovení cesty mezi body. (Ctrl+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Přichytit čáru podél čáry vektorové mapy. (Ctrl+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Smazat bod. (Ctrl+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation>Ctrl+-</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation>0</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation>A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation>V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Vrátit poslední změnu zpět</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Obnovit poslední změnu</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Zobrazit podrobnosti a upravit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Kopírovat oblast do dalšího projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Smazat oblast z projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Upravit tvar oblasti.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation>Uložit vybranou oblast jako obrázek.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Tisk vybrané oblasti.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Smazat všechny body mezi prvním a posledním bodem.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Spočítat cestu mezi prvním a posledním vybraným bodem.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Skrýt všechny body.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Ukázat všechny body.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Nastavit činnost pro vybraný rozsah.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Kopírovat body stopy jako novou stopu.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Kopírovat cestu do dalšího projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Zobrazit podrobnosti a upravit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Smazat cestu z projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Spočítat cestu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Vynulovat spočítání cesty.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Přesunout body cesty.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Převést cestu na stopu</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Kopírovat všechny vybrané prvky do projektu.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Vytvořit cestu z vybraných cestovních bodů.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Změnit ikonu všech vybraných cestovních bodů.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Spojit všechny vybrané stopy do nové.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Nastavit činnost pro všechny vybrané stopy.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Smazat všechny vybrané prvky.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Vybrat všechny prvky, které protínají vybranou oblast.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Vybrat všechny prvky, které jsou úplně uvnitř vybrané oblasti.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Přidat stopy do výběru.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Přidat cestovní body do výběru.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Přidat cesty do výběru.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Přidat oblasti do výběru.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Kopírovat stopu do dalšího projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Ukázat promítnutý profil a podrobné údaje o bodech.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Upravit polohu bodů stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Zobrazit podrobnosti a upravit vlastnosti stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Smazat stopu z projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Vybrat rozsah bodů.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Obrátit stopu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Spojit stopy.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Rozkrojit stopu na vybraném bodu. Můžete to použít na:
-
-* odstranění špatných bodů na začátku nebo na konci stopy
-* použití částí stopy k plánování nového výletu
-* vyjmutí dlouhé stopy do úseků</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Kopírovat stopu společně se všemi připojenými cestovními body do jiného projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Nastavit činnost pro celou stopu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Zobrazit podrobnosti a upravit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Kopírovat cestovní bod do dalšího projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Smazat cestovní bod z projektu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Ukázat obsah stálé vysvětlivky.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Přesunout cestovní bod do nového umístění.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Klonovat cestovní bod a kopii přesunout o danou vzdálenost a ve stanoveném úhlu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation type="unfinished">Textový štítek</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Hledat...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Napište slovo, které se má hledat, a stiskněte tlačítko pro hledání. 
-Pokud zadáte 'slovo', provede se hledání přesné shody. Pokud zadáte 'slovo*', 'slovo' musí být na začátku řetězce.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Název</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Hledat</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Zavřít</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Vybrat zařízení...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Kopírovat prvek...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Nahradit stávající prvek</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>Nekopírovat prvek</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Vytvořit klon</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Nahradit:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Zachovat prvek:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Název klonu bude rozšířen o '_Klon'</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>A také pro všechny další prvky.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Vybrat nadřazenou složku...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Název</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Dostupné</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Přidat k vybraným prvkům</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Odstranit z vybraných prvků</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Vybrané</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Posunout vybrané prvky nahoru</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Posunout vybrané prvky dolů</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Vybrat projekt...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Vybrat projekt ze seznamu nebo zadat nový název projektu.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Nový název projektu</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>Nový projekt je vytvořen jako:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation>*.qms</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation>*.gpx</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Databáze</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Kopírovat prvek...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Nahradit stávající prvek</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Přidat klona</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Název klonu bude rozšířen o '_Klon'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Nahradit:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>Textový štítek</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>Nenahrazovat prvek</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Použít prvek:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>A také pro všechny další prvky.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Přidat databázi...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Název</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Pozor!</span> Doporučuje se ponechat heslo prázdné, neboť QMapShack je uloží jako prostý text. Pokud heslo nezadáte, budete na ně dotazován při každém spuštění programu.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>Nepoužívat heslo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Server</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation>Přípojka</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Uživatel</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Heslo</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Přípojka:</b> Pro používání výchozí přípojky ponechejte pole s číslem přípojky prázdné.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Soubor:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Přidat novou databázi.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Otevřít stávající databázi.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulář</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Použít filtr na</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>pouze název</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>celý text</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Složka s databází...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Název složky</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Skupina</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Projekt</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Jiné</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Nový cestovní bod...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Značka</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Poloha</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Název</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Špatný polohový formát. Musí být: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-nebo
-"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Nastavit pracovní prostor...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>Uložit pracovní prostor při ukončení, a každých</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>minut</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>Naslouchat změnám v databázi jiných instancí QMapShack. Na přípojce</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Vložit předlohu...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Předlohy</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Vybrat cestu s vašimi vlastními předlohami.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Náhled</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Upravit text...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Zpět</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Znovu</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation>Ctrl+Shift+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Vyjmout</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation>Ctrl+X</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Kopírovat</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Vložit</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Předloha</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation>A:L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation>A:C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation>A:R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation>A:B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation>C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Standardní</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation>Seznam kulatých odrážek (kotouč)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation>Seznam kulatých odrážek (kroužek)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation>Seznam kulatých odrážek (čtvereček)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation>Uspořádaný seznam (desetinný)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation>Uspořádaný seznam (abecední dolní)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation>Uspořádaný seznam (abecední horní)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation>Uspořádaný seznam (antikva dolní)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation>Uspořádaný seznam (antikva horní)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Zarovnat vlevo</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Zarovnat vpravo</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Zarovnat na střed</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Zarovnat do bloku</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation>Ctrl+J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Podtržení</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Tučné</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation>Ctrl+B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Kurzíva</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Prostý</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Nastavit znovu formát textu před vložením</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Vybrat vše</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Smazat</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Nastavit písmo znovu</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Nastavit rozvržení znovu</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Normální</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Vložit bez znovunastavení formátu textu</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Vložit z předlohy</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Vytvořit text z předlohy.</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Vyjmout</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Kopírovat</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Vložit</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Nastavit časové pásmo...</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>Světový čas (UTC)</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Místní</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automaticky</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Datum/Čas v </translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>dlouhém formátu nebo</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>v krátkém formátu</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation type="unfinished"><b>Poznámka:</b> Některé prvky uživatelského rozhraní změna jednotek neovlivní, dokud QMapShack nespustíte znovu.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Nastavit nástrojový panel</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>Nástrojový panel je viditelný v režimu celé obrazovky</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Nepodařilo se spustit vnější program `%1`: </translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>Proces nelze spustit.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>Ujistěte se, že jsou nainstalovány požadované balíčky, že `%1` existuje a je spustitelný.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>Vnější proces spadl.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>Vyskytla se neznámá chyba.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>Nepodařilo se!</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Chyba</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Špatný polohový formát. Musí být: "[N|S] ddd mm.sss [W|E] ddd mm.sss" nebo "[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Polohy mimo platné hodnoty. </translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Nastavit jednotky...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Metrické</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Poznámka:</b> Některé prvky uživatelského rozhraní změna jednotek neovlivní, dokud QMapShack nespustíte znovu.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Anglické</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Nautické</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Ikony...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Vnější značky:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Všechny vlastní značky musí být ve formátu *.bmp nebo *.png.</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_de.ts b/src/locale/qmapshack_de.ts
deleted file mode 100644
index ab204b3..0000000
--- a/src/locale/qmapshack_de.ts
+++ /dev/null
@@ -1,10214 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="de_DE">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API V%2, erwartet wird V%3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(kein DBUS: Keine Geräteerkennung und - verwaltung)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>Fußgänger</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Fahrrad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Motorrad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Seilbahn</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Schwimmen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Schiff</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>keine Aktivität</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Total</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Anstieg:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Abstieg:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Aeronautik</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Öffentl. Verkehrsmittel</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Entfernung:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Geschwindigkeit in Bewegung:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Geschwindigkeit insgesamt:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Zeit in Bewegung:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Zeit insgesamt:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Ansicht %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Kartenhintergrund einstellen</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Esc</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Debug-Ausgabe in die Konsole drucken.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Debug-Ausgabe in Log-Datei drucken (Systemordner für temporäre Dateien).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>Startbildschirm nicht anzeigen.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Datei mit QMapShack Einstellungen.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>Datei</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Dateien für den späteren Gebrauch.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>Route</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle Daten nach Ordnern gruppiert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Verloren & Gefunden (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Verloren & Gefunden</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle Daten nach Ordnern gruppiert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>MySQL Datenbank</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation> (Kein Passwort)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Fehler:</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle Daten nach Ordnern gruppiert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>SQLite Datenbank</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Datei: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Fehler:</translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 min</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 Tage</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>Laden fehlgeschlagen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>Konnte die Datei "%1" nicht laden. Wird ausgelassen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>Das Projekt ist schon in der Datenbank...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>Das Projekt "%1" wurde schon in die Datenbank importiert. Wird asugelassen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>Das Element %1 wurde durch %2 (%3) geändert. 
-
-Um den Konflikt zu lösen, erstellen und speichern Sie einen Klon, erzwingen Ihre Version oder verwerfen diese und nehmen die Version in der Datenbank</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Konflikt mit der Datenbank...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Klonen && Speichern</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Speichern erzwingen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Entfernte Version nehmen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Fehlender Ordner...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>Speichern des Projektes fehlgeschlagen. Der Ordner wurde in der Datenbank gelöscht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Speichern ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Fehler</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Da war ein unerwarteter Datenbankfehler:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>Das Projekt '%1' will sich gerade aus der Datenbank aktualisieren. Es gibt allerdings nicht gespeicherte Änderungen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Änderungen speichern?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Deaktivieren</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Aktivieren</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Hinzufügen oder Entfernen von Verzeichnissen mit Höhendaten. In einem Verzeichnis können mehrere Dateien liegen. Unterverzeichnisse werden jedoch nicht durchsucht. Unterstützte Formate sind: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Pfad für DEM Dateien wählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>Die Datei konnte nicht geladen werden: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>DEM muss aus einem Satz mit 16 bit oder 32 bit Daten bestehen.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>Keine Georeferenzierung gefunden.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>keiner</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Suche nach Bildern...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>Keine Bilder gefunden</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>keine</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Tagebuch erstellen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Auswertung aller Tracks im Projekt</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Wegpunkte</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Information</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Kommentar</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Tracks</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>Vom Anfang</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>Zum Nächsten</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>Zum Ende</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Gebiete</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Sie wollen Wegpunkte entlang eines Tracks sortieren, aber Sie haben die Verknüpfung von Wegpunkten und Tracks ausgeschaltet. Wollen Sie sie wieder einschalten?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Verknüpfungen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation>Entfernung: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation>Anstieg: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation>Abstieg: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Routen</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Name bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <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="897"/>
-        <source>Print Diary</source>
-        <translation>Tagebuch drucken</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Stichwörter bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Stichwörter eingeben.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Sichtbare Trackpunkte reduzieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation>Höhe von Trackpunkten ändern</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <source>Change timestamp of track points</source>
-        <translation>Zeitstempel von Trackpunkten ändern</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
-        <source>Miscellaneous</source>
-        <translation>Verschiedenes</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Farbe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Aktivität</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Geben Sie einen neuen Abstandsalarm ein.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Bild %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Unbekannt</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Archiv - zum Laden aufklappen</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>Archiv - geladen</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>Keine DEM Daten für diesen Punkt gefunden.</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Exportpfad auswählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Erstelle %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation>Erstellen von %1 fehlgeschlagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>Fertig!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>Abbruch durch Benutzer!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation>Datenbankfehler: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>Speichere das Projekt als %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation>Fehlgeschlagen!</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>Keine Erweiterung vorhanden</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>grob</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>mittel</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>fein</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>FIT Dekodierfehler: CRC ungültig.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>FIT Dekodierfehler: Unerwartetes Ende der Datei %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>FIT Dekodierfehler: Unbekannter Datentyp %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>FIT Dekodierfehler: Protokollversion %1 wird nicht unterstützt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>FIT Dekodierfehler: Nicht übereinstimmende Dateikopfsignatur. Keine FIT Datei.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>Öffnen der FIT Datei %1 fehlgeschlagen.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>FIT Dekodierfehler: Architektur %1 wird nicht unterstützt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>FIT Dekodierfehler: Ungültiger Offset %1 für Status 'aufgezeichneter Inhalt'</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Warnung...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <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="838"/>
-        <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>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>dünn</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>normal</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>breit</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>stark</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Gebiet: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Gebietsform geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Name geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Umrandungsbreite geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Füllung geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Deckkraft geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Kommentar geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Beschreibung geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Geänderte Verknüpfungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Farbe geändert</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Name geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Kommentar geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Beschreibung geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Geänderte Verknüpfungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation>Länge: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Länge: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation>Gesamtzeit: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Gesamtzeit: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Letzte Routenberechnung: <br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>mit %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation>Entf.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Geänderte Routenpunkte.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>FIT Dekodierfehler: Datei %1 enthält keine GPS Daten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>%1 konnte nicht geöffnet werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <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="420"/>
-        <source>Failed to read data.</source>
-        <translation>Lesen der Daten fehlgeschlagen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <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="388"/>
-        <source>, %1-, %2-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation>Zeit: %1%2, Geschw.: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Zeit: -, Geschw.: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation>Zeit in Bew.: %1%2, Geschw.: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>Zeit in Bew.: -, Geschw.: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Beginn: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Beginn: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Ende: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Ende: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Punkte: %1 von %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>Ungültige Höhenwerte!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>Ungültige Zeitmarken!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>Ungültige Positionsdaten!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Aktivitäten: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Index: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Index: angez. %1, total %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation>, Steigung: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... und %1 Tags werden nicht angezeigt</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Entfernung: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>Zeit in Bew.: - (-) </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Punkt %1 verbergen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Punkte %1  %2 verbergen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation>Ungültige Punkte...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation>Der Track '%1' hat %2 ungültige Punkte von insgesamt %3 sichtbaren Punkten. Wollen Sie die ungültigen Punkte herausnehmen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation>max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation>Länge: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <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="589"/>
-        <source>Ele.: %1%2</source>
-        <translation>Höhe: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation>, Geschw.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Anstieg: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Abstieg: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Anstieg: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation>, Abstieg: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Entf.: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation>, Zeit in Bew.: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Anstieg: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Abstieg: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Anstieg: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation>, Abstieg: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Entf.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation>, Zeit: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Punkte %1..%2 dauerhaft entfernt</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Punkte anzeigen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Name geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Kommentar geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Beschreibung geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Geänderte Verknüpfungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Höhe von Punkt %1 auf %2 %3 geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Die Aktivität wurde für den gesamten Track auf '%1' geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Die Aktivität wurde für den Bereich (%2..%3) auf '%1' geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Punkte ausblenden mit dem Douglas-Peuker Algorithmus (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Punkte mit ungültigen Daten ausblenden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Alle verborgenen Trackpunkte zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Alle verborgenen Trackpunkte wurden dauerhaft entfernt</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Mit einem Median-Filter der Größe %1 geglättetes Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>Hangneigung aus dem Höhenmodell hinzufügen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Höhendaten durch Daten von DEM Dateien ersetzt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Höhenwerte durch interpolierte Werte ersetzt. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>Versatz der Höhendaten um %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Trackanfang auf %1 verschoben.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Zeitstempel entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Künstliche Zeitstempel mit einem Abstand von %1 Sek. gesetzt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Geschwindigkeit auf %1%2 geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>Erweiterung %1 wurde von allen Trackpunkten entfernt</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Punkte vom autom. Routing in Trackpunkte umgewandelt </translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Kopiert das Informationsflag aus dem QLandkarte GT Track</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Archiviert</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Verfügbar</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>Nicht verfügbar</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_Klon</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation>Höhe: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation>Abstand: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Name geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Position geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Höhe geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation>Abstandsalarm entfernen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Abstandsalarm geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Symbol geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Kommentar geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Beschreibung geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Geänderte Verknüpfungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Bilder geändert</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Bild hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation>Radius des Abstandsalarmes ändern</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation>In eine Gebietsvermeidung ändern</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Ordner hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Ordner löschen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Aufgrund der Änderungen im Datenbanksystem kennt QMapShack den Dateinamen Ihrer Datenbank '%1' nicht mehr. Sie müssen diesen im nächsten Schritt erneut wählen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Datenbankdatei wählen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Datenbank hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Ordner umbenennen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Ordner kopieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Ordner verschieben</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Aus Dateien importieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Als GPX exportieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Element löschen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Datenbank durchsuchen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Mit der Datenbank synchronisieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Datenbank entfernen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Leeren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Datenbank entfernen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Wollen Sie '%1' wirklich aus der Liste entfernen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>Sind Sie sicher, dass Sie alle ausgewählten Ordner und alle Unterordner löschen wollen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Falsche Funktion...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>Der Zielordner ist ein Unterordner von dem zu verschiebenden. Das kann nicht funktionieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Ordnername...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Ordner umbenennen:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Sind Sie sicher, dass Sie '%1' aus dem Ordner '%2' löschen wollen? </translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Löschen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>GIS Daten importieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Datenbankordner löschen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Element entfernen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Sind Sie sicher, dass Sie alle Elemente in Verloren & Gefunden löschen wollen? Sie werden dauerhaft entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Sind Sie sicher, dass Sie alle ausgewählten Elemente in Verloren & Gefunden löschen wollen? Sie werden dauerhaft entfernt.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Speichern</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Bearbeiten..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Nach der Zeit sortieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Nach dem Namen sortieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Schließen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Aktualisiere das Projekt auf dem Gerät</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Kopieren nach...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Autom. Speichern</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Speichern unter...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Track mit Wegpunkten kopieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Infoblase anzeigen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Wegpunkt verschieben</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation>Radius ändern</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation>Gebietsvermeidung umschalten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation>Radius entfernen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Navigationsanweisungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Route berechnen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Route zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Route bearbeiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>In einen Track umwandeln</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Route erstellen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Symbol änd. (nur ausgew. Wegp.)</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Trackaktivität festlegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Elemente verwerfen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <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>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation>Projekt löschen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Sind Sie sicher, dass sie %1 löschen wollen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Wegpunkt Projektion...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Trackprofil</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Ans Gerät senden</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Bereich wählen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Trackpunkte bearbeiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Track umkehren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Tracks verbinden</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Gebietspunkte bearbeiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Löschen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Auf der Karte anzeigen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Auf der Karte ausblenden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Als GPX o. Erw. speichern...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Mit der Datenbank synchronisieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Arbeitsplatz wird gespeichert. Bitte warten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Arbeitsplatz laden. Bitte warten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Alle Projekte schließen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>Dies wird alle Projekte aus dem Arbeitsplatz entfernen.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation>Lade Projekt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation>Das Projekt "%1" ist schon im Arbeitsplatz geladen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation><b>Elementauswahl: </b> Ein Element wurde aus der Arbeitplatzliste heraus ausgewählt. Klicken Sie auf die Karte, um wieder auf die normale Auswahl mit der Maus umzuschalten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation>Elemente kopieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation>Symbol der Wegpunkte wird geändert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation>Track teilen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation>Wollen Sie den ursprünglichen Track löschen?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fehler beim Lesen: %1
-Zeile %2, Spalte %3:
--%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>Keine GPX Datei: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>Datei existiert...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Datei '%1' konnte nicht erstellt werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Datei '%1' konnte nicht geschrieben werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Das Speichern der GIS Daten ist fehlgeschlagen...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation> von %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Historie davor verkürzen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Historie danach verkürzen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Historie entfernen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>Das Entfernen ist permanent und kann nicht rückgängig gemacht werden. <p> Wollen Sie wirklich die Historie vor diesem Eintrag löschen?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>QLandkarte Datenbank importieren</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Quelldatenbank wählen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Zieldatenbank wählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation>Geschwindigkeit</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation>Trittfr.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Lufttemperatur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Wassertemperatur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation>Tiefe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation>Tiefe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation>Puls</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation>Pulsrate</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation>Trittfrequenz</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation>Geschw.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation>Beschl.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation>Beschleunigung</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation>Kurs</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation>Kurs</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation>Entf.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation>Entfernung</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation>Höhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation>Höhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation>Energie</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation>Energie</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation>Luftdr. M-Höhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation>Luftdruck Meereshöhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation>Geschw. (v).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation>Geschwindigkeit (vertikal)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation>Neigung</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation>Geschwindigkeit ü. Entfernung*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation>Geschwindigkeit ü. Zeit*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation>Höhe*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation>Verlauf</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation>Verlauf*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation>Hangn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation>Hangneigung*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Neigung*</translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fehler beim Lesen: %1
-Zeile %2, Spalte %3:
--%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation>Keine Openambit Logdatei: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation>Gerät: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Erholungszeit: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Trainingseffekt Spitze: %1 <br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energie: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation>Lokale Zeit benutzen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>In der Datei wurde keine UTC Zeit gefunden. Deswegen wird die lokale Zeit auf dem Computer verwendet. Sie können nachträglich die Zeit im Track mit einem entsprechenden Filter ändern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Diese LOG Datei enthält keine Positionsdaten und kann nicht in QMapShack angezeigt werden: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Verloren & Gefunden</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Benützen Sie <b>Menü->Ansicht->Kartenansicht hinzufügen</b>, um eine neue Ansicht zu öffnen. Oder <b>Menü->Datei->Kartenansicht laden</b>, um eine gespeicherte wieder herzustellen. Oder Sie klicken einfach <a href='newview'>hier</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation>Höhe: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation>Hangneigung: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Gitter: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>GIS Daten laden...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Ausgabedatei auswählen</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>QMapShack Ansicht (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Zu ladende Datei auswählen</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Schwerer Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack hat eine unvollständig installierte Proj4 Bibliothek gefunden. Die Übersetzungstabellen für EPSG Projektionen, die normalerweise in /usr/share/proj installiert sind, fehlen. Bitte kontaktieren Sie den Paketbetreuer ihrer Distribution, um das zu beheben.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation>Im Augenblick gibt es keine Karten. QMapShack macht ohne Karten überhaupt keinen Spaß. Sie können Online-Karten installieren, indem Sie den 'Hilfe! Ich will Karten!' Knopf im Fenster 'Karten' drücken. Oder drücken Sie F1 um zur Online-Hilfe zu gelangen. Sie erfahren dort mehr über die Bedienung von QMapShack.
-
-Wenn QMapShack ohne Karten keinen Spaß macht, warum werden dann keine mitgeliefert? Nun, um Karten fertig zur Installation zum Download anbieten zu können, benötigt man einen guten Server. Und der kostet. Dem Projekt fehlt hierzu das Geld. Zusätzlich unterliegen Karten- und DEM Daten dem Urheberrecht. Deswegen muss man den Urheber vorher fragen, ob man die Daten in ein Paket umwandeln und anbieten darf. Klingt einfacher als es oft ist. Und manchmal müsste man sogar Gebühren zahlen. Dem P [...]
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Fehlgeschlagen...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Nicht angegeben</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Französisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Deutsch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Niederländisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Englisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italienisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Finnisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Schwedisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Spanisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Baskisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Katalanisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Galizisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Walisisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gälisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Dänisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Norwegisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portugiesisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Slowakisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Tschechisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Kroatisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Ungarisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Polnisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Türkisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Griechisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Slowenisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Russisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Estnisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Lettisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Rumänisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translatorcomment>Albanisch</translatorcomment>
-        <translation>Albanisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosnisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Litauisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Serbisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Makedonisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Bulgarisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Autobahn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Bundesstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Schnellstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Fernstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Sammelstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Wohnstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Allee/Privatstraße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Auffahrt (langsam)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Auffahrt (schnell)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Unbefestigte Straße</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Autobahnzubringer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Kreisverkehr</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Eisenbahn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Küstenlinie</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Bach</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Zeitzone</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Fähre</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Staats-/Landesgrenze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Kreis-/Gemeindegrenze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Internationale Grenze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Fluss</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Höhenlinie klein</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Höhenlinie mittel</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Höhenlinie groß</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Tiefenlinie klein</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Tiefenlinie mittel</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Tiefenlinie groß</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Intermittierender Bach</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Landebahn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Pipeline</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Stromleitung</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Meeresgrenze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Gefahrbereichgrenze</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Großes Wohngebiet (&gt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Kleines Wohngebiet (&lt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Ländliches Wohngebiet</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Militärbasis</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Parkplatz</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Parkhaus</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Flugplatz</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Einkaufszentrum</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Jachthafen</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Universität/Hochschule</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Krankenhaus</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Industrie</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Schutzgebiet</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Fabrikgelände</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Sportanlage</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Golfplatz</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Friedhof</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Nationalpark</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Stadtpark</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Wald</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Ozean</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Meer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>See</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>See</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>See</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>See</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Strom</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Fluss</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Fluss</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Fluss</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Gewässer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Feuchtgebiet/Sumpf</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Gletscher</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Obstgarten/Plantage</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Buschwerk</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Tundra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Ebene</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Externe TYP Datei einlesen...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Lesen der TYP Datei fehlgeschlagen: %1
-Interne Typen werden wiederhergestellt.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Lesen fehlgeschlagen:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Öffnen fehlgeschlagen:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Falsches Format:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Lesen der Dateistruktur fehlgeschlagen:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Lädt %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Benutzerabbruch:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>Die Datei hat das NT Format. QMapShack kann dieses Format nicht lesen:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>Die Datei enthält verschlüsselte Daten. Garmin möchte nicht, dass diese Datei mit einer anderen Software, als der von Garmin bereitgestellten, benutzt wird.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Ort von Interesse</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Unbekannt</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Gebiet</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Deaktivieren</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Aktivieren</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>Wo wollen Sie die Karten speichern?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Fehlgeschlagen...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Öffnen fehlgeschlagen: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Falsches Dateiformat: </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Hinzufügen oder Entfernen von Verzeichnissen mit Karten. In einem Verzeichnis können mehrere Karten liegen. Unterverzeichnisse werden jedoch nicht durchsucht. Unterstützte Formate sind: %1 </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Kartenpfad wählen...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Hauptverzeichnis auswählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>TYP Datei auswählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Das ist keine bekannte TwoNav RMAP Datei.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Unbekanntes Unterformat.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Unbekannte Version.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Referenzpunkte konnten nicht gelesen werden.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Unbekannte Projektion und Datum (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Öffnen fehlgeschlagen: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lesen fehlgeschlagen: %1
-Zeile %2, Spalte %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Die Datei konnte nicht geladen werden: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>Die Datei muss eine 8 bit Palette oder Graustufen haben.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>Keine Georeferenzierung gefunden.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>GDAL VRT erstellen</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Dateien auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Zieldatei auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! erledigt !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Öffnen fehlgeschlagen: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lesen fehlgeschlagen: %1
-Zeile %2, Spalte %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Lesen fehlgeschlagen: %1
-Unbekannte Struktur.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Unerwarteter Dienst. '* WMTS 1.0.0' wird erwartet. '%1 %2' wurde gelesen.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>Keine Georeferenzierung gefunden.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Gebiet</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Gebiet bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>Gebiet</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Routenpunkte bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>Route</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Trackpunkte bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Warnung!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Alle ursprünglichen Daten werden durch eine einfache Koordinatenlinie ersetzt. Alle anderen Daten sind dauerhaft verloren.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>Track</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>POI als Wegpunkt hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Wegpunkt hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Track hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Route hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Gebiet hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Elemente auf der Karte auswählen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Position kopieren</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Position kopieren (Gitter)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Karte speichern (drucken)</b><br/>Wählen Sie mit der linken Maustaste einen rechteckigen Bereich auf der Karte aus. Die Auswahl kann durch Verschieben der Eckpunkte mit der Maus angepasst werden. Abbruch mit Rechtsklick. Speichern/Drucken erfolgt durch Linksklick auf das entsprechende Symbol in der Mitte der Auswahl.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Punktebereich auswählen</b><br/>Mit der linken Maustaste wählen Sie den ersten Punkt aus. Mit einem erneuten Drücken der linken Maustaste wählen Sie den zweiten Punkt aus und dann wählen Sie eine der Optionen. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Elemente auf der Karte wählen</b><br/>Wählen Sie mit der linken Maustaste einen rechteckigen Bereich auf der Karte aus. Abbruch mit Rechtsklick. Die Auswahl kann durch Verschieben der Eckpunkte mit der Maus angepasst werden.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Ausgewählt:</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 Tracks<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 Wegpunkte<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 Routen<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 Gebiete<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Bilder wählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation>Entfernung [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation>Zeit</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation>Entfernung [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation>Höhe [%1]</translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Karte drucken...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Karte als Bild speichern...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Drucker Eigenschaften...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Seiten: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Zoomen Sie mit dem Mausrad auf der Karte unten, um die Auflösung zu ändern:
-
-%1x%2 Pixel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Drucke Seiten.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Karte speichern...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Verstrichene Zeit: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Verstrichene Zeit: %1 Sekunden.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>Norden</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>Süden</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>Die Eingabe:
-'%1'
-ist keine gültige Koordinatensystemdefinition:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Name bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Geben Sie einen neuen Namen für den Wegpunkt ein.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation>Öffnen fehlgeschlagen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation>Konnte nicht umgewandelt werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation>Die Datei enthält Einblendungen (Overlays), die nicht konvertiert werden können. Der Grund dafür ist, dass QMapShack nicht alle Einblendungstypen von QLandkarte unterstützt.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Datenbank von Version 4 nach 5 migrieren.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Datenbank von Version 5 nach 6 migrieren.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Datenbank von Version 6 nach 7 migrieren.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Datenbank von Version 7 nach 8 migrieren.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Datenbank von Version 8 nach 9 migrieren.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Öffne Datenbank: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Ordner: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Tracks: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Routen:           %1 (Es wird nur die Basisroute kopiert)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Wegpunkte: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Overlays:         %1 (Flächen werden als Flächen übernommen, Distanzlinien werden als Tracks übernommen, alle anderen Overlays gehen verloren)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Tagebücher:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Kartenselektionen:   %1 (können nicht nach QMapShack konvertiert werden)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Konvertierung der Datenbank %1 beginnt ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Erstellen der Zieldatenbank fehlgeschlagen.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Abbrechen ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Fertig ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Ordner wiederherstellen...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>Importiert wurden %1 Ordner und %2 Tagebücher</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Elemente kopieren...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>Importiert wurden %1 Tracks, %2 Wegpunkte, %3 Routen, %4 Gebiete</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Importiere Ordner...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>Das Overlay vom Typ '%1' kann nicht konvertiert werden</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Beschädigter Track ...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der Trackpunkte der Trainingsdaten.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der erweiterten Trackpunkte.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der ausgeblendeten Trackpunkte.</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Vorhandene Datei...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Entferne vorhandene %1?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Entferne vorhandene Datei %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: verwerfe das Element mit der QLGT DB ID %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Öffnen fehlgeschlagen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Öffnen von %1 fehlgeschlagen</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation>erste Variante</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation>zweite Variante</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation>dritte Variante</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation>Profil: %1, Variante: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation>BRouter unterstützt in dieser Version nicht mehr als ein Vermeidungsgebiet. Versuchen Sie es mit einem Update.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation>Anwort ist leer</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation>Fehlerhafte Serverantwort: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>BRouter</b><br/>Routen-anfrage an den Server geschickt. Bitte warten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation>Berechne Route mit %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>BRouter</b><br/>Fehler-Antwort vom Server<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Berechnungszeit: %1 s</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation>Fehler</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation>wird ausgeführt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation>started</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation>QMapShack kommuniziert mit BRouter über eine Netzwerkverbindung. Normalerweise wird das über eine spezielle Addresse gemacht, die von außen nicht zugänglich ist. Allerdings horcht BRouter auf allen verfügbaren Netzwerkschnittstellen. Wenn Sie in ihrem eigenen privaten Netzwerk mit einer aktiven Firewall sind, ist das kein großes Problem. Wenn Sie in einem öffentlichen Netzwerk sind, stellt jeder offene Zugang ein Risiko dar, weil er von jemanden missbraucht werden ka [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation>Warnung...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation>Ich verstehe das Risiko. Bitte nicht mehr zeigen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation>angehalten</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation>nicht installiert</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation>%1 ist nicht erreichbar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation>ungültige Antwort von %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation>Fehler beim Auswerten der Online-konfiguration:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation>Netzwerk Fehler:</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation>Vorgabewerte wiederherstellen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation>Verzeichnis öffnen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation>installiertes Java-Programm auswählen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation>bitte das BRouter Installations-Verzeichnis auswählen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation>ausgewähltes Verzeichnis existiert nicht</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation>Verzeichnis anlegen und BRouter darin installieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation>vorhandene BRouter-Installation gefunden</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation>vorhandene BRouter-Installation aktualisieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation>leeres Verzeichnis, neue BRouter-Installation hier einrichten</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation>neue BRouter-Installation erzeugen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation>es scheint eine gültige Java Installation zu geben</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation>es scheint keine gültige Java Installation zu geben</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation>Java Programm nicht gefunden</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation>Fehler beim Laden der Installationsseite von %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation>keine BRouter-Version zum Installieren ausgewählt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation>%1 zum Herunterladen und Installieren ausgewählt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation>Warnung...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation>Download: %1<br/><br/>Sie sind dabei eine ZIP Datei aus dem Netz zu laden und zu installieren. Dies Aktion ist nach keinem Standard gesichert und benutzt nur HTTP. Es sollte aber HTTPS sein. Sie haben damit das Risiko, dass jemand die Verbindung umleitet und Ihnen eine Datei mit Schadsoftware sendet. QMapShack kann das nicht unterscheiden. <br/>Wenn Si das nicht verstanden haben oder im Zweifel sind, brechen Sie hier ab. Benützen Sie stattdessen die [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation>Ich verstehe das Risiko und möchte weiter machen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation>Herunterladen von %1 gestartet</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation>Netzwerkfehler: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation>Herunterladen von %1 ist fertig</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation>entpacken:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation>fertig.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation>Herunterladen von BRouter fehlgeschlagen: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation>Unter %1 verfügbare Profile werden ermittelt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation>Profil-Inhalt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation>Fehler:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation>Fehler beim Anlegen des Verzeichnisses %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation>Fehler: Das Verzeichnis %1 existiert nicht</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation>Fehler beim Anlegen der Datei %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation>Fehler beim Schreiben der Datei %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation>weiter Einrichten</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation>verfügbare Routing-daten werden ermittelt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation>Veraltete Daten auswählen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation>Auswahl aufheben</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation>Ausgewählte Daten löschen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation>Herunterladen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation>Fehler beim Anlegen des Verzeichniss für die Routingdaten %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation>nicht interpretierbar: %1 ist kein Datum</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation>nicht interpretierbar: %1 ist keine gültige Größenangabe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation>Fehler beim Abruf der verfügbaren Routingdaten von %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation>Das Verzeichniss für die Routingdaten existiert nicht:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation>Fehler beim Anlegen der Datei %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation>keine gültige Netzwerkanfrage für die Datei %1 vorhanden</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation>der Netzwerkanfrage für %1 ist keine offene Datei zugeordnet</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation>Fehler beim Schreiben der Datei %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation>Fehler beim Umbenennen der Datei von %1 nach %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation>Aktuell: %1 (%2), Veraltet: %3 (%4), noch Herunterzuladen: %5 (%6)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation>wird heruntergeladen: %1 von %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation>lokale keine Daten. Verfügbar: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation>lokale Daten veraltet (%1, %2 - auf dem Server: %3, %4)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation>Fehler beim Löschen der Datei %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation>Netzwerkfehler</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation>ungültige Anwort, keine Dateien gefunden</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation>lokale Daten sind aktuell (%1, %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation>keine Routing-daten verfügbar</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! erledigt !!!</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! fehlgeschlagen !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Schnellste</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Kürzeste</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Fahrrad</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Fußgänger</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Englisch (USA)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Englisch (Britisch)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Dänisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Niederländisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Französisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Deutsch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italienisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Norwegisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Spanisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Schwedisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>Modus "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>keine Kraftfahrzeugstraßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>keine Mautstraßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>keine saisonalen Straßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>keine unbefestigten Straßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>keine Fähren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>keine Überquerung von Landesgrenzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Routinganforderung an den Server gesendet. Bitte warten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Falsche Antwort vom Server:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Berechnungszeit: %1 s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>Fußgänger</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>Reiter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Rollstuhl</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Fahrrad</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Moped</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Motorrad</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>LKW</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>Kürzeste</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Falsche Routino Version gefunden. Erwartet wird %1, gefunden wurde %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>Schnellste</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Englisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Deutsch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Französisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Ungarisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Niederländisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Russisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Polnisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Eine Funktion wurde ohne gesetzte Datenbank aufgerufen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Eine Funktion wurde ohne gesetztes Profil aufgerufen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Eine Funktion wurde ohne gesetzte Sprache aufgerufen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>Die zu ladende vorgegebene Datenbank existiert nicht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>Die vorgegebene Datenbank konnte nicht geladen werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>Die vorgegebene XML Profildatei existiert nicht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>Die vorgegebene XML Profildatei konnte nicht geladen werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>Die vorgegebene XML Sprachdatei existiert nicht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>Die vorgegebene XML Profildatei konnte nicht geladen werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>Den geforderten Profilnamen gibt es in der geladenen XML Datei nicht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>Die geforderte Sprache gibt es in der geladenen XML Datei nicht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>Profil und Datenbank funktionieren nicht zusammen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>Das zu benutzende Profil wurde nicht validiert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>Das vorgegebene Profil enthält ungültige Daten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Die vorgegebenen Routingoptionen passen nicht zusammen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>Die Library und die API Version passen nicht zusammen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>Die Routenberechnung wurde vom Benutzer abgebrochen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>Es konnte keine Route zum Wegpunkt %1 gefunden werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Unbekannter Fehler: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>Profil "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, Modus "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Warnung...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translatorcomment>Message text points now to problem with routing database</translatorcomment>
-        <translation>Es gibt in der Routing-Datenbank keine Straße in der Nähe des zu platzierenden Wegpunktes.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Berechne Route mit %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Berechnungszeit: %1 s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Pfade mit Routino Daten hinzufügen oder entfernen. In einem Pfad können mehrere Datenbanken sein. Teilpfade werden nicht geparst.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Pfad für Routingdatendatei wählen...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Routino Datenbank erstellen</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Dateien auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Zielpfad auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! erledigt !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>Kein Bereich ausgewählt</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Genauer Modus</b><br/>Alle Elemente müssen vollständig innerhalb des gewählten Bereiches sein.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation><b>Überschneidender Modus</b><br/>Alle gewählten Elemente müssen innerhalb des gewählten Bereiches sein oder müssen diesen zumindest schneiden.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Tracks hinzufügen</b><br/>Fügt Tracks zur Liste der gewählten Elemente hinzu<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Wegpunkte hinzufügen</b><br/>Fügt Wegpunkte zur Liste der gewählten Elemente hinzu<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Routen hinzufügen</b><br/>Fügt Routen zur Liste der gewählten Elemente hinzu<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Gebiete hinzufügen</b><br/>Fügt Gebiete zur Liste der gewählten Elemente hinzu<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Tracks ignorieren</b><br/>Tracks werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Wegpunkte ignorieren</b><br/>Wegpunkte werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Routen ignorieren</b><br/>Routen werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation><b>Gebiete ignorieren</b><br/>Gebiete werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Datenbank '%1' durchsuchen</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Unbekannte Antwort</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Fehler:</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Fehlende Voraussetzung</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>MySQL kann derzeit nicht genutzt werden, weil der entsprechende Treiber (QMYSQL) nicht verfügbar ist.<br />Stellen Sie bitte sicher, dass das entsprechende Paket installiert ist.<br />Wenn Sie nicht wissen, was zu tun ist, sollten Sie einen Blick auf das <a href="%1">Wiki</a> werfen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Es gibt schon eine Datenbank mit dem Namen '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Neue Datenbank...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Datenbank öffnen...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Datenbank einrichten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Änderungen werden erst nach Neustart der Anwendung aktiv.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Zeitmarke lesen fehlgeschlagen. '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 existiert nicht</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Öffnen von %1 fehlgeschlagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lesen von %1 fehlgeschlagen:
-Zeile %2, Spalte %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>Keine SLF Datei: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Nicht unterstützte Revision %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Pause %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Runde %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fehler beim Lesen: %1
-Zeile %2, Spalte %3:
--%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation>Keine SML Datei: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Erholungszeit: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Trainingseffekt Spitze: %1 <br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energie: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation>Gerät: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation>Batteriebenutzung: %1 %/h</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation>Lokale Zeit benutzen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>In der Datei wurde keine UTC Zeit gefunden. Deswegen wird die lokale Zeit auf dem Computer verwendet. Sie können nachträglich die Zeit im Track mit einem entsprechenden Filter ändern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Diese SML Datei enthält keine Positionsdaten und kann nicht in QMapShack angezeigt werden: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Doppelt klicken, um die Höhe zu ändern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Datei %1 konnte nicht geladen werden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fehler beim Lesen: %1
-Zeile %2, Spalte %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>Keine TCX  Datei: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Diese TCX Datei enthält mindestens einen Workout, aber keine Aktivität oder einen Kurs. Da Workouts keine Positionsdaten beinhalten, können sie nicht in QMapShack geladen werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>Diese TCX Datei enthält keine Aktivität oder Runden: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>Datei existiert...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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>Die Datei existiert schon und wurde nicht mit QMapShack erstellt. Wenn Sie 'Ja' drücken werden die ursprünglichen Daten verloren gehen. Auch wenn die Datei mit QMapShack geladen wurde. QMapShack ist möglicherweise nicht in der Lage alle Daten zu laden und wieder zu speichern. Diese Daten werden verloren gehen. Wir empfehlen eine andere Datei zu benutzen. <b>Wollen Sie wirklich die Datei überschreiben?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>Der Track <b>%1</b>, den Sie ausgewählt haben, beinhaltet Trackpunkte mit einer ungültigen Zeitmarke. Das Gerät wird die erzeugte TCX Kursdatei nicht akzeptieren, wenn sie so bleibt wie sie ist. <b> Wollen Sie einen Filter anwenden, der die Geschwindigkeit auf 10m/s setzt und fortfahren?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Kurs</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Aktivität</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Abbrechen</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Track mit ungültiger Zeitmarke...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>Aktivität oder Kurs?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack weiß nicht als was der Track <b>%1</b> gespeichert werden soll. <b> Wollen Sie ihn als Kurs oder als Aktivität speichern? <b> Bedenken Sie, dass nur Wegpunkte die nahe genug am Track sind bei einem Kurs gespeichert werden. Wegpunkte werden bei einer Aktivität nicht gespeichert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Datei '%1' konnte nicht erstellt werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Datei '%1' konnte nicht geschrieben werden</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Das Speichern der GIS Daten ist fehlgeschlagen...</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Wanderung Zusammenfassung (built-in)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Vorlagenpfad...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>Datei '%1' konnte nicht gelesen werden.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Vorschau...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Farbe...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Format zurücksetzen</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Verfügbare Werkzeuge</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Ausgewählte Werkzeuge</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>GIS Daten speichern in...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <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="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Lesen der Daten fehlgeschlagen.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Pfad zu Benutzersymbolen...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Teilnehmer</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Wetter</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>Regen</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>Sonne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>Schnee</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>Wolken</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation>Wind</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>heiß</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>warm</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>kalt</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>eiskalt</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>neblig</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>schwül</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Charakter</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>einfache Wanderung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>Klettern</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>alpine Tour</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>langer Anstieg</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>lange Distanz</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>Klettersteig</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>Hagel/Graupel</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation>Beurteilung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>Beurteilung 5 Sterne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>Beurteilung 4 Sterne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>Beurteilung 3 Sterne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>Beurteilung 2 Sterne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>Beurteilung 1 Sterne</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>abgebrochen</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Ausrüstung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>Klettersteigset</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>Nachtausrüstung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>Schneeschuhe</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>Kletterausrüstung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>Ski</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>Campingausrüstung</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Details</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>Über....</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Tschechisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Deutsch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Niederländisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Französisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Russisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Übersetzung:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Spanisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Ausführbare Dateien:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Mitwirkende:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>... und Danke an alle Ersteller von ausführbaren Linux-Dateien für die gute Arbeit. Ganz besonderen Dank an Dan Horák und Bas Couwenberg für ihre Teilnahme an der Diskussion in der Mailingliste distributionsbezogene Punkte betreffend.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <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>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Kartenansicht einstellen...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Projektion & Datum</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Skalierung</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logarithmisch</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>Quadratisch (optimiert für TMS und WMTS Kacheln)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Tracks verbinden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Vorh. Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Verb. Tracks</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Koordinatenformat...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Route aus Wegpunkten erstellen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Track teilen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Löscht den ersten Teil des Tracks und behält den zweiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Behält beide Teile des Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Behält den ersten Teil des Tracks und löscht den zweiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Teilmodus:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Wählen Sie das aus, wenn das Ergebnis ein neuer Track sein soll.
-
-Wenn Sie beide Teile des Tracks behalten wollen, müssen neue Tracks erstellt werden.
-
-Wenn Sie nur die eine Hälfte behalten wollen, können Sie einfach die Punkte löschen, oder wählen Sie das, um einen neuen Track zu erstellen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Neuen Track erstellen</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>Das interne Datenbankformat von '%1' wurde geändert. QMapShack wird ihre Datenbank nun migrieren. Nach der Migration kann die Datenbank mit älteren QMapShack Versionen nicht mehr verwendet werden. Es wird empfohlen, zuerst ein Backup der Datenbank zu erstellen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Datenbank wird migriert...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>Migration durch den Benutzer abgebrochen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Migrieren von '%1' fehlgeschlagen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>Migration fehlgeschlagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>Die Datenbankversion von '%1' ist höher als die, die von QMapShack gelesen werden kann. Das wird nicht gehen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Initialisierung fehlgeschlagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Falsche Datenbankversion...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>Die Datenbank wurde von einer aktuelleren Version von QMapShack erstellt</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Initialisieren von '%1' fehlgeschlagen.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Passwort...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Passwort für Datenbank '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Wechsel zu Datenbankversion 5. Alle GIS Elemente werden übertragen.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Wechsel zu Datenbankversion 3. Alle GIS Elemente werden übertragen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Wechsel zu Datenbankversion 5. Alle GIS Elemente werden übertragen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Wechsel zu Datenbankversion 6. Alle GIS Elemente werden übertragen.</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Pfad für DEM Dateien setzen</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Ändert die Deckkraft der Karte</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klicken, um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Stellt den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als maximale Skalierung zu benutzen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Schummerung</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Hangneigung </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Sie können Höhendaten mit <b>"Menü -> Datei -> DEM Verzeichnisse angeben"</b> hinzufügen. Oder Sie klicken einfach <a href='setup'><b>hier</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Mit dem Kontextmenü (Klick mit rechter Maustaste auf einen Eintrag) können Sie einen Datensatz aktivieren. Um die Höhendaten in einer anderen Reihenfolge anzuzeigen, können Sie jeden Eintrag mit drag-n-drop verschieben.</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Aktivieren</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Nach oben verschieben</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Versteckt DEM hinter dem vorherigen</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Nach unten verschieben</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>DEM überlagert das nächste</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>DEM erneut laden</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Position:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Schwierigkeit</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Gelände</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Spoiler erneut laden</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Hinweis:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialog</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Das Gebiet wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Farbe</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Rahmenbreite</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Stil</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Deckkraft</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Punkte</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Position</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Tagebuch drucken</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Reihenfolge beibehalten</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Sort. entl. d. Tracks (mehrfach)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Sort. entl. d. Tracks (einmalig)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Tagebuch aktualisieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Stichwörter:</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Die Route wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Geschw.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Stil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Quelle</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Breite</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation>-
--
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Der Track wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>mit Richtungspfeilen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Diagramme</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Aktivität</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Trackaktivität festlegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Um Trackstatistiken zu differenzieren, wählen Sie für den gesamten Track eine Aktivität aus der Liste. Oder Sie wählen einen Teil des Tracks aus und weisen diesem eine Aktivität zu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Punkte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Zeit</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Höhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Delta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Entf.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Neigung</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Position</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Die benutzerdefinierte Sichtbarkeit der Richtungspfeile für diesen Track verwenden</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Die vorgegebene Sichtbarkeit der Richtungspfeile für alle Tracks benutzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Den benutzerdefinierten Skalierungsfaktor für diesen Track verwenden</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Den vorgegebenen Skalierungsfaktor für alle Tracks benutzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Benutzerdefinierte Grenzwerte für diesen Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Automatische Grenzwerte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Benutzerdefinierte Grenzwerte für alle Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Farbe</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Anstieg</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Abstieg</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Position:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Höhe</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Abstand:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Der Wegpunkt wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Bilder hinzufügen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Ausgewähltes Bild löschen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Datum/Zeit:</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Es gibt schon ein Projekt mit demselben Namen. Wenn Sie 'ok' drücken wird dieses entfernt und ersetzt.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Höhe bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Höhe</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Höhe aus aktivem digitalen Höhenmodell entnehmen.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Datenbank als GPX exportieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Exportpfad:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 ohne Erweiterungen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Starten</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Abbrechen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Schließen</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Trackpunkte entfernen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Alle ausgeblendeten Trackpunkte werden dauerhaft entfernt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Erweiterung von allen Trackpunkten entfernen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Entfernt </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>von allen Trackpunkten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Trackpunkte ausblenden (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Trackpunkte werden ausgeblendet, wenn der Abstand zu einer Linie zwischen benachbarten Punkten kleiner ist als</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation> m</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Den Filter jetzt anwenden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Höhendaten interpolieren</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Die Höhe eines Trackpunktes durch einen interpolierten Wert ersetzen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Qualität</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Vorschau</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Ungültige Punkte ausblenden</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Punkte mit ungültigen Daten ausblenden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Profil glätten (Median-Methode) </b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Glättet die Abweichung der Höhe von Trackpunkten mit einem Median-Filter der Größe </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation> Pkt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Zeit ändern</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Ändert den Trackbeginn auf </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.yy HH:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Zeitstempel verschleiern</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Erhöht den Zeitstempel um </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation> s</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>für jeden Trackpunkt. 0 s entfernt alle Zeitstempel.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Höhenversatz</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Fügt einen Versatz von </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>zur Höhe der Trackpunkte hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Höhendaten ersetzen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Ersetzt die Höhendaten durch Daten aus den geladenen DEM Dateien.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Ausgeblendete Trackpunkte wiederherstellen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Alle Trackpunkte werden wieder sichtbar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Geschwindigkeit ändern</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Ändert Geschwindigkeit auf </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> km/h</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Tracksegmente in Tracks umwandeln</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Für jedes Segment in diesem Track wird ein neuer Track erstellt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><p>Zwischenpunkte in Trackpunkte umwandeln</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Zwischenpunkte vom autom. Routing werden in echte Trackpunkte umgewandelt</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Hangneigung berechnen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Berechnet die Hangneigung basierend auf dem geladenen Höhenmodell.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>FIT Dekodierfehler: Nicht zutreffender Dekoderstatus %1 nach dem letzten Datenbyte der Datei.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation>Alter</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation>Eine neue Datenbank wird über einen Rechtsklick im Fenster erstellt.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[kein Name]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>Das Element ist nicht Teil des Projektes in der Datenbank.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>Es ist entweder ein neues Symbol oder es wurde in der Datenbank gelöscht.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>Das Element ist nicht in der Datenbank.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>Es könnte notwendig sein, das Element zu speichern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Erstversion.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation>Aufhören nachzufragen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3> Diese Element ist vermutlich schreibgeschützt, da nicht mit QMapShack erstellt. Normalerweise sollten importierte Daten nicht geändert werden. Wenn doch, drücken Sie 'OK'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Schreibgeschützt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Beschreibung:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>--- keine Beschreibung ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Kommentar:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- kein Kommentar ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Verknüpfungen:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- keine Verknüpfungen---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Name bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Geben Sie einen neuen %1namen ein.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Projekt speichern?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>Das Projekt wurde geändert. Speichern, bevor es geschlossen wird?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Tracks und Wegpunkte verknüpfen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>Hat das zu lange gedauert? Wollen Sie die Verknüpfung von Tracks und Wegpunkten auch in Zukunft für dieses Projekt überspringen?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Verknüpfung abgebrochen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Speichere "%1" nach...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Dateiname: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Wegpunkte: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Tracks: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Routen: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Gebiete: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <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>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Löschen...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation>Transparenz</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation>Ändert die Transparenz von allen GIS Elementen auf der Karte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation>Filter zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation>Filter einstellen</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Gitter einstellen...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Projektion</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>Grundeinstellung wiederherstellen</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Projektion aus der aktuellen Karte nehmen.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>Projektionshilfe</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Gitterfarbe</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>Gitterfarbe einstellen</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Quelldatenbank:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Starten</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Zieldatenbank:</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Verknüpfungen...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Typ</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Text</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>URI</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Datei</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Ansicht</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Fenster</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Werkzeug</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Karten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Dig. Höhenmodell (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Werkzeugleiste</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation>Streckenführung</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Kartenansicht hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Maßstab</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Kartenfont einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Gitter</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Gitter einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Mausrad umdrehen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Kartenverzeichnisse angeben</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>POI Text</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Nacht / Tag</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Kartentooltip</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>DEM Verzeichnisse angeben</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>Über</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Hilfe</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Kartenansicht einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>VRT Builder</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>Eine graphische Benutzerschnittstelle zu gdalbuildvrt </translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Kartenansicht speichern</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Speichert die aktiven Karten und DEM Dateien inklusive der Eigenschaften in einer Datei</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Kartenansicht laden</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Stellt die aktiven Karten und DEM Dateien inklusive der Eigenschaften aus einer Datei wieder her</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Erw. Profil</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Schließen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Kartenansicht klonen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Routino Datenbank erstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Kartenausschnitt speichern (drucken)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Einen ausgewählten Bereich der Karte drucken</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Koordinatenformat einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Ändert das Format der angezeigten Koordinaten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Kartenhintergrund einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Wegpunktsymbole konfigurieren</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Pfad zu individuellen Symbolen einrichten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Reiter schließen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation>Schnellstartanleitung</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Werkzeugleiste einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Fenster umschalten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Sichtbarkeit der andockbaren Fenster umschalten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Vollbild</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation>Min./Max. Trackwerte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation>Zeigt die minimalen und maximalen Werte der Trackdaten in der Kartenansicht entlang des Tracks an.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation>Datenbank</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation>Arbeitsplatz</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>GIS Daten laden</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Lade Datei als Projekt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Alle GIS Daten speichern</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation>Alle Projekte, die sich auf dem Arbeitsplatz befinden, speichern</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Zeitzone einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Leeres Projekt hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Mit Google suchen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Alle Projekte schließen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Einheiten einstellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Arbeitsplatz konfigurieren</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Speichert Einstellungen beim Beenden.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Datenbankimport aus QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>QLandkarte GT Datenbank importieren</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Sie können Karten mit <b>"Menü -> Datei -> Kartenverzeichnisse angeben"</b> hinzufügen. Oder Sie klicken einfach <a href='setup'><b>hier</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Mit dem Kontextmenü (Klick mit rechter Maustaste auf einen Eintrag) können Sie eine Karte aktivieren. Um die Karten in einer anderen Reihenfolge anzuzeigen, können Sie jeden Eintrag mit drag-n-drop verschieben.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Hilfe! Ich will Karten!
-Keine Lust die Anleitung zu lesen!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Aktivieren</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Nach oben verschieben</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Versteckt die Karte hinter der vorherigen</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Nach unten verschieben</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Die Karte überlagert die nächste</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Karten erneut laden</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>Diese Karte benötigt OpenSSL. Aufgrund rechtlicher Beschränkungen in einigen Ländern, ist OpenSSL nicht Bestandteil von QMapShack. Sie können sich auf der <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> nach Binäries umsehen. Sie müssen die Dateien libeay32.dll and ssleay32.dll in das QMapShack Programmverzeichnis kopieren.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Fehler...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: warte auf %2 Kacheln<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Kartenpfad einrichten</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Hauptverzeichnis für den Kachelspeicher von Onlinekarten:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Hilfe! Ich will Karten!
-Keine Lust die Anleitung zu lesen!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Ändert die Transparenz der Karte</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Stellt den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als maximale Skalierung zu benutzen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Gebiete</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Linien</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Punkte</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Details</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Speicherpfad</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>TYP Datei:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Externe TYP Datei vergessen und interne Typen verwenden.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Externe TYP Datei laden.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Cache (MB)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Verfallzeit (Tage)</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Erweiterte Optionen</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation>Kein Datenwert Quelle (-srcndata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation>Kein Datenwert Zieldatei (-vrtnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation>Projektion Zieldatei</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation>Diese Optionen sind für spezielle Fälle. Normalerweise werden sie leer gelassen. Für mehr Information lesen Sie die GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Hilfe</a>.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation><ol>
-<li>Wählen Sie eine oder mehrere Quelldateien.</li>
-<li>Geben Sie einen Namen für die VRT Zieldatei an.</li>
-<li>Drücken Sie "Start".</li>
-</ol>
-
-Tipp:
-<ul>
-<li>Wenn Sie mehrere Dateien haben, verschieben Sie diese in einen Unterordner des Kartenpfades. Erstellen Sie die VRT Datei im Kartenpfad.</li>
-<li>Benützen Sie die erweiterten Optionen, um einen "keine Daten" Wert anzugeben, wenn ihre Quelldateien keinen haben und keinen rechteckigen Bereich abdecken. Gebiete ohne Karte werden dann transparent dargestellt.</li>
-<li>Mit der "-a_srs" Option können sie eine Projektion/Datum vorgeben, wenn dieses in den Quellen fehlt. Damit werden die Daten aber NICHT neu projiziert.</li>
-</ul></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Quelldateien auswählen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Zieldatei auswählen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Neue Linie</b><br/>Erstellen Sie Punkte durch Verschieben des Mauscursors und Drücken der linken Maustaste. Mit der rechten Maustaste beenden Sie den Vorgang.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Punkt löschen</b><br/>Bewegen Sie den Mauscursor nahe an einen Punkt und drücken Sie die linke Maustaste um ihn zu löschen. <br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Punktebereich auswählen</b><br/>Mit der linken Maustaste wählen Sie den ersten Punkt aus. Mit einem erneuten Drücken der linken Maustaste wählen Sie den zweiten Punkt aus und dann wählen Sie eine der Optionen. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Punkt verschieben</b><br/>Bewegen Sie den Mauscursor nahe an einen Punkt und drücken die linke Maustaste, um ihn mit dem Cursor zu fangen. Verschieben Sie den Punkt mit der Maus. Setzen Sie den Punkt mit einem Linksklick. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Punkt hinzufügen</b><br/>Bewegen Sie den Mauscursor nahe an ein Liniensegment und drücken Sie die linke Maustaste, um einen Punkt hinzuzufügen. Der Punkt wird durch den Cursor gefangen und kann verschoben werden. Setzen Sie den Punkt mit einem Linksklick. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Kein Routing</b><br/>Alle Punkte werden mittels einer geraden Linie verbunden.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Auto Routing</b><br/>Die aktuellen Router Einstellungen erstellen eine Route zwischen Punkten. <b>Hinweis:</b> Der gewählte Router muss schnell routen können. Offline Router können dies gewöhnlich, Online Router nicht.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Vektor Routing</b><br/>Verbindet Punkte mit einer Linie einer geladenen Vektorkarte, soweit möglich.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1maße</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Entfernung:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Anstieg:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Abstieg:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation><br/><b>Karte verschieben</b><br/>Wenn Sie den linken Mausknopf gedrückt halten und die Maus bewegen, verschieben Sie die Karte.<br/><br/></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Zoom zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Bereichsauswahl beenden</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Speichern ...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Wegpunkt hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Teilen...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Um nur vertikale zu zoomen, STRG Taste gedrückt halten.
-Um nur horizontal zu zoomen, ALT Taste gedrückt halten.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Keine oder schlechte Daten.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Ausgabedatei auswählen</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Position...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Neue Position eingeben</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Falsches Positionsformat. Muss entweder 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-oder
-"[N|S] ddd.ddd [W|E] ddd.ddd"
-sein</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Karte drucken...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>Um einen Ausschnitt einer Online Karte zu drucken, müssen Sie sicherstellen, dass die Karte in den Cache geladen wurde.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Speichern</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>Um einen Ausschnitt einer Online Karte zu speichern, müssen Sie sicherstellen, dass die Karte in den Cache geladen wurde.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Drucken</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Bitte warten...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Proj4 Wizard</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>Zone</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>Benutzer definiert</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Ergebnis:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Nord (Nordpol)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Süd (Südpol)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Projektion</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Wegpunkt Projektion</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Wegpunkt kopieren und verschieben um:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation> m</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Variante</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation>ausgewähltes Profil anzeigen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation>nicht gestartet</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation>BRouter starten/stoppen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation>BRouter Logausgabe anzeigen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation>Einrichten</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation>Vorsicht! BRouter horcht auf allen verfügbaren Schnittstellen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Lizenz GPLv3</a></p></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation><p>Mit freundlicher Genehmigung von <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation><p>Routendaten <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation>BRouter Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation>BRouter Einrichtung</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation>bitte den zu verwendenden BRouters auswählen:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation>lokale Installation</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation>Experten Modus</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation>lokales BRouter Installations-Verzeichnis:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation>Installationsverzeichnis auswählen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation>Installation neu anlegen oder aktualisieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation>ausführbares Java Programm</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation>nach installiertem Java-programm suchen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation>BRouter-Version herunterladen und installieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation>zu installierende Datei</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation>Herunterladen und Installieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation>Verfügbare Profile</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation>Profil installieren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation>Profil entfernen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation>Installierte Profile</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation>Profil-Inhalt</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation>Adresse (URL) von BRouter-Web</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation>Adresse (URL) des Routing Service</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation>Adresse (URL) der Profile</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation>Servername</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation>Profil-Verzeichnis</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation>Segement-Verzeichnis</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation>Verzeichnis für angepasste Profile</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation>Maximale Laufzeit</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation>Anzahl Threads</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation>Java Optionen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation>Profil-Url</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Autobahnen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Mautstraßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>saisonale Straßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>unbefestigte Straßen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Fähren</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Sprache</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Landesgrenzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Vermeide:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Mit freundlicher Genehmigung von <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Modus</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Datenbank</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Fügt Pfade mit Routino Datenbanken hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Sprache</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Um Offline-Routing zu nutzen, müssen Sie einen Pfad zu einer lokalen Routendatenbank angeben. Benutzen Sie dazu den Knopf mit dem blauen Ordner. Sie können mit <b>Werkzeug->Routino Datenbank erstellen</b> eine solche Routendatenbank selber erzeugen.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Routino Datenbank einrichten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Quelldateien auswählen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Starten</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Zielpfad:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Dateipräfix</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation><p>Damit Sie eine Routingdatenbank für Routino erstellen können, müssen Sie *pbf Dateien von <a href='http://download.geofabrik.de/'>GeoFabrik</a> herunterladen. Es dauert sehr lange eine Datenbank für Routino zu erstellen und die erstellten Dateien sind sehr groß. Deswegen ist es nicht empfehlenswert ganze Kontinente herunterzuladen. Allerdings kann Routino nicht über mehrere Datenbanken routen. Deswegen sollten alle Länder, die von einer [...]
-
-<ol>
-<li>Eine oder mehrere *.pbf Dateien auswählen.</li>
-<li>Ein Verzeichnis für die Datenbank angeben.</li>
-<li>Einen Prefix bestimmen. Die Datenbank wird mit diesem Prefix gelistet.</li>
-<li>Den ""Start" Knopf drücken.</li>
-</ol>
-</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Ins Original speichern</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Als neu speichern</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Abbrechen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Punkte verschieben. (Strg+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Punkte hinzufügen. (Strg++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Einen Punktebereich wählen (Strg+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Kein Auto-Routing oder Fangen an Linie (Strg+O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Auto-Routing zwischen Punkten benutzen. (Strg+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Fängt die Linie entlang Linien einer Vektorkarte. (Strg+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Punkte löschen (Strg+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Letzte Änderung rückgängig machen</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Letzte Änderung wiederherstellen</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Details anzeigen und bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Gebiet in ein anderes Projekt kopieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Gebiet aus einem Projekt entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Form eines Gebietes ändern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Druckt gewählten Bereich.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Alle Punkte zwischen dem ersten und dem letzten Punkt löschen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Eine Route zwischen dem ersten und dem letzten gewählten Punkt berechnen.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Blendet alle Punkte aus.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Blendet alle Punkte ein.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Für den ausgewählten Bereich eine Aktivität festlegen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Kopiert Trackpunkte in neuen Track.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Details anzeigen und bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Kopiert die Route in ein anderes Projekt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Route aus einem Projekt entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Routenberechnung zurücksetzen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Route berechnen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Routenpunkte verschieben.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Die Route in einen Track umwandeln</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Kopiert alle gewählten Elemente in ein Projekt.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Route aus den gewählten Wegpunkten erstellen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Das Symbol wird für alle ausgewählten Wegpunkte geändert.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Alle ausgewählten Tracks zusammenführen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Für alle ausgewählten Tracks eine Aktivität festlegen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Löscht alle gewählten Elemente.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Wählt alle Elemente, die den gewählten Bereich schneiden.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Alle Elemente auswählen, die komplett innerhalb des ausgewählten Gebietes sind.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Fügt Tracks zur Auswahl hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Fügt Wegpunkte zur Auswahl hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Fügt Routen zur Auswahl hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Fügt Gebiete zur Auswahl hinzu.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Track in ein anderes Projekt kopieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Zeigt das Profil und detaillierte Informationen der Punkte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Position von Trackpunkten bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Details anzeigen und Trackeigenschaften bearbeiten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Track aus einem Projekt entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Wähle einen Punktebereich.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Track umkehren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Tracks verbinden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Zerteilt den Track am ausgewählten Punkt. Damit kann man:
-
-* schlechte Punkte am Anfang oder Ende eines Tracks entfernen
-* die Teile zum Planen neuer Touren verwenden
-* einen langen Track in Etappen zerteilen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Für den ganzen Track eine Aktivität festlegen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Kopiert den Track zusammen mit allen verknüpften Wegpunkten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Details anzeigen und editieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Wegpunkt in ein anderes Projekt kopieren.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Wegpunkt aus einem Projekt entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Inhalt als statische Legende zeigen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Wegpunkt an einen neuen Ort verschieben.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Wegpunkt klonen und um eine bestimmte Entfernung und einen bestimmten Winkel verschieben.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation>Den Abstandsradius ändern</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>Zwischen Abstandsalarm und Gebietsvermeidung umschalten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Den Abstandskreis entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation>Den Abstabdsradius ändern.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>Zwischen Abstandsalarm und Gebietsvermeidung umschalten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Den Abstandskreis entfernen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Suchen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Tippen Sie das Wort, das sie suchen ein und drücken Sie den 'Suchen' Knopf.
-Wenn Sie das Wort 'wort' eingeben, wird exakt nach dem Wort gesucht. Wenn Sie das Wort 'wort*' eingeben, dann muss 'wort' nur am Anfang stehen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Suchen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Schließen</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>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Element kopieren...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Ersetzt vorhandenes Element</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>Element nicht kopieren</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Einen Klon erstellen</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Ersetzen mit:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Element behalten:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Der Name des Klones wird mit '_Klon' erweitert</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>Auch für alle anderen Elemente anwenden.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Übergeordneten Ordner auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Verfügbar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Zu den ausgewählten Einträgen hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Von den ausgewählten Einträgen entfernen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Ausgewählt</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Ausgewählte Einträge nach oben</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Ausgewählte Einträge nach unten</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Ein Projekt auswählen...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Wähle ein Projekt aus der Liste oder gib einen neuen Projektnamen ein.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Neuer Projektname</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>Das neue Projekt wird erstellt als:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Datenbank</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Element kopieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Ersetzt vorhandenes Element</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Einen Klon hinzufügen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Der Name des Klones wird mit '_Klon' erweitert</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Ersetzen mit:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>Bezeichnung</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>Das Element nicht ersetzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Element verwenden:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>Auch für alle anderen Elemente anwenden.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Datenbank hinzufügen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Achtung!</span> Es wird empfohlen, das Passwortfeld leer zulassen, da QMapShack dies als Klartext speichert. Wenn Sie kein Passwort vergeben, werden Sie bei jedem Start danach gefragt.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>Kein Passwort benutzen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Benutzer</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Passwort</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Port:</b> Um den vorgegebenen Port zu nutzen, lassen Sie das Port-Feld leer.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Datei:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Fügt eine neue Datenbank hinzu.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Öffnet eine vorhandene Datenbank.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Filter anwenden auf</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>den Namen</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>den vollständigen Text</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Datenbankordner...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Ordnername</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Gruppe</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Projekt</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Sonstige</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Neuer Wegpunkt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Symbol</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Position</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Name</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Falsches Positionsformat. Muss entweder 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-oder
-"[N|S] ddd.ddd [W|E] ddd.ddd"
-sein</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Arbeitsplatz konfigurieren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>Arbeitsplatz beim Beenden speichern, und alle</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>Minuten</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>lauscht nach Datenbankänderungen anderer QMapShack Instanzen. Auf Port</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Vorlage einfügen...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Vorlagen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Wählen Sie einen Pfad mit ihren eigenen Vorlagen aus.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Vorschau</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Text bearbeiten...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Rückgängig</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Wiederherstellen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Ausschneiden</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Kopieren</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Einfügen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Vorl.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Standard</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Linksbündig</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Rechtsbündig</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Zentriert</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Blocksatz</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Unterstreichen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Fett</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Kursiv</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Schlicht</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Das Textformat wird entfernt bevor der Text eingefügt wird</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Alles auswählen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Löschen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Font zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Layout zurücksetzen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Normal</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Einfügen ohne das Format zurückzusetzen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Aus Vorlage einfügen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Text aus einer Vorlage erzeugen.</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Ausschneiden</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Kopieren</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Einfügen</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Zeitzone einstellen...</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Lokal</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automatisch</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Datum/Uhrzeit in</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>langem Format, oder</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>kurzem Format ausgeben</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Anmerkung:</b> Das Ändern der Einheiten wird bei einigen GUI-Elementen erst nach einem Neustart von QMapShack wirksam.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Werkzeugleiste einstellen</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>Werkzeugleiste ist im Vollbildmodus sichtbar</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Ausführen des externen Programms `%1` ist fehlgeschlagen: </translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>Der Prozess konnte nicht gestartet werden.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>Stellen Sie sicher, dass die erforderlichen Pakete installiert sind, `%1` existiert und ist ausführbar.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>Der externe Prozess ist abgestürzt.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>Ein unbekannter Fehler ist aufgetreten.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! fehlgeschlagen !!!</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Fehler</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Falsches Positionsformat. Muss entweder "[N|S] ddd mm.sss [W|E] ddd mm.sss" oder "[N|S] ddd.ddd [W|E] ddd.ddd" sein.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Position außerhalb der gültigen Werte.</translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Einheiten einrichten...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation>Längeneinheit</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>metrisch</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation>Steigung</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation>Grad (°)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation>Prozent (%)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Anmerkung:</b> Das Ändern der Einheiten wird bei einigen GUI-Elementen erst nach einem Neustart von QMapShack wirksam.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>imperial</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>nautisch</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Symbole...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Externe Symbole:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Alle individuellen Symbole müssen im *.bmp oder *.png Format sein.</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_es.ts b/src/locale/qmapshack_es.ts
deleted file mode 100644
index 920e67d..0000000
--- a/src/locale/qmapshack_es.ts
+++ /dev/null
@@ -1,10213 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="es_ES">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API V%2, se esperaba V%3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API V%2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(no DBUS: detección y manipulación de dispositivos desactivados)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>A pié</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Coche</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Teleférico</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Natación</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Barco</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Esquí</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>Sin Actividad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Total</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Ascenso:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Descenso:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Aeronáutica</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Transporte Público</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Distancia:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Velocidad en movimiento:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Velocidad Total:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Tiempo en movimiento:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Tiempo Total:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Vista %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Configuracion del Fondo del Mapa</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Esc.</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Imprimir salida de depuración en la consola.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Imprimir salida de depuración en archivo (carpeta temporal).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>No mostrar pantalla de bienvenida</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Archivo con la configuración de QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>Archivo</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Archivos para uso futuro</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>Ruta</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Todos tus datos agrupados en carpetas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Objetos Perdidos (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Objetos Perdidos</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Todos tus datos agrupados en carpetas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>Mi base de datos SQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation>Servidor:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation>(Sin PW)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Error: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Todos tus datos agrupados en carpetas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>Base de Datos SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Archivo:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Error: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation>%1 h</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 dias</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>Falló al cargar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>No se puede cargar el archivo "%1" . Se omitirá.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>Proyecto ya en base de datos ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>El proyecto "%1" Ya se ha importado a la base de datos. Se omitirá.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>El elemento %1 se ha cambiado por %2 (%3). 
-
-Para resolver este conflicto puedes crear y guardar una copia, forzar o eliminar tu versión y tomar la de la base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Conflicto con la base de datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Duplicar y Guardar</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Forzar guardado</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Toma remota</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Falta la carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>Error al guardar el proyecto. La carpeta se ha eliminado de la base de datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Guardar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Se produjo un error inesperado en la base de datos :
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>El proyecto '%1' Está a punto de actualizarse desde la base de datos. Sin embargo, hay cambios no guardados.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>¿Guardar cambios?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Desactivar</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Añadir o quitar rutas que contienen datos DEM. Puede haber múltiples archivos en una ruta, pero no se buscará en los subdirectorios. Los formatos soportados son: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Seleccione la ruta al archivo DEM...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>Fallo al cargar el archivo: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>El DEM debe tener una sola banda con datos de 16 o 32 bits.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>No se encontró información de georreferenciación.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>ninguno</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Buscando imagenes...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>No se encontraron imagenes</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>ninguna</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Creando diario...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation>Waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Información</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Comentario</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation>Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>Desde el inicio</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>Al siguiente</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>Al Final</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation>Ascenso: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation>Descenso: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation>Áreas</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Desea ordenar waypoints a lo largo de un track, pero ha desactivado la correlación de track y waypoint. ¿Desea volver a encenderlo?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Correlación..</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Resumen de todos los tracks del proyecto</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation>Distancia: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Rutas</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Editar nombre...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Introducir nuevo nombre de proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Editar etiquetas...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Introducir etiquetas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Imprimir Diario</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Reducir puntos visibles del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation>Cambiar altitud de puntos del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <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="177"/>
-        <source>Miscellaneous</source>
-        <translation>Diversos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Actividad</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Introduzca el nuevo valor de proximidad.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>foto%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Desconocido</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Archivo: expanda para cargar</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>Archivo - cargado</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>No se encontraron datos DEM para ese punto.</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Seleccionar ruta de exportación ...</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Crear %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation>Fallo al crear %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>¡Hecho!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>¡Cancelado por el usuario!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation>Error de base de datos: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>Guardar proyecto como %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation>¡Falló!</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>Extensión no disponible</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>grueso</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>medio</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>fino</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>Error decodificando FIT : CRC inválido.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>FIT error de descodificación: final inesperado del archivo %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>Error de descodificación FIT: tipo de base desconocido %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation>Falta la definición de campo para el campo de desarrollo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation>Error de decodificación FIT: campo no válido def nr %1 al crear el perfil de campo dev</translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>Error de descodificación FIT: la versión del protocolo %1 no es compatible.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>Error de descodificación de FIT: falta de coincidencia de firma de encabezado de archivo. El archivo no es FIT.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Falló al cargar archivo %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>Falló al cargar archivo FIT %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>Error decodificacion FIT: Arquitectura %1 no soportada</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>FIT error de decodificación: desplazamiento no válido %1 para el contenido de registro de estado</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Aviso...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <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="838"/>
-        <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>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>fino</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>normal</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>ancho</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>intenso</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>Duplicar</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Área: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Se cambió la forma del área.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Se cambió el nombre.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Se cambió la anchura del borde.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Se cambió el patró de relleno.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Se cambió la opacidad.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Se cambió el comentario.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Se cambió la descripción.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Se cambió el enlace</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Se cambió el color</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Duplicar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Se cambió el nombre.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Se cambió el comentario</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Se cambió la descripción</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Se cambió el enlace</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation>Longitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation>Tiempo: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation>Distancia: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Longitud: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Tiempo: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Última vez enrutado:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>con %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Puntos de ruta modificados.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>Archivo FIT %1 no contiene datos GPS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Fallo al abrir %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Solamente soporta formato lon/lat WGS84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Failed to read data.</source>
-        <translation>Fallo al leer los datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Duplicar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <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="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation>Tiempo: %1%2, Velocidad: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation>Tiempo en movimiento: %1%2, Velocidad: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Inicio: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Inicio: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Final: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Final: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Puntos: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>¡Datos de altitud invalidos!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>¡Marcas de tiempo no válidas!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>¡Posiciones inválidas!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Actividades: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Indice: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Indice: visible %1. total %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation>, Pendiente: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>Y %1 etiquetas no mostradas</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Distancia: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>En movimiento: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Ocultar punto %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Ocultar puntos %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>, %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation>Puntos inválidos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation>El track '%1' tiene %2 puntos inválidos de  %3 visibles. ¿Quiere ocultar los puntos inválidos?</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation type="unfinished">min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation type="unfinished">max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation>Longitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <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="388"/>
-        <source>, %1-, %2-</source>
-        <translation>, %1-, %2-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Tiempo: -, Velocidad: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>En movimiento: -, Velocidad: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="589"/>
-        <source>Ele.: %1%2</source>
-        <translation>Altitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation>, Velocidad: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Ascenso: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Descenso: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Ascenso: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation>, Descenso: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Distancia: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation>, En Movimiento: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Ascenso: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Descenso: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Ascenso: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation>, Descenso: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Distancia: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation>, Tiempo: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Puntos eliminados definitivamente %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Mostrar puntos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Se cambió el nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Se cambió el comentario</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Se cambió la descripción</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Se cambió el enlace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Se cambió altitud de los puntos %1 a %2 %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Actividad cambiada a '%1' para todo el track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Actividad cambiada a '%1' para el rango (%2..%3).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Ocultar puntos con algoritmo Douglas Peuker (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Ocultar puntos con datos inválidos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Restaurados todos los puntos a visible</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Elminados definitivamente todos los puntos ocultos del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Pefil suavizado con Mediana de %1 puntos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>Añadida pendiente del terreno desde archivo DEM</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Datos de altitud sustituidos por valores de fichero DEM.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Reemplazados datos de altitud con valores interpolados. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>altitud desplazada %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Cambiado el inicio de track a %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Eliminadas las marcas de tiempo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Marcas de tiempo ficticias con incremento de %1 sec.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Velocidad modificada a %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (Segmento %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>Eliminada extensión %1 a todos los puntos del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Convertidos puntos secundarios del ruteo a puntos de track</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Copiar información del encabezado del track de QLandkarte GT</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Archivado</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>No Disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>Duplicar</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation>Altitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation>Proximidad: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Se cambió el nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Se cambió la posición</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Se cambió la altitud</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation type="unfinished">Eliminada proximidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Se cambió la proximidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Se cambió el icono</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Se cambió el comentario</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Se cambió la descripción</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Se cambió el enlace</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Se cambió la imagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Añadir Imagen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation type="unfinished">Cambiado a radio de proximidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation type="unfinished">Cambiado a área prohibida</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Debido a cambios en el sistema de base de datos QMapShack olvidó el nombre de archivo de su base de datos  '%1'. Debe seleccionarlo de nuevo en el siguiente paso.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Seleccionar archivo de base de datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Añadir Base de Datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Añadir carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Renombrar carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Copiar carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Mover carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Eliminar Carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Importar desde archivos..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Exportar a GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Eliminar Elemento</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Buscar base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Sincronizar con base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Quitar Base de Datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Vacío</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Quitar Base de Datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>¿Seguro que quiere eliminar '%1' de la lista?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>¿Está seguro que quiere borrar las carpetas seleccionadas y sus subcarpetas de la base de datos?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Mala operación...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>La carpeta de destino es una subcarpeta de la que se va a mover. Esto no funcionará.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Nombre de carpeta...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Renombrar carpeta:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>¿Desea realmente eliminar '%1' de la carpeta '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Borrar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>Importar datos GIS...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Eliminar Carpeta de la Base de Datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Eliminar elementos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>¿Desea realmente eliminar todos los elementos de 'Objetos Perdidos'? Se eliminarán definitivamente.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>¿Desea realmente eliminar todos los elementos.seleccionados de 'Objetos Perdidos'? Se eliminarán definitivamente.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Guardar</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Editar..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Cerrar</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Actualizar Proyecto en Dispositivo</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Editar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Copiar a...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Guardado Automático</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Guardar como...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Copiar tracks y waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Mostrar burbuja de texto</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Mover Waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Proyectar Waypoint...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation>Cambiar radio</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation>Herramienta área prohibida</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation type="unfinished">Borrar Radio</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Instrucciones de ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Calcular ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Recalcular ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Editar ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>Convertir en track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Crear ruta</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Cambiar icono</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Establecer actividad del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Descartar elementos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
-        <translation><b>Actualizar dispositivos</b><p>Actualizar %1<br/>Por favor espere...</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation>Eliminar Proyecto...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>¿Desea realmente eliminar %1?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Perfil del Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Mostrar en el mapa</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Ocultar en el mapa</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Ordenar por fecha</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Ordenar por nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Guardar como GPX 1.1 w/o ext...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Enviar a dispositivo</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Sincronizar con base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Seleccionar Rango</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Editar Puntos del Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Invertir Track</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Combinar Tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Editar Puntos del Área</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Borrar</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Guardando espacio de trabajo. Por favor espere.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Cargando espacio de trabajo. Por favor espere.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Cerrar todos los proyectos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>Esto eliminará todos los proyectos del espacio de trabajo.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation type="unfinished">Cargar proyecto</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation type="unfinished">El proyecto "%1" ya está en el area de trabajo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation type="unfinished"><b>Selección de elementos: </b>Elemento seleccionado de la lista del espacio de trabajo. Haga clic en el mapa para volver al comportamiento normal de selección del mouse.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation type="unfinished">Copia elementos....</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation type="unfinished">Cambiar símbolos de waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation type="unfinished">Dividir Track...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation type="unfinished">¿Desea borrar el track original?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Fallo al cargar archivo %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>No es un archivo GPX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>El archivo ya existe ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Fallo al crear el archivo '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Fallo al escribir en el archivo '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Fallo guardando datos GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1m, %2m </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>N %1m, E %2m </translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation>de %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Cortar historial antes</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Cortar historial despues</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Borrar historial</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>El borrado es permanente y no se puede deshacer. <b>¿Esta seguro de querer borrar el historial anterior a este paso?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>Importar Base de Datos de QLandKarteGT</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Seleccionar origen de base de datos...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Seleecionar destino de base de datos...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation>Velocidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation>Cadencia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. Aire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura del Aire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. Agua</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura del Agua</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation>Profundidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation>Profundidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation>R. Cardiaco</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation>Ritmo Cardiaco</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation>Cadencia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation>Velocidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation>Acl.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation>Aceleración</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation>Carrera</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation>Carrera</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Temperatura</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation>Dist.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation>Distancia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation>Altitud</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation>Energía</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation>Energía</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation>Pres. N. Mar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation>Presión a Nivel del Mar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation>Vel. Vcal.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation>Velocidad Vertical</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation>Pendiente</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation>Velocidad sobre la distancia *</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation>Velocidad sobre el Tiempo*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation>Altitud*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation>Progreso</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation>Progreso*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation>Pendiente Terr</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation>Pendiente del Terreno*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Pendiente*</translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation>Fallo al cargar archivo %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation>%1 no es un archivo log de Openambit</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation>Dispositivo: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Tiempo de recuperación: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Efecto Pico de Entrenamiento: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energía: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation>Uso de la hora local ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>No se ha encontrado hora UTC en el archivo %1. Se usará la hora local del ordenador. Puede ajustar la hora usando un filtro de tiempo si es necesario.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Este archivo LOG no contiene datos de posición que puedan ser mostrados por QMapShack: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Objetos Perdidos</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Usar <b>Menu->ver->Añadir vista de mapa</b> para abrir nueva vista, o <b>Menu->archivo->cargar vista de mapa</b> para restaurar una vista guardada. O click <a href='nueva vista'>aquí</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation>Altitud: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation>Pendiente: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Malla: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>Cargar Datos GIS...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Seleccionar archivo de salida</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>Vista de QMapShack (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Seleccionar archivo a cargar</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Fatal...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack detectó una biblioteca Proj4 mal instalada. Las tablas de traducción para las proyecciones EPSG usualmente almacenadas en /usr/share/proj faltan. Póngase en contacto con el responsable del paquete de su distribución para solucionarlo.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation>No hay mapas en este momento. QMapShack no es divertido sin mapas. Puede instalar mapas al presionar la tecla Ayuda! ¡Quiero mapas! En el botón ' mapas ',o puede presionar la tecla F1 para abrir la documentación en línea que le indica cómo usar QMapShack.
-
-Si no es divertido, ¿por qué no proporciona mapas? Bueno para alojar mapas listos para descargar e instalar requiere un buen servidor. Y esto no es un servicio gratuito. El proyecto carece de dinero. Además, los datos de mapa y DEM tienen un copyright. Por lo tanto, el titular de los derechos de autor tiene que ser preguntado antes de empaquetar los datos. Esto no es tan fácil como podría sonar y para algunos datos que tiene que pagar royalties. El proyecto simplemente carece de recursos [...]
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Falló ...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>No especificado</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Francés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Alemán</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Holandés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Inglés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italiano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Finés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Sueco</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Español</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Euskera</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Catalán</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Gallego</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Galés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gaélico</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Danés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Noruego</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portugués</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Eslovaco</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Checo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Croata</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Húngaro</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Polaco</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Turco</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Griego</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Esloveno</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Ruso</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Estonio</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Letón</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Rumano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Albanés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosnio</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Lituano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Serbio</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Macedonio</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Búlgaro</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Autovía Primaria</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Autovía secundaria</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Otras autovías</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Carretera principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Carretera secundaria</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Calle residencial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Callejón/Carretera privada</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Acceso a autopista, baja velocidad</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Acceso a autopista, alta velocidad</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Carretera sin asfaltar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Conexión con autovía principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Rotonda</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Ferrocarril</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Línea de costa</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Sendero</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Arroyo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Zona horaria</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Ferry</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Frontera de estado/provincia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Frontera de condado/término municipal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Frontera internacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Río</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Curva de nivel menor</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Curva de nivel intermedia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Curva de nivel principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Curva batimétrica menor</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Curva batimétrica intermedia</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Curva batimétrica principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Curso intermitente</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Pista de aterrizaje</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Tubería</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Línea eléctrica</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Límite marítimo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Límite de peligro</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Área urbana grande (&gt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Área urbana pequeña (&lt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Área de alojamienos rurales</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Base militar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Aparcamiento</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Garaje</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Aeropuerto</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Centro comercial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Puerto deportivo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Universidad/Facultad</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Hospital</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Complejo industrial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Reserva natural</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Área creada por el hombre</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Complejo deportivo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Campo de golf</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Cementerio</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Parque nacional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Parque urbano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Parque regional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Bosque</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Océano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation>Azul (desconocido)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Mar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Lago grande</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Lago mediano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>Lago pequeño</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Lago principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Río Principal</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Río Grande</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Río Mediano</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Río Pequeño</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Agua intermitente</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Marisma/Ciénaga</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Glaciar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Invernadero/Plantación</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Monte bajo</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Tundra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Llanura</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Cargar archivo TYP externo...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Fallo al cargar archivo TYP: %1
-Se vuelve al TYP interno.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Fallo al leer: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Fallo al abrir: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Formato de archivo incorrecto: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Fallo al leer la estructura del archivo: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Cargando %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Cancelado por el usuario: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>El archivo está en formato NT. QMapShack no puede leer archivos en formato NT: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>El archivo contiene datos bloqueados y/o encriptados. Garmin no desea que utilice este archivo con ningún otro software que el suministrado por ellos.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Punto de Interés</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Desconocido</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Área</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Desactivar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>¿Dónde desea almacenar mapas?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Falló...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Fallo al abrir: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Formato de archivo incorrecto: </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Añada o elimine rutas que contengan mapas. Puede haber múltiples mapas en una ruta, pero no se buscará en subdirectorios. Los formatos soportados son: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Selecciona la ruta del mapa...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Seleccionar carpeta raiz...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>Seleccionar archivo TYP...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Éste no es un archivo en formato RMAP de TwoNav.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Sub-formato desconocido.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Versión desconocida.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Fallo al leer el punto de referencia.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Proyección y datum desconocidos (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Capa %1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Fallo al leer el archivo: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>El archivo debe ser con paleta de 8 bits o escala de grises indexada.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>No se encontró información de georreferenciación.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>Crear GDAL VRT</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Seleccionar ficheros de origen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Seleccionar fichero VRT de salida...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>¡¡¡ hecho !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Fallo al leer: %1
-Estructura desconocida.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Servicio inesperado. '* WMTS 1.0.0' es el esperado. pero se ha leido '%1 %2'.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>No se encontró información de georreferenciación.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Área</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Editar área</b><br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>área</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Ruta</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation></b>Editar puntos de ruta<br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>Ruta</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Editar puntos del track</b><br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>¡Cuidado!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Esto sustituirá todos los datos del original con una simple línea de coordenadas. Todos los demás datos se perderán definitivamente.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>track</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>Añadir POI como Waypoint </translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Añadir Waypoint</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Añadir Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Añadir ruta</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Añadir Área</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Seleccionar elementos del mapa</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Copiar posición</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Copiar posicion (malla)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Guardar/imprimir mapa</b><br/>Seleccione un area rectangular en el mapa pulsando el boton izquierdo del ratón y moviendolo hacia la esquina opuesta. Cancele con el boton derecho. Ajuste la seleccion haciendo clic y moviendo las esquinas.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Seleccionar rango</b><br/>Seleccione el punto inicial con el botón izquierdo del raton. Fije el punto final con una segunda pulsacion. El rango seleccionado se marca en verde. Un clic con el botón derecho del ratón abandona la selección del rango<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Seleccionar elementos en el mapa</b><br/>Seleccione un area rectangular con el boton izquierdo del ratón. Cancelar con clic derecho. Ajuste la seleccion haciendo clic y desplazando en las esquinas.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Seleccionado:</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 waypoints<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 tracks<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 rutas<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 áreas<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Seleccionar imagenes...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation>Distancia [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation>Tiempo</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation>Distancia [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation>Alt. [%1]</translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Imprimir mapa...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Guardar mapa como imagen...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Imprimir propiedades...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Páginas: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Zoom con la rueda del ratón en el mapa inferior para cambiar la resolución:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Imprimir páginas.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Guardar mapa...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Tiempo transcurrido: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Tiempo transcurrido: %1 segundos.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>norte</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>sur</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>El valor
-'%1'
-no es una definición de sistema de coordenadas válido:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Editar nombre...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Introduzca el nuevo nombre del waypoint.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished">Fallo al abrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation type="unfinished">No se pudo convertir ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation>El archivo contiene superposiciones que no se pueden convertir. Esto se debe a que QMapShack no es compatible con todos los tipos de superposición de QLandkarte.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Convirtiendo base de datos de version 4 a 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Convirtiendo base de datos de version 5 a 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Convirtiendo base de datos de version 6 a 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Convirtiendo base de datos de version 7 a 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Convirtiendo base de datos de version 8 a 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Abrir base de datos:%1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Carpetas:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Tracks:           %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Rutas:           %1 (Sólo se copiará la ruta básica)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Waypoints:        %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Superposiciones:         %1 (las áreas se convertirán como áreas, las líneas de distancia se convertirán en tracks, todos los demás elementos de superposición se perderán</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Diarios:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Selecciones de mapa:   %1 (NO pueden convertirse a QMapShack)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Comenzar a convertir base de datos a %1------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Fallo al crear la base de datos de destino.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Cancelar ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Hecho ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Restaurar carpetas...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>Importadas %1 carpetas y %2 diarios</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Copia elementos....</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>Importado: %1 tracks, %2 waypoints, %3 routes, %4 areas</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Importar carpetas...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>No puede convertirse superposición del tipo '%1' </translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Track corrupto...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>El número de puntos del track no es igual al número de puntos de datos de entrenamiento.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>El número de puntos de track no es igual al número de datos extendidos</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>El número de puntos del track no es igual al número de datos extendidos ocultos.</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Archivo existente...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>¿Eliminar los %1?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Eliminar el archivo %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>Descartar elemento %2 de la base de datos de QLandKarteGT</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Fallo al abrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation>original</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation>Primera alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation>Segunda alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation>Tercera alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation>BRouter (offline)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (online)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation>perfil: %1, alternativa: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation>BRouter no admite más de un área prohibida en esta versión, considere actualizar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation>La respuesta está vacía</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation>Mala respuesta del servidor: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>BRouter</b><br/>Solicitud de enrutamiento enviada al servidor. por favor espere...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation>Calcular ruta con %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>BRouter</b><br/>Mala respuesta del servidor:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation>Tiempo empleado en el cálculo: %1s</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation>En marcha</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation>comenzando</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation>QMapShack se comunica con BRouter a través de una conexión de red. Por lo general, esto se hace en una dirección especial que no se puede alcanzar desde fuera de su dispositivo. Sin embargo BRouter escucha las conexiones en todas las interfaces disponibles. Si usted está en su propia red privada con un cortafuegos activo, esto no es un gran problema. Si usted está en una red pública cada puerto abierto es un riesgo, ya que puede ser utilizado por otra persona para co [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation>Aviso...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation>Comprendo el riesgo. No avisar de nuevo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation>Parado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation>No instalado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation>online</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation>%1 no accessible</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation>%1 resultado inválido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation>Error al analizar configuración online:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation>Error de red</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation>Restablecer valores por defecto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation>Abrir carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation>Seleccionar ejecutable Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation>Seleccione carpeta de instalacion de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation>La carpeta seleccionada no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation>Cree una carpeta e instale BRouter allí</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation>Instalacion de BRouter exixtente</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation>Actualizar instalación de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation>Carpeta vacia, instale BRouter aquí</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation>Crear nueva instalacion de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation>Parece ser un ejecutable Java válido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation>no parece un ejecutable Java válido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation>Ejecutable Java no encontrado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation>Error al cargar la página de instalación en %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation>Ninguna versión de BRouter para instalar seleccionada</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation>Seleccione %1 para descargar e instalar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation>Aviso...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation>Descarga:%1<br/><br/> Esto descargará e instalará un archivo zip desde una ubicación de descarga que no está protegida por ningún estándar, usando HTTP normal. Normalmente esto debe ser HTTPS. El riesgo es que alguien redireccione la solicitud y le envíe un código postal de reemplazo con malware. No es posible que QMapShack lo detecte. <br/> Si no entiende esto o si tiene alguna duda, no proceda y cancele. Utilice la versión web de BRouter en su lug [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation>Entiendo el riesgo, continuar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation>Iniciada descarga %1 </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation>Error de red: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation>Finalizada descarga %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation>Descomprimiendo:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation>Preparado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation>Descarga de BRouter fallida: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation>Recuperar los perfiles disponibles de %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation>Contenido del perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation>Error creando la carpeta %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation>Error: La carpeta %1 no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation>Error creando archivo %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation>Error escribiendo el archivo %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation>Continuar con la configuración</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation>Se están determinando los datos de enrutamiento disponibles.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation>Selección caducada</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation>Borrar selección</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation>Borrar Selección</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation>Descargar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation>Error al crear la carpeta de segmentos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation>No se puede analizar: %1 no es una fecha</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation>No se puede analizar: %1 No es un tamaño válido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation>Error al recuperar los datos de enrutamiento disponibles de %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation>Carpeta de segmentos no existe:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation>Error creando archivo %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation>%1 : Solicitud no válida de nombre de archivo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation>Ningún archivo abierto asignado a la solicitud de %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation>Error al escribir el archivo %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation>Error renombrando archivo %1 a %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation>actualizado: %1 (%2), obsoleto: %3 (%4), Para descargar: %5 (%6)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation>Descargando: %1 of %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation>Sin datos locales, disponible online: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation>Datos locales obsoletos (%1, %2 - remoto%3, %4)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation>Error eliminando %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation>Error de red</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation>Resultado no válido, no se encuentran archivos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation>Datos locales actualizados (%1, %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation>Datos de ruteo no disponibles</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>¡¡¡Hecho!!!</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! fallo !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Más rapido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Más corto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Peatón</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Inglés USA</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Inglés UK</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Danés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Holandés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Francés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Alemán</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italiano</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Noruego</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Español</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Sueco</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>modo "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>Evitar autopistas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>Evitar peajes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>Evitar estacionales</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>Evitar no pavimentadas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>Evitar Ferrys</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>No cruzar fronteras</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Solicitud de ruta enviada al servidor. Por favor,espere...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Mala respuesta del servidor:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation>Tiempo calculando: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>A pie</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>A caballo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Silla de ruedas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Bicicleta</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Ciclomotor</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Automóvil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Mercancias</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>El más corto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Routino se encuentra en una versión incorrecta. Esperado %1 encontrado %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>El más rápido</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Inglés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Alemán</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Francés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Húngaro</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Holandés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Ruso</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Polaco</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Se llamó una función sin la variable de base de datos establecida.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Se llamó una función sin la variable de perfil establecida.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Se llamó una función sin el conjunto de variables de traducción</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>La base de datos especificada no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>No se pudo cargar la base de datos especificada</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>El archivo XML de perfiles no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>El archivo XML de perfiles especificado no está cargado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>El archivo XML de traducción especificado no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>El archivo XML de traducción especificado no está cargado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>El nombre del perfil solicitado no existe en el archivo XML cargado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>El idioma solicitado no existe en el archivo XML cargado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>El perfil y la base de datos no funcionan juntos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>El perfil que se utiliza no ha sido validado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>El perfil especificado por el usuario contenía datos no válidos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Las opciones de enrutamiento especificadas no son coherentes entre sí</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>Hay un desajuste entre la biblioteca y la versión de la API del llamante</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>El cálculo de la ruta ha sido cancelado por el usuario</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>No se pudo encontrar una ruta al waypoint %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Error desconocido: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>perfil "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, modo "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Aviso...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation>En la base de datos de enrutamiento no hay ninguna carretera cerca de las coordenadas para colocar un waypoint.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Calcular ruta con %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Tiempo de cálculo: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Agregar o quitar carpetas que contienen datos de Routino. Puede haber varias bases de datos en una carpeta, pero no se analiza ninguna subcarpeta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Seleccione la carpeta del archivo de datos de enrutamiento</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (offline)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (online)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (online)</translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Crear base de datos de Routino</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Seleccionar ficheros de origen...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Seleccionar carpeta de destino...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>¡¡¡Hecho!!!</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>No hay rango seleccionado</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Modo exacto</b><br/>Todos los elementos seleccionados estan completamente dentro del área.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation>Modo de intersección</b><br/>Todos los elementos seleccionados deben estar dentro o al menos intersecar el área seleccionada.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Agregar tracks</b><br/>Agregar tracks a la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Agregar waypoints</b><br/>Agregar waypoints a la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Agregar rutas</b><br/>Agregar rutas a la lista de elementos seleccionados <br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Agregar áreas</b><br/>Agregar áreas a la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Ignorar tracks</b><br/>Ignorar tracks de la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Ignorar Waypoints</b><br/>Ignorar waypoints de la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Ignorar rutas</b><br/>Ignorar rutas en la lista de elementos seleccionados<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation>Ignorar áreas</b><br/>Ignorar áreas de la lista de elementos seleccionados<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Buscar base de datos '%1':</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Respuesta desconocida</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Error: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Falta un requisito</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>SQL no se puede utilizar en este momento, ya que el controlador correspondiente (QMYSQL) no está disponible.<br />Asegúrese de haber instalado el paquete correspondiente.<br />Si usted no sabe qué hacer ahora debe <a href="%1">consultar la wiki</a>.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Ya existe una base de datos con el nombre '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Nueva base de datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Abrir base de datos...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Configurar la base de datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Los cambios surtirán efecto tras reiniciar la aplicación.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Fallo al cargar el archivo %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Error al analizar la marca de tiempo %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 no existe</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>%1 no es un archivo SLF</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Revisión no admitida %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Pausa %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Vuelta %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation>Fallo al cargar archivo %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation>No es un archivo sml: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Tiempo de recuperación: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Efecto Pico de Entrenamiento: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energy: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation>Device: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation>Uso de la Batería: %1 %/hour</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation>Uso de hora loccal</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>No se ha encontrado hora UTC en el archivo %1. Se usará la hora local del ordenador. Puede ajustar hora usando un filtro de tiempo si es necesario.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Este archivo SML no contiene ningún dato de posición y QMapShack no puede mostrarlo: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Doble clic para editar datos de altitud</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation>%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Fallo al cargar el archivo %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Fallo al abrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Fallo al leer: %1
-línea %2, columna %3.
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>%1 no es un archivo TCX</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Este archivo TCX contiene al menos un entrenamiento, pero ninguna actividad ni carrera. Como los entrenamientos no contienen datos de posición, no se pueden importar a QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>El archivo TCX %1 no contiene ninguna actividad ni carrera</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>El archivo ya existe ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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 existe y no ha sido creado por QMapShack. Si pulsa 'yes' Se perderán todos los datos de este archivo. Incluso si este archivo contiene datos y ha sido cargado por QMapShack, QMapShack puede no ser capaz de cargar y almacenar todos los elementos de este archivo. Estos elementos se perderán. Se recomienda usar otro archivo. <b>¿Realmente desea sobrescribir el archivo?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>El track <b>%1</b> Que ha seleccionado contiene puntos y marcas de tiempo no válidas. Es posible que el dispositivo no acepte el archivo de curso TCX generado si se deja como está <b>¿Desea aplicar un filtro con velocidad constante (10 m / s) y continuar?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Carrera</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Actividad</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Cancelar</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Track con marcas de tiempo inválidas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>¿Actividad o carrera?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack no sabe cómo <b>%1</b> Debe ser guardado. <b>¿Desea guardarlo como carrera o como actividad? </b>Recuerde que sólo se guardarán waypoints lo suficientemente cerca del track al guardar como carrera. Los waypoints no se guardarán al guardar como actividad.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Fallo al crear el archivo '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Fallo al escribir en el archivo '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Error al guardar datos GIS</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>elige una...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Datos de la actividad (genérico)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Ruta de las Plantillas...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>Fallo al leer la plantilla %1.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Previsualizar...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Color...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Restablecer formato</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Acciones disponibles</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Acciones seleccionadas</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Fallo al abrir %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Guardar los datos GIS en...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Solamente soporta formato lon/lat WGS84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Fallo al leer los datos.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Carpeta de iconos de usuario...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation>Ficha</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Participantes</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Meteo</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>lluvia</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>sol</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>nieve</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>nubes</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation>viento</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>caluroso</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>templado</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>frío</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>bajo cero</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>niebla</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>humedad</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Carácter</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>Excursión fácil</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>escalada</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>Actividad alpina</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>gran desnivel</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>larga distancia</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>ferrata</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>granizo</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation>Calificación</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>***** Excepcional</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>**** Muy buena</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>*** Buena</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>** Regular</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>* Mala</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>Intento frustrado</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Material</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>ferrata</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>iluminación</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>raquetas</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>escalada</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>ski</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>acampada / vivac</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Detalles</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>Acerca de...</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation><b>QMapShack</b>, Versión</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation>Qt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation>GDAL</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation>Proj4</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>checo:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Alemán:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>holandés:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Francés:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Ruso:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Traducción:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Español:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Binarios:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Colaboradores:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation>Jose Luis Domingo, Javi Segovia</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>... y gracias a todos los mantenedores  de Linux por hacer un gran trabajo. Agradecimientos especiales a Dan Horák y Bas Couwenberg por estar presentes en la lista de correo para discutir temas relacionados con la distribución</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <source>This software is licensed under GPL3 or any later version</source>
-        <translation>Este software esta bajo licencia GPL3 o posterior</translation>
-    </message>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Configurar Vista de Mapa...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Proyección y Datum</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Escalas</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logarítmica</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>Cuadrada (optimizada para teselas TMS y WMTS)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Diálogo</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Combinar Tracks...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Tracks disponibles</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Tracks combinados</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Formato de coordenadas...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>N48° 53.660 E013° 31.113</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>N48.8943° E013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Crear una ruta con los waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Dividir track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Borrar primera parte del track y conservar la segunda</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Mantener ambas partes del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Conservar primera parte del track y borrar la segunda</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Modo de división</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Compruebe esto para almacenar el resultado en un nuevo track.
-
-Si mantiene ambas partes del track, tiene que crear otros nuevos.
-
-Si desea mantener sólo una mitad puede simplemente eliminar los puntos, o marcar esto para crear un nuevo track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Crear nuevo track</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>El formato interno de base de datos de  '%1' ha cambiado. QMapShack hará la conversión de tu base de datos ahora.Después de esta conversión la nueva base de datos no puede utilizarse en versiones más antiguas de QMapShack. Se recomienda hacer una copia de seguridad antes de comenzar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Migrar base de datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>Migracion cancelada por el usuario</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Fallo al migrar '%1'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>La migración falló</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>La versión de base de datos '%1' Está más avanzado que el entendido por su instalación de QMapShack. Esto no funcionará.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Inicializacion fallida</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Versión errónea de la base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>Base de datos creada por la nueva versión de QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Fallo al iniciar '%1'.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Contraseña...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Contraseña de la base de datos '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Actualizar a versión 5 de base de datos. Migrar todos los elementos GIS.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Actualizar base de datos a versión 3. Migrar todos los elementos GIS</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Actualizar base de datos a versión 5. Migrar todos los elementos GIS</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Actualizar base de datos a versión 6. Migrar todos los elementos GIS</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Configurar carpeta de archivos DEM</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>ficha</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Cambiar la opacidad del mapa</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala mínima a la que mostrar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Controle el rango de escalas para las cuales desea que se muestre el mapa. Use los dos botones a izquierda y derecha para definir la escala actual como  la escala mínima o máxima para el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala máxima a la que mostrar el mapa</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Sombreado</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Pendiente</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>º</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Para añadir archivos con datos de altitud <b>File->configure rutas de DEM</b>.  O clic <a href='setup'><b>aqui</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Use el menú contextual (botón derecho del ratón y seleccione) para activar un archivo. Use arrastrar y soltar para mover el archivo activado en el orden de procesamiento.</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Subir</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Ocultar DEM detrás del anterior</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Bajar</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Mostrar DEM encima del siguiente</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>Recargar DEM's</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation>Diálogo</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Posición:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Dificultad</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Terreno</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Actualizar spoilers</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Consejo:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Diálogo</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>El área se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Ancho del borde</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Estilo</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Opacidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Información</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Puntos</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Posición</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>Historial</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Imprimir diario</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Mantenga el orden del proyecto</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Ordenar a lo largo del track (múltiples)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Ordenar a lo largo del track (único)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Recargar diario.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Etiquetas:</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Información</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>La ruta se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Historial</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation>-
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Utilizar / editar la visibilidad definida por el usuario de las flechas de este track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Utilizar / editar la visibilidad definida por el usuario de las flechas de todos los track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Utilizar / editar el factor de escala de este track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Utilice / edite el factor predeterminado del sistema para todas los tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation>max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Límites definidos por el usuario para este track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Límites automáticos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Límites definidos por el usuario para todos los track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Velocidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Estilo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Atributo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Máximo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Mínimo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation>x </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>El track se ha importado a QMapShack y se ha editado. No muestra los datos originales. Consulte el historial de cambios.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Anchura</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>Con flechas</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Color</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Gráficos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Actividad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Establecer actividad del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Para diferenciar las estadísticas seleccione una actividad de la lista para todo el track,o bien, seleccione una parte para asignar una actividad.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Puntos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Hora</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Altitud.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Delta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Distancia</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Pendiente</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Posición</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Información</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Ascenso</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Descenso</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filtro</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>Historial</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Diálogo</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>El waypoint se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Posición:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Información</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Altitud.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Proximidad:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Historial</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Añadir imagenes.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Eliminar imagen seleccionada.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Fecha/Hora:</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Hay otro proyecto con el mismo nombre. Si pulsa 'ok'será eliminado y reemplazado.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Editar altitud...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Altitud</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Obtener la altitud desde el DEM activo.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Exportar base de datos a GPX</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Carpeta de exportación</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 sin extensiones</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Comenzar</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Cancelar</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Cerrar</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Eliminar puntos del Track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Eliminar todos los puntos ocultos del track definitivamente.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Eliminar extensión para todos los puntos del track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Eliminar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>de todos los puntos del track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Ocultar Puntos (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Ocultar puntos del track si la distancia entre puntos vecinos en linea recta es menor que</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Aplicar filtro ahora.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Interpolar datos de altitud</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Sustituir la altitud de los puntos del track con datos interpolados.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Calidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Vista previa</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Ocultar puntos inválidos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Ocultar puntos con datos no válidos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Suavizar Perfil (Mediana)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Suavizar el desvio de la altitud de los puntos del track con la Mediana de</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation>puntos</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Cambiar Fecha/hora</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Modificar el inicio del track a </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.yy HH:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Ocultar Marcas de tiempo</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Incrementar marcas de tiempo en</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>con cada punto del track. ( 0 sec. eliminará las marcas de tiempo).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Desplazar altitud</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Añadir corrección de </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>a la altitud de los puntos del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Reemplazar Datos de altitud</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Reemplazar altitud de los puntos del track utilizando los valores del fichero DEM cargado.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Restaurar Puntos Ocultos del Track</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Hacer visibles de nuevo todos los puntos del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Modificar Velocidad</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Ajustar velocidad a </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> km/h</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Dividir el track en segmentos</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Crear un nuevo track por cada segmento de este track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><b>Convertir subpuntos de track en puntos</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Conviertir subpuntos obtenidos por el enrutamiento a puntos de track ordinarios</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Calcular pendiente del terreno</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Calcular pendiente del terreno en base a los DEM cargados.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>Error decodificando FIT: El decodificador no está en el estado correcto %1 después del último byte de datos en el archivo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation>Error decodificando FIT: Ya existe un campo con el número de definición %1.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation type="unfinished">Nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation type="unfinished">Edad</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation type="unfinished">Para añadir una base de datos haga click-derecho en el espacio superior.  </translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[sin nombre]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>El elemento no forma parte del proyecto en la base de datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>
-Es un elemento nuevo o ha sido eliminado en la base de datos por otra persona</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>El elemento no está en la base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>Es posible que deba guardar el elemento</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Versión inicial</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation>No volver a preguntar</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3> Posiblemente este elemento es de sólo lectura porque no lo creó QMapShack. Por lo general no es conveniente cambiar los datos importados, pero si piensa que esta bien, presione 'Ok'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Modo Sólo Lectura...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Descripción:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>---sin descripción---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Comentario:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- Sin comentario ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Enlaces:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- sin enlaces ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Editar nombre...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Introducir nuevo nombre de %1</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>¿Guardar proyecto?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>Ha habido cambios en el proyecto. ¿Guardar antes de cerrar?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Correlacionar tracks y waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>¿Desea omitir la correlación de pistas y waypoints para este proyecto en el futuro?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Correlación cancelada</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Guardar "%1" como...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Nombre de archivo %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Waypoints: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Tracks: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Rutas: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Áreas: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <source>Are you sure you want to delete '%1' from project '%2'?</source>
-        <translation>¿Desea realmente eliminar '%1' del proyecto '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Borrar...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation type="unfinished">Opacidad</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation type="unfinished">Cambiar opacidad para todos los elementos GIS del mapa</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation type="unfinished">Filtro</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation type="unfinished">Nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation type="unfinished">Borrar filtro</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation type="unfinished">Configurar filtro</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Configurar Malla...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Proyección</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>restaurar valores predeterminados</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Obtener la proyección desde el mapa actual.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>asistente de proyección</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Color de la malla</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>Configurar el color de la malla</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Origen de Base de datos:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Destino de Base de Datos:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Comenzar</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Editar...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation>Enrutamiento</translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Enlaces...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Tipo</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Texto</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>Uri</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Archivo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Ver</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Ventana</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Herramientas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Mapas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translatorcomment>la traducción literal "Modelo Digital del Terreno " es demasiado larga para el titulo de las pestaña, y hace que se oculten otras pestañas. Por ello  se ha sustituido por su abreviatura "MDT" de uso frecuente, y también empleada por el IGN</translatorcomment>
-        <translation>MDT (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Barra de herramientas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation type="unfinished">Enrutamiento</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Añadir Vista de Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Mostrar Escala</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Configurar Fuente del Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Mostrar Malla</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Configurar Malla</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Invertir la Rueda del Ratón</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Configurar Rutas de Mapas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>Texto del POI</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Noche / Día</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Mostrar descripción emergente en los Mapas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Configurar Rutas a los DEM</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>Acerca de</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Ayuda</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Configurar Vista de Mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>Asistente VRT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>GUI front end para gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Guardar vista de mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Guardar en un archivo el mapa activo actual y la lista de DEM's incluyendo sus propiedades</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Cargar vista de mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Restaurar vista de mapa activo y lista de DEM's incluyendo sus propiedades desde un archivo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Perfil en ventana externa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Cerrar</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>Ctrl+Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Duplicar vista de mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation>Ctrl+Shift+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Crear base de datos de Routino</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Guardar/Imprimir captura de pantalla de mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Imprimir area seleccionada del mapa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Configurar formato de coordenadas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Cambiar el formato de coordenadas que se muestran</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Configuración del Mapa de Fondo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Configurar Iconos de Waypoint</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Configurar ruta de iconos personalizados</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Cerrar pestaña</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation>Ctrl+W</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation>Guia de inicio rápido</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Configurar barra de herramientas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Panel de herramientas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Ver panel de herramientas</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation>Ctrl+D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Pantalla Completa</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation>Valores Máx/min del track</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation>En la vista del mapa mostrar superpuestos los valores máximo y mínimo de los datos del track</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation type="unfinished">Base de datos</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation>Espacio de trabajo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>Cargar Datos GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Cargar proyectos desde archivo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Guardar todos los Datos GIS</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <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="510"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Configurar Zona Horaria</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Añadir proyecto vacío</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Buscar en Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Cerrar todos los proyectos</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation>F8</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Configurar Unidades</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Configurar Espacio de trabajo</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Guardar configuración al salir.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Importar base de datos de Qlandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>Importar base de datos de QLandKarteGT</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Para añadir mapas haga<b>Archivo->Configurar rutas de mapas</b>.  O haga clic <a href='setup'><b>aqui</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Use el menú contextual (botón derecho del ratón, y seleccione) para activar un mapa. Use arrastrar y soltar para mover el mapa activado en el orden de dibujado. </translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Quiero mapas
-No quiero leer la documentación!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Activar</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Subir</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Ocultar mapa detrás del anterior</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Bajar</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Mostrar mapa encima del siguiente</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Recargar mapas</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>Este mapa requiere soporte de OpenSSL. Sin embargo, debido a restricciones legales en algunos países, OpenSSL no se incluye con QMapShack. Puede consultar la página < a href = < https: //www.openssl.org/community/binaries.html '> OpenSSL Homepage</a> Para binarios. Tienes que copiar libeay32.dll y ssleay32.dll en el directorio del programa QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Error...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: %2 teselas pendientes<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Configurar rutas de mapas</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Carpeta para la caché de mapas online</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>¡Quiero mapas!
-¡No quiero ver la documentación!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Cambiar la opacidad del mapa</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala mínima a la que mostrar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Controle el rango de escalas para las cuales desea que se muestre el mapa. Use los dos botones a izquierda y derecha para definir la escala actual como bien la escala mínima o máxima para el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala máxima a la que mostrar el mapa.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Áreas</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Líneas</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Puntos</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Detalle</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Carpeta Caché</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>Archivo TYP:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Olvidar TYP externo y utilizar el interno.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Cargar un archivo TYP externo.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Tamaño de Caché (MiB)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Caducidad (Días)</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Opciones Avanzadas</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation>No Data origen (-srcnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation>No Data salida  (-vrtnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation>Proyección/Datum (-a_srs)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation>Estas opciones son para casos particulares y normalmente se dejan en blanco. Consulta la <a href='http://www.gdal.org/gdalbuildvrt.html'>ayuda</a> de GDAL para más información.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation><ol>
-<li>Seleccione uno o varios archivos.</li>
-<li>Seleccione un nombre de archivo para el archivo VRT de destino.</li>
-<li>Pulse  botón</li>"Comenzar".
-</ol>
-
-Consejos:
-<ul>
-<li>Si tiene varios archivos, colóquelos en una subcarpeta de su carpeta de mapas. Cree el archivo VRT en su carpeta de mapas</li>
-<li>Utilice las opciones avanzadas para añadir un valor de "sin datos"  si sus archivos de origen no lo tiene y no forman un área rectangular. Las áreas sin mapa se volverán transparentes.</li>
-<li>La opción "-a_srs"  está destinada a asignar una Proyección / Datum cuando el archivo de origen no lo tiene. Esto NO reproyecta los datos.</li>
-</ul></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Seleccionar ficheros de origen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Fichero VRT de salida:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Comenzar</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Nuevo trazado</b><br/>Mueva el ratón y pulse el botón izquierdo para crear puntos. Puede alternar el modo de dibujo con los botones de herraminetas (O,A,V) sin interrumpir el trazado. Para terminar pulse botón derecho del ratón.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Borrar punto</b><br/>Mueva el ratón hasta un punto y pulse el botón izquierdo para eliminarlo.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Seleccionar Rango de Puntos</b><br/>Seleccione el punto inicial con el botón izquierdo del raton. Fije el punto final con una segunda pulsacion y elija entre las opciones. El rango seleccionado se marca en verde. Utilice el botón derecho del ratón para cancelar.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Mover punto</b><br/>Seleccione el punto con el botón izquierdo del raton y arrastrelo hasta la nueva posición. Suelte el punto con una segunda pulsacion. Utilice el botón derecho del ratón para cancelar.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Añadir punto</b><br/>Mueva el ratón cerca de una línea y presione el botón izquierdo para agregar un punto. El punto se pegará al cursor y se puede mover.Suelte el punto en la posición deseada con una segunda pulsacion. Utilice el botón derecho del ratón para cancelar..<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Sin enrutamiento ni ajuste vectorial</b><br/>Todos los puntos se conectarán con una línea recta.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Enrutamiento automático</b><br/>El trazado entre los puntos se calcula automáticamente atendiendo a la configuración actual del enrutador. <b>Nota:</b> El enrutador seleccionado debe ser capaz de trabajar al vuelo,por lo general, solo son capaces de hacerlo los instalados localmente.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Ajuste vectorial</b><br/> El trazado se dibuja ajustandose automáticamente a las lineas de un mapa vectorial.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>Datos %1 </b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Distancia:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Ascenso:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Descenso:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation><br/><b>Mover el mapa</b><br/>Mantega pulsado el botón izquierdo mientras mueve el ratón y moverá el mapa.<br/><br/></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Restablecer zoom</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Rango de parada</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Guardar...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Añadir Waypoint</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Cortar.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Pulse tecla CTRL para zoom vertical unicamente.
-Pulse tecla ALT para zoom horizontal unicamente</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Datos incorrectos o inexistentes.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Seleccione archivo de salida</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Posición ...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Introduzca la nueva posición</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Formato de posición incorrecto. Debe ser: 
-"[N|S] ggg mm.sss [W|E] ggg mm.sss"
-o
-"[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Imprimir mapa...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>Al imprimir mapas en línea asegúrese de que se haya cargado previamente en la memoria caché el mapa correspondiente a la extensión que desea imprimir.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Guardar</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>Al guardar mapas en línea asegúrese de que el mapa se ha cargado en la memoria caché en la medida en la que desea guardarlo.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Imprimir</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Por favor,espere...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Asistente de Proj4</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation>Mercator</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation>UTM</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>zona</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>definido por el usuario</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation>World Mercator (OSM)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Resultado:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Norte (Polo Norte)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Sur (Polo Sur)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Proyección</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Proyección del Waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Duplicar el waypoint y moverlo:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation>º</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Alternativa</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation>Mostrar el perfil de enrutamiento seleccionado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation>Enrutamiento al vuelo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation>BRouter: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation>Parado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation>iniciar/parar Brouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation>Mostrar consola de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation>Configuración</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation>¡Precaución! BRouter está escuchando en todos los puertos para las conexiones.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation><p>Direcciones de <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation><p>Enrutamiento de <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation>Perfil de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation>Configuración de BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation>Elija que BRouter usar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation>BRouter-Web (online)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation>Instalación local</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation>Modo experto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation>Carpeta de instalación de BRouter local:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation>Seleccionar carpeta de instalación</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation>Crear o actualizar instalacion</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation>Ejecutable Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation>Buscando Java instalado</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation>Descargar e instalar BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation>Archivo para instalar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation>Descargar e instalar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation>Perfiles disponibles </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation>Instalar perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation>Eliminar perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation>Perfiles instalados</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation>Contenido del perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation>BRouter-Web URL:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation>Servicio-URL</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation>Perfil-URL</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation>Nombre de Host</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation>Puerto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation>Carpeta de perfiles</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation>Carpeta de segmentos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation>Carpeta de perfiles personalizados</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation>Tiempo máximo de ejecución </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation>Número de hilos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation>Opciones de Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation>URL de perfiles</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Autopistas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Estacional</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Lenguaje</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Fronteras</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Evitar:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Ferry</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Carreteras de peaje</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Sin pavimentar</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Direcciones cortesía de <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Perfil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Modo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Añadir carpeta con base de datos de Routino.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Lenguaje</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Para utilizar el enrutamiento sin conexión es necesario definir rutas de acceso a los datos de enrutamiento locales. Utilice el botón de la herramienta de configuración para indicar una carpeta. Puede crear sus propios datos de enrutamiento con la  <b>herramienta->Crear base de datos de Routino</b>.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Configurar base de datos de Routino...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Seleccionar ficheros de origen:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Comenzar</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Carpeta de destino:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Prefijo del archivo</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation><p>Para crear una base de atos de Routino se necesita descargar archivos *.pbf de <a href='http://download.geofabrik.de/'>GeoFabrik</a>. El proceso de creación de una base de datos Routino es bastante lento y los archivos resultantes son bastante grandes. Por lo tanto, se recomienda no descargar continentes completos. Limite su descarga a los países que realmente necesita. Sin embargo, como Routino puede crear una ruta usando varias bases  [...]
-
-<ol>
-<li>Seleccione uno o varios archivos *.pbf.</li>
-<li>Seleccione la carpeta para su base de datos de Routino.</li>
-<li>Seleccione un prefijo. La base de datos será listada por este prefijo.</li>
-<li>Presione  botón </li>"Comenzar".
-</ol></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Guardar al original</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Guardar como nuevo...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Cancelar</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Mover puntos. (Ctrl+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Añadir puntos. (Ctrl++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>Ctrl++</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Seleccionar rango de puntos. (Ctrl+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Dibuja libremente. Sin enrutamiento automático ni ajuste vectorial (Ctrl + O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Dibuja usando el enrutamiento automático entre puntos. (Ctrl+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Dibuja ajustandose a las lineas de un mapa vectorial. (Ctrl+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Borrar un punto. (Ctrl+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation>Ctrl+-</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation>0</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation>A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation>V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Deshacer</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Rehacer</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Ver detalles y editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Copiar área en otro proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Eliminar área de este proyecto</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Editar el contorno del área.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation>Guardar el área seleccionada como imagen.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Imprimir área seleccionada.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Borre todos los puntos entre el primero y el último.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Calcular una ruta entre el primero y el último punto seleccionado.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Ocultar todos los puntos.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Mostrar todos los puntos.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Asigna una Actividad para el rango seleccionado.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Copiar los puntos del track como un nuevo track.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Copiar ruta en otro proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Ver detalles y editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Borrar ruta del proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Calcular ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Reiniciar cálculo de ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Mover puntos de ruta.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Convertir ruta en track</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Copiar todos los elementos seleccionados a un proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Crear ruta con los waypoints seleccionados.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Cambiar el icono a los waypoints seleccionados.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Combinar todos los tracks seleccionadas en uno nuevo.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Asigna una Actividad para todos los tracks seleccionados.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Borrar los elementos seleccionados.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Seleccione los elementos que interseccionan el área seleccionada.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Seleccione los elementos que estan dentro del area seleccionada. </translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Añadir tracks a la selección.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Añadir waypoints a la selección.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Añadir rutas a selección.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Añadir áreas a la selección.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Mostrar el perfil en pantalla e información detallada de los puntos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Editar la posición de los puntos del track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Ver detalles y editar propiedades del track. </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Copiar track en otro proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Eliminar track del proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Seleccionar un rango de puntos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Invertir track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Combinar tracks.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Dividir el track por el punto seleccionado. Puede usar esto para:
-
-* Eliminar puntos erróneos del principio o del final
-* Utilizar partes del track al planificar un nuevo recorrido
-* Dividir un track muy largo en varias etapas
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Asigna una Actividad al track completo.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Copiar track junto con todos los waypoints conectados en otro proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Ver detalles y editar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Copiar waypoint en otro proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Eliminar waypoint del proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Mostrar contenido en globo de texto.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Mover el waypoint a una nueva ubicación.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Duplicar el waypoint y mover la copia a una distancia y un ángulo dados.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation>editar radio de área circular</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished">Cambiar entre proximidad y área prohibida</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Eliminar círculo definido por waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation>editar radio de área circular</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished">Cambiar entre proximidad y área prohibida</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished">Borrar circulo definido por waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation type="unfinished">Denominación</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Buscar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Escriba la palabra que desea buscar y pulse botón de busqueda. 
-Si introduce la 'palabra' entre apóstrofes se busca una coincidencia exacta . Si introduce 'palabra*', la 'palabra' se busca al principio de una cadena.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Buscar</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Cerrar</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Seleccionar dispositivos...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Copiar elemento...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Sustituir el elemento existente</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>No copiar el elemento</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Crear un duplicado</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Sustituir por:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Mantener:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Se añadirá el sufijo '_Clone' al nombre del duplicado</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>Hacer igual para todos los elementos.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Seleccione la carpeta principal...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Nombre</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Añadir a los elementos seleccionados</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Eliminar de los elementos seleccionados</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Seleccionado</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Mover los elementos seleccionados arriba</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Mover los elementos seleccionados abajo</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Seleccionar un proyecto...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Seleccione un proyecto de la lista, o introduzca un nuevo nombre de proyecto.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Nombre del nuevo proyecto</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>El nuevo proyecto se creará como:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation>*.qms</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation>*.gpx</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Base de datos</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Copiar elemento...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Sustituir el elemento existente</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Añadir duplicado</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Se añadirá el sufijo '_Clone' al nombre del duplicado</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Sustituir por:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>Denominación</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>No sustituir elemento</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Utilizar elemento:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>Hacer igual para todos los elementos.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Añadir Base de Datos...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Precaución</span> Se recomienda dejar la contraseña en blanco, ya que QMapShack lo almacenará como texto sin formato. Si no introduce una contraseña, se le pedirá en cada inicio.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>No usar contraseña.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Servidor</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation>Puerto</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Usuario</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Contraseña</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Puerto:</b> Dejar vacio para usar el puerto predeterminado.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Archivo:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Añadir nueva base de datos.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Abrir base de datos existente.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Aplicar filtro a</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>Solo nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>Texto completo</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Carpeta de base de datos</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Nombre de la carpeta</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Grupo</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Proyecto</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Otros</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Nuevo waypoint.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Símbolo</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Posición</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Nombre</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Formato de posición incorrecto. Debe ser: 
-"[N|S] ggg mm.sss [W|E] ggg mm.sss"
-o
-"[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Configurar espacio de trabajo...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>guardar el espacio de trabajo al salir, y cada</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>minutos</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>Escuchar los cambios en la base de datos de otras instancias de QMapShack en puerto</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Insertar plantilla...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Plantillas</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Selecciona una ruta con tus propias plantillas</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Vista previa</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Editar texto...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Deshacer</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Rehacer</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation>Ctrl+Shift+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Cortar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation>Ctrl+X</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Copiar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Pegar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Plantilla.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation>A:L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation>A:C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation>A:R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation>A:B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation>C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Standard</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation>Lista de viñetas (Disco)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation>Lista de viñetas (círculos)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation>Lista de viñetas(cuadrados)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation>Lista ordenada(decimal)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation>Lista ordenada (alfabético descendente)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation>Lista ordenada (alfabético ascendente)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation>Lista ordenada (números romanos descendente)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation>Lista ordenada (números romanos ascendente)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Alinear a la Izquierda</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Alinear a la Derecha</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Alinear al Centro</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Alinear Bloque</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation>Ctrl+J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Subrayar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Negrita</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation>Ctrl+B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Cursiva</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Plano</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Restablecer el formato del texto antes del pegado</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Seleccionar todo</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Borrar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Restablecer fuente</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Restablecer diseño</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Normal</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Pegar sin restablecer el formato del texto</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Insertar desde plantilla</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Crear texto desde plantilla.</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Cortar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Copiar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Pegar</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Configurar la Zona Horaria.</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>UTC</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Local</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automático</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Imprimir fecha y hora en</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>Formato largo, o</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>formato corto</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Nota:</b> Para algunos elementos de la interfaz de usuario, cambiar las unidades no tendrá efecto hasta que se reinicie QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Configuración de barra de herramientas</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>Barra de herramientas visible en modo Pantalla Completa</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>La ejecución del programa externo %1 falló:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>No se puede iniciar el proceso.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>Asegúrese de que los paquetes necesarios estén instalados, `%1` existe y es ejecutable</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>El proceso externo falló.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>A ocurrido un error desconocido</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!!falló!!!</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Error</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Formato de coordenadas incorrecto. Debe ser: "[N|S] ggg mm.sss [W|E] ggg mm.sss" o "[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Valores de posición fuera del límite.</translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Configurar unidades...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation>Unidad de longitud</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Métrico</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation>">Unidad de pendiente</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation>Grados (°)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation>Porcentaje (%)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Nota:</b> Para algunos elementos de la interfaz de usuario, cambiar las unidades no tendrá efecto hasta que se reinicie QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Imperial</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Naútico</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Iconos.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Iconos:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Los iconos personalizados deben de ser BMP o PNG</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_fr.ts b/src/locale/qmapshack_fr.ts
deleted file mode 100644
index f70f71b..0000000
--- a/src/locale/qmapshack_fr.ts
+++ /dev/null
@@ -1,10189 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="fr">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API V%2, attendu V%3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API V%2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(DBUS absent : détection et gestion d'appareil désactivée)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>A pieds</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Vélo</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Voiture</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Téléphérique</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Natation</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Bateau</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Ski</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>Pas d'activité</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Total</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Montée:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Descente:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Aérien</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Transports publics</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Distance:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Vitesse moyenne en déplacement:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Vitesse moyenne totale:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Temps en déplacement:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Temps total:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Vue %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Réglage de l'arrière-plan de la carte</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Echap</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Envoyer les messages de débogage vers la console</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Envoyer les messages de débogage vers un fichier (temp. path).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>Ne pas montrer l'image d'accueil</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Fichier de configuration QMS.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>fichier</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Fichiers pour usage futur.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>route</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Vos données groupées par dossiers.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Perdu & Trouvé (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Perdu & Trouvé</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Vos données groupées par dossiers.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>Base de données MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation>Serveur:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation>(aucun mot de passe)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Erreur: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Vos données groupées par dossiers.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>Base de données SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Fichier:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Erreur: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation>%1 h</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 jours</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>Impossible de charger ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>Impossible de charger le fichier "%1". Il sera ignoré.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>Projet déjà présent dans le base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>Le projet "%1" a déjà été importé dans la base de données. Il sera ignoré.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>L'objet %1 a été modifié par %2 (%3).
-Pour résoudre ce conflit vous pouvez créer et sauvegarder un clone, forcer votre version ou abandonner votre version en prenant celle de la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Confilt avec la base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Cloner && Sauvegarder</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Forcer la sauvegarde</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Prendre la version de la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Répertoire manquant...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>Echec de la sauvegarde du projet. Le répertoire a été supprimé de la base de données.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Enregistrer...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Erreur</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Erreur inattendue de la base de données:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>Le projet '%1' est sur le point de se mettre à jour depuis la base de données.Néanmoins il y a des modifications non sauvegardées.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Enregistrer les modifications ?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Désactiver</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Activer</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Ajoutez ou retirez des répertoires qui contiennent des données DEM. Il peut y avoir plusieurs fichiers dans un répertoire mais les sous-répertoires ne sont pas prises en compte. Formats acceptés sont: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Sélectionnez le répertoire qui contient les fichiers DEM</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>Le DEM doit contenir un seule bande avec des données en 16 ou 32 bits.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>Aucune information de géoréférencement trouvé</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translatorcomment>...indice?</translatorcomment>
-        <translation>aucun</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Recherche d'images...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>Aucune image trouvée</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>aucun</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Créer le journal...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Waypoints</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Information</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Commentaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Traces</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>Depuis le début</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>Jusqu'au suivant</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>Jusqu'à la fin</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Surfaces</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Vous voulez trier des waypoints le long d'une trace, mais vous avez désactivé la corrélation des traces et waypoints. Voulez-vous la réactiver ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Corrélation en cours...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation>Résumé de toutes les traces du projet</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation>Distance: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation>Montée: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation>Descente: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Routes</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Éditer le nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Entrez le nom du nouveau projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Éditer les mots-clés...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Saisir les mots-clés.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Imprimer le journal</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <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="171"/>
-        <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="174"/>
-        <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="177"/>
-        <source>Miscellaneous</source>
-        <translation>Divers</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Couleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Activité</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Entrez le rayon de l'alarme de proximité.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Image%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Inconnu</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Archive - développer pour charger</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>Archive - chargé</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>Pas de données DEM disponibles pour ce point.</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Selectionner le chemin d'exportation</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Créer %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation>Impossible de créer %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>Fait !</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>Annulé par l'utilisateur !</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation>Erreur de base de données : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>Sauvegarder le projet sous %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation>Erreur !</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>Aucune extension disponible</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>approximatif</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>moyen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>précis</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>erreur de décodage FIT : CRC invalide</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>erreur de décodage FIT : fin de fichier inatendue %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>erreur de décodage FIT : type de base %1 inconnu.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation>Définition de champ manquante pour le champ de développement</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation>Erruer de décodage FIT : définition de champ invalide %1 lors de la création du profil de développement</translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>erreur de décodage FIT : version du protocole %1 non supportée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>erreur de décodage FIT : signature d'en-tête de fichier incompatible. Ce n'est pas un fichier FIT.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Echec de l'ouverture du fichier %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>Echec de l'ouverture du fichier FIT %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>Erreur de décodage FIT : architecture %1 non supportée</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>Erreur de décodage FIT : décalage invalide %1 pour l'état 'contenu d'enregistrement'</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Avertissement...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation>Ceci est un fichier TYP avec un encodage de polygone inconnu. Veuillez signaler ce problème.</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation>Ceci est un fichier TYP avec un encodage de polyligne inconnu. Veuillez signaler ce problème.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>fin</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>normal</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>large</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>épaisse</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Clone</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Surface: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Forme de surface modifiée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Nom modifié.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Largeur de la bordure modifiée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Remplissage modifié.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Opacité modifiée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Commentaire modifié.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Description modifiée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Liens modifiés.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Couleur modifiée.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Clone</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Nom modifié.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Commentaire modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Description modifiée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Liens modifiés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation>Longueur: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation>Durée: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation>Distance: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Longueur: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Heure : -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Date du dernier calcul d'itinéraire : <br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>avec %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Points de route modifiés.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>Le fichier FIT %1 ne contient pas de donnée GPS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <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="420"/>
-        <source>Failed to read data.</source>
-        <translation>Impossible de lire les données.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Clone</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <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="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation>Temps: %1%2, Vitesse: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation>En déplacement: %1%2, Vitesse: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Début: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Début: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Fin: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Fin: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Points: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>Altitudes invalides !</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>Temps invalides !</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>Positions invalides !</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Activités: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Index: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Index: visibles %1, total %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation>, Pente : %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... and %1 tags non affichés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Distance: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>En déplacement: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Cacher les points %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Cacher les points %1..%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>,%1,%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation>Points invalides ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation>La trace '%1' a %2 points invalides sur %3 points visibles. Voulez-vous cacher les points invalides maintenant ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation>max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation>Longueur: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <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="388"/>
-        <source>, %1-, %2-</source>
-        <translation>, %1-, %2-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Time: -, Speed: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>En déplacement: -, Vitesse: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="589"/>
-        <source>Ele.: %1%2</source>
-        <translation>Altitude: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation>, Vitesse: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Montée: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Descente: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Montée: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation>, Descente: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Distance: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation>, En déplacement: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Ascent: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Descente: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Montée: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation>, Descente: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Distance: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation>, Durée: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Points supprimés de manière permanente %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Afficher les points.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Nom modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Commentaire modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Description modifiée</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Liens modifiés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Altitudes modifiées du point %1 à %2 %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Activité modifiée pour '%1' pour la trace complète.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Activité modifiée pur '%1' for la plage (%2..%3).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Cacher des points avec l'algorithme Douglas Peuker (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Cacher les points aux données invalides</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Restaurer les points cachés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Supprimer définitivement tous les points cachés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Profile lissé avec un filtre médian de dimension %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>Ajouté la pente du terrain à partir du fichier MNT</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Les altitudes ont été remplacées  par les données des fichiers MNT</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Les altitudes ont été remplacées  par des valeurs interpolées. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>Décaler les altitudes de %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Début de la trace modifié à %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Horodatage supprimé.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Horodatage artificiel ajouté avec un décalage de %1 sec.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Vitesse modifiée à %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (Segment %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>Extension %1 supprimée de tous les points</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Converti les sous-points de routage en points de trace</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Copier la balise d'information de la trace QLandkarte GT</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Archivé</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>Non disponible</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_Clone</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation>Altitude: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation>Proximité: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Nom modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Position modifiée</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Altitude modifiée</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation>Enlevé proximité</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Rayon de proximité modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Icône modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Commentaire modifié</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Description modifiée</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Liens modifiés</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Images modifiées</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Ajouter une image</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation>Changé pour rayon de proximité</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation>Changé pour zone interdite</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>A cause d'évolutions de la gestion des bases de données, QMapShack doit de nouveau connaître l'emplacement de votre base de données. '%1'.  Indiquez-le à l'étape suivante.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Sélectionnez un fichier de base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Ajouter une base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Ajouter un dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Renommer dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Copier dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Déplacer dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Supprimer le dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Importer depuis des fichiers ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Exporter vers GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Supprimer un élément</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Rechercher dans la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Synchroniser avec la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Enlever la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Vider</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Enlever la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Voulez-vous vraiment supprimere '%1' de la liste ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>Etes-vous sûr de vouloir supprimer les dossiers selectionnés ainsi que leur sous-dossiers de la base de données ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Mauvaise opération...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>Le dossier cible est un sous-dossier de celui à déplacer. Cela ne fonctionnera pas.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Name du dossier...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Renommer le dossier:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Êtes-vous sûr de vouloir supprimer %1 du dossier %2?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Supprimer...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>Importer des données SIG...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Supprimer la base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Supprimer les éléments...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Êtes-vous sûr de vouloir supprimer tous les éléments dans Perdu & Trouvé ? Les éléments seront supprimés définitivement.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Êtes-vous sûr de vouloir supprimer les éléments sélectionnés dans Perdu & Trouvé ? Les éléments seront supprimés définitivement.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Éditer..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Afficher sur la carte</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Masquer</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Trier par date</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Trier par nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Enregistrer</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Sauvegarder comme GPX 1.1 sans extensions...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Envoyer vers les appareils</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Synchroniser avec la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Mettre à jour le projet sur l'appareil</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Supprimer</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Éditer...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Copier vers...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Sauvg. auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Sauvegarder sous...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Profile de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Sélectionner des points</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Éditer les points de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Inverser la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Joindre des traces</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Copier la trace avec ses waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Afficher la bulle</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Déplacer le waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Projection du waypoint...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation>Changer le rayon</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation>Activer zone interdite</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation>Supprimer le rayon</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Instructions de guidage</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Calculer l'itinéraire</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Réinitialiser la route</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Éditer la route</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>Convertir en trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Éditer les points de la surface</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Créer une route</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Change l'icône (waypoint séléctionné seulement)</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Choisir l'activité de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Sauvegarde de l'espace de travail. Patientez.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Chargement de l'espace de travail. Patientez.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Fermer tous les projets...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <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="1256"/>
-        <source>Delete project...</source>
-        <translation>Supprimer le projet...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Êtes-vous sûr de vouloir supprimer %1?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <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>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation>Charger le projet...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation>Le projet "%1" est déjà présent dans l'espace de travail.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation><b>Sélection d'objets : </b>Objet sélectionné depuis l'espace de travail. Cliquez sur la carte pour revenir au mode normal de sélection à la souris.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation>Copier les éléments...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation>Changer les symboles de waypoint.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation>Couper la trace...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation>Voulez-vous supprimer la trace originale?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Impossible de charger le fichier %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Impossible de lire: %1
-ligne %2, colonne %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>Ce n'est pas un fichier GPX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>Le fichier existe...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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="386"/>
-        <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="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Impossible d'écrire le fichier: '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Impossible de sauvegarder les données SIG</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5</translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1m, %2m </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>N %1m, E %2m </translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation>par %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Tronquer l'historique antérieur</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Tronquer l'historique postérieur</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Supression de l'historique</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>La suppression est permanente et ne peut être annulée. <b>Voulez-vous vraiment supprimer l'historique antérieur à cette étape ?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>Importer une base de données QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Choisissez la base de données à importer...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Choisissez la base de données cible...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation>Vitesse</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation>Cadence</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. Air</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Température de l'air</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp. eau</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Température de l'eau</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation>Prof.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation>Profondeur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation>Fréq. Card.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation>Fréquence cardiaque</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation>Cad.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation>Vit.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation>Accel.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation>Accélération</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation>Cap</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation>Cap</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Temp.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Température</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation>Dist.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation>Distance</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation>Altitude</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation>Energ</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation>Energie</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation>Pres. Niv. Mer</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation>Pression au niveau de la mer</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation>Vit. vert.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation>Vitesse verticale</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation>Pente</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation>Vitesse par rapport à la distance*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation>Vitesse par rapport au temps*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation>Altitude*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation>Progress.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation>Progression*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation>Pent. Terr.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation>Pente du terrain*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Pente*</translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation>Impossible de charger le fichier %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Erreur de lecture: %1
-ligne %2, colonne %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation>Ce n'est pas un fichier Openambit : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation>Appareil: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Temps de récupération : %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Pic d'effet d'entraînement : %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energie: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation>Utilisation de l'heure locale...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>Aucune heure UTC trouvée dans le fichier %1. L'heure locale de l'ordinateur sera utilisée. Vous pouvez utiliser un filtre pour ajuster l'heure si nécessaire.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Ce fichier LOG ne contient aucune information de position et ne peut être affiché par QMapShack : %1</translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Perdu & Trouvé</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Utilisez <b>Menu->Vue->Add Map View</b> pour ouvrir une nouvelle vue. Ou <b>Menu->Fichier->Charger une vue cartographique</b> pour charger une vue sauvegardée. Ou cliquez <a href='newview'>ici</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation>Altitude: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation>Pente du terrain : %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Grille: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>Charger des données SIG...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Sélectionner le fichier de sortie</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>Vue QMapShack (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Sélectionner le fichier à charger</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Fatal...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack a détecter une bibliothèque Proj4 mal installée. Les tables de translation pour les projections ESPG lstockées en généra dans /usr/share/proj sont manquantes. Contactez votre gestionnaire de distribution pour réparer cela.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Échec...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Non défini</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Français</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Deutsch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Néerlandais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Anglais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Finlandais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Suédois</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Espagnol</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Catalan</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Galicien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Gallois</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gaëlic</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Danois</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Norvégien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portugais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Slovaque</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Tchèque</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Croate</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Hongrois</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Polonais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Turque</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Grèc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Slovène</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Russe</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Estonien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Letton</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Roumain</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Albanais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosnien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Lituanien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Serbe</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Macédonien</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Bulgare</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Route majeure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Route principale</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Autre route</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Artère urbaine</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Rue principale</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Rue résidentielle</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Ruelle/Route privée</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Bretelle d'accès, basse vitesse</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Bretelle d'accès, grande vitesse</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Route non bitumé</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Bretelle majeure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Rond-point</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Voie ferrée</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Ligne côtière</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Sentier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Ruisseau</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Fuseau horaire</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Bac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Frontière de province</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Frontière de canton</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Frontière internationale</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Rivière</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Courbe de niveau mineure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Courbe de niveau intermédiaire</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Courbe de niveau majeure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Courbe isobathe mineure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Courbe isobathe intermédiaire</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Courbe isobathe majeure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Ruisseau intermittent</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Tarmac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Oléoduc</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Ligne à haute tension</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Frontière maritime</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Limite de zone à risque</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Grande agglomération urbaine (&gt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Petite agglomération urbaine (&lt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Zone résidentielle rurale</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Base militaire</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Parking</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Parking couvert</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Aéroport</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Centre commercial</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Marina</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Université</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Hôpital</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Complexe industriel</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Reserve naturelle</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Zone industrielle</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Complexe sportif</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Golf</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Cimetière</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Parc national</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Parc urbain</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Parc régional</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Forêt</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Océan</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Mer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Grand lac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Lac moyen</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>Petit lac</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Lac majeur</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Rivière majeure</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Grande rivière</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Rivière moyenne</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Petite rivière</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Cours d'eau intermittent</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Marais</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Glacier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Verger</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Broussaille</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Tundra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Plaine</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Lire un fichier TYP externe...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Erreur de lecture du fichier TYP : %1 Utilisation du TYP interne.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Erreur de lecture : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Échec d'ouverture : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Format de fichier invalide : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Erreur de lecture de la structure du fichier : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Chargement de %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Interruption par l'utilisateur : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>Le fichier est au format NT. QMapShack ne peut pas lire des fichiers au format NT : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>Le fichier contient des données verrouillées / cryptées. Garmin ne vous autorise pas à utiliser ce fichier avec un logiciel non fourni par Garmin.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Point d'intérêt</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Inconnu</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Surface</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Désactiver</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Activer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>Où voulez vous enregistrer les cartes ?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Échec...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Échec d'ouverture : </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Format de fichier invalide : </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Ajoutez ou retirez des répertoires qui contiennent des cartes. Il peut y avoir plusieurs cartes dans un répertoire mais les sous-répertoires ne sont pas prises en compte. Les formats acceptés sont : %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Choisissez un répertoire...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Sélectionner le répertoire racine...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>Sélctionnez un type de fichier...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Ceci n'est pas un fichier TwoNav RMAP.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Sous-format inconnu.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Version inconnue.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Impossible de lire les points de référence.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Projection et date inconnus (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir: %1 </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Impossible de lire: %1
-ligne %2, colonne %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Calque %1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Impossible de charger le fichier: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>Le fichier doit avoir une palette à 8 bits ou être en niveaux de gris.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>Aucune information de géoréférencement trouvé</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>Générer le VRT GDAL</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Sélectionnez les fichiers...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Sélectionnez le fichier à créer...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fait !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Impossible de lire: %1
-ligne %2, colonne %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Impossible de lire: %1
-Structure inconnue.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Service inattendu. '* WMTS 1.0.0' est attendu mais '%1 %2' est lu.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>Aucune information de géoréférencement trouvé</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Surface</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Éditer la surface</b><br/>Choisissez und fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seulement les points marqués d'un carré large peuvet être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>surface</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Calcul d'itinéraire</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Éditer les points de la route</b><br/>Choisissez une fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seul les points marqués d'un carré large peuvent être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>route</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Trace</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Éditer les points de la trace</b><br/>Choisissez une fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seul les points marqués d'un carré large peuvent être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Avertissement !</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>La trace obtenue ne contiendra que des données de position. Toutes les autres données (altitude, temps, etc...) seront perdues.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>trace</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>Ajouter PI comme waypoint</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Ajouter un waypoint</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Ajouter une trace</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Ajouter une route</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Ajouter une surface</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Selectionner des objets sur la carte</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Copier la position</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Copier la position (grille)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Sauvegarder (Imprimer) la carte</b></br>Sélectionnez une zone rectangulaire sur la carte. Utilisez le clic gauche et déplacez la souris. Pour annuler utilisez le clic droit. Ajustez la sélection en déplaçant les coins en gardant enfoncé le bouton gauche de la souris.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Sélectionner une plage</b><br/>Sélectionner le 1er pointpar un clic gauche. Puis un second point. Clic droit pour quitter le mode "sélection de plage".<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Sélectionner des objets sur la carte</b><br/>Sélectionnez une surface rectangulaire sur la carte. Utilisez le bouton gauche de la souris et déplacez la souris. Clic droit pour annuler. Ajustez la sélection en déplaçant les coins.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Sélectionné::</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 points<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 traces<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 routes<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 surfaces<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Sélectionner les images...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation>Distance [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation>Durée</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation>Distance [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation>Alt. [%1]</translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Imprimer la carte...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Sauvegarder la carte comme image...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Propriétés de l'imprimante...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Pages: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Zoomer la carte ci-dessous avec la roulette de la souris pour changer la résolution :
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Impression des pages.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Sauvegarder la carte...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Temps écoulé : %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Temps écoulé : %1 secondes</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>nord</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>sud</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>La valeur
-'%1'
-n'est pas une définition de système de coordonnées:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Éditer le nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Entrez le nom du nouveau waypoint.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation>Impossible d'ouvrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation>Impossible de convertir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation>Le fichier contient des superpositions qui ne peuvent être converties. QMapShack ne supporte pas tous les types de superpostion de QLandKarte.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Migration de la base de données de version 4 en version 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Migration de la base de données de version 5 en version 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Migration de la base de données de version 6 en version 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Migration de la base de données de version 7 en version 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Migration de la base de données de version 8 en version 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Ouvrir la base de données: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Répertoires: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Traces: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Routes:           %1 (seulement la route de base sera copiée)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Waypoints:        %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Overlays :        %1 (les surfaces seront convertis en surfaces, les lignes de distance en traces, tous les autres overlays seront perdus)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Journaux:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Sélections de carte:   %1 (ne peuvent pas être convertis)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ La conversion de base de donnée vers %1 commence ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Erreur lors de la création de la base de données cible.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Annuler ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Terminé ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Restaurer ls dossiers...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>%1 dossiers et %2 journaux ont été importés</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Copier les éléments...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>%1 traces, %2 waypoints, %3 routes et %4 surfaces ont été importés</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Importer les dossiers...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>Overlay de type '%1' ne peut pas être converti</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Trace corrompue...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>Le nombre de points de trace ne correspond pas au nombre de points de trace de training.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>Le nombre de points de trace ne correspond pas au nombre de points de trace étendus.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>Le nombre de points de trace ne correspond pas au nombre des points cachés</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Le fichier existe...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Supprimer %1 qui existe ?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Supprimer le fichier existant %1 ?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: poubellise l'élément avec l'identifiant QLGT DB %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Impossible d'ouvrir...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation type="unfinished">Calculer l'itinéraire avec %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation type="unfinished">Erreur</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation type="unfinished">Avertissement...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation type="unfinished">Avertissement...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fait !!!!</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! échec !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Le plus rapide</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>le plus court</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Vélo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Piéton</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Anglais Etats Unis</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Anglais britannique</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Danois</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Néerlandais</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Français</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Allemand</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italien</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Norvégien</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Espagnol</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Suédois</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>mode "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>Pas d'autoroutes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>Pas de routes à péage</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>pas de routes saisonnières</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>Pas de route non revêtue</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>Pas de ferry</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>Pas de franchissement de frontière</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Requête de routage envoyée au serveur. Veuillez patienter...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Mauvaise réponse du serveur:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Temps de calcul: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>à pied</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>à cheval</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>en fauteuil roulant</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Vélo</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Cyclomoteur</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Moto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Voiture</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Camion</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>le plus court</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Mauvaise version de Routino trouvée. Attendu %1 trouvé %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>le plus rapide</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Anglais</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Allemand</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Français</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Hongrois</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Néerlandais</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Russe</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Polonais</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Une fonction a été appelée sans variable de base de donnée assignée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Une fonction a été appelée sans variable de profil assignée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Une fonction a été appelée sans variable de traduction assignée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>La base de donnée à charger n'existe pas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>La base de donnée n'a pas pu être chargée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>Les profils XML choisis n'existent pas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>Les profils XML choisis n'ont pas pu être chargés</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>Le fichier de traduction XML n'existe pas</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>Le fichier de traduction XML n'a pas pu être chargé</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>Le nom de profil demandé n'existe pas dans le fichier XML chargé</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>La langue de traduction demandée n'existe pas dans le fichier XML chargé</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>Le profile et la base de données ne fonctionnent pas ensemble</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>Le profil en cours d'utilisation n'a pas été validé</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>Le profil utilisé contient des données invalides</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Les options de routage choisies ne sont pas compatibles entre elles</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>La bibliothèque et l'API ne vont pas ensemble</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>Le calcul de l'itinéraire a été annulé par l'utilisateur</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>Aucune route vers le waypoint %1 n'a été trouvée</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Erreur inconnue : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>profile "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, mode "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Avertissement...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation>La base de donnée de routage ne contient aucune voie à cet endroit</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Calculer l'itinéraire avec %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Temps de calcul : %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Ajouter ou enlever des répertoires contenant des données Routino. Il peut y avoir plusieurs bases de données dans un répertoire mais les sous-répertoires ne sont pas pris en compte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Sélectionner un répertoire de données de calcul d'itinéraire...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (hors ligne)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (en ligne)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation>Brouter (en ligne)</translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Créer une base de données Routino</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Sélectionnez les fichiers...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Sélectionnez le répertoire cible...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! fait !!!</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>Aucune plage selectionnée</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Mode exact</b><br/>Tous les objets selectionnés doivent être totalement inclus dans la zone sélectionnée.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation><b>Mode intersection</b><br/>Tous les objets selectionnés doivent avoir au moins une partie incluse dans la zone sélectionnée.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Ajouter des traces</b><br/>Ajouter des traces à la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Ajouter des waypoints</b><br/>Ajouter des waypoints à la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Ajouter des routes</b><br/>Ajouter des routes à la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Ajouter des surfaces</b><br/>Ajouter des surfaces à la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Ignorer les traces</b><br/>Ignore les traces dans la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Ignorer les waypoints</b><br/>Ignore les waypoints dans la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Ignorer les routes</b><br/>Ignore les routes dans la liste d'objets selectionnés<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation><b>Ignorer les surfaces</b><br/>Ignore les surfaces dans la liste d'objets selectionnés<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Rechercher dans la base de données '%1:'</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Réponse inconnue</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Erreur: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Elément obligatoire manquant</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>MySQL ne peut pas être utilisé, car le pilote correspondant (QMYSQL) n'est pas disponible. <br/>Assurez vous d'avoir installé le paquet correspondant. <br />Si vous ne savez pas quoi faire maintenant jetez <a href="%1">un coup d'oeil au wiki</a>.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Une database de ce nom existe déjà : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Nouvelle base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Ouvrir la base de données...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Mise en place la base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Les modifications prennent effet après un redémarrage de l'application.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Echec du chargement du fichier %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Echec lors du parcours du timestamp '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 n'existe pas</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Impossible de lire: %1
-ligne %2, colonne %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>Ce n'est pas un fichier SLF: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Révision non supportée %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Break %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Tour %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation>Impossible de charger le fichier %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Erreur de lecture : %1
-ligne %2, colonne %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation>Ce n'est pas un fichier sml : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Temps de récupération : %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Pic d'effet d'entraînemet : %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Energie : %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation>Appareil : %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation>Utilisation de la batterie : %1 %/heure</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation>Utilisation de l'heure locale...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>Aucune heure UTC trouvée dans le fichier %1. L'heure locale de l'ordinateur sera utilisée. Vous pouvez utiliser un filtre pour ajuster l'heure si nécessaire.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Ce fichier SML ne contient aucune donnée de position et ne peut pas être affiché par QMapShack : %1</translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Double-clic pour éditer l'altitude</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation>%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Impossible de charger le fichier %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Impossible d'ouvrir %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Erreur de lecture: %1
-ligne %2, colonne %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>Ceci n'est pas un fichier TCX : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Ce fichier TCX contient au moins 1 entraînement, mais aucune activité ni course. Comme les entraînements ne contiennent pas de données de position, ils ne peuvent pas être importés dans QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>Ce fichier TCX ne contient ni activité ni course : %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>Le fichier existe...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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 TCX 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/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>La trace <b>%1</b> que vous avez selectionnée contient des points à l'horodatage invalide. L'appareil risque de ne pas accepter le fichier TCX généré si la trace est laissée telle quelle. <b>Voulez-vous appliquer un filtre vitesse arbitraire (10 m/s) et continuer ?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Course</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Activité</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Trace à l'horodatage invalide...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>Activité ou course ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack ne sait pas comment la trace <b>%1</b> doit être sauvegardée. <b>Voulez-vous la sauvegarder comme une activité ou comme une course ?</b> Seuls les waypoints proches de la trace seront inclus si "course" est choisi. Si "activité" est choisi aucun waypoint ne sera inclus.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Impossible de créer le fichier: '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Impossible d'écrire le fichier: '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Impossible de sauvegarder les données SIG</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>choisir ...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Compte-rendu de randonnée (intégré)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Chemin du template</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>Impossible de lire le template %1.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Aperçu...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Couleur...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Retour au format par défaut</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Actions Disponibles</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Actions Sélectionnées</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Impossible d'ouvrir %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Enregistrer les données SIG dans...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <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="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Impossible de lire les données.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Répertoire des icônes personnalisées...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Participants</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Climat</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>pluie</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>ensoleillé</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>neige</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>nuages</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation>venteux</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>chaud</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>tiède</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>froid</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>gel</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>brouillard</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>humide</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Caractéristiques</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>randonnée facile</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>montée</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>alpin</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>longue descente</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>longue distance</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>via ferrata</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>Grêle / grêle molle</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation>Notation</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>Notation 5 étoiles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>Notation 4 étoiles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>Notation 3 étoiles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>Notation 2 étoiles</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>Notation 1 étoile</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>abandonné</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Equipement</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>Equipement de via ferrata</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>Equipement de nuit</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>Bottes de neige</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>Equipement d'escalade</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>ski</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>Equipement de camping</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Détails</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>À propos...</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Tchèque:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Allemand:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation>Oliver Eichler</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Néerlandais:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Français:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Russe:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation>Wolfgang Thämelt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Traduction:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation>Harrie Klomp</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Espagnol:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation>Win64:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation>OS X:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Fichiers binaires:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Contributeurs:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation>Ivo Kronenberg</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation>Helmut Schmidt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>... et merci à tous les gestionnaires de binaires Linux pour leur travail admirable. Remerciements particuliers à Dan Horák et Bas Couwenberg pour leur présence sur les mailing lists relatives aux distributions.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <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>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Configurer la vue cartographique...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Projection et date</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Échelles</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logarithmique</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>Carré (optimisé pour tuiles TMS et WMTS)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialogue</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Joindre des traces</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Traces Disponibles</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Traces Combinées</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Format des coordonnées...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>N48° 53.660 E013° 31.113</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>N48.8943° E013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Créer une route à partir de waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Couper la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Supprimer le début de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Séparer la trace en 2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Supprimer la fin de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Mode de découpe :</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Cocher la case pour stocker le résultat dans une nouvelle trace. 
-
-Si vous voulez conserver les 2 parties de la trace vous devez en créer de nouvelles. 
-
-Si vous voulez conserver seulement une moitié vous pouvez simplement enlever les points, ou cochez la case pour créer une nouvelle trace.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Créer une nouvelle trace</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>Le format interne de la base de donnée %1 a changé. QMapShack va migrer votre base de donnée maintenant. Après la migration la base de données ne sera plus utilisable avec les versions précédentes de QMapShack. Il est recommandé de faire une sauvegarde de secours avant la migration.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Migration de la base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>Migration annulée par l'utilisateur</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Echec de la migration de %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>Echec de la migration</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>La version de la base de données %1 est plus récente que celle acceptée par la version de QMapShack installée. QMapShack ne peut pas l'ouvrir.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Echec de l'initialisation</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Version de base donnée erronée...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>Base de donnée créée par une version plus récent de QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Echec de l'initialisation de '%1'.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Mot de passe...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Mot de passe pour la base de données '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Mise à jour de la base de données en version 5. Migration de tous les objets SIG</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Mise à jour de la base de données vers la version 3. Migration de tous les objets SIG.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Mise à jour de la base de données vers la version 5. Migration de tous les objets SIG.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Mise à jour de la base de données vers la version 6. Migration de tous les objets SIG.</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Configurer les répertoires DEM</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Régler la transparence du calque DEM</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle minimale d'affichage de la carte.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Définissez la plage d'échelle pour l'affichage de la carte. Utilisez les deux boutons à droite et à gauche pour définir l'échelle courante comme échelle maximale ou minimale.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle maximale d'affichage de la carte.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Relief ombré</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Pente </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation>> </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Pour ajouter des fichiers DEM cliquez sur <b>Fichier -> Configurer les répertoires DEM</b>.  Or cliquez <a href=réglages'><b>ici</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Utilisez le menu contextuel (clic droite sur le fichier) pour activer un fichier. Utilisez glisser-déposer pour changer la position du fichier dans la liste.</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Activer</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Déplacer vers le haut</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Cacher le DEM derrière le précédent</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Déplacer vers le bas</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Afficher DEM par-dessus le suivant</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>Recharger DEM</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation>Dialogue</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Difficulté</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Mise à jour des spoilers</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Indice:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialogue</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>La  surface à été importée dans QMapShack et a été modifiée. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Couleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Largeur de la bordure</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Opacité</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Mots-clés:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Trier le long de la trace (multiple)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Trier le long de la trace (individuel)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Imprimer le journal</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Garder l'ordre du projet</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Restaurer le journal...</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Information</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>L'itinéraire à été importé dans QMapShack et a été modifié. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Dés/activer le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Vitesse</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Style</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Source</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Maximum</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Utiliser/éditer l'affichage personnalisé des flèches pour cette trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Utiliser/éditer l'affichage global des flèches pour cette trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Minimum</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Utiliser/éditer le facteur d'échelle personnalisé pour cette trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Utiliser/éditer le facteur d'échelle global  pour cette trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation>x </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Largeur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>flèches</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Graphiques</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation>max.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation>min.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Limites personnalisées pour cette trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation>-
--
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>La trace à été importée dans QMapShack et a été modifiée. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Limites automatiques</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Limites personnalisées pour toutes les traces</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Couleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Activité</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Choisir l'activité de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Pour différencier les statistiques de la trace, selectionnez une activité dans la liste pour la trace complète. Ou bien sélectionnez une partie de la trace pour lui assigner une activité.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Date</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Pente</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Montée</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Descente</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialogue</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Alt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Proximité:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Le waypoint à été importé dans QMapShack et a été modifié. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Date/heure</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Ajouter des images</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Supprimer l'image sélectionnée</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Un autre projet du même nom existe déjà. Si vous confirmez, il sera supprimé et remplacé.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Modifier l'altitude...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Altitude</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Prendre l'altitude du modèle numérique de terrain (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Exporter la base de données en GPX ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Chemin d'exportation :</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 sans extensions</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Démarrer</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Supprimer des points de trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Supprimer définitivement tous les points cachés.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Enlever les extensions de tous les points de la trace</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Enlever</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>de tous les points de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Cacher des points (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Cacher les points dont la distance de la ligne entre les points voisinants est inférieur à</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Appliquer le filtre maintenant.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Interpoler les altitudes</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Remplacer les altitudes des points de la trace par des données interpolées.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Qualité</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Aperçu</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Cacher les points invalides</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Cacher les points aux données invalides</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Lisser le profile (méthode médian)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Lisse le profile avec un filtre médian de dimension</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation> points</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Modifier la date et l'heure</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Date et heure du début de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.yy HH:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Camoufler l'horodatage</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Incrementer l'horodatage de</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation> sec.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>pour chaque point de la trace. O sec. supprimera l'horodatage.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Décalage de l'altitude</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Ajouter un décalage de</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>à l'altitude des points</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Remplacer l'altitude</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Remplacer l'altitude des points par les données DEM</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Restaurer les points cachés</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Rendre visible les points cachés</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Modifier la vitesse</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Mettre la vitesse à </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Séparer les segments en traces</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Créer une nouvelle trace pour chaque segment dans cette trace.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><b>Convertir les sous-points de la trace en points</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Convertir les points calculés par le routage en points ordinaires </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Calculer la pente du terrain</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Calculer la pente du terrain à partir des fichies MNT chargés.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>Error de décodage FIT : le décodeur n'est pas dans l'état attendu %1 après le dernier octet de donnée du fichier</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation>Erreur de décodage FIT : un champ de développement avec le numéro de définition %1 existe déjà</translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation>Age</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation>Pour ajouter une base de données cliquez droit sur la liste ci-dessus.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[sans nom]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>L'objet ne fait pas partie du projet dans la base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>Il s'agit soit d'un nouvel objet soit d'un objet qui a été supprimé de la base de donnée par quelqu'un d'autre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>L'objet n'est pas dans la base de données.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>L'objet aurait besoin d'être sauvegardé.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Version initiale</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation>Ne plus demander.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3>Cet élément est probablement en lecture seule car il n'a pas été créé dans QMapShack. En général les données importées ne sont pas modifiées par les utilisateurs. Mais si c'est bien votre intention cliquez 'OK'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Mode lecture seule</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Description:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>--- pas de description ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Commentaire:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- pas de commentaire ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Liens:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- pas de liens ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Éditer le nom...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Entrez un nouveau %1 nom.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Enregistrer le projet ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>Le projet a été modifié. Sauvegarder avant de quitter ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Corréler les traces et les waypoints.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>Etait-ce trop long ? Voulez-vous ne pas faire la corrélation des traces et waypoints la prochaine fois pour ce projet ?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Corrélation annulée...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Sauvegarder"%1" dans ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Nom de fichier: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Waypoints: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Traces: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Routes: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Surfaces: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <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/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Supprimer...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation>Opacité</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation>Modifier l'opacité de tous les objets SIG sur la carte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation>Filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation>RAZ filtre</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation>Réglages Filtre</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Configurer la grille...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Projection</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>Remise à zéro</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Utiliser la projection de la carte courante</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>Assitant de projection</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Couleur de la grille</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>Choisir la couleur de la grille</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Base de donnée source</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Base de donnée cible</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Démarrer</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Éditer...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation>Routage</translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Liens...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Type</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Texte</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Fichier</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Vue</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Fenêtre</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Outils</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Cartes</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Modèle numérique de terrain (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation>Espace de travail</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Barre d'outils</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation>Routage</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Ajouter une vue cartographique</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Afficher l'échelle</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Configurer la police de la carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Afficher la grille</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Configurer la grille</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Inverser le sens de la molette de souris</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Configurer les répertoires des cartes</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>Libellés des points d'interêt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Jour / Nuit</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Infobulles sur la carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>CTRL + I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Configurer les répertoires DEM</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>À propos</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Aide</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Configurer la vue cartographique</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>Charger des données SIG...</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Charger un fichier projet</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Enregistrer toutes les données SIG</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <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="510"/>
-        <source>Ctrl+S</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Configurer le fuseau horaire</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Ajouter un projet vide</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Recherche Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Fermer tous les projets</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Configurer les unités</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Configurer l'espace de travail</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Sauvegarde de la configuration en quittant</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Importer une base de données QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>Importer une base de données QLandkarte GT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>Générateur de VRT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>Interface utilisateur pour gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Enregistrer une vue cartographique</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Sauvegarder les cartes et calques DEM actives et leurs paramètres dans un fichier</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Charger une vue cartographique</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Rétablir une vue avec les cartes et calques DEM et leurs paramètres à partir d'un fichier</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Profile externe</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>CTRL + Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Dupliquer une vue cartographique</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Créer une base de données Routino</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Sauvegarder (Imprimer) une capture d'écran de la carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Imprimer une zone sélectionnée de la carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>CTRL + P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Choisir le format de coordonnées</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Modifier le format des coordonnées affichées</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Modifier l'arrière-plan de la carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Modifer les icônes des waypoints</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Modifier le chemin des icônes personnalisés</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Fermer l'onglet</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation>CTRL + W</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation>Aide Rapide</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Réglages barre d'outils</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Activer les docks</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Activer la visibilité des fenêtres dockables</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation>CTRL + D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Plein écran</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation>Valeurs Min./Max. des traces</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation>Afficher les valeurs min/max le long de la trace dans la vue carte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation>Ctrl+N</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation>Base de données</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Pour ajouter des cartes utilisez <b>Fichier->Configurer les répertoires des cartes</b>.  Ou cliquez <a href='réglages'><b>ici</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Utilisez le menu contextuel (clic droite sur la carte) pour activer une carte. Utilisez glisser-déposer pour changer la position de la carte dans la liste.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Au secours ! Je veux des cartes !
-Je n'ai pas envie de lire la documentation !</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Activer</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Déplacer vers le haut</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Cacher la carte derrière la carte précédente</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Déplacer vers le bas</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Montrer la carte au sommet de la carte suivante</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Recharger les cartes</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>L'affichage de cette carte nécessite l'utilisation d'OpenSSL. Par défaut OpenSSL n'est pas inclus dans QMapShack à cause de restriction légales dans certains pays. Vous pouvez consulter <a href='https://www.openssl.org/community/binaries.html'>la page d'accueil OpenSSL</a> pour trouver des fichiers binaires. Vous devez copier libeay32.dll et ssleay32.dll dans le répertoire programme de QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Erreur...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: %2 tuiles à charger<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Configurer les répertoires des cartes</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Répertoire racine du cache de tuiles pour les cartes en ligne :</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Au secours ! Je veux des cartes !
-Je n'ai pas envie de lire la documentation !</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Régler la transparence de la carte</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle minimale d'affichage de la carte.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Définissez la plage d'échelle pour l'affichage de la carte. Utilisez les deux boutons à droite et à gauche pour définir l'échelle courante comme échelle maximale ou minimale.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle maximale d'affichage de la carte.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Surfaces</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Lignes</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Points</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Détails</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Répertoire du cache</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>Type de fichier :</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Ne pas utiliser de TYP¨externe et utiliser le TYP interne.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Charger un fichier TYP externe.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Taille du cache (MO)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Durée du cache (jours)</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Options avancées</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Sélectionnez les fichiers source:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Fichier cible:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Démarrer</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Nouvelle ligne</b><br/>Déplacez la souris et utilisez le bouton gauche pour ajouter des points. Cliquez droit pour terminer.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Supprimer un point</b><br/>Approchez le pointeur du point et cliquez gauche pour le supprimer.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Sélectionner une série de points</b><br/> Pour commencer la sélection, cliquez gauche sur le premier point. Cliquez gauche sur le sur le deuxième point pour terminer la sélection et choisissez une option. Utilisez le bouton droit pour annuler.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Déplacer un point</b><br/>Approchez le pointeur près d'un point et cliquez gauche pour le coller au pointeur. Déplacez le point avec la souris. Déposez le point avec un clic gauche. Utilisez le bouton droit pour annuler.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Ajouter un point</b><br/>Placez le pointeur de la souris près d'un segment de ligne et cliquez gauche pour ajouter un point. Le nouveau point va coller au pointeur et vous pouvez le déplacer. Déposez le point par un clic gauche. Utilisez le clic droit pour annuler.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Aucun calcul d'itinéraire</b><br/>Les points seront connectés par une ligne droite.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Calcul d'itinéraire automatique</b><br/>Les paramètres de calcul d'itinéraire actuels serviront pour calculer un tracé entre les points. <b>Remarque :</b>Le routeur sélectionné doit être capable de faire le calcul à la volée. Généralement, les routeurs hors ligne en sont capables, les routeurs en ligne ne le sont pas.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Calcul d'itinéraire vecteur</b><br/>Connecter les points avec une ligne basée sur une carte vecteur active, si possible.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1 Mesures</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Distance:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Montée:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Descente:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Zoom à la valeur initiale</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translatorcomment>tbc: range</translatorcomment>
-        <translation>Terminer la série</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Enregistrer...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Ajouter un waypoint</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Couper...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Enfoncez CTRL pour zoomer uniquement sur l'axe vertical.
-Enfoncez ALT pour zoomer uniquement sur l'axe horizontal.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Aucune donnée ou données invalides.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Sélectionner le fichier de sortie</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Saisissez la nouvelle position</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Mauvais format de position. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Imprimer la carte...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>Pour l'impression de cartes en lignes assurez-vous que l'ensemble de la zone à imprimer est bien déjà stockée dans le cache.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Enregistrer</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>Poursauvegarder des cartes en lignes assurez-vous que l'ensemble de la zone à sauvegarder est bien déjà stockée dans le cache.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Impression</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Patientez s'il-vous-plaît</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>personnalisé</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Date</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Resultat:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Nord (pôle nord)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Sud (pôle sud)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Dupliquer un waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Dupliquer le waypoint et déplacer de:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Alternative</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation type="unfinished">Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation type="unfinished">Port</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Autoroutes</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Routes saisonnières</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Langue</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Frontières</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Profil</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Eviter:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Bac</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Routes à péages</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Routes non revêtues</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Itinéraires fournis par <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Profile</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Mode</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Base de données</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Ajouter des répertoires qui contiennent des bases de données Routino.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Langue</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Pour pouvoir utiliser le calcul d'itinéraire hors ligne, vous devez spécifier les répertoires qui contiennent les données locales de calcul d'itinéraire. Utilisez le bouton de configuration pour ajouter des répertoires. Vous pouvez créer vos propres données de calcul d'itinéraires avec <b>Outils->Créer une base de données Routino</b>.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Configurez la base de données Routino...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Sélectionnez les fichiers source:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Démarrer</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Chemin cible:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Préfixe du fichier</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Sauvegarder sur l'original</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Enregistrer sous...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Déplacer les points. (CTRL + M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>CTRL + M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Ajouter des points (CTRL + + )</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>CTRL + + </translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Selectionner une plage de points (CTRL + R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>CTRL + R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Pas d'autoroutge ou de suivi le ligne automatique (CTRL + O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>CTRL + O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Utiliser l'autoroutage entre les points. (CTRL + A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>CTRL + A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Suivre les lignes de la carte vectorielle (CTRL + V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Supprimer un point. (Ctrl+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation>Ctrl+-</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>CTRL + V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Annuler la dernière modification</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Rétablir la dernière modification</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Voir les détails et éditer.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Copier la surface dans un autre projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Supprimer la surface du projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Modifier la forme de la surface.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation>Sauvegarder la zone sélectionnée comme image</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Imprimer la zone sélectionnée</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Supprimer tous les points entre le premier et le dernier point.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Calculer un itinéraire entre le premier et le dernier point sélectionné.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Cacher tous les points.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Afficher tous les points.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Sélectionner une activité pour la plage sélectionnée.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Créer une nouvelle trace à partir des points sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Copier la route dans un autre projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Voir les détails et éditer.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Supprimer la route du projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Calculer la route.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Réinitialisationdu calcul d'itinéraire</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Déplacer les points de la route.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Convertir la route en trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Copier tous les éléments sélectionnés dans un projet</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Créer une route à partir des waypoints sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Changer les icônes de tous les waypoints sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Combiner toutes les trcaes sélectionnées dans une seule nouvelle</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Choisir un activité pour toutes les traces sélectionnées.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Supprimer tous les objets sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Sélectionner tous les objets dont au moins une partie est présente dans la zone sélectionnée</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Sélectionner tous les objets qui sont totalement inclues dans la zone sélectionnée.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Ajouter des traces à la sélection</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Ajouter des waypoints à la sélection</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Ajouter des routes à la sélection</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Ajouter des surfaces à la sélection</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Copier la trace dans un autre projet</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Voir les détails et éditer les paramètres de la trace.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Supprimer la trace du projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Afficher le profil d'altitude et des informations detaillées sur les points</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Sélectionner une séquence de points.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Modifier la position des points de la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Inverser la trace</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Joindre des traces</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Couper la trace au point selectionné. Vous pouvez faire ceci pour:
-
-* Supprimer des points erronnés au début ou à la fin de la trace
-* Utiliser les segments de trace obtenus pour préparer une nouvelle trace
-* Tronçonner une trace en plusieurs étapes
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Choisir une activité pour la totalité de la trace.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Copier la trace et ses waypoints attachés dans une autre projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Voir les détails et éditer.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Copier le waypoint dans un autre projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translatorcomment>tbc: waypoint</translatorcomment>
-        <translation>Supprimer le waypoint du projet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Afficher le contenu comme bulle statique.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Déplacer le waypoint.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Dupliquer le waypoint et déplacer la copie d'une distance et d'un angle défini.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation>changer le rayon de la zone circulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>basculer entre proximité et zone interdite</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Supprimer le cercle défini par le waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation>changer le rayon de la zone circulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>basculer entre proximité et zone interdite</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Supprimer le cercle défini par le waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Rechercher...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Entrez le mot à rechercher et cliquez sur le bouton "Rechercher".
-Si vous entrez 'mot' alors 'mot' uniquement sera recherché. Si vous entrez 'mot*', 'mot' doit âtre au début de la chaîne de caractères recherchée.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Rechercher</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Fermer</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Sélectionner les appareils...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Copier un élément...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Remplacer l'élément existant</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Libellé</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>Ne pas copier l'élément</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Dupliquer l'élément</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Remplacer par:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Conserver l'élément:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Le nom de la copie aura le suffixe '_Clone'</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>et pour tous les autres éléments</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Sélectionner le répertoire parent...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Disponible</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Ajouter aux objets sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Enlever des objets sélectionnés</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Sélectionné</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Déplacer les objets sémectionnés vers le haut</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Déplacer les objets sémectionnés vers le bas</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Choisissez un projet...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Choisissez un projet dans la liste ou entrez le nom d'un nouveau projet.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Nom du nouveau projet</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>Le nouveau projet sera de type:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Base de données</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Copier un élément...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Remplacer l'élément existant</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Ajouter un clone</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>Le nom du clone aura le suffixe '_Clone'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Remplacer par:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>Ne pas remplacer l'élément</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Utiliser l'élément:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>et pour tous les autres éléments</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Ajouter une base de données...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Attention!</span> Il est recommandé de laisser le champ "mot de passe" vide,car QMapShack stocke les mots de passe en clair. Une mot de passe sera alors demandé à chaque démarrage.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>Ne pas utiliser de mot de passe</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Serveur</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation>Port</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Utilisateur</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Mot de passe</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Port:</b> Laissez le champ "Port" vide pour utiliser le port par défaut.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Fichier:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Ajouter une nouvelle base de données.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Ouvrir une base de données existante.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulaire</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Appliquer le filtre à</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>nom seulement</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>texte complet</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Dossier de base donnée...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Nom du dossier</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Groupe</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Projet</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Autre</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Nouveau waypoint...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Symbole</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Position</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Nom</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Mauvais format de position. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Configurer l'espace de travail...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>Sauvegarde de l'espace de travail en quittant et toutes les</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>Détecter des modiications de la base de données par d'autres instances de QMapShack. Sur le port</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Insérer un template</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Templates</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Séléctionner le chemin vers vos propres templates.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Aperçu</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Éditer le texte...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Annuler</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Répéter</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Couper</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Copier</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Coller</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Templ.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation>A:G</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation>A:C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation>A:D</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation>A:J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation>G</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation>S</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation>C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Standard</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation>Puce de liste (disque)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation>Puce de liste (Cercle)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation>Puce de liste (Carré)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation>Liste numérotée (chiffres)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation>Liste numérotée (lettres minuscules)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation>Liste numérotée (lettres majuscules)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation>Liste numérotée (chiffres romains  minuscules)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation>Liste numérotée (chiffres romains  majuscules)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Aligné à gauche</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Aligné à droite</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Centré</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Justifié</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Soulignage</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Gras</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Italique</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Texte brut</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Réinitialiser la mise en forme du texte avant de coller</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Tout sélectionner</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation>CTRL + A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Supprimer</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Réinitialiser la police</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Réinitialiser la mise en forme</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Normal</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Coller sans réinitialiser la mise en forme du texte</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Insérer depuis le template</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Créer le texte depuis le template</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Couper</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Copier</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Coller</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Configurer le fuseau horaire</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>UTC</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Local</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automatique</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Afficher la date au format</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>long</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>court</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Note:</b> Le changement d'unités ne sera totalement visible qu'après le redémarrage de QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Réglages de la barre d'outils</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>Barre d'outils visible en mode plein écran</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Echec de l'execution du programme externe %1: </translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>Le process ne peut être démarré</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>Assurez-vous que les paquets requis sont installés, '%1' existe et est exécutable.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>Process externe planté.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>Une erreur inconnue a eu lieu.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! échec !!!</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Erreur</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Format de position incorrect. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Valeurs de la position hors de la plage autorisée.</translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Configurer les unités</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation>Unité de longueur</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Métrique</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation>Unité de pente</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation>Degrés (°)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation>Pourcents (%)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Note:</b> Le changement d'unités ne sera totalement visible qu'après le redémarrage de QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Impérial</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Nautique</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Icônes</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Icônes externes:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Les icônes personnalisés doivent être de type *.bmp ou *.png</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_nl.ts b/src/locale/qmapshack_nl.ts
deleted file mode 100644
index c28dd28..0000000
--- a/src/locale/qmapshack_nl.ts
+++ /dev/null
@@ -1,10198 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="nl_NL">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API V%2, verwachte V%3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API V%2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>Wandelen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Fiets</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Motorfiets</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Kabelbaan</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Zwemmen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Boot</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Ski/Winter</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Vliegtuig</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Afstand:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Bewogen snelheid:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Totale snelheid:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Bewogen tijd:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Totale tijd:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Venster %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Toon debug resultaat op scherm.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Sla debug resultaat op als bestand (tijdelijk psd).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>Toon geen splash scherm.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Bestand met QMapShack. configuratie.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>bestand</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Bestanden voor toekomstig gebruik.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle gegevens gegroepeerd per map.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Lost & Found (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Lost & Found</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle gegevens gegroepeerd per map.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>MySQL Database</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Fout: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Alle gegevens gegroepeerd per map.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>SQLite Database</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Bestand: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation type="unfinished">Fout: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>Het item %1 is verand door %2 (%3). 
-
-Om dit conflict op te lossen kan een kloon gemaakt en opgelagen worden, forceer huidige versie of verwijder deze versie en kies een ander uit de database</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Conflict met database...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Kloon && Opslaan</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Forceer opslaan</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Neem huidige</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Opslaan...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Fout</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Er is een onverwachte database fout opgetreden:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>Het project '%1' zal geupdated worden met de database.Er zijn nog veranderingen niet opgeslagen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Veranderingen opslaan?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Deactiveer</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Activeer</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Maak of verwijder mappen naar DEM gegevens.-Er kunnen meerdere bestanden in een map zijn maar geen submappen Ondersteunende formaten zijn: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Selecteer map met DEM bestanden...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>Kan bestand %1 niet laden</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>DEM moet 16 bit of 32 bit gegevens bevatten.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>Geen geografische gegevens gevonden.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>geen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Zoeken naar afbeeldingen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>Geen afbeeldingen gevonden</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Om wayponts van een track te sorteren dient de correlatie van track en waypoints ingeschakeld zijn.. Moet dit weer ingeschakeld worden?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Correlatie...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>geen</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Dagboek maken...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Overzicht van alle tracks in project</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Waypoints</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Notitie</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Tracks</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Gebieden</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Routes</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Bewerk naam...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Geef  project een nieuwe naam.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Bewerkt sleutelwoorden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Geef sleutelwoorden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Dagboek afdrukken</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Reduceer zichtbare trackpunten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation>Verander hoogte van trackpunten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <source>Change timestamp of track points</source>
-        <translation>Verander tijdstempels van trackpunten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
-        <source>Miscellaneous</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Kleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Activiteit</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Geef nieuwe afstand in voor nabijheid.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Afbeelding%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Onbekend</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>Geen OEM gegevens gevonden voor dit punt.</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Kan bestand %1 niet laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Waarschuwing...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation>Dit is een bestand met onbekende polygon codering. Alstublieft melden!</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation>Dit is een bestand met onbekende polylijn codering. Alstublieft melden!</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>dun</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>normaal</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>breed</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>vet</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Kloon</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Gebied: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Vorm gebied aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Naam aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Lijndikte aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Opvulling aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Transparantie aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Notitie aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Beschrijving aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Link aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Kleur aangepast</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_Kloon</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Naam aangepast.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Notitie aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Beschrijving aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Link aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished">Lengte: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation type="unfinished">Tijd: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation type="unfinished">Afstand: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Lengte: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Tijd: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Laatste routeberekening:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>met %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Routepunten aangepast.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Kan %1 niet openen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Alleen lon/lat WGS 84 formaat word ondersteunt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Failed to read data.</source>
-        <translation>Lezen gegevens mislukt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_Kloon</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <source>Changed trackpoints, sacrificed all previous data.</source>
-        <translation>Trackpunten aangepast, vorige gegevens overschreven.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Start: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Einde: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Punten: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... en %1 tags niet getoont</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>, %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation type="unfinished">Lengte: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <source>, %1%2%3, %4%5%6</source>
-        <translation type="unfinished">, %1%2 %3, %4%5%6 {1%2%3,?}</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
-        <source>, %1-, %2-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="589"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished">Hoogte.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation type="unfinished">Afstand: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Permanent verwijderde punten %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Toon punten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Naam aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Notitie aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Beschrijving aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Link aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Activiteit aangepast naar '%1' voor gehele track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Activiteit aangepast naar '%1' voor bereik(%2..%3).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Verberg alle punten via Douglas Peuker algoritme (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Verander alle verborgen trackpunten naar zichtbaar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Alle verborgen trackpunten permanent verwijderd</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Vloeiend profiel met een median filter van grootte %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Vervang hoogte gegevens met gegevens van DEM bestanden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Start van track veranderd naar %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Verwijder tijdstempels.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Snelheid veranderd naar %1%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (Segment %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Kopieer flag informatie vanuit QLandkarte GT track</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Gearchiveerd</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Beschikbaar</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>Niet beschikbaar</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_Kloon</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation type="unfinished">Hoogte: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation type="unfinished">Nabijheid: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Naam aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Positie aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Hoogte aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Nabijheid aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Pictogram aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Notitie aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Beschrijving aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Link aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Afbeelding aangepast</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Afbeelding toevoegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Door  een aanpassing in het database systeem is QMapShack de bestandnaam van database ''%1' vergeten. Selecteer dit weer in de volgende stap.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Selecteer database bestand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Database toevoegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Map toevoegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Map verwijderen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Element verwijderen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Syngroniseren met database</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Database verwijderen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Leeg</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Database verwijderen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Moet '%1' werkelijk uit de lijst verwijderd worden?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Verwijder database map...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Elementen verwijderen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Moeten alle elementen worden verwijderd uit Verloren & Gevonden? Dit zal pemanent zijn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Moeten alle geselecteerde elementen worden verwijderd uit Verloren & Gevonden? Dit zal pemanent zijn.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Moet '%1' uit map '%2' verwijderd worden?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Verwijderen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Bewerken..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Toon op kaart</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Toon niet op kaart</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Opslaan</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Verzend naar GPS</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Syngroniseren met database</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Sluiten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Update project op GPS</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Verwijder</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Bewerken...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Kopieer naar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Track profiel</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Selecteer afstand</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Trackpunten bewerken</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Track omdraaien</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Combineer tracks</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Toon ballon</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Verplaats waypoint</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Projecteer waypoint...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Route instructies</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Route berekenen</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Route omkeren</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Bewerk route</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Bewerk gebied punten</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Maak route</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Elementen wissen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
-        <translation><b>Updaten GPS</b><p>Updaten %1<br/>Moment geduld...</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Werkruimte opslaan. Moment geduld.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Laden werkruimte. Moment geduld.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Sluit alle projecten...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>Dit zal alle projecten uit de werkruimte verwijderen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation>Project verwijderen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Moet %1 werkelijk verwijderd worden?</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation type="unfinished">Project laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation type="unfinished">Het project "%1" is al geopend.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation type="unfinished">Kopieer elementen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation type="unfinished">Track knippen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation type="unfinished">Moet de orginele track verwijderd worden?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation type="unfinished">Geen GPX bestand: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation type="unfinished">Bestand bestaat al...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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 type="unfinished">Dit bestand bestaat al en is niet in QMapShack gemaakt. Wanneer op 'Ja' geklikt wordt zullen er gegevens verloren gaan. Alhoewel QMapShack dit GPX bestand kan openen is het mogelijk dat niet alle elementen opgeslagen kunnen worden. Geadviseerd wordt om een ander bestand te kiezen. <b>Moet dit bestand werkelijk overschreven worden?<b/></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation type="unfinished">Maken bestand mislukt '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation type="unfinished">Schrijven bestand mislukt '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation type="unfinished">Opslaan GIS gegevens mislukt...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1m, %2m </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>N %1m, O %2m </translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation> per %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>QLandkarte database importeren</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Bron database selecteren...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Doel database selecteren...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Snelheid</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Cadans</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Diepte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Diepte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Cadans</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Snelheid</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Richting</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Richting</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Afstand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished">Hoogte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Helling</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished">Voortgang</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Lost & Found</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation type="unfinished">Hoogte.: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Raster: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>GIS gegevens laden...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Selecteer bestand</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Selecteer bestand</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Mislukt...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Ongespecificeerd</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Frans</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Duits</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Nederlands</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Engels</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Italiaans</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Fins</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Zweeds</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Spaans</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Baskisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Catalaans</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Galicisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Wels</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Gaelisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Deens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Noors</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Portugees</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Slowaaks</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Tsjechisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Kroatisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Hongaars</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Pools</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Turks</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Grieks</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Sloveens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Russisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Ests</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Lets</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Roemeens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Albanisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Bosnisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Litouws</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Servisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Macedonisch</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Bulgaars</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Belangrijke snelweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Gewone snelweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Andere snelweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Uitvalsweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Verzamelweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Woonstraat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Laan/privéweg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Snelweg oprit, langzame snelheid</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Snelweg oprit, hoge snelheid</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Onverharde weg</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Belangrijke snelwegknooppunt</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Rotonde</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Spoorlijn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Kustlijn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Pad</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Stroom</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Tijdzone</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Veerdienst</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Staat/provinciegrens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Provincie/gemeentegrens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Internationale grens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Rivier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Klein hoogteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Gemiddeld hoogteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Groot hoogteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Klein diepteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Gemiddeld diepteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Groot diepteverschil</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Intermitterende beek</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Landingsbaan</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Pijplijn</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Hoogspanningsleiding</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Zeegrens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Gevaarlijke grens</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Groot bevolkt gebied (&gt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Klein bevolt gebied (&lt;200K)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Landelijk woongebied</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Militaire basis</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Parkeerterrein</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Parkeergarage</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Vliegveld</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Winkelcentrum</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Jachthaven</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Universiteit/College</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Ziekenhuis</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Industrie</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Reservaat</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Gemaakt gebied</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Sprtcomplex</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Golfbaan</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Begraafplaats</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Nationaal park</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Stadspark</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Staatspark</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Bos</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Oceaan</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation>Blauw (onbekend</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Zee</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Groot meer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Middelmatig meer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>Klein meer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Belangrijk meer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Belangrijke rivier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Groot rivier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Middelmatig rivier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Klein rivier</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Intermitterende water</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Moeras</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Gletsjer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Boomgaard/Plantage</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Struikgewas</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Toendra</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Vlak</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Lezen mislukt:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Openen mislukt:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Verkeerd bestandsformaat:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Lezen bestandsstructuur mislukt:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Laden %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Afgebroken door gebruiker: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>Bestand is in NT formaat. QMapShack kan geen kaarten lezen met NT formaat:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Interessant punt</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Onbekend</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Gebied</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Deactiveer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Activeer</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>Waar moeten de kaarten opgeslagen worden?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Openen mislukt:</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Verkeerd bestandsformaat:</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Maak of verwijder mappen naar kaarten.-Er kunnen meerdere kaarten in een map zijn maar geen submappen Ondersteunende formaten zijn: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Selecteer kaartmap...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Selecteer hoofdmap...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Dit is geen TwoNav RMAP bestand.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Onbekend sub formaat.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Onbekende versie.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Kan geen referentiepunten lezen.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Onbekende projectie en datum (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Laag-%1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Bestand laden mislukt: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>Bestand moet 8 bit kleur of grijs geindexeerd zijn.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>Geen geografische gegevens gevonden.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>GDAL VRT maken</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Selecteer bestanden...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Selecteer doel bestand...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! klaar !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Lezen mislukt: %1
-Onbekende structuur.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Onverwachte service. '*WMTS 1.0.0' is verwacht. '%1 %2' is gelezen.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>Geen geografische gegevens gevonden.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Gebied</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Bewerk gebied</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Route</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Bewerk route punten</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Bewerk track punten</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Waarschuwing!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Dit zal alle gegevens overschrijven van het origineel door een simpele lijn met coördinaten. Alle andere gegevens zullen verloren gaan.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Maak waypoint</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Maak track</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Maak route</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Maak gebied</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Kopieer positie</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Kopieer positie (Raster)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Selecteer afbeeldingen...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation type="unfinished">Tijd</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Kaart afdrukken...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Sla kaart op als afbeelding...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Printer instellingen...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Pagina's: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Zoom met muiswiel op kaart om resulotie te veranderen:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Pagina's afdrukken.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Kaart opslaan...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Verstreken tijd: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Verstreken tijd: %1 seconden.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>noord</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>zuid</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>De waarde
-'%1'
-is geen geldig coordinaat definitie:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Bewerk naam...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Geef  waypoint een nieuwe naam.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation type="unfinished">Openen mislukt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Migreren database van versie 4 naar 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Migreren database van versie 5 naar 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Migreren database van versie 6 naar 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Migreren database van versie 7 naar 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Migreren database van versie 8 naar 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Open database: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Mappen:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Tracks:           %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Routes:           %1 (Alleen de basis route zal gekopieerd worden)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Waypoints:        %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Overlays:         %1 (gebieden zullen worden omgezet als gebieden, afstandlijnen zullen worden omgezet als tracks, alle andere overlay onderdelen zullen verloren gaan)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Dagboeken:          %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Kaarselecties: %1 Kunnen niet omgezet worden door QMapShack)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Start omzetten database naar %1------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Kan geen database maken.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------ Geannuleerd ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------ Klaar ------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Herstel mappen...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>Geimporteerd %1 mappen en %2 dagboeken</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Kopieer elementen...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>Geimporteerd %1 tracks, %2 waypoints, %3 routes, %4 gebieden</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Importeer mappen...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>Overlay van type '%1' kan niet omgezet worden</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Slechte track...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Bestaand bestand...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Verwijder bestaand %1?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Verwijder bestaand bestand %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: verwerp element met QLTG DB ID %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Openen mislukt...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Openen mislukt-%1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation type="unfinished">Bereken route met %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation type="unfinished"><br/>Berekenen tijd: %1s</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation type="unfinished">Fout</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation type="unfinished">Waarschuwing...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation type="unfinished">Waarschuwing...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation type="unfinished">!!! klaar !!!
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation type="unfinished">!!! Mislukt !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Snelst</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Kortst</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Fiets</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Wandelen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>VS Engels</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Brits Engels</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Deens</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Nederlands</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Frans</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Duits</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Italiaans</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Noors</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Spaans</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Zweeds</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>Modus '%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>geen snelwegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>geen tolwegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>geen seizoenswegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>onverhard</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>geen veer</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>geen grensovergangen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Route aanvraag naar server gezonden. Moment geduld...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Geen reactie van server:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Berekenen tijd: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Waarschuwing...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Routini gevonden met verkeerde versie. Verwachtte %1 gevonden %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>Kortst</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>Snelst</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>Wandelen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>Paard</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Rolstoel</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Fiets</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Brommer</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Motorfiets</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Auto</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Goederen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Engels</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Duits</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Frans</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Hongaars</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Nederlands</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Russisch</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Pools</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Een functie werd aangeroepen zonder database variabelen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Een functie werd aangeroepen zonder profiel variabelen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Een functie werd aangeroepen zonder vertaling variabelen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>De opgegeven database bestaat niet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>De opgegeven database kan niet geladen worden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>Het opgegeven XML profiel bestaat niet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>Het opgegeven XML profiel kan niet geladen worden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>De opgegeven XML vertaling bestaat niet.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>De opgegeven XML vertaling kan niet geladen worden.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>De opgevraagde profielnaam bestaat niet in geladen XML bestand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>De opgevraagde vertaling bestaat niet in geladen XML bestand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>Profiel en database kunnen niet samenwerken.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>Het gebruikte profiel is niet gevalideerd.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>Door gebruiker opgegeven profiel bevat ongeldige gegevens.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>De opgegeven routing opties komen niet overeen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>Er is een verschil is tussen de bibliotheek en de gebruiker API-versie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>Berekening route was geanuleerd door gebruiker.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>Er kon geen route gevonden worden naar waypoint %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Onbekende fout: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>Profiel "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, modus "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Bereken route met %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Berekenen tijd: %1s</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Maak of verwijder mappen naar Routino gegevens.-Er kunnen meerdere bestanden in een map zijn maar geen submappen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Selecteer routing gegevensmap...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (offline)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (online)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Maak Routino database</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Selecteer bestanden...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Selecteer doel map...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>!!! klaar !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Onbekende reactie</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Fout: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>Er is al een database met naam '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Nieuwe database...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Open database...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Instelling database...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Veranderingen zullen na herstart toegepast worden.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Kan bestand %1 niet laden...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 bestaat niet</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>Geen SLF bestand: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Niet ondersteunende revisie %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Pauze %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Ronde %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation type="unfinished">%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation type="unfinished">Openen mislukt-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation type="unfinished">Lezen mislukt: %1
-lijn %2, kolom %3:
- %4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation type="unfinished">Bestand bestaat al...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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 type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation type="unfinished">Richting</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation type="unfinished">Activiteit</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation type="unfinished">Maken bestand mislukt '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation type="unfinished">Schrijven bestand mislukt '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation type="unfinished">Opslaan GIS gegevens mislukt...</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation type="unfinished">-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Kleur...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Kan %1 niet openen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Sla GIS gegevens op naar...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Alleen lon/lat WGS 84 formaat word ondersteunt.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Lezen gegevens mislukt.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>Over...</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation><b>QMapShack<b>, Versie</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>TextLabel</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation>Qt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation>GDAL</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation>Proj4</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Tsjechisch:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Duits:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Nederlands:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Frans:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation>Rainer Unseld</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation type="unfinished">© 2014 Oliver Eichler (oliver.eichler at gmx.de) {2016 ?} {2017 ?}</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation>Pavel Fric</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Vertaling:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Spaans:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation>Win64:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation>OS X:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Binaries:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Medewerkers:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation>Jose Luis Domingo Lopez</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation>Ivo Kronenberg</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation>Helmut Schmidt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>..en een dank naar alle Linux binarie beheerders voor het geleverde werk. Speciale dank aan  Dan Horák en Bas Couwenberg voor het tonen van hun aanwezigheid op de mailinglijst om de distributie-gerelateerde onderwerpen te bespreken.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <source>This software is licensed under GPL3 or any later version</source>
-        <translation>Deze software is gelicenseerd onder GPL3 of latere versies</translation>
-    </message>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Kaartinstellingen...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Projectie & Datum</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Schalen</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Logarithmisch</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialoog</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Combineer tracks...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Coördinaat formaat...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>N48° 53.660 O013° 31.113</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>N48.8943° O013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>N48° 53' 39.6" O13° 31' 6.78"</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Maak route van waypoints</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Track knippen</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Verwijder eerste deel van track en bewaar tweede deel</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Bewaar beide delen van track</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Bewaar eerste deel van track en verwijder tweede deel</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Controleer eerst voordat dit in een nieuwe track opgelagen wordt. 
-
-Voor het opslaan van beide delen dienen er nieuwe tracks gemaakt te worden. 
-
-Als er alleen een halve track bewaard moet worden kunnen de overige punten verwijderd worden, of controleer dit bij het maken van de nieuwe track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Maak een nieuwe track</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Migreren database...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Fout...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Wachtwoord...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Wachtwoord voor database '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Map met DEM bestanden instellen</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Verander transparantie van kaart</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klik om huidige schaal als minimumschaal op kaart te tonen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Instellen van het bereik van de schaal van de kaart wordt weergegeven. Gebruik de twee knoppen links en rechts om de omvang te definiëren als minimale of maximale omvang.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klik om huidige schaal als maximumschaal op kaart te tonen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Hillshading</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Helling </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation>> </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Gebruik het menu (rechter muisklik op item) om bestand te activeren. Gebruik selecteer en slepen om geactiveerde bestanden in volgorde te plaatsen.</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Activeer</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Omhoog</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Verberg DEM onder vorige</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Omlaag</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Toon DEM op de volgende</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>DEM herladen</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation>Dialoog</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Positie:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Moeilijkheid</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Terrein</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Spoilers bijwerken</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation>Over:leeg</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Hint:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialoog</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Kleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Lijndikte</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Stijl</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Transparantie</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Punten</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Positie</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>Historie</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Sleutelwoorden:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Behoud volgorde van project</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Sorteer langs route (multi)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Sorteer langs route (enkel)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Dagboek afdrukken</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Dagboek herindelen.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation>-
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Profiel</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Snelheid</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Stijl</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Bron</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Maximum</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Minimum</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Grafieken</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Kleur</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Activiteit</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Om de track statistieken te onderscheiden selecteer een activiteit uit de lijst voor de volledige track. Of selecteer een deel van de track om een activieteit toe te kennen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Punten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Tijd</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Hoogte</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Delta</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Afstand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Helling</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Positie</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Filter</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Dialoog</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Info</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Positie:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Hoogte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Nabijheid:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Datum/Tijd:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Afbeelding toevoegen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Verwijder geselecteerde afbeelding.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>Hist.</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Er is al een ander project met dezelfde naam. Bij drukken op 'OK' zal deze overschreven worden.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Bewerk hoogte...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Hoogte</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Neem hoogte gegevens over van DEM (digital elevation model).</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation type="unfinished">-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation type="unfinished">Start</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation type="unfinished">Annuleren</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation type="unfinished">Sluiten</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Verwijder trackpunten</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Verwijder permanent alle verborgen trackpunten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Verberg punten (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Verberg trackpunten wanneer de afstand tussen naaste punten minder is dan</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Nu filter toepassen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Verberg ongeldige punten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Vloeiend profiel (Mediaans methode)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Vloeiend hoogteverschil van trackpunten-maken met een Mediaans filter van </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation>punten</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Verander tijd</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Verander start van track naar </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>dd.MM.yy UU:mm:ss</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Onduidelijke tijdstempels</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Verhoog tijdstempels met</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation> sec.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>voor elk trackpunt. 0 sec. zal tijdstempels verwijderen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Hoogte aanpassen</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Verander hoogte naar</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>van trackpunt hoogte.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Vervang hoogtegegevens</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Vervang hoogte van trackpunten met gegevens van geladen DEM bestand.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Herstel verborgen trackpunten</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Maak alle trackpunten weer zichtbaar.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Verander snelheid</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Zet snelheid op </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> km/u</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Maak delen in een track</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Maakt een nieuwe track van delen in deze track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation type="unfinished">Om nieuwe database te maken doe een rechterklik op database erboven.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[geen naam]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>Het item is geen deel van het project in de database.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>Het item is niet in de database.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>Het item dient opgeslagen te worden</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Orginele versie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1<h3>Dit element is waarschijnlijk alleen lezen omdat dit niet gemaakt is in QMapShack. Normaal hoeven geen gegevens aangepast te worden na het importeren.  Om toch aan te passen druk dan op 'OK'.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Alleen lezen modus...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Beschrijving:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>--- geen beschrijving ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Notitie:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>--- geen notitie ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Links:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>--- geen links ---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation type="unfinished">Bewerk naam...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Project opslaan?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3>Het project is veranderd. Voor het sluiten opslaan?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: Correlatie van tracks en waypointen.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3>Duurde dit te lang? Moet de correlatie van tracks en waypointen in dit project in de toekomst overgeslagen worden?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Correlatie geanuleerd...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Opslaan "%1" als...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Bestandsnaam: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Waypoints: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Tracks: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Routes: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Gebieden: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <source>Are you sure you want to delete '%1' from project '%2'?</source>
-        <translation>Moet '%1' werkelijk verwijderd worden uit project '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Verwijderen...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation type="unfinished">Transparantie</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation type="unfinished">Filter</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Raster instelling...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Projectie</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>standaardinstellingen herstellen</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Neem projectie van huidige kaart.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>projectie wizzard</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Rasterkleur</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>Instelling rasterkleur</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Bron database:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Doel database:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Bewerken...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Links...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Soort</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Tekst</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>URL</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Bestand</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Instellingen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Venster</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Extra</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Kaarten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Dig. Elev. Model (DEM)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Nieuw venster</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Toon schaal</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Lettertype kaart instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Toon raster</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Raster instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Draai muiswiel om</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Map met kaarten instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>POI tekst</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Dag/Nacht</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Map Tool Tip</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Map DEM instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>Over</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Help</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Kaartinstellingen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>GIS gegevens laden</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Project laden uit bestand</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>GIS gegevens opslaan</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation>Sla alle projecten op in werkruimte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Tijdzone instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Nieuw leeg project</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Zoeken Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Sluit alle projecten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation>F8</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Eenheden instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Werkruimte instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Oplaan bij afsluiten instellen.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Database van QLandkarte importeren</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>QLandkarte database importeren</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>VRT maken</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>GUI front end naar gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Kaart opslaan</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Schrijf huidige actieve kaart en DEM lijst inclusief de eigenschappen naar een bestand</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Kaart laden</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translation>Herstel huidige actieve kaart en DEM lijst inclusief de eigenschappen naar een bestand</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Ext. profiel</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Sluiten</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>Ctrl+Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Kloon venster</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation>Ctrl+Shift+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Maak Routino database</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Kaartdeel opslaan/afdrukken</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Geselecteerde deel van kaart afdrukken</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Coördinaat formaat instellen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Getoonde coördinaat formaat aanpassen</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation type="unfinished">Ctrl+D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation type="unfinished">F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation type="unfinished">Database</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Gebruik het menu (rechter muisklik op item) om kaart te activeren. Gebruik selecteer en slepen om geactiveerde kaarten in volgorde te plaatsen.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Help! Ik wil kaarten!
-Ik wil de documentatie niet lezen!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Activeer</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Omhoog</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Verberg DEM onder vorige kaart</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Omlaag</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Toon DEM op de volgende kaart</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Kaarten herladen</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation type="unfinished">Deze kaart heeft OpenSSL onderteuning nodig. Door restricte beperkingen in bepaalde landen kan QMapShack geen OpenSSL pakket aanbieden. Neem een kijkje op <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> voor binaries. Er kan wel libeay32.dll en ssleay32.dll in de QMapShack map gekopieerd worden.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation type="unfinished">Fout...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation type="unfinished"><b>%1</b>: %2 delen ontvangen<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Map met kaarten instellen</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Hoofdmap voor oplslaan van online kaarten:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Help! Ik wil kaarten!
-Ik wil de documentatie niet lezen!</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Verander transparantie van kaart</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klik om huidige schaal als minimumschaal op kaart te tonen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Instellen van het bereik van de schaal van de kaart wordt weergegeven. Gebruik de twee knoppen links en rechts om de omvang te definiëren als minimale of maximale omvang.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Klik om huidige schaal als maximumschaal op kaart te tonen.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Gebieden</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Lijnen</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Punten</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Cache grootte (MB)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Vervaltijd (dagen)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Cachemap</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Selecteer bronbestand:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Doel bestandsnaam:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Nieuwe lijn</b><br/>Verplaats de muis en gebruik linker muisknop om een punt te plaatsen. Gebruik rechter muisknop om te stoppen.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Verwijder punt</b><br/>Beweeg de muis dicht bij een punt en druk op linkermuisknop om te verwijderen.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Selecteer reeks punten</b><br/>Klik op eerste punt van reeks. Klik op laatste punt van reeks en selecteer een optie. Gebruik rechter muisknop om te annuleren.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Verplaats punt</b><br/>Beweeg de muis dicht bij een punt en druk op linkermuisknop om het punt te laten plakken. Beweeg de muis om het punt te verplaatsen. Laat het punt los met linker muisknop. Gebruik rechterknop om te annuleren.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Punt toevoegen</b><br/>Beweeg de muis dicht bij een lijndeel en druk op linkermuisknop om het punt te laten plakken. Beweeg de muis om het punt te verplaatsen. Laat het punt los met linker muisknop. Gebruik rechterknop om te annuleren.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Geen routing</b><br/>Alle punten zullen met rechte lijnen verbonden worden.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Auto routing</b><br/>De huidige instelling wordt gebruikt voor berekening van een route tussen punten. <b>Notitie:</b>De geselecteerd route moet zelf routes kunnen maken. Offline routers kunnen dit online routers meestal niet.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Vector routing</b><br/>Verbind punten met een lijn op een geladen vector kaart indien mogelijk.</br></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1 gegevens</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Afstand:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Herstel zoom</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Stop bereik</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Opslaan...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation type="unfinished">Maak waypoint</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Geen of ontbrekende gegevens.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Selecteer bestand</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Positie...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Geef nieuwe positie op</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Verkeerde invoer. Moet zijn: 
-"[N|Z] ddd mm.sss [W|O] ddd mm.sss"
-of
-"[N|Z] ddd.ddd [W|O] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Kaart afdrukken...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Opslaan</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Afdrukken</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Moment geduld...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Proj4 instelling</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation>Mercator</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation>UTM</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>zone</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>gebruikersinstelling</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Datum</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation>Wereld Mercator (OSM)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Resultaat:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS noord (Noordpool)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS zuid (Zuidpool)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Projectie</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Waypoint projectie</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Kopieer waypoint en verplaats naar:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation>m</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation type="unfinished">Profiel</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translation type="unfinished">Over:leeg</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Snelwegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Seizoenswegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Taal</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Landgrenzen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Profiel</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Vermijd:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Veerboten</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Tolwegen</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Onverhard</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Routebeschrijving afkomstig van <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Profiel</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Modus</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>Database</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Map toevoegen met Routino database.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Taal</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Routino database instellen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Selecteer bronbestand:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Start</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Doelmap:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Bestandsextentie</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Opslaan als origineel</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Opslaan als nieuw</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Annuleren</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Verplaats punten. (Ctrl+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Maak nieuwe punten. (Ctrl++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>Ctrl++</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Selecteer een reeks punten. (Ctrl+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Geen auto-routing of startlijn (Ctrl+O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation>O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Gebruik auto-routing tussen punten. (Ctrl+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation>A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Start de lijn langs een lijn van een vector kaart. (Ctrl+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation>V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Wis laatste verandering</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Herplaats laatste verandering</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Bekijk details en bewerk.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Kopieer gebied in ander project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Verwijder gebied uit project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Verander vorm van het gebied.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>TextLabel</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Verwijder alle punten tussen eerste en laatste punt.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Bereken een route tussen het eerste en laatst geselecteerde punt..</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Verberg alle punten.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Toon alle punten.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Kopieer trackpunten naar een nieuwe track.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Bekijk details en bewerk.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Kopieer route in een ander project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Verwijder route uit project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Bereken route.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Herstel route berekening.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Verplaats route punten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Bekijk details en bewerk eigenschappen van de track.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Kopieer track in een ander project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Verwijder track uit project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Toon op scherm het profiel en gedetaileerde informatie van de punten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Selecteer een reeks punten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Bewerk positie van trackpunten.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Draai trackrichting.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Combineer tracks.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Knip track op geselecteerde punt. Dit kan ook gebruikt worden om:
-
-* ongeldige punten aan start of eind van track te verwijderen
-* trackdelen te gebruiken voor nieuwe track
-* een lange track in etappes te verdelen
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Bekijk details en bewerk.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Kopieer waypoint in een ander project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Verwijder waypoint uit project.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Toon gegevens in een statische ballon.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Verplaats waypoint naar een nieuwe locatie.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Kloon waypoint en verplaats deze naar aangegeven afstand en hoek.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation type="unfinished">Sluiten</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Selecteer GPS...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation>Formulier</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Element kopiëren...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Vervang bestand element</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>Element niet kopiëren</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Maak een kloon</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Vervang door:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Behoud element:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>De naam van de kloon zal aangeduid worden als '_Kloon'</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>En ook voor alle andere elementen.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Selecteer map...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Naam</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation type="unfinished">Beschikbaar</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Selecteer een project...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Selecteer project uit lijst of maak nieuw project.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Naam nieuw project</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>Nieuw project wordt gemaakt als:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation>*.qms</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation>*.gpx</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>Database</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Element kopiëren...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Vervang bestand element</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Maak een kloon</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>De naam van de kloon zal aangeduid worden als '_Kloon'</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Vervang door:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>Benaming</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>Vervang element niet</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Gebruik element:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>En ook voor alle andere elementen.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Database toevoegen...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Naam </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Server</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>O {00000?}</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Gebruiker</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Wachtwoord</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Bestand:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Maak nieuwe database.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Open bestaande database.</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation type="unfinished">Formulier</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Databasemap...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Mapnaam</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Groep</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Project</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Anders</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Nieuw waypoint...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Symbool</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Positie</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Naam</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Verkeerde invoer. Moet zijn: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-of
-"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Instelling werkruimte...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>sla werkruimte op bij afsluiten en elke</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>minuten</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>O {00000?}</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Bewerk tekst...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Ongedaan maken</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Opnieuw</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation>Ctrl+Shift+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Knippen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation>Ctrl+X</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Kopiëren</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Plakken</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Links uitlijnen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Rechts uitlijnen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Gecentreerd</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Uitgevuld</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation>Ctrl+J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Onderstrepen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Vet</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation>Ctrl+B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Cursief</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation type="unfinished">Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation type="unfinished">Verwijder</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation type="unfinished">Knippen</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation type="unfinished">Kopiëren</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation type="unfinished">Plakken</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Tijdzone instellen...</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>UTC</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Lokaal</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Automatisch</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Toon datum/tijd als</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>lang formaat, of</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>kort formaat</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation type="unfinished"><b>Notitie:</b>Na het wijzigingen  van de eenheden is het nodig om QMapShack opnieuw op te starten.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Starten van extern programma `%1` mislukt:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>Het proces kan niet gestart worden.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>De benodigde pakketten dienen geïnstalleerd te zijn, `%1` bestaat en is uitvoerbaar.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>Extern proces is vast gelopen.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>Een onbekende fout is opgetreden.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!!! Mislukt !!!
-</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Fout</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Verkeerde invoer. Moet zijn: 
-"[N|Z] ddd mm.sss [W|O] ddd mm.sss"
-of
-"[N|Z] ddd.ddd [W|O] ddd.ddd"</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Positiewaarden vallen buiten bereik. </translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Eenheden instellen...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Metrisch</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Notitie:</b>Na het wijzigingen  van de eenheden is het nodig om QMapShack opnieuw op te starten.</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Imperial</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Nautisch</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Iconen...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation type="unfinished">-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation type="unfinished">...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation type="unfinished"></translation>
-    </message>
-</context>
-</TS>
diff --git a/src/locale/qmapshack_ru.ts b/src/locale/qmapshack_ru.ts
deleted file mode 100644
index f18ece6..0000000
--- a/src/locale/qmapshack_ru.ts
+++ /dev/null
@@ -1,10223 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="ru_RU">
-<context>
-    <name>CAbout</name>
-    <message>
-        <location filename="../CAbout.cpp" line="38"/>
-        <source>%1 (API V%2, expected V%3)</source>
-        <translation>%1 (API версия %2, ожидаемая версия: %3)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="42"/>
-        <source>%1 (API V%2)</source>
-        <translation>%1 (API версия %2)</translation>
-    </message>
-    <message>
-        <location filename="../CAbout.cpp" line="49"/>
-        <source>(no DBUS: device detection and handling disabled)</source>
-        <translation>(Нет DBUS: обнаружение и управление устройств отключено)</translation>
-    </message>
-</context>
-<context>
-    <name>CActivityTrk</name>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
-        <source>Foot</source>
-        <translation>Пешком</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
-        <source>Bicycle</source>
-        <translation>Велосипед</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
-        <source>Motor Bike</source>
-        <translation>Мотоцикл</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
-        <source>Car</source>
-        <translation>Автомобиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
-        <source>Cable Car</source>
-        <translation>Фуникулер</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
-        <source>Swim</source>
-        <translation>Плавание</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
-        <source>Ship</source>
-        <translation>Корабль</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
-        <source>Ski/Winter</source>
-        <translation>Лыжи/зима</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
-        <source>No Activity</source>
-        <translation>Нет мероприятия</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
-        <source>Total</source>
-        <translation>Всего</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
-        <source>Ascent:</source>
-        <translation>Подъем:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
-        <source>Descent:</source>
-        <translation>Спуск:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
-        <source>Aeronautics</source>
-        <translation>Аэронавтика</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
-        <source>Public Transport</source>
-        <translation>Общественный транспорт</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
-        <source>Distance:</source>
-        <translation>Расстояние:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
-        <source>Speed Moving:</source>
-        <translation>Скорость движения:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
-        <source>Speed Total:</source>
-        <translation>Общая скорость:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
-        <source>Time Moving:</source>
-        <translation>Время движения:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
-        <source>Time Total:</source>
-        <translation>Общее время:</translation>
-    </message>
-</context>
-<context>
-    <name>CCanvas</name>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="63"/>
-        <source>View %1</source>
-        <translation>Вид %1</translation>
-    </message>
-    <message>
-        <location filename="../canvas/CCanvas.cpp" line="766"/>
-        <source>Setup Map Background</source>
-        <translation>Настройка фона карт</translation>
-    </message>
-</context>
-<context>
-    <name>CColorChooser</name>
-    <message>
-        <location filename="../widgets/CColorChooser.cpp" line="51"/>
-        <source>Esc.</source>
-        <translation>Esc.</translation>
-    </message>
-</context>
-<context>
-    <name>CCommandProcessor</name>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
-        <source>Print debug output to console.</source>
-        <translation>Печатать отладочный вывод на консолью.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
-        <source>Print debug output to logfile (temp. path).</source>
-        <translation>Печатать отладочную информацию в файл журнала (путь Temp).</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
-        <source>Do not show splash screen.</source>
-        <translation>Не показывать экран-заставку.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>File with QMapShack configuration.</source>
-        <translation>Файл с конфигурацией QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
-        <source>file</source>
-        <translation>файл</translation>
-    </message>
-    <message>
-        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
-        <source>Files for future use.</source>
-        <translation>Файлы для будущего использования.</translation>
-    </message>
-</context>
-<context>
-    <name>CCreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
-        <source>route</source>
-        <translation>маршрут</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderLostFound</name>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Все ваши данные сгруппированы по папкам.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
-        <source>Lost & Found (%1)</source>
-        <translation>Потеряно и найдено (%1)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
-        <source>Lost & Found</source>
-        <translation>Потеряно и найдено</translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderMysql</name>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="33"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Все ваши данные сгруппированы по папкам.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="53"/>
-        <source>MySQL Database</source>
-        <translation>База данных MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="56"/>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="60"/>
-        <source>Server: </source>
-        <translation>Сервер: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="65"/>
-        <source> (No PW)</source>
-        <translation> (Нет пароля)</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderMysql.cpp" line="73"/>
-        <source>Error: </source>
-        <translation>Ошибка: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBFolderSqlite</name>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="30"/>
-        <source>All your data grouped by folders.</source>
-        <translation>Все ваши данные сгруппированы по папкам.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="52"/>
-        <source>SQLite Database</source>
-        <translation>База данных SQLite</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="62"/>
-        <source>File: </source>
-        <translation>Файл: </translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBFolderSqlite.cpp" line="66"/>
-        <source>Error: </source>
-        <translation>Ошибка: </translation>
-    </message>
-</context>
-<context>
-    <name>CDBItem</name>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="91"/>
-        <source>%1 min.</source>
-        <translation>%1 мин.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="95"/>
-        <source>%1 h</source>
-        <translation>%1 ч.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBItem.cpp" line="99"/>
-        <source>%1 days</source>
-        <translation>%1 дней</translation>
-    </message>
-</context>
-<context>
-    <name>CDBProject</name>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="114"/>
-        <source>Failed to load...</source>
-        <translation>Не удалось загрузить...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="115"/>
-        <source>Can't load file "%1" . It will be skipped.</source>
-        <translation>Загрузить файл %1 не удалось. Он будет пропущен.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="128"/>
-        <source>Project already in database...</source>
-        <translation>Проект уже в базе данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="129"/>
-        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
-        <translation>Проект "%1" уже был загружен в базу данных. Он будет пропущен.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="280"/>
-        <source>The item %1 has been changed by %2 (%3). 
-
-To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
-        <translation>Элемент %1 изменен пользователем %2 (%3).
-
-Для решения этого конфликта можно создать и сохранить клон, заставить вашу версию или бросить вашу версию и взять версию базы данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="286"/>
-        <source>Conflict with database...</source>
-        <translation>Конфликт с базой данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="287"/>
-        <source>Clone && Save</source>
-        <translation>Клонировать и сохранить</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="288"/>
-        <source>Force Save</source>
-        <translation>Сохранить принудительно</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="289"/>
-        <source>Take remote</source>
-        <translation>Взять удаленную версию</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="573"/>
-        <source>Missing folder...</source>
-        <translation>Отсутствует папка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="574"/>
-        <source>Failed to save project. The folder has been deleted in the database.</source>
-        <translation>Не удалось сохранить проект. Папка удалена с базы данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="581"/>
-        <source>Save ...</source>
-        <translation>Сохранить ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>Error</source>
-        <translation>Ошибка</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="645"/>
-        <source>There was an unexpected database error:
-
-%1</source>
-        <translation>Неожиданная ошибка в базе данных:
-
-%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="761"/>
-        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
-        <translation>Проект '%1' собирается обновить себя с базы данных. Однако имеются несохранённые изменения.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CDBProject.cpp" line="762"/>
-        <source>Save changes?</source>
-        <translation>Сохранить изменения?</translation>
-    </message>
-</context>
-<context>
-    <name>CDemList</name>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Deactivate</source>
-        <translation>Деактивировать</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemList.cpp" line="195"/>
-        <source>Activate</source>
-        <translation>Активировать</translation>
-    </message>
-</context>
-<context>
-    <name>CDemPathSetup</name>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
-        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Добавить или удалить путь к данным ЦМР. Несколько файлов может быть в пути, но вложенные пути не проанализированы. Поддерживаемые форматы: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
-        <source>Select DEM file path...</source>
-        <translation>Выбрать путь к файлам ЦМР...</translation>
-    </message>
-</context>
-<context>
-    <name>CDemVRT</name>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="44"/>
-        <source>Failed to load file: %1</source>
-        <translation>Не удалось загрузить файл: %1</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="52"/>
-        <location filename="../dem/CDemVRT.cpp" line="61"/>
-        <source>DEM must have one band with 16bit or 32bit data.</source>
-        <translation>ЦМР должен иметь одну полосу с 16бит или 32бит данными.</translation>
-    </message>
-    <message>
-        <location filename="../dem/CDemVRT.cpp" line="90"/>
-        <source>No georeference information found.</source>
-        <translation>Отсутствует геопозиционная информация.</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <source>none</source>
-        <translation>Нет</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
-        <source>Searching for images...</source>
-        <translation>Поиск изображений...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
-        <source>No images found</source>
-        <translation>Изображения не найдены</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
-        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
-        <translation>Вы желаете отсортировать маршрутные точки вдоль трека, но отключили корреляцию между треком и точками. Желаете включить её снова?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
-        <source>Correlation...</source>
-        <translation>Корреляция...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="756"/>
-        <source>none</source>
-        <translation>нет</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
-        <source>Build diary...</source>
-        <translation>Построить дневник...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
-        <source><b>Summary over all tracks in project</b><br/></source>
-        <translation><b>Резюме всех треков в проекте</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
-        <source><h2>Waypoints</h2></source>
-        <translation><h2>Маршрутные точки</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="573"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="691"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="721"/>
-        <source>Info</source>
-        <translation>Информация</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="574"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="692"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="722"/>
-        <source>Comment</source>
-        <translation>Комментарий</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
-        <source><h2>Tracks</h2></source>
-        <translation><h2>Треки</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>From Start</source>
-        <translation>С начала</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To Next</source>
-        <translation>До следующего</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="592"/>
-        <source>To End</source>
-        <translation>До конца</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="595"/>
-        <source>Distance: </source>
-        <translation>Расстояние: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="605"/>
-        <source>Ascent: </source>
-        <translation>Подъем: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="615"/>
-        <source>Descent: </source>
-        <translation>Спуск: </translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="684"/>
-        <source><h2>Areas</h2></source>
-        <translation><h2>Области</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="714"/>
-        <source><h2>Routes</h2></source>
-        <translation><h2>Маршруты</h2></translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Edit name...</source>
-        <translation>Изменить имя...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="742"/>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="769"/>
-        <source>Enter new project name.</source>
-        <translation>Ввести новое имя проекта.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Edit keywords...</source>
-        <translation>Изменить ключевые слова...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="751"/>
-        <source>Enter keywords.</source>
-        <translation>Ввести ключевые слова.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/CDetailsPrj.cpp" line="897"/>
-        <source>Print Diary</source>
-        <translation>Печатать дневник</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
-        <source>Reduce visible track points</source>
-        <translation>Уменьшить число видимых точек трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
-        <source>Change elevation of track points</source>
-        <translation>Изменить высоту точек трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
-        <source>Change timestamp of track points</source>
-        <translation>Изменить метки времени точек трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
-        <source>Miscellaneous</source>
-        <translation>Разное</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="402"/>
-        <source>Color</source>
-        <translation>Цвет</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CDetailsTrk.cpp" line="403"/>
-        <source>Activity</source>
-        <translation>Мероприятие</translation>
-    </message>
-</context>
-<context>
-    <name>CDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/CDetailsWpt.cpp" line="166"/>
-        <source>Enter new proximity range.</source>
-        <translation>Ввести новый радиус близости.</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarmin</name>
-    <message>
-        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
-        <source>Picture%1</source>
-        <translation>Изображение %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
-        <source>Unknown</source>
-        <translation>Неизвестно</translation>
-    </message>
-</context>
-<context>
-    <name>CDeviceGarminArchive</name>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
-        <source>Archive - expand to load</source>
-        <translation>Архив - развернуть чтобы загрузить</translation>
-    </message>
-    <message>
-        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
-        <source>Archive - loaded</source>
-        <translation>Архив - загружен</translation>
-    </message>
-</context>
-<context>
-    <name>CElevationDialog</name>
-    <message>
-        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
-        <source>No DEM data found for that point.</source>
-        <translation>Данные ЦМР для этой точки не найдены.</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabase</name>
-    <message>
-        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
-        <source>Select export path...</source>
-        <translation>Выбрать путь экспорта...</translation>
-    </message>
-</context>
-<context>
-    <name>CExportDatabaseThread</name>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
-        <source>Create %1</source>
-        <translation>Создать %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
-        <source>Failed to create %1</source>
-        <translation>Не удалось создать %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
-        <source>Done!</source>
-        <translation>Сделано!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
-        <source>Abort by user!</source>
-        <translation>Прекращение пользователем!</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
-        <source>Database Error: %1</source>
-        <translation>Ошибка базы данных: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
-        <source>Save project as %1</source>
-        <translation>Сохранить проект как %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
-        <source>Failed!</source>
-        <translation>Не удалось!</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
-        <source>No extension available</source>
-        <translation>Нет расширения</translation>
-    </message>
-</context>
-<context>
-    <name>CFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
-        <source>coarse</source>
-        <translation>грубо</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
-        <source>medium</source>
-        <translation>нормально</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
-        <source>fine</source>
-        <translation>точно</translation>
-    </message>
-</context>
-<context>
-    <name>CFitCrcState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
-        <source>FIT decoding error : invalid CRC.</source>
-        <translation>Ошибка декодирования FIT: неверная контрольная сумма.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitDecoder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
-        <source>FIT decoding error: unexpected end of file %1.</source>
-        <translation>Ошибка декодирования FIT: неожиданный конец файла %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldBuilder</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
-        <source>FIT decoding error: unknown base type %1.</source>
-        <translation>Ошибка декодирования FIT: неизвестный базовый тип %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitFieldDataState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
-        <source>Missing field definition for development field.</source>
-        <translation>Отсутствует определение поля для поля развития.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
-        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
-        <translation>Ошибка декодирования FIT: неправильный номер определения поля %1 при создании профиля поля развития.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitHeaderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
-        <source>FIT decoding error: protocol %1 version not supported.</source>
-        <translation>Ошибка декодирования FIT: версия протокола %1 не поддерживается.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
-        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
-        <translation>Ошибка декодирования FIT: некорректная сигнатура в заголовке файла. Это не файл типа FIT.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitProject</name>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
-        <source>Failed to open FIT file %1.</source>
-        <translation>Не удалось открыть FIT файл %1.</translation>
-    </message>
-</context>
-<context>
-    <name>CFitRecordContentState</name>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
-        <source>FIT decoding error: architecture %1 not supported.</source>
-        <translation>Ошибка декодирования FIT: архитектура %1 не поддерживается.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
-        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
-        <translation>Ошибка декодирования FIT: неправильное смещение %1 для состояния 'содержимое записи'</translation>
-    </message>
-</context>
-<context>
-    <name>CGarminTyp</name>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>Warning...</source>
-        <translation>Предупреждение...</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
-        <source>This is a typ file with unknown polygon encoding. Please report!</source>
-        <translation>Файл типов с неизвестной кодировкой полигона. Сообщите об этой проблеме!</translation>
-    </message>
-    <message>
-        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
-        <source>This is a typ file with unknown polyline encoding. Please report!</source>
-        <translation>Файл типов с неизвестной кодировкой полилинии. Сообщите об этой проблеме!</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
-        <source>thin</source>
-        <translation>Тонко</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
-        <source>normal</source>
-        <translation>Нормально</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
-        <source>wide</source>
-        <translation>Широко</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
-        <source>strong</source>
-        <translation>Строго</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_клон</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="391"/>
-        <source>Area: %1%2</source>
-        <translation>Область: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="451"/>
-        <source>Changed area shape.</source>
-        <translation>Изменена фигура области.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="459"/>
-        <source>Changed name.</source>
-        <translation>Изменено имя.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="465"/>
-        <source>Changed border width.</source>
-        <translation>Изменена ширина границы.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
-        <source>Changed fill pattern.</source>
-        <translation>Изменен узор заливки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="477"/>
-        <source>Changed opacity.</source>
-        <translation>Изменена прозрачность.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="483"/>
-        <source>Changed comment.</source>
-        <translation>Изменен комментарий.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="489"/>
-        <source>Changed description.</source>
-        <translation>Изменено описание.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="495"/>
-        <source>Changed links</source>
-        <translation>Изменены ссылки</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="506"/>
-        <source>Changed color</source>
-        <translation>Изменен цвет</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemRte</name>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="66"/>
-        <source>_Clone</source>
-        <translation>_клон</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="284"/>
-        <source>track</source>
-        <translation>трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="311"/>
-        <source>Changed name.</source>
-        <translation>Изменено имя.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="317"/>
-        <source>Changed comment</source>
-        <translation>Изменен комментарий</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="323"/>
-        <source>Changed description</source>
-        <translation>Изменено описание</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
-        <source>Changed links</source>
-        <translation>Изменены ссылки</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="347"/>
-        <source>Length: %1%2</source>
-        <translation>Длина: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="358"/>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="600"/>
-        <source>Time: %1%2</source>
-        <translation>Время: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="602"/>
-        <source>Distance: %1%2</source>
-        <translation>Расстояние: %1 %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="351"/>
-        <source>Length: -</source>
-        <translation>Длина: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="362"/>
-        <source>Time: -</source>
-        <translation>Время: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="372"/>
-        <source>%1%2 %3, %4%5 %6</source>
-        <translation>%1%2 %3, %4%5 %6</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="378"/>
-        <source>Last time routed:<br/>%1</source>
-        <translation>Последнее время маршрутизации:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="380"/>
-        <source>with %1</source>
-        <translation>с %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/CGisItemRte.cpp" line="717"/>
-        <source>Changed route points.</source>
-        <translation>Изменены точки маршрута.</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemTrk</name>
-    <message>
-        <location filename="../gis/fit/serialization.cpp" line="285"/>
-        <source>FIT file %1 contains no GPS data.</source>
-        <translation>FIT файл %1 не содержит данных GPS.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="211"/>
-        <location filename="../gis/tnv/serialization.cpp" line="347"/>
-        <source>Failed to open %1.</source>
-        <translation>Не удалось открыть %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="376"/>
-        <location filename="../gis/tnv/serialization.cpp" line="387"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Поддерживается долгота/широта только в формате WGS 84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="420"/>
-        <source>Failed to read data.</source>
-        <translation>Не удалось читать данные.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
-        <source>_Clone</source>
-        <translation>_клон</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
-        <source>Changed trackpoints, sacrificed all previous data.</source>
-        <translation>Изменены точки трека, удалены все предыдущие данные.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="388"/>
-        <source>, %1-, %2-</source>
-        <translation>, %1-, %2-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="396"/>
-        <source>Time: %1%2, Speed: %3%4</source>
-        <translation>Время: %1%2, Скорость: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="400"/>
-        <source>Time: -, Speed: -</source>
-        <translation>Время: -, скорость: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="408"/>
-        <source>Moving: %1%2, Speed: %3%4</source>
-        <translation>В движении: %1%2, Скорость: %3%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="412"/>
-        <source>Moving: -, Speed: -</source>
-        <translation>В движении: -, скорость: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="421"/>
-        <source>Start: %1</source>
-        <translation>Начало: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="425"/>
-        <source>Start: -</source>
-        <translation>Начало: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="431"/>
-        <source>End: %1</source>
-        <translation>Конец: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="435"/>
-        <source>End: -</source>
-        <translation>Конец: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="439"/>
-        <source>Points: %1 (%2)</source>
-        <translation>Точки: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="443"/>
-        <source>Invalid elevations!</source>
-        <translation>Неверные высоты!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
-        <source>Invalid timestamps!</source>
-        <translation>Неверные метки времени!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
-        <source>Invalid positions!</source>
-        <translation>Неверные позиции!</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="462"/>
-        <source>Activities: %1</source>
-        <translation>Мероприятие: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="574"/>
-        <source>Index: %1</source>
-        <translation>Индекс: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="578"/>
-        <source>Index: visible %1, total %2</source>
-        <translation>Индекс: видимо %1, всего %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="593"/>
-        <source>, Slope: %1%2</source>
-        <translation>, Склон: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="626"/>
-        <source>... and %1 tags not displayed</source>
-        <translation>... и %1 не показанных элементов</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="638"/>
-        <source>Distance: - (-)</source>
-        <translation>Расстояние: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="639"/>
-        <source>Moving: - (-)</source>
-        <translation>В движении: - (-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1318"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1331"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1387"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1431"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1570"/>
-        <source>track</source>
-        <translation>трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1522"/>
-        <source>Hide point %1.</source>
-        <translation>Скрыть точку %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1526"/>
-        <source>Hide points %1..%2.</source>
-        <translation>Скрыть точки %1..%2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="701"/>
-        <source>, %1%2</source>
-        <translation>, %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
-        <source>Invalid points....</source>
-        <translation>Неверные точки...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
-        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
-        <translation>Трек '%1' имеет %2 неверных точек из %3 видимых точек. Вы хотите скрыть неверные очки?</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>min.</source>
-        <translation>мин.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="316"/>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1755"/>
-        <source>max.</source>
-        <translation>макс.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="377"/>
-        <source>Length: %1%2</source>
-        <translation>Длина: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="384"/>
-        <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="589"/>
-        <source>Ele.: %1%2</source>
-        <translation>Высота: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="598"/>
-        <source>, Speed: %1%2</source>
-        <translation>, Скорость: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
-        <source>Ascent: - (-)</source>
-        <translation>Подъем: -(-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="637"/>
-        <source>Descent: - (-)</source>
-        <translation>Спуск: -(-)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="644"/>
-        <source>Ascent: %1%2 (%3%)</source>
-        <translation>Подъем: %1 %2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="650"/>
-        <source>, Descent: %1%2 (%3%)</source>
-        <translation>, Спуск: %1 %2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="656"/>
-        <source>Distance: %1%2 (%3%)</source>
-        <translation>Расстояние: %1 %2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="662"/>
-        <source>, Moving: %1%2 (%3%)</source>
-        <translation>, В движении: %1%2 (%3%)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="678"/>
-        <source>Ascent: -</source>
-        <translation>Подъем: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="679"/>
-        <source>Descent: -</source>
-        <translation>Спуск: -</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="684"/>
-        <source>Ascent: %1%2</source>
-        <translation>Подъем: %1 %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="696"/>
-        <source>, Descent: %1%2</source>
-        <translation>, Спуск: %1 %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
-        <source>Distance: %1%2</source>
-        <translation>Расстояние: %1 %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
-        <source>, Time: %1%2</source>
-        <translation>, Время: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1377"/>
-        <source>Permanently removed points %1..%2</source>
-        <translation>Удалены безвозвратно точки %1..%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="1555"/>
-        <source>Show points.</source>
-        <translation>Показать точки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2194"/>
-        <source>Changed name</source>
-        <translation>Изменено имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2200"/>
-        <source>Changed comment</source>
-        <translation>Изменен комментарий</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2206"/>
-        <source>Changed description</source>
-        <translation>Изменено описание</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2212"/>
-        <source>Changed links</source>
-        <translation>Изменены ссылки</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2223"/>
-        <source>Changed elevation of point %1 to %2 %3</source>
-        <translation>Изменена высота точки %1 на %2 %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2247"/>
-        <source>Changed activity to '%1' for complete track.</source>
-        <translation>Изменено мероприятие на '%1' для всего трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CGisItemTrk.cpp" line="2286"/>
-        <source>Changed activity to '%1' for range(%2..%3).</source>
-        <translation>Изменено мероприятие на '%1' для интервала (%2..%3).</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="96"/>
-        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
-        <translation>Скрыть точки при помощи алгоритма Douglas-Peuker (%1%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="122"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Скрыть точки с неверными данными.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="132"/>
-        <source>Reset all hidden track points to visible</source>
-        <translation>Сделать видимыми все скрытые точки трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="162"/>
-        <source>Permanently removed all hidden track points</source>
-        <translation>Удалены безвозвратно все скрытые точки трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="199"/>
-        <source>Smoothed profile with a Median filter of size %1</source>
-        <translation>Сгладить профиль используя фильтр Медиан с размером %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="221"/>
-        <source>Added terrain slope from DEM file.</source>
-        <translation>Добавлен склон местности с файла ЦМР.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="243"/>
-        <source>Replaced elevation data with data from DEM files.</source>
-        <translation>Заменены высоты данными файлов ЦМР.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="261"/>
-        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
-        <translation>Заменены высоты интерполированными значениями. (M=%1, RMSErr=%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="277"/>
-        <source>Offset elevation data by %1%2.</source>
-        <translation>Добавить %1 %2 к высоте.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="290"/>
-        <source>Changed start of track to %1.</source>
-        <translation>Изменено начало трека на %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="303"/>
-        <source>Remove timestamps.</source>
-        <translation>Удалить метки времени.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="320"/>
-        <source>Set artificial timestamps with delta of %1 sec.</source>
-        <translation>Установить искусственные метки времени с интервалом в %1 секунд.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="346"/>
-        <source>Changed speed to %1%2.</source>
-        <translation>Изменена скорость на %1 %2.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="365"/>
-        <source>%1 (Segment %2)</source>
-        <translation>%1 (сегмент %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="383"/>
-        <source>Removed extension %1 from all Track Points</source>
-        <translation>Удалено расширение %1 со всех точек трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/filter.cpp" line="394"/>
-        <source>Converted subpoints from routing to track points</source>
-        <translation>Преобразованы подточки с маршрутных в точки трека</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/converter.cpp" line="196"/>
-        <source>Copy flag information from QLandkarte GT track</source>
-        <translation>Скопировать информацию о флагах с трека QLandkarte GT</translation>
-    </message>
-</context>
-<context>
-    <name>CGisItemWpt</name>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="609"/>
-        <source>Archived</source>
-        <translation>Архивировано</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="613"/>
-        <source>Available</source>
-        <translation>Доступно</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/serialization.cpp" line="617"/>
-        <source>Not Available</source>
-        <translation>Не доступно</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="104"/>
-        <source>_Clone</source>
-        <translation>_клон</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
-        <source>Elevation: %1%2</source>
-        <translation>Высота: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
-        <source>Proximity: %1%2</source>
-        <translation>Радиус близости: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="384"/>
-        <source>Changed name</source>
-        <translation>Изменено имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="394"/>
-        <source>Changed position</source>
-        <translation>Изменена позиция</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="400"/>
-        <source>Changed elevation</source>
-        <translation>Изменена высота</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="413"/>
-        <source>Removed proximity</source>
-        <translation>Удален радиус близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="417"/>
-        <source>Changed proximity</source>
-        <translation>Изменен радиус близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="432"/>
-        <source>Changed icon</source>
-        <translation>Изменена пиктограмма</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="438"/>
-        <source>Changed comment</source>
-        <translation>Изменен комментарий</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="444"/>
-        <source>Changed description</source>
-        <translation>Изменено описание</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="450"/>
-        <source>Changed links</source>
-        <translation>Изменены ссылки</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="456"/>
-        <source>Changed images</source>
-        <translation>Изменены изображения</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="462"/>
-        <source>Add image</source>
-        <translation>Добавить изображение</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="877"/>
-        <source>Changed to proximity-radius</source>
-        <translation>Изменено на круг близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CGisItemWpt.cpp" line="882"/>
-        <source>Changed to nogo-area</source>
-        <translation>Изменено на запретную зону </translation>
-    </message>
-</context>
-<context>
-    <name>CGisListDB</name>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="84"/>
-        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
-        <translation>Из-за изменений в системе баз данных QMapShack забыл об имени файла базы данных '%1'. Выбрать его снова на следующем шаге.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="85"/>
-        <source>Select database file.</source>
-        <translation>Выбрать файл базы данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="118"/>
-        <source>Add Database</source>
-        <translation>Добавить базу данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="121"/>
-        <source>Add Folder</source>
-        <translation>Добавить папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="122"/>
-        <source>Rename Folder</source>
-        <translation>Переименовать папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="123"/>
-        <source>Copy Folder</source>
-        <translation>Копировать папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="124"/>
-        <source>Move Folder</source>
-        <translation>Переместить папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="125"/>
-        <source>Delete Folder</source>
-        <translation>Удалить папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="127"/>
-        <source>Import from Files...</source>
-        <translation>Импортировать файлы...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="128"/>
-        <source>Export to GPX...</source>
-        <translation>Экспортировать в GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="131"/>
-        <location filename="../gis/CGisListDB.cpp" line="147"/>
-        <source>Delete Item</source>
-        <translation>Удалить элемент</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="135"/>
-        <source>Search Database</source>
-        <translation>Искать в базе данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="136"/>
-        <source>Sync. with Database</source>
-        <translation>Синхронизировать с базой данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="137"/>
-        <source>Remove Database</source>
-        <translation>Удалить базу данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="144"/>
-        <source>Empty</source>
-        <translation>Удалить все элементы</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Remove database...</source>
-        <translation>Удалить базу данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="444"/>
-        <source>Do you really want to remove '%1' from the list?</source>
-        <translation>Вы действительно хотите удалить '%1' со списка?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Delete database folder...</source>
-        <translation>Удалить папку с базы данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="508"/>
-        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
-        <translation>Вы действительно хотите удалить все выбранные папки вместе с вложенными папками с базы данных?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>Bad operation....</source>
-        <translation>Неверная операция...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="676"/>
-        <source>The target folder is a subfolder of the one to move. This will not work.</source>
-        <translation>Целевая папка есть вложенная папка папки которая перемещается. Так нельзя.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Folder name...</source>
-        <translation>Имя папки...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="735"/>
-        <source>Rename folder:</source>
-        <translation>Переименовать папку:</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Remove items...</source>
-        <translation>Удалить элементы...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="756"/>
-        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
-        <translation>Вы действительно хотите удалить все элементы с 'Потеряно и найдено'? Это удалит их безвозвратно.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="777"/>
-        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
-        <translation>Вы действительно хотите удалить все выбранные элементы с 'Потеряно и найдено'? Это удалит их безвозвратно.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="864"/>
-        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
-        <translation>Вы действительно хотите удалить '%1' с папки '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="865"/>
-        <source>Delete...</source>
-        <translation>Удалить...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListDB.cpp" line="1055"/>
-        <source>Import GIS Data...</source>
-        <translation>Импортировать данные GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGisListWks</name>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="106"/>
-        <source>Edit..</source>
-        <translation>Изменить..</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="108"/>
-        <source>Show on Map</source>
-        <translation>Показать на карте</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="109"/>
-        <source>Hide from Map</source>
-        <translation>Скрыть с карты</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="114"/>
-        <source>Sort by Time</source>
-        <translation>Сортировать по времени</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="115"/>
-        <source>Sort by Name</source>
-        <translation>Сортировать по именам</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="122"/>
-        <source>Save</source>
-        <translation>Сохранить</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="124"/>
-        <source>Save as GPX 1.1 w/o ext...</source>
-        <translation>Сохранить как GPX 1.1 без расширений...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="127"/>
-        <source>Send to Devices</source>
-        <translation>Отправить в устройства</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="128"/>
-        <source>Sync. with Database</source>
-        <translation>Синхронизировать с базой данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="131"/>
-        <source>Close</source>
-        <translation>Закрыть</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="140"/>
-        <source>Update Project on Device</source>
-        <translation>Обновить проект на устройстве</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="142"/>
-        <location filename="../gis/CGisListWks.cpp" line="166"/>
-        <source>Delete</source>
-        <translation>Удалить</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="154"/>
-        <source>Edit...</source>
-        <translation>Изменить...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="107"/>
-        <location filename="../gis/CGisListWks.cpp" line="155"/>
-        <source>Copy to...</source>
-        <translation>Копировать в...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="118"/>
-        <source>Autom. Save</source>
-        <translation>Сохранить автоматически</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="123"/>
-        <source>Save as...</source>
-        <translation>Сохранить как...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="157"/>
-        <source>Track Profile</source>
-        <translation>Профиль трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="159"/>
-        <source>Select Range</source>
-        <translation>Выделить интервал</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="160"/>
-        <source>Edit Track Points</source>
-        <translation>Изменить точки трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="161"/>
-        <source>Reverse Track</source>
-        <translation>Обратить трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="162"/>
-        <source>Combine Tracks</source>
-        <translation>Соединить треки</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="163"/>
-        <source>Set Track Activity</source>
-        <translation>Добавить мероприятие</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="164"/>
-        <source>Copy Track with Waypoints</source>
-        <translation>Копировать трек с маршрутными точками</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="173"/>
-        <source>Show Bubble</source>
-        <translation>Показать пузырек</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="175"/>
-        <source>Move Waypoint</source>
-        <translation>Переместить маршрутную точку</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="176"/>
-        <source>Proj. Waypoint...</source>
-        <translation>Проекция маршрутной точки...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="177"/>
-        <source>Change Radius</source>
-        <translation>Изменить радиус близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="178"/>
-        <source>Toggle Nogo-Area</source>
-        <translation>Переключить запретную зону</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="180"/>
-        <source>Delete Radius</source>
-        <translation>Удалить радиус близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="189"/>
-        <source>Route Instructions</source>
-        <translation>Маршрутные инструкции</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="191"/>
-        <source>Calculate Route</source>
-        <translation>Вычислить маршрут</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="192"/>
-        <source>Reset Route</source>
-        <translation>Сбросить маршрутизацию</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="193"/>
-        <source>Edit Route</source>
-        <translation>Изменить маршрут</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="194"/>
-        <source>Convert to Track</source>
-        <translation>Преобразовать в трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="204"/>
-        <source>Edit Area Points</source>
-        <translation>Изменить точки области</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="212"/>
-        <source>Create Route</source>
-        <translation>Создать маршрут</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="213"/>
-        <source>Change Icon (sel. waypt. only)</source>
-        <translation>Изменить пиктограмму (выбрать только маршрутные точки)</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="646"/>
-        <source>Drop items...</source>
-        <translation>Удалить элементы...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="671"/>
-        <location filename="../gis/CGisListWks.cpp" line="1771"/>
-        <location filename="../gis/CGisListWks.cpp" line="1809"/>
-        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
-        <translation><b>Обновить устройства</b><p>Обновить %1<br/>Подождите...</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="797"/>
-        <source>Saving workspace. Please wait.</source>
-        <translation>Сохранить рабочую область. Подождите.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="843"/>
-        <source>Loading workspace. Please wait.</source>
-        <translation>Загрузка рабочей области. Подождите.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>Close all projects...</source>
-        <translation>Закрыть все проекты...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1230"/>
-        <source>This will remove all projects from the workspace.</source>
-        <translation>Это удалит все проекты с рабочей области.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Delete project...</source>
-        <translation>Удалить проект...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisListWks.cpp" line="1256"/>
-        <source>Do you really want to delete %1?</source>
-        <translation>Вы действительно хотите удалить %1?</translation>
-    </message>
-</context>
-<context>
-    <name>CGisWorkspace</name>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>Load project...</source>
-        <translation>Загрузить проект...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="114"/>
-        <source>The project "%1" is already in the workspace.</source>
-        <translation>Проект "%1" уже находится в рабочей области.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="213"/>
-        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
-        <translation><b>Выбор элементов: </b>Элемент выбран из списка рабочей области. Нажать на карту, чтобы вернуться к обычному поведению мышки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="626"/>
-        <source>Copy items...</source>
-        <translation>Копировать элементы ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="645"/>
-        <source>Change waypoint symbols.</source>
-        <translation>Изменить символы путевых точек.</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Cut Track...</source>
-        <translation>Вырезать трек...</translation>
-    </message>
-    <message>
-        <location filename="../gis/CGisWorkspace.cpp" line="813"/>
-        <source>Do you want to delete the original track?</source>
-        <translation>Желаете удалить изначальный трек?</translation>
-    </message>
-</context>
-<context>
-    <name>CGpxProject</name>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
-        <source>Not a GPX file: %1</source>
-        <translation>Это не файл GPX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
-        <source>File exists ...</source>
-        <translation>Файл существует...</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
-        <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>Файл существует и не создан в QMapShack. Если нажать 'да' все данные в этом файле будут потеряны. Даже если этот файл содержит данные GPX и был загружен в QMapShack, QMapShack не может загрузить и сохранить все элементы этого файла. Такие элементы будут потеряны. Рекомендуется использовать другой файл. <b>Вы действительно хотите перезаписать этот файл?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Не удалось создать файл '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Не удалось записать файл '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Не удалось сохранить данные GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CGrid</name>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="61"/>
-        <source>%1 %2 </source>
-        <translation>%1 %2 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="65"/>
-        <source>%1%2%5 %3%4%5 </source>
-        <translation>%1%2%5 %3%4%5 </translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="72"/>
-        <source>%1m, %2m </source>
-        <translation>%1м, %2м</translation>
-    </message>
-    <message>
-        <location filename="../grid/CGrid.cpp" line="76"/>
-        <source>N %1m, E %2m </source>
-        <translation>С %1м, В %2м</translation>
-    </message>
-</context>
-<context>
-    <name>CHistoryListWidget</name>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
-        <source> by %1</source>
-        <translation>от %1</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
-        <source>Cut history before</source>
-        <translation>Удалить историю до этого шага</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
-        <source>Cut history after</source>
-        <translation>Удалить историю после этого шага</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
-        <source>History removal</source>
-        <translation>Удалить историю</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
-        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
-        <translation>Удаление является постоянным и не может быть отменено. <b>Вы действительно хотите удалить историю перед этим шагом?</b></translation>
-    </message>
-</context>
-<context>
-    <name>CImportDatabase</name>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="29"/>
-        <source>Import QLandkarte Database</source>
-        <translation>Импортировать базу данных QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="75"/>
-        <source>Select source database...</source>
-        <translation>Выбрать исходную базу данных...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CImportDatabase.cpp" line="97"/>
-        <source>Select target database...</source>
-        <translation>Выбрать целевую базу данных...</translation>
-    </message>
-</context>
-<context>
-    <name>CKnownExtension</name>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Темп. возд.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
-        <source>Air Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Температура воздуха</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Темп. воды</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
-        <source>Water Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Температура воды</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extShortName</comment>
-        <translation>Глубина</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
-        <source>Depth</source>
-        <comment>extLongName</comment>
-        <translation>Глубина</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart R.</source>
-        <comment>extShortName</comment>
-        <translation>Пульс</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
-        <source>Heart Rate</source>
-        <comment>extLongName</comment>
-        <translation>Пульс</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extShortName</comment>
-        <translation>Каденция</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
-        <source>Cadence</source>
-        <comment>extLongName</comment>
-        <translation>Каденция</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed</source>
-        <comment>extShortName</comment>
-        <translation>Скорость</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
-        <source>Speed</source>
-        <comment>extLongName</comment>
-        <translation>Скорость</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Accel.</source>
-        <comment>extShortName</comment>
-        <translation>Ускор.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
-        <source>Acceleration</source>
-        <comment>extLongName</comment>
-        <translation>Ускорение</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extShortName</comment>
-        <translation>Курс</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
-        <source>Course</source>
-        <comment>extLongName</comment>
-        <translation>Курс</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temp.</source>
-        <comment>extShortName</comment>
-        <translation>Темп.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
-        <source>Temperature</source>
-        <comment>extLongName</comment>
-        <translation>Температура</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Dist.</source>
-        <comment>extShortName</comment>
-        <translation>Расстояние</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
-        <source>Distance</source>
-        <comment>extLongName</comment>
-        <translation>Расстояние</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Ele.</source>
-        <comment>extShortName</comment>
-        <translation>Высота</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
-        <source>Elevation</source>
-        <comment>extLongName</comment>
-        <translation>Высота</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extShortName</comment>
-        <translation>Энергия</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
-        <source>Energy</source>
-        <comment>extLongName</comment>
-        <translation>Энергия</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Lev. Pres.</source>
-        <comment>extShortName</comment>
-        <translation>Давление</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
-        <source>Sea Level Pressure</source>
-        <comment>extLongName</comment>
-        <translation>Давление на уровне моря</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>v. Speed</source>
-        <comment>extShortName</comment>
-        <translation>Скорость</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
-        <source>Vertical Speed</source>
-        <comment>extLongName</comment>
-        <translation>Скорость (вертикальная)</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope</source>
-        <comment>extShortName</comment>
-        <translation>Наклон</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
-        <source>Slope*</source>
-        <translation>Наклон*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
-        <source>Speed over Distance*</source>
-        <comment>extLongName</comment>
-        <translation>Скорость(расстояние)*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
-        <source>Speed over Time*</source>
-        <comment>extLongName</comment>
-        <translation>Скорость(время)*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
-        <source>Elevation*</source>
-        <comment>extLongName</comment>
-        <translation>Высота*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress</source>
-        <comment>extShortName</comment>
-        <translation>Расстояние</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
-        <source>Progress*</source>
-        <comment>extLongName</comment>
-        <translation>Расстояние*</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terr. Slope</source>
-        <comment>extShortName</comment>
-        <translation>Склон местн.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
-        <source>Terrain Slope*</source>
-        <comment>extLongName</comment>
-        <translation>Склон местности*</translation>
-    </message>
-</context>
-<context>
-    <name>CLogProject</name>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
-        <source>Not an Openambit log file: %1</source>
-        <translation>Это не файл Openambit LOG: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
-        <source>Device: %1<br/></source>
-        <translation>Устройство: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Время восстановления: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Пиковый эффект тренинга: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Энергия: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
-        <source>Use of local time...</source>
-        <translation>Использование местного времени...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>Не найдено время UTC в файле %1. Используется локальное время компьютера. При необходимости вы можете настроить время, используя фильтр времени.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
-        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Этот файл LOG не содержит данных о местоположении и не может отображаться в QMapShack: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CLostFoundProject</name>
-    <message>
-        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
-        <source>Lost & Found</source>
-        <translation>Потеряно и найдено</translation>
-    </message>
-</context>
-<context>
-    <name>CMainWindow</name>
-    <message>
-        <location filename="../CMainWindow.cpp" line="859"/>
-        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
-        <translation>Использовать <b>Меню->Вид->Добавить окно карты</b> для добавления нового вида. Или <b>Меню->Файл->Загрузить вид карты</b> для восстановления сохраненного вида. Или нажмите <a href='newview'>здесь</a>.</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="987"/>
-        <source>Ele.: %1%2</source>
-        <translation>Высота: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="999"/>
-        <source>Slope: %1%2</source>
-        <comment>terrain</comment>
-        <translation>Склон: %1%2</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1015"/>
-        <source>[Grid: %1]</source>
-        <translation>[Координатная сетка: %1]</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1156"/>
-        <source>Load GIS Data...</source>
-        <translation>Загрузить данные GIS...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <source>Select output file</source>
-        <translation>Выбрать выходной файл</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1190"/>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>QMapShack View (*.view)</source>
-        <translation>QMapShack вид (*.view)</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1216"/>
-        <source>Select file to load</source>
-        <translation>Выбрать файл для загрузки</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1532"/>
-        <source>Fatal...</source>
-        <translation>Неустранимая ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../CMainWindow.cpp" line="1533"/>
-        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
-        <translation>QMapShack обнаружил плохо установленную библиотеку Proj4. Таблицы перевода для проекций EPSG обычно находятся в /usr/share/pro отсутствуют. Пожалуйста, сообщите об этом администратору пакета чтобы поправить это.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapDraw</name>
-    <message>
-        <location filename="../map/CMapDraw.cpp" line="457"/>
-        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
-
-If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
-        <translation>В данный момент, карт ещё нет. Использование QMapShack без карт совсем непривлекательно. Вы можете установить карты, нажав кнопку 'Помогите! Я хочу карты!' в окне 'Карты'. Или Вы можете нажать клавишу F1, чтобы открыть документацию в Интернете, которая объяснит как использовать QMapShack.
-
-Так не очень удобно, почему не поставлять сразу с картами? Поддержка готовых для загрузки и установки карт требует хорошего сервера. И это не бесплатно. У проекта нет денег. Вдобавок карты и данные ЦМР зачастую распространяются под ограничительными лицензиями. Поэтому требуется разрешение правообладателя перед упаковкой его данных. Это не так просто как звучит, к тому же за некоторые данные требуется платить комиссионные. У проекта просто нет ресурсов для этого. И мы надеемся установка к [...]
-    </message>
-</context>
-<context>
-    <name>CMapIMG</name>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="146"/>
-        <source>Failed ...</source>
-        <translation>Не удалось...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="175"/>
-        <source>Unspecified</source>
-        <translation>Не указано</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="176"/>
-        <source>French</source>
-        <translation>Французский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="177"/>
-        <source>German</source>
-        <translation>Немецкий</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="178"/>
-        <source>Dutch</source>
-        <translation>Голландский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="179"/>
-        <source>English</source>
-        <translation>Английский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="180"/>
-        <source>Italian</source>
-        <translation>Итальянский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="181"/>
-        <source>Finnish</source>
-        <translation>Финский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="182"/>
-        <source>Swedish</source>
-        <translation>Шведский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="183"/>
-        <source>Spanish</source>
-        <translation>Испанский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="184"/>
-        <source>Basque</source>
-        <translation>Баскский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="185"/>
-        <source>Catalan</source>
-        <translation>Каталонский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="186"/>
-        <source>Galician</source>
-        <translation>Галисийский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="187"/>
-        <source>Welsh</source>
-        <translation>Валлийский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="188"/>
-        <source>Gaelic</source>
-        <translation>Гэльский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="189"/>
-        <source>Danish</source>
-        <translation>Датский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="190"/>
-        <source>Norwegian</source>
-        <translation>Норвежский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="191"/>
-        <source>Portuguese</source>
-        <translation>Португальский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="192"/>
-        <source>Slovak</source>
-        <translation>Словацкий</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="193"/>
-        <source>Czech</source>
-        <translation>Чешский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="194"/>
-        <source>Croatian</source>
-        <translation>Хорватский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="195"/>
-        <source>Hungarian</source>
-        <translation>Венгерский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="196"/>
-        <source>Polish</source>
-        <translation>Польский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="197"/>
-        <source>Turkish</source>
-        <translation>Турецкий</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="198"/>
-        <source>Greek</source>
-        <translation>Греческий</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="199"/>
-        <source>Slovenian</source>
-        <translation>Словенский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="200"/>
-        <source>Russian</source>
-        <translation>Русский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="201"/>
-        <source>Estonian</source>
-        <translation>Эстонский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="202"/>
-        <source>Latvian</source>
-        <translation>Латвийский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="203"/>
-        <source>Romanian</source>
-        <translation>Румынский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="204"/>
-        <source>Albanian</source>
-        <translation>Албанский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="205"/>
-        <source>Bosnian</source>
-        <translation>Боснийский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="206"/>
-        <source>Lithuanian</source>
-        <translation>Литовский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="207"/>
-        <source>Serbian</source>
-        <translation>Сербский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="208"/>
-        <source>Macedonian</source>
-        <translation>Македонский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="209"/>
-        <source>Bulgarian</source>
-        <translation>Болгарский</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="266"/>
-        <source>Major highway</source>
-        <translation>Автомагистраль</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="267"/>
-        <source>Principal highway</source>
-        <translation>Шоссе основное</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="268"/>
-        <source>Other highway</source>
-        <translation>Прочие загородные дороги</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="269"/>
-        <source>Arterial road</source>
-        <translation>Городская магистраль</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="270"/>
-        <source>Collector road</source>
-        <translation>Улица крупная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="271"/>
-        <source>Residential street</source>
-        <translation>Улица малая</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="272"/>
-        <source>Alley/Private road</source>
-        <translation>Переулок, внутриквартальный проезд</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="273"/>
-        <source>Highway ramp, low speed</source>
-        <translation>Наклонный съезд с путепровода</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="274"/>
-        <source>Highway ramp, high speed</source>
-        <translation>Наклонный съезд с путепровода скоростной</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="275"/>
-        <source>Unpaved road</source>
-        <translation>Грунтовая дорога</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="276"/>
-        <source>Major highway connector</source>
-        <translation>Соединительное шоссе</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="277"/>
-        <source>Roundabout</source>
-        <translation>Круговое движение</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="278"/>
-        <source>Railroad</source>
-        <translation>Железная дорога</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="279"/>
-        <source>Shoreline</source>
-        <translation>Береговая линия</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="280"/>
-        <source>Trail</source>
-        <translation>Тропа</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="281"/>
-        <source>Stream</source>
-        <translation>Ручей</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="282"/>
-        <source>Time zone</source>
-        <translation>Граница часового пояса</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="283"/>
-        <location filename="../map/CMapIMG.cpp" line="284"/>
-        <source>Ferry</source>
-        <translation>Паром</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="285"/>
-        <source>State/province border</source>
-        <translation>Граница области</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="286"/>
-        <source>County/parish border</source>
-        <translation>Граница района, округа</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="287"/>
-        <source>International border</source>
-        <translation>Международная граница</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="288"/>
-        <source>River</source>
-        <translation>Река</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="289"/>
-        <source>Minor land contour</source>
-        <translation>Изолиния высоты, вспомогательная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="290"/>
-        <source>Intermediate land contour</source>
-        <translation>Изолиния высоты, основная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="291"/>
-        <source>Major land contour</source>
-        <translation>Изолиния высоты, утолщённая</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="292"/>
-        <source>Minor depth contour</source>
-        <translation>Изолиния глубины, вспомогательная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="293"/>
-        <source>Intermediate depth contour</source>
-        <translation>Изолиния глубины, основная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="294"/>
-        <source>Major depth contour</source>
-        <translation>Изолиния глубины, утолщённая</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="295"/>
-        <source>Intermittent stream</source>
-        <translation>Пересыхающая река, ручей или канава</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="296"/>
-        <location filename="../map/CMapIMG.cpp" line="378"/>
-        <source>Airport runway</source>
-        <translation>Взлетно-посадочная полоса</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="297"/>
-        <source>Pipeline</source>
-        <translation>Трубопровод</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="298"/>
-        <source>Powerline</source>
-        <translation>Линия электропередачи</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="299"/>
-        <source>Marine boundary</source>
-        <translation>Морская граница</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="300"/>
-        <source>Hazard boundary</source>
-        <translation>Опасность для плавания</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="365"/>
-        <source>Large urban area (&gt;200K)</source>
-        <translation>Городская застройка (&gt;200 тыс.ж)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="366"/>
-        <source>Small urban area (&lt;200K)</source>
-        <translation>Городская застройка (&lt;200 тыс.ж)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="367"/>
-        <source>Rural housing area</source>
-        <translation>Застройка сельского типа</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="368"/>
-        <source>Military base</source>
-        <translation>Военная база</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="369"/>
-        <source>Parking lot</source>
-        <translation>Автостоянка</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="370"/>
-        <source>Parking garage</source>
-        <translation>Гараж</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="371"/>
-        <source>Airport</source>
-        <translation>Аэропорт</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="372"/>
-        <source>Shopping center</source>
-        <translation>Место для торговли</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="373"/>
-        <source>Marina</source>
-        <translation>Пристань</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="374"/>
-        <source>University/College</source>
-        <translation>Университета или колледж</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="375"/>
-        <source>Hospital</source>
-        <translation>Больница</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="376"/>
-        <source>Industrial complex</source>
-        <translation>Промышленная зона</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="377"/>
-        <source>Reservation</source>
-        <translation>Резервация, заповедник</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="379"/>
-        <source>Man-made area</source>
-        <translation>Здание, искусственное сооружение</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="380"/>
-        <source>Sports complex</source>
-        <translation>Спортивный комплекс</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="381"/>
-        <source>Golf course</source>
-        <translation>Площадка для гольфа</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="382"/>
-        <source>Cemetery</source>
-        <translation>Кладбище</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="383"/>
-        <location filename="../map/CMapIMG.cpp" line="384"/>
-        <location filename="../map/CMapIMG.cpp" line="385"/>
-        <source>National park</source>
-        <translation>Национальный парк</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="386"/>
-        <source>City park</source>
-        <translation>Городской парк</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="387"/>
-        <location filename="../map/CMapIMG.cpp" line="388"/>
-        <location filename="../map/CMapIMG.cpp" line="389"/>
-        <source>State park</source>
-        <translation>Парк регионального значения</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="390"/>
-        <source>Forest</source>
-        <translation>Лес</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="391"/>
-        <source>Ocean</source>
-        <translation>Море/океан</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="392"/>
-        <location filename="../map/CMapIMG.cpp" line="394"/>
-        <location filename="../map/CMapIMG.cpp" line="404"/>
-        <source>Blue (unknown)</source>
-        <translation>Синий (неизвестно)</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="393"/>
-        <source>Sea</source>
-        <translation>Море</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="395"/>
-        <location filename="../map/CMapIMG.cpp" line="396"/>
-        <location filename="../map/CMapIMG.cpp" line="403"/>
-        <source>Large lake</source>
-        <translation>Озеро, большое</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="397"/>
-        <location filename="../map/CMapIMG.cpp" line="398"/>
-        <source>Medium lake</source>
-        <translation>Озеро, среднее</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="399"/>
-        <location filename="../map/CMapIMG.cpp" line="400"/>
-        <source>Small lake</source>
-        <translation>Озеро, малое</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="401"/>
-        <location filename="../map/CMapIMG.cpp" line="402"/>
-        <source>Major lake</source>
-        <translation>Озеро, крупное</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="405"/>
-        <source>Major River</source>
-        <translation>Река, крупная</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="406"/>
-        <source>Large River</source>
-        <translation>Река, большая</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="407"/>
-        <source>Medium River</source>
-        <translation>Река, средняя</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="408"/>
-        <source>Small River</source>
-        <translation>Река, малая</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="411"/>
-        <source>Intermittent water</source>
-        <translation>Пересыхающая река, озеро</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="412"/>
-        <source>Wetland/Swamp</source>
-        <translation>Болото</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="413"/>
-        <source>Glacier</source>
-        <translation>Ледник</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="414"/>
-        <source>Orchard/Plantation</source>
-        <translation>Фруктовый сад, огород</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="415"/>
-        <source>Scrub</source>
-        <translation>Кустарник</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="416"/>
-        <source>Tundra</source>
-        <translation>Тундра</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="417"/>
-        <source>Flat</source>
-        <translation>Равнина</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="418"/>
-        <source>???</source>
-        <translation>???</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Read external type file...</source>
-        <translation>Загрузить внешний файл типов...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="432"/>
-        <source>Failed to read type file: %1
-Fall back to internal types.</source>
-        <translation>Не удалось читать файл типов: %1
-Возврат к внутренним типам.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="474"/>
-        <source>Failed to read: </source>
-        <translation>Не удалось читать: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="517"/>
-        <source>Failed to open: </source>
-        <translation>Не удалось открыть: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="541"/>
-        <location filename="../map/CMapIMG.cpp" line="545"/>
-        <source>Bad file format: </source>
-        <translation>Неверный формат файла: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="634"/>
-        <source>Failed to read file structure: </source>
-        <translation>Не удалось читать структуру файла: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="669"/>
-        <source>Loading %1</source>
-        <translation>Идет загрузка %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="675"/>
-        <source>User abort: </source>
-        <translation>Прекращение пользователем: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="678"/>
-        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
-        <translation>Файл имеет формат NT. QMapShack не может считывать этот формат: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="769"/>
-        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
-        <translation>Файл содержит заблокированные / зашифрованные данные. Garmin позволяет использовать этот файл только с помощью программного обеспечения Garmin.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2388"/>
-        <location filename="../map/CMapIMG.cpp" line="2394"/>
-        <location filename="../map/CMapIMG.cpp" line="2398"/>
-        <source>Point of Interest</source>
-        <translation>Достопримечательность</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2484"/>
-        <source>Unknown</source>
-        <translation>Неизвестно</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapIMG.cpp" line="2526"/>
-        <location filename="../map/CMapIMG.cpp" line="2534"/>
-        <location filename="../map/CMapIMG.cpp" line="2541"/>
-        <source>Area</source>
-        <translation>Область</translation>
-    </message>
-</context>
-<context>
-    <name>CMapList</name>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Deactivate</source>
-        <translation>Деактивировать</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="202"/>
-        <source>Activate</source>
-        <translation>Активировать</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapList.cpp" line="227"/>
-        <source>Where do you want to store maps?</source>
-        <translation>Где вы хотите хранить карты?</translation>
-    </message>
-</context>
-<context>
-    <name>CMapMAP</name>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="46"/>
-        <source>Failed ...</source>
-        <translation>Не удалось...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="63"/>
-        <source>Failed to open: </source>
-        <translation>Не удалось открыть: </translation>
-    </message>
-    <message>
-        <location filename="../map/CMapMAP.cpp" line="73"/>
-        <source>Bad file format: </source>
-        <translation>Неверный формат файла: </translation>
-    </message>
-</context>
-<context>
-    <name>CMapPathSetup</name>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="47"/>
-        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
-        <translation>Добавить или удалить путь с картами. Несколько карт может быть в пути, но вложенные пути не поддерживаются. Поддерживаемые форматы: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="62"/>
-        <source>Select map path...</source>
-        <translation>Выбрать путь к картам...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapPathSetup.cpp" line="81"/>
-        <source>Select root path...</source>
-        <translation>Выбрать корневой путь...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapPropSetup</name>
-    <message>
-        <location filename="../map/CMapPropSetup.cpp" line="196"/>
-        <source>Select type file...</source>
-        <translation>Выбрать файл типов...</translation>
-    </message>
-</context>
-<context>
-    <name>CMapRMAP</name>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="48"/>
-        <source>This is not a TwoNav RMAP file.</source>
-        <translation>Это не файл TwoNav RMAP.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="57"/>
-        <source>Unknown sub-format.</source>
-        <translation>Неизвестный подформат.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="127"/>
-        <source>Unknown version.</source>
-        <translation>Неизвестная версия.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="144"/>
-        <location filename="../map/CMapRMAP.cpp" line="165"/>
-        <location filename="../map/CMapRMAP.cpp" line="187"/>
-        <location filename="../map/CMapRMAP.cpp" line="209"/>
-        <source>Failed to read reference point.</source>
-        <translation>Не удалось читать опорную точку.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapRMAP.cpp" line="237"/>
-        <source>Unknown projection and datum (%1%2).</source>
-        <translation>Неизвестные проекция и датум (%1%2).</translation>
-    </message>
-</context>
-<context>
-    <name>CMapTMS</name>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="68"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="78"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapTMS.cpp" line="116"/>
-        <source>Layer %1</source>
-        <translation>Слой %1</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVRT</name>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="45"/>
-        <location filename="../map/CMapVRT.cpp" line="59"/>
-        <source>Failed to load file: %1</source>
-        <translation>Не удалось загрузить файл: %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="83"/>
-        <source>File must be 8 bit palette or gray indexed.</source>
-        <translation>Файл должен быть 8 битной палитрой или серый проиндексирован.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapVRT.cpp" line="133"/>
-        <source>No georeference information found.</source>
-        <translation>Не удалось найти геопозиционную информацию.</translation>
-    </message>
-</context>
-<context>
-    <name>CMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
-        <source>Build GDAL VRT</source>
-        <translation>Построить GDAL VRT</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="63"/>
-        <source>Select files...</source>
-        <translation>Выбрать файлы...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="87"/>
-        <source>Select target file...</source>
-        <translation>Выбрать целевой файл...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CMapVrtBuilder.cpp" line="150"/>
-        <source>!!! done !!!
-</source>
-        <translation>Сделано!</translation>
-    </message>
-</context>
-<context>
-    <name>CMapWMTS</name>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="43"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="53"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="63"/>
-        <source>Failed to read: %1
-Unknown structure.</source>
-        <translation>Не удалось читать: %1. 
-Неизвестная структура.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="72"/>
-        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
-        <translation>Неожиданный сервис. Ожидается '* WMTS 1.0.0'. Получено '%1 %2'.</translation>
-    </message>
-    <message>
-        <location filename="../map/CMapWMTS.cpp" line="209"/>
-        <source>No georeference information found.</source>
-        <translation>Не удалось найти геопозиционную информацию.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditArea</name>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditArea.cpp" line="35"/>
-        <source>Area</source>
-        <translation>Область</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="37"/>
-        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Изменить область</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Те с черной точкой являются подточки добавлены маршрутизацией<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditArea.cpp" line="94"/>
-        <source>area</source>
-        <translation>область</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditRte</name>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="30"/>
-        <location filename="../mouse/CMouseEditRte.cpp" line="37"/>
-        <source>Route</source>
-        <translation>Маршрут</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="39"/>
-        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Изменить точки маршрута</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Точки с черным пунктиром являются подточки введены маршрутизацией<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditRte.cpp" line="105"/>
-        <source>route</source>
-        <translation>маршрут</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseEditTrk</name>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="28"/>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="35"/>
-        <source>Track</source>
-        <translation>Трек</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="38"/>
-        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
-        <translation><b>Изменить точки трека</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Точки с черным пунктиром являются подточки введены маршрутизацией<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>Warning!</source>
-        <translation>Предупреждение!</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="80"/>
-        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
-        <translation>Это заменит все данные оригинала простой линией. Все остальные данные будут потеряны безвозвратно.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseEditTrk.cpp" line="110"/>
-        <source>track</source>
-        <translation>трек</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseNormal</name>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="40"/>
-        <source>Add POI as Waypoint</source>
-        <translation>Добавить достопримечательность как маршрутную точку</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="41"/>
-        <source>Add Waypoint</source>
-        <translation>Добавить маршрутную точку</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
-        <source>Add Track</source>
-        <translation>Добавить трек</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
-        <source>Add Route</source>
-        <translation>Добавить маршрут</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
-        <source>Add Area</source>
-        <translation>Добавить область</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
-        <source>Select Items On Map</source>
-        <translation>Выбрать элементы на карте</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
-        <source>Copy position</source>
-        <translation>Скопировать позицию</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseNormal.cpp" line="49"/>
-        <source>Copy position (Grid)</source>
-        <translation>Скопировать позицию (координатная сетка)</translation>
-    </message>
-</context>
-<context>
-    <name>CMousePrint</name>
-    <message>
-        <location filename="../mouse/CMousePrint.cpp" line="31"/>
-        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Сохранить (Печатать) карту</b><br/> Выберите прямоугольную область на карте. Используйте левую кнопку мышки и двигайте её. Прервать с правой кнопкой мышки. Уточните выбор с помощью метода указать-нажать-переместить по углам.</translation>
-    </message>
-</context>
-<context>
-    <name>CMouseRangeTrk</name>
-    <message>
-        <location filename="../mouse/CMouseRangeTrk.cpp" line="239"/>
-        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
-        <translation><b>Выбрать интервал</b><br/> Выберите первую точку трека с левой кнопкой мышки. А затем второй. Закончите выбор интервала с помощью щелчка правой кнопкой мышки. <br/></translation>
-    </message>
-</context>
-<context>
-    <name>CMouseSelect</name>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
-        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
-        <translation><b>Выбрать элементы на карте</b><br/> Выберите прямоугольную область на карте. Используйте левую кнопку мышки и двигайте её. Прервать с правой кнопкой мышки. Уточните выбор с помощью метода указать-нажать-переместить по углам.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="99"/>
-        <source><b>Selected:</b><br/></source>
-        <translation><b>Выбрано:</b><br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="107"/>
-        <source>%1 waypoints<br/></source>
-        <translation>%1 маршрутных точек<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="102"/>
-        <source>%1 tracks<br/></source>
-        <translation>%1 треков<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="112"/>
-        <source>%1 routes<br/></source>
-        <translation>%1 маршрутов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CMouseSelect.cpp" line="117"/>
-        <source>%1 areas<br/></source>
-        <translation>%1 областей<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
-        <source>Select images...</source>
-        <translation>Выбрать изображения...</translation>
-    </message>
-</context>
-<context>
-    <name>CPlot</name>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="55"/>
-        <source>Distance [%1]</source>
-        <translation>Расстояние [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlot.cpp" line="60"/>
-        <source>Time</source>
-        <translation>Время</translation>
-    </message>
-</context>
-<context>
-    <name>CPlotProfile</name>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="79"/>
-        <source>Distance [%1]</source>
-        <translation>Расстояние [%1]</translation>
-    </message>
-    <message>
-        <location filename="../plot/CPlotProfile.cpp" line="80"/>
-        <source>Ele. [%1]</source>
-        <translation>Высота: [%1]</translation>
-    </message>
-</context>
-<context>
-    <name>CPrintDialog</name>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="67"/>
-        <source>Print Map...</source>
-        <translation>Печатать карту...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="74"/>
-        <source>Save Map as Image...</source>
-        <translation>Сохранить карту как изображение...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="94"/>
-        <source>Printer Properties...</source>
-        <translation>Свойства принтера...</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="169"/>
-        <source>Pages: %1 x %2</source>
-        <translation>Страницы: %1 x %2</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="170"/>
-        <source>Zoom with mouse wheel on map below to change resolution:
-
-%1x%2 pixel
-x: %3 m/px
-y: %4 m/px</source>
-        <translation>Использовать колёсико мышки на нижней карте для изменения разрешения:
-
-%1x%2 пиксель 
-x: %3 м/пиксель
-y: %4 м/пиксель</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="216"/>
-        <source>Printing pages.</source>
-        <translation>Вывод страниц на печать.</translation>
-    </message>
-    <message>
-        <location filename="../print/CPrintDialog.cpp" line="260"/>
-        <source>Save map...</source>
-        <translation>Сохранить карту...</translation>
-    </message>
-</context>
-<context>
-    <name>CProgressDialog</name>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
-        <source>Elapsed time: %1</source>
-        <translation>Истёкшее время: %1</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
-        <source>Elapsed time: %1 seconds.</source>
-        <translation>Истёкшее время: %1 сек.</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWizard</name>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="62"/>
-        <source>north</source>
-        <translation>север</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="63"/>
-        <source>south</source>
-        <translation>юг</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../grid/CProjWizard.cpp" line="222"/>
-        <source>The value
-'%1'
-is not a valid coordinate system definition:
-%2</source>
-        <translation>Значение 
-'%1'
-недопустимое определение координатной системы:
-%2</translation>
-    </message>
-</context>
-<context>
-    <name>CProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Edit name...</source>
-        <translation>Изменить имя...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
-        <source>Enter new waypoint name.</source>
-        <translation>Ввести новое имя маршрутной точки.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlbProject</name>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open...</source>
-        <translation>Не удалось открыть...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
-        <source>Could not convert...</source>
-        <translation>Не удалось преобразовать...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
-        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
-        <translation>Файл содержит наложения, которые невозможно преобразовать. Это связано с тем, что QMapShack не поддерживает все типы наложений QLandkarte.</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtDb</name>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
-        <source>Migrating database from version 4 to 5.</source>
-        <translation>Миграции базы данных с версии 4 до версии 5.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
-        <source>Migrating database from version 5 to 6.</source>
-        <translation>Миграции базы данных с версии 5 до версии 6.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
-        <source>Migrating database from version 6 to 7.</source>
-        <translation>Миграции базы данных с версии 6 до версии 7.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
-        <source>Migrating database from version 7 to 8.</source>
-        <translation>Миграции базы данных с версии 7 до версии 8.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
-        <source>Migrating database from version 8 to 9.</source>
-        <translation>Миграции базы данных с версии 8 до версии 9.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
-        <source>Open database: %1</source>
-        <translation>Открыть базы данных: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
-        <source>Folders:          %1</source>
-        <translation>Папки:           %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
-        <source>Tracks:           %1</source>
-        <translation>Треки:           %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
-        <source>Routes:           %1 (Only the basic route will be copied)</source>
-        <translation>Маршруты:         %1 (скопируется только основной маршрут)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
-        <source>Waypoints:        %1</source>
-        <translation>Маршрутные точки: %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
-        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
-        <translation>Наложения:        %1 (области будут преобразованы в области, линии расстояния будут преобразованы в треки, все остальные элементы наложения будут потеряны)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
-        <source>Diaries:          %1</source>
-        <translation>Дневники:         %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
-        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
-        <translation>Выборки карт:     %1 (невозможно преобразовать в QMapShack)</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
-        <source>------ Start to convert database to %1------</source>
-        <translation>------ Начиная преобразовать базу данных до %1------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
-        <source>Failed to create target database.</source>
-        <translation>Не удалось создать целевую базу данных.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
-        <source>------ Abort ------</source>
-        <translation>------Прекращение------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
-        <source>------ Done ------</source>
-        <translation>------Сделано!------</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
-        <source>Restore folders...</source>
-        <translation>Восстановить папки...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
-        <source>Imported %1 folders and %2 diaries</source>
-        <translation>Импортированы %1 папок и %2 дневников</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
-        <source>Copy items...</source>
-        <translation>Копировать элементы ...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
-        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
-        <translation>Импортированы %1 треков, %2 маршрутных точек, %3 маршрутов, %4 областей</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
-        <source>Import folders...</source>
-        <translation>Импортировать папки...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
-        <source>Overlay of type '%1' cant be converted</source>
-        <translation>Наложение типа '%1' не может быть преобразовано</translation>
-    </message>
-</context>
-<context>
-    <name>CQlgtTrack</name>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Corrupt track ...</source>
-        <translation>Поврежденный трек...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
-        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
-        <translation>Количество точек трека не равно количеству точек трека в данных тренировки.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
-        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
-        <translation>Количество точек трека не равно количеству расширенных точек трека.</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
-        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
-        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
-        <translation>Количество точек трека не равно количеству затененных точек трека.</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsDb</name>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Existing file...</source>
-        <translation>Файл существует...</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
-        <source>Remove existing %1?</source>
-        <translation>Удалить существующий %1?</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
-        <source>Remove existing file %1</source>
-        <translation>Удалить существующий файл %1</translation>
-    </message>
-    <message>
-        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
-        <source>%1: drop item with QLGT DB ID %2</source>
-        <translation>%1: удалить элемент с QLGT DB ID %2</translation>
-    </message>
-</context>
-<context>
-    <name>CQmsProject</name>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open...</source>
-        <translation>Не удалось открыть...</translation>
-    </message>
-    <message>
-        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
-        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
-        <source>original</source>
-        <translation>Оригинал</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
-        <source>first alternative</source>
-        <translation>Первая альтернатива</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
-        <source>second alternative</source>
-        <translation>Вторая альтернатива</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
-        <source>third alternative</source>
-        <translation>Третья альтернатива</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="148"/>
-        <source>BRouter (offline)</source>
-        <translation>BRouter (без Интернета)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="155"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (требуется связь с Интернетом)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="185"/>
-        <source>profile: %1, alternative: %2</source>
-        <translation>Профиль: %1, альтернатива: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="283"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="408"/>
-        <source>BRouter does not support more then 1 nogo-area in this version, consider to upgrade</source>
-        <translation>BRouter в данной версии не поддерживает более 1 запретной зоны, рассмотрите возможность обновления</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="297"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="420"/>
-        <source>response is empty</source>
-        <translation>Ответ пуст</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="334"/>
-        <source>Bad response from server: %1</source>
-        <translation>Плохой ответ от сервера: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
-        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>BRouter</b><br/>Запрос маршрутизации отправлен на сервер. Пожалуйста, подождите...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="270"/>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="389"/>
-        <source>Calculate route with %1</source>
-        <translation>Вычислить маршрут с %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="454"/>
-        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>BRouter</b><br/>Плохой ответ от сервера:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="444"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Время расчета: %1 сек.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="548"/>
-        <source>Error</source>
-        <translation>Ошибка</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="600"/>
-        <source>running</source>
-        <translation>Запущено</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="592"/>
-        <source>starting</source>
-        <translation>Идет запуск</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="554"/>
-        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
-        <translation>QMapShack взаимодействует с BRouter через сетевое соединение. Обычно это делается по специальному адресу, который не может быть достигнут вне вашего устройства. Однако BRouter слушает соединения на всех доступных интерфейсах. Если вы находитесь в своей частной сети с активным брандмауэром, это не проблема. Если вы находитесь в общедоступной сети, каждый открытый порт представляет собой риск, так как он может быть использован кем-то другим для компрометации вашей сист [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="581"/>
-        <source>Warning...</source>
-        <translation>Предупреждение...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="586"/>
-        <source>I understand the risk. Don't tell me again.</source>
-        <translation>Я понимаю риск. Больше не говорите.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="607"/>
-        <source>stopped</source>
-        <translation>Остановлено</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="618"/>
-        <source>not installed</source>
-        <translation>Не установлено</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="629"/>
-        <source>online</source>
-        <translation>Онлайн</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="479"/>
-        <source>%1 not accessible</source>
-        <translation>%1 не доступно</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="489"/>
-        <source>%1 invalid result</source>
-        <translation>%1 неверный результат</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="533"/>
-        <source>Error parsing online-config:</source>
-        <translation>Ошибка при анализе онлайн конфигурации:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="538"/>
-        <source>Network error:</source>
-        <translation>Ошибка сети:</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
-        <source>Restore Default Values</source>
-        <translation>Восстановить умолчание</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
-        <source>Open Directory</source>
-        <translation>Открыть папку</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
-        <source>select Java Executable</source>
-        <translation>Выбрать исполняемый файл Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
-        <source>please select BRouter installation directory</source>
-        <translation>Выбрать папку установки BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
-        <source>selected directory does not exist</source>
-        <translation>Выбранная папка не существует</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
-        <source>create directory and install BRouter there</source>
-        <translation>Создать папку и установить там BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
-        <source>existing BRouter installation</source>
-        <translation>Существующая установка BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
-        <source>update existing BRouter installation</source>
-        <translation>Обновить существующую установку BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
-        <source>empty directory, create new BRouter installation here</source>
-        <translation>Пустая папка, создать там новую установку BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
-        <source>create new BRouter installation</source>
-        <translation>Создать новую установку BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
-        <source>seems to be a valid Java-executable</source>
-        <translation>Вероятно, является допустимым исполняемым файлом Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
-        <source>doesn't seem to be a valid Java-executable</source>
-        <translation>Не похоже на допустимый исполняемый файл Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
-        <source>Java Executable not found</source>
-        <translation>Исполняемый файл Java не найден</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
-        <source>Error loading installation-page at %1</source>
-        <translation>Ошибка загрузки страницы установки в %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
-        <source>no brouter-version to install selected</source>
-        <translation>Версия BRouter для установки не выбрана</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
-        <source>selected %1 for download and installation</source>
-        <translation>Выбрано %1 для загрузки и установки</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
-        <source>Warning...</source>
-        <translation>Предупреждение...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
-        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
-        <translation>Загрузка:%1 <br/>Это загрузит и установит файл ZIP из места загрузки, которое не защищено никаким стандартом вообще, используя простой HTTP. Обычно это должно быть HTTPS. Риск заключается в том, что кто-то перенаправляет запрос и отправляет вам заменяющий ZIP с помощью вредоносной программы. QMapShack не может обнаружить это. <br/> Если вы не понимаете этого или если у вас есть сомнения, не начинайте и прерываете. Вместо этого используйте веб-версию BRout [...]
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
-        <source>I understand the risk and wish to proceed.</source>
-        <translation>Я понимаю риск и хочу продолжить.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
-        <source>download %1 started</source>
-        <translation>Загрузка %1 началась</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
-        <source>Network Error: %1</source>
-        <translation>Ошибка сети: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
-        <source>download %1 finished</source>
-        <translation>Загрузка %1 завершена</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
-        <source>unzipping:</source>
-        <translation>Распаковка:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
-        <source>ready.</source>
-        <translation>Готово.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
-        <source>download of brouter failed: %1</source>
-        <translation>Загрузка BRouter не удалась: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
-        <source>retrieving available profiles from %1</source>
-        <translation>Получить доступные профили из %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
-        <source>content of profile</source>
-        <translation>Содержание профиля</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
-        <source>Error:</source>
-        <translation>Ошибка: </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
-        <source>Error creating directory %1</source>
-        <translation>Ошибка создания папки %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
-        <source>Error directory %1 does not exist</source>
-        <translation>Ошибка: папка %1 не существует</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
-        <source>Error creating file %1</source>
-        <translation>Ошибка создания файла %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
-        <source>Error writing to file %1</source>
-        <translation>Ошибка записи в файл %1</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesPage</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
-        <source>Continue with Setup</source>
-        <translation>Продолжать настройку</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterTilesSelect</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
-        <source>available routing-data is being determined.</source>
-        <translation>Определяются доступные данные маршрутизации.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
-        <source>Select outdated</source>
-        <translation>Выбрать устаревшее</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
-        <source>Clear Selection</source>
-        <translation>Очистить выделение</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
-        <source>Delete selection</source>
-        <translation>Удалить выделение</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
-        <source>Download</source>
-        <translation>Загрузка</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
-        <source>Error creating segments directory %1</source>
-        <translation>Ошибка создания каталога сегментов %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
-        <source>cannot parse: %1 is not a date</source>
-        <translation>Невозможно разобрать: %1 не является допустимой датой</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
-        <source>cannot parse: %1 is not a valid size</source>
-        <translation>Невозможно разобрать: %1 не является допустимым размером</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
-        <source>Error retrieving available routing data from %1: %2</source>
-        <translation>Ошибка получения доступных данных маршрутизации из %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
-        <source>segments directory does not exist: </source>
-        <translation>Папка сегментов не существует:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
-        <source>error creating file %1: %2</source>
-        <translation>Ошибка создания файла сегментов %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
-        <source>no valid request for filename %1</source>
-        <translation>Недействительный запрос имени файла %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
-        <source>no open file assigned to request for %1</source>
-        <translation>К запросу для %1 не был назначен открытый файл</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
-        <source>error writing to file %1: %2</source>
-        <translation>Ошибка записи в файл %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
-        <source>error renaming file %1 to %2: %3</source>
-        <translation>Ошибка переименования файла %1 до %2: %3</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
-        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
-        <translation>Верно: %1 (%2), устарело: %3 (%4), загрузить: %5 (%6)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
-        <source>being downloaded: %1 of %2</source>
-        <translation>Загружено: %1 от %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
-        <source>no local data, online available: %1 (%2)</source>
-        <translation>Нет локальных данных, доступно в Интернете: %1 (%2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
-        <source>local data outdated (%1, %2 - remote %3, %4)</source>
-        <translation>Локальные данные устарели (%1, %2 - удаленные %3, %4)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
-        <source>Error removing %1: %2</source>
-        <translation>Ошибка удаления %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
-        <source>Network Error</source>
-        <translation>Ошибка сети</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
-        <source>invalid result, no files found</source>
-        <translation>Неверный результат, файлы не найдены</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
-        <source>local data up to date (%1, %2)</source>
-        <translation>Локальные данные верны (%1, %2)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
-        <source>no routing-data available</source>
-        <translation>Нет доступных данных маршрутизации</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterBRouterToolShell</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="78"/>
-        <source>!!! done !!!
-</source>
-        <translation>Сделано!</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="83"/>
-        <source>!!! failed !!!
-</source>
-        <translation>Не удалось!</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
-        <source>Fastest</source>
-        <translation>Самый быстрый</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
-        <source>Shortest</source>
-        <translation>Самый короткий</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
-        <source>Bicycle</source>
-        <translation>Велосипед</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
-        <source>Pedestrian</source>
-        <translation>Пешеход</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
-        <source>US English</source>
-        <translation>Английский (США)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
-        <source>British English</source>
-        <translation>Английский (Британский)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
-        <source>Danish</source>
-        <translation>Датский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
-        <source>Dutch</source>
-        <translation>Голландский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
-        <source>French</source>
-        <translation>Французский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
-        <source>German</source>
-        <translation>Немецкий</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
-        <source>Italian</source>
-        <translation>Итальянский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
-        <source>Norwegian</source>
-        <translation>Норвежский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
-        <source>Spanish</source>
-        <translation>Испанский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
-        <source>Swedish</source>
-        <translation>Шведский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
-        <source>mode "%1"</source>
-        <translation>режим "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
-        <source>no highways</source>
-        <translation>без шоссе</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
-        <source>no toll roads</source>
-        <translation>без платных дорог</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
-        <source>no seasonal</source>
-        <translation>без сезонных</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
-        <source>no unpaved</source>
-        <translation>нет без покрытия</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
-        <source>no ferry</source>
-        <translation>без парома</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
-        <source>no crossing of country borders</source>
-        <translation>без пересечений государственных границ</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
-        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
-        <translation><b>MapQuest</b><br/>Запрос маршрутизации отправленный до сервера. Пожалуйста, подождите...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
-        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
-        <translation><b>MapQuest</b><br/>Плохой ответ от сервера:<br/>%1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Время расчета: %1 сек.</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Warning...</source>
-        <translation>Предупреждение...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
-        <source>Found Routino with a wrong version. Expected %1 found %2</source>
-        <translation>Найдено Routino с неправильной версией. Ожидаема %1б найдена %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
-        <source>Shortest</source>
-        <translation>Самый короткий</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
-        <source>Quickest</source>
-        <translation>Самый быстрый</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
-        <source>Foot</source>
-        <translation>Пешком</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
-        <source>Horse</source>
-        <translation>Лошадь</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
-        <source>Wheelchair</source>
-        <translation>Инвалидная коляска</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
-        <source>Bicycle</source>
-        <translation>Велосипед</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
-        <source>Moped</source>
-        <translation>Мопед</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
-        <source>Motorcycle</source>
-        <translation>Мотоцикл</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
-        <source>Motorcar</source>
-        <translation>Автомобиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
-        <source>Goods</source>
-        <translation>Товары</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
-        <source>English</source>
-        <translation>Английский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
-        <source>German</source>
-        <translation>Немецкий</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
-        <source>French</source>
-        <translation>Французский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
-        <source>Hungarian</source>
-        <translation>Венгерский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
-        <source>Dutch</source>
-        <translation>Голландский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
-        <source>Russian</source>
-        <translation>Русский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
-        <source>Polish</source>
-        <translation>Польский</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
-        <source>A function was called without the database variable set.</source>
-        <translation>Функция была вызвана без переменной для базы данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
-        <source>A function was called without the profile variable set.</source>
-        <translation>Функция была вызвана без переменной профиля.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
-        <source>A function was called without the translation variable set.</source>
-        <translation>Функция была вызвана без переменной перевода.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
-        <source>The specified database to load did not exist.</source>
-        <translation>Указанная к загрузке база данных не существует.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
-        <source>The specified database could not be loaded.</source>
-        <translation>Указанная база данных не может быть загружена.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
-        <source>The specified profiles XML file did not exist.</source>
-        <translation>Указанный XML файл профилей не существует.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
-        <source>The specified profiles XML file could not be loaded.</source>
-        <translation>Указанный XML файл профилей невозможно загрузить.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
-        <source>The specified translations XML file did not exist.</source>
-        <translation>Указанный XML файл перевода не существует.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
-        <source>The specified translations XML file could not be loaded.</source>
-        <translation>Указанный XML файл перевода невозможно загрузить.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
-        <source>The requested profile name does not exist in the loaded XML file.</source>
-        <translation>Запрошенное имя профиля не существует в загруженном XML файле.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
-        <source>The requested translation language does not exist in the loaded XML file.</source>
-        <translation>Запрошенный язык перевода не существует в загруженном XML файле.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
-        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
-        <translation>В базе данных маршрутизации нет дороги вблизи координат данной маршрутной точки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
-        <source>The profile and database do not work together.</source>
-        <translation>Профиль и базы данных не работают совместно.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
-        <source>The profile being used has not been validated.</source>
-        <translation>Использованный профиль не был подтвержден.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
-        <source>The user specified profile contained invalid data.</source>
-        <translation>Указанный профиль содержит недопустимые данные.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
-        <source>The routing options specified are not consistent with each other.</source>
-        <translation>Параметры маршрутизации несовместимы между собой.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
-        <source>There is a mismatch between the library and caller API version.</source>
-        <translation>Есть несоответствие между API версиями библиотеки и абонента.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
-        <source>Route calculation was aborted by user.</source>
-        <translation>Расчет маршрута был прерван пользователем.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
-        <source>A route could not be found to waypoint %1.</source>
-        <translation>Невозможно найти маршрут к маршрутной точке %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
-        <source>Unknown error: %1</source>
-        <translation>Неизвестная ошибка: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
-        <source>profile "%1"</source>
-        <translation>профиль "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
-        <source>, mode "%1"</source>
-        <translation>, режим "%1"</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
-        <source>Calculate route with %1</source>
-        <translation>Вычислить маршрут с %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
-        <source><br/>Calculation time: %1s</source>
-        <translation><br/>Время расчета: %1 сек.</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
-        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
-        <translation>Добавить или удалить пути, содержащие данные Routino. Несколько баз данных возможно в папке, но вложенные папки не просматриваются.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
-        <source>Select routing data file path...</source>
-        <translation>Выбрать путь к файлу с данными маршрутизации...</translation>
-    </message>
-</context>
-<context>
-    <name>CRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
-        <source>Routino (offline)</source>
-        <translation>Routino (без Интернета)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
-        <source>MapQuest (online)</source>
-        <translation>MapQuest (требуется связь с Интернетом)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
-        <source>BRouter (online)</source>
-        <translation>BRouter (требуется связь с Интернетом)</translation>
-    </message>
-</context>
-<context>
-    <name>CRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
-        <source>Create Routino Database</source>
-        <translation>Создать базу данных Routino</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
-        <source>Select files...</source>
-        <translation>Выбрать файлы...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
-        <source>Select target path...</source>
-        <translation>Выбрать целевой путь...</translation>
-    </message>
-    <message>
-        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
-        <source>!!! done !!!
-</source>
-        <translation>Сделано!</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
-        <source>No range selected</source>
-        <translation>Не выбран интервал</translation>
-    </message>
-</context>
-<context>
-    <name>CScrOptSelect</name>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="93"/>
-        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
-        <translation><b>Точный режим</b><br/> Все выбранные элементы должны полностью находиться внутри выбранной области<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="97"/>
-        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
-        <translation><b>Режим пересечения </b><br/> Все выбранные элементы должны пересекать выбранную область<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="101"/>
-        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
-        <translation><b>Добавить треки </b><br/>Добавить треки к списку выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="105"/>
-        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
-        <translation><b>Добавить маршрутные точки </b><br/>Добавить маршрутные точки к списку выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="109"/>
-        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
-        <translation><b>Добавить маршруты </b><br/>Добавить маршруты к списку выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="113"/>
-        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
-        <translation><b>Добавить области </b><br/>Добавить области к списку выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="124"/>
-        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
-        <translation><b>Игнорировать треки </b><br/> Игнорировать треки в списке выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="128"/>
-        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
-        <translation><b>Игнорировать маршрутные точки </b><br/> Игнорировать маршрутные точки в списке выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="132"/>
-        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
-        <translation><b>Игнорировать маршруты </b><br/> Игнорировать маршруты в списке выбранных элементов<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/CScrOptSelect.cpp" line="136"/>
-        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
-        <translation><b>Игнорировать области </b><br/> Игнорировать области в списке выбранных элементов<br/></translation>
-    </message>
-</context>
-<context>
-    <name>CSearchDatabase</name>
-    <message>
-        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
-        <source>Search database '%1':</source>
-        <translation>Искать в базе данных '%1':</translation>
-    </message>
-</context>
-<context>
-    <name>CSearchGoogle</name>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
-        <source>Unknown response</source>
-        <translation>Неизвестный ответ</translation>
-    </message>
-    <message>
-        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
-        <source>Error: </source>
-        <translation>Ошибка: </translation>
-    </message>
-</context>
-<context>
-    <name>CSetupDatabase</name>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
-        <source>Missing Requirement</source>
-        <translation>Отсутствует требование</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
-        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
-        <translation>MySQL не может сейчас использован, так как соответствующий драйвер (QMYSQL) не доступен. <br />Пожалуйста, убедитесь, что установлен соответствующий пакет.<br/> Если вы не знаете, что делать, вам следует просмотреть <a href="%1">Wiki</a>.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="102"/>
-        <source>There is already a database with name '%1'</source>
-        <translation>База данных с именем '%1' уже существует</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="115"/>
-        <source>New database...</source>
-        <translation>Новая база данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupDatabase.cpp" line="140"/>
-        <source>Open database...</source>
-        <translation>Открыть базу данных...</translation>
-    </message>
-</context>
-<context>
-    <name>CSetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Setup database...</source>
-        <translation>Настройка базы данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
-        <source>Changes will become active after an application's restart.</source>
-        <translation>Изменения вступит в силу после перезапуска приложения.</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfProject</name>
-    <message>
-        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-</context>
-<context>
-    <name>CSlfReader</name>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
-        <source>Failed to parse timestamp `%1`</source>
-        <translation>Не удалось проанализировать метку времени `%1`</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
-        <source>%1 does not exist</source>
-        <translation>%1 не существует</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
-        <source>Not a SLF file: %1</source>
-        <translation>Это не файл SLF: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
-        <source>Unsupported revision %1: %2</source>
-        <translation>Версия не поддерживается: %1: %2</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
-        <source>Break %1</source>
-        <translation>Прерывание %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
-        <source>Lap %1</source>
-        <translation>Круг %1</translation>
-    </message>
-</context>
-<context>
-    <name>CSmlProject</name>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
-        <source>Not an sml file: %1</source>
-        <translation>Это не файл SML: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
-        <source>Recovery time: %1 h<br/></source>
-        <translation>Время восстановления: %1 h<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
-        <source>Peak Training Effect: %1<br/></source>
-        <translation>Пиковый эффект тренинга: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
-        <source>Energy: %1 kCal<br/></source>
-        <translation>Энергия: %1 kCal<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
-        <source>Device: %1<br/></source>
-        <translation>Устройство: %1<br/></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
-        <source>Battery usage: %1 %/hour</source>
-        <translatorcomment>Изпользование батареи: %1 %/час</translatorcomment>
-        <translation></translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
-        <source>Use of local time...</source>
-        <translation>Использование местного времени...</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
-        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
-        <translation>Не найдено время UTC в файле %1. Используется локальное время компьютера. При необходимости вы можете настроить время, используя фильтр времени.</translation>
-    </message>
-    <message>
-        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
-        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
-        <translation>Этот файл SML не содержит данных о местоположении и не может отображаться в QMapShack: %1</translation>
-    </message>
-</context>
-<context>
-    <name>CTableTrk</name>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
-        <source>Double click to edit elevation value</source>
-        <translation>Двойной щелчок для изменения высоты</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
-        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
-        <source>%1%2</source>
-        <translation>%1%2</translation>
-    </message>
-</context>
-<context>
-    <name>CTcxProject</name>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
-        <source>Failed to load file %1...</source>
-        <translation>Не удалось загрузить файл %1...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
-        <source>Failed to open %1</source>
-        <translation>Не удалось открыть %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
-        <source>Failed to read: %1
-line %2, column %3:
- %4</source>
-        <translation>Не удалось читать %1
-строка %2, столбец %3:
-%4</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
-        <source>Not a TCX file: %1</source>
-        <translation>Это не файл TCX: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
-        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
-        <translation>Этот файл TCX содержит по крайней мере 1 тренировку, но нет ни активности, ни курса. Поскольку тренировки не содержат данных позиции, они не могут быть импортированы в QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
-        <source>This TCX file does not contain any activity or course: %1</source>
-        <translation>В файле TCX %1 нет мероприятий или курсов</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
-        <source>File exists ...</source>
-        <translation>Файл существует...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
-        <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 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>Файл существует и не создан в QMapShack. Если нажать 'да' все данные в этом файле будут потеряны. Даже если этот файл содержит данные GPX и был загружен в QMapShack, QMapShack не может загрузить и сохранить все элементы этого файла. Такие элементы будут потеряны. Рекомендуется использовать другой файл. <b>Вы действительно хотите перезаписать этот файл?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
-        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
-        <translation>Выбранный трек <b>%1</b> содержит точки трека с недопустимыми временными метками. Устройство может не принять сгенерированный файл курса TCX, если оставить его как есть. <b>Хотите вы применить фильтр с постоянной скоростью (10 м/с) и продолжить?</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
-        <source>Course</source>
-        <translation>Курс</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
-        <source>Activity</source>
-        <translation>Мероприятие</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
-        <source>Cancel</source>
-        <translation>Отменить</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
-        <source>Track with invalid timestamps...</source>
-        <translation>Трек с неверными метками времени...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
-        <source>Activity or course?</source>
-        <translation>Мероприятие или курс?</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
-        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
-        <translation>QMapShack не знает, как следует сохранить трек <b>%1</b>.<b> Сохранить его как курс или как мероприятие? </b>Помните, что только путевые точки, достаточно близкие к треку, будут сохранены при сохранении в качестве курса. Путевые точки не сохраняются при сохранении в качестве мероприятия.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
-        <source>Failed to create file '%1'</source>
-        <translation>Не удалось создать файл '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
-        <source>Failed to write file '%1'</source>
-        <translation>Не удалось записать файл '%1'</translation>
-    </message>
-    <message>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
-        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
-        <source>Saving GIS data failed...</source>
-        <translation>Не удалось сохранить данные GIS...</translation>
-    </message>
-</context>
-<context>
-    <name>CTemplateWidget</name>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="39"/>
-        <source>choose one...</source>
-        <translation>выбрать один...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
-        <source>Hiking Tour Summary (built-in)</source>
-        <translation>Сводка пеших экскурсий (встроенная)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="158"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="168"/>
-        <source>Template path...</source>
-        <translation>Путь к шаблонам...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="192"/>
-        <source>Failed to read template file %1.</source>
-        <translation>Не удалось читать шаблон %1.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTemplateWidget.cpp" line="246"/>
-        <source>Preview...</source>
-        <translation>Просмотр...</translation>
-    </message>
-</context>
-<context>
-    <name>CTextEditWidget</name>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
-        <source>&Color...</source>
-        <translation>&Цвет...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
-        <source>Reset format</source>
-        <translation>Сбросить форматирование</translation>
-    </message>
-</context>
-<context>
-    <name>CToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
-        <source>Available Actions</source>
-        <translation>Доступные действия</translation>
-    </message>
-    <message>
-        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
-        <source>Selected Actions</source>
-        <translation>Выбранные действия</translation>
-    </message>
-</context>
-<context>
-    <name>CTwoNavProject</name>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="560"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
-        <source>Failed to open %1.</source>
-        <translation>Не удалось открыть %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
-        <source>Save GIS data to...</source>
-        <translation>Сохранить данные ГИС в...</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="588"/>
-        <location filename="../gis/tnv/serialization.cpp" line="599"/>
-        <source>Only support lon/lat WGS 84 format.</source>
-        <translation>Поддерживается долгота/широта только в формате WGS 84.</translation>
-    </message>
-    <message>
-        <location filename="../gis/tnv/serialization.cpp" line="617"/>
-        <location filename="../gis/tnv/serialization.cpp" line="645"/>
-        <location filename="../gis/tnv/serialization.cpp" line="719"/>
-        <source>Failed to read data.</source>
-        <translation>Не удалось читать данные.</translation>
-    </message>
-</context>
-<context>
-    <name>CWptIconDialog</name>
-    <message>
-        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
-        <source>Path to user icons...</source>
-        <translation>Путь к пользовательским пиктограммам...</translation>
-    </message>
-</context>
-<context>
-    <name>Form</name>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
-        <source>Participants</source>
-        <translation>Участники</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
-        <source>Weather</source>
-        <translation>Погода</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
-        <source>rain</source>
-        <translation>дождь</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
-        <source>sunny</source>
-        <translation>солнце</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
-        <source>snow</source>
-        <translation>снег</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
-        <source>clouds</source>
-        <translation>облака</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
-        <source>windy</source>
-        <translation>ветер</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
-        <source>hot</source>
-        <translation>жарко</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
-        <source>warm</source>
-        <translation>тепло</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
-        <source>cold</source>
-        <translation>холодно</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
-        <source>freezing</source>
-        <translation>заморозка</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
-        <source>foggy</source>
-        <translation>туман</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
-        <source>humid</source>
-        <translation>влажно</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
-        <source>Character</source>
-        <translation>Характер</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
-        <source>easy hiking</source>
-        <translation>легкий поход</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
-        <source>climbing</source>
-        <translation>альпинизм</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
-        <source>alpine</source>
-        <translation>высокогорно</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
-        <source>large ascend</source>
-        <translation>большой подъем</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
-        <source>long distance</source>
-        <translation>длинная дистанция</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
-        <source>via ferrata</source>
-        <translation>феррата</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
-        <source>hail/soft hail</source>
-        <translation>град</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
-        <source>Rating</source>
-        <translation>Рейтинг</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
-        <source>Rating 5 stars</source>
-        <translation>Рейтинг 5 звезд</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
-        <source>Rating 4 stars</source>
-        <translation>Рейтинг 4 звезды</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
-        <source>Rating 3 stars</source>
-        <translation>Рейтинг 3 звезды</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
-        <source>Rating 2 stars</source>
-        <translation>Рейтинг 2 звезды</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
-        <source>Rating 1 star</source>
-        <translation>Рейтинг 1 звезда</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
-        <source>aborted</source>
-        <translation>прервано</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
-        <source>Equipment</source>
-        <translation>Экипировка</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
-        <source>ferrata gear</source>
-        <translation>принадлежности для ферраты</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
-        <source>night gear</source>
-        <translation>ночные принадлежности</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
-        <source>snow shoes</source>
-        <translation>снежная обувь</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
-        <source>climbing gear</source>
-        <translation>альпинистские принадлежности</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
-        <source>ski</source>
-        <translation>лыжи</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
-        <source>camping gear</source>
-        <translation>походные принадлежности</translation>
-    </message>
-    <message>
-        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
-        <source>Details</source>
-        <translation>Деталь</translation>
-    </message>
-</context>
-<context>
-    <name>IAbout</name>
-    <message>
-        <location filename="../IAbout.ui" line="14"/>
-        <source>About....</source>
-        <translation>О программе....</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="55"/>
-        <source><b>QMapShack</b>, Version</source>
-        <translation><b>QMapShack</b>, версия</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="62"/>
-        <location filename="../IAbout.ui" line="113"/>
-        <location filename="../IAbout.ui" line="127"/>
-        <location filename="../IAbout.ui" line="141"/>
-        <location filename="../IAbout.ui" line="155"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="106"/>
-        <source>Qt</source>
-        <translation>Qt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="120"/>
-        <source>GDAL</source>
-        <translation>GDAL</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="134"/>
-        <source>Proj4</source>
-        <translation>Proj4</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="148"/>
-        <source>Routino</source>
-        <translation>Routino</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="179"/>
-        <source>Czech:</source>
-        <translation>Чешский:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="189"/>
-        <source>Pavel Fric</source>
-        <translation>Pavel Fric</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="202"/>
-        <source>German:</source>
-        <translation>Немецкий:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="212"/>
-        <source>Oliver Eichler</source>
-        <translation>Oliver Eichler</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="225"/>
-        <source>Dutch:</source>
-        <translation>Голландский:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="235"/>
-        <source>Harrie Klomp</source>
-        <translation>Harrie Klomp</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="248"/>
-        <source>French:</source>
-        <translation>Французский:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="258"/>
-        <source>Rainer Unseld </source>
-        <translation>Rainer Unseld</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="265"/>
-        <source>Jose Luis Domingo Lopez</source>
-        <translation>Jose Luis Domingo Lopez</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="278"/>
-        <source>Spanish:</source>
-        <translation>Испанский:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="288"/>
-        <source><b>Translation:</b></source>
-        <translation><b>Перевод:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="295"/>
-        <source>Russian:</source>
-        <translation>Русский:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="302"/>
-        <source>Wolfgang Thämelt</source>
-        <translation>Wolfgang Thämelt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="326"/>
-        <source>Win64:</source>
-        <translation>Win64:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="342"/>
-        <source>OS X:</source>
-        <translation>OS X:</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="352"/>
-        <source>Helmut Schmidt</source>
-        <translation>Helmut Schmidt</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="359"/>
-        <source>Ivo Kronenberg</source>
-        <translation>Ivo Kronenberg</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="366"/>
-        <source><b>Binaries:</b></source>
-        <translation><b>Бинарники:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="375"/>
-        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
-        <translation>... и благодарность всем поставщикам пакетов для дистрибутивов Linux за отличную работу. Особая благодарность Dan Horák и Bas Couwenberg за участие в дискуссиях о распределении QMapShack в списке рассылки.</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="395"/>
-        <source><b>Contributors:</b></source>
-        <translation><b>Участники:</b></translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="402"/>
-        <source>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</source>
-        <translation>Christian Eichler (qms at christian-eichler.de)
-Ivo Kronenberg
-Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="421"/>
-        <source>This software is licensed under GPL3 or any later version</source>
-        <translation>Это программное обеспечение лицензировано под GPL3 или любой более поздней версией</translation>
-    </message>
-    <message>
-        <location filename="../IAbout.ui" line="428"/>
-        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
-        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
-    </message>
-</context>
-<context>
-    <name>ICanvasSetup</name>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
-        <source>Setup Map View...</source>
-        <translation>Настройка вида карт...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
-        <source>Projection & Datum</source>
-        <translation>Проекция и датум</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
-        <source>Scales</source>
-        <translation>Масштаб</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
-        <source>Logarithmic</source>
-        <translation>Логарифмический</translation>
-    </message>
-    <message>
-        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
-        <source>Square (optimized for TMS and WMTS tiles)</source>
-        <translation>Квадратичный (оптимальный для карт TMS и WMTS)</translation>
-    </message>
-</context>
-<context>
-    <name>IColorChooser</name>
-    <message>
-        <location filename="../widgets/IColorChooser.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Диалог</translation>
-    </message>
-</context>
-<context>
-    <name>ICombineTrk</name>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
-        <source>Combine Tracks...</source>
-        <translation>Объединить треки...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
-        <source>Available Tracks</source>
-        <translation>Доступные треки</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
-        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
-        <source>Combined Tracks</source>
-        <translation>Объединенные треки</translation>
-    </message>
-</context>
-<context>
-    <name>ICoordFormatSetup</name>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
-        <source>Coordinate Format...</source>
-        <translation>Формат координат...</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
-        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
-        <translation>С48° 53' 39.6" В13° 31' 6.78"</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
-        <source>N48.8943° E013.51855°</source>
-        <translation>С48.8943° В013.51855°</translation>
-    </message>
-    <message>
-        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
-        <source>N48° 53.660 E013° 31.113</source>
-        <translation>С48° 53.660 В013° 31.113</translation>
-    </message>
-</context>
-<context>
-    <name>ICreateRouteFromWpt</name>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
-        <source>Create Route from Waypoints</source>
-        <translation>Создать маршрут с маршрутных точек</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
-        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ICutTrk</name>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
-        <source>Cut Track</source>
-        <translation>Вырезать трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
-        <source>Delete first part of the track and keep second one</source>
-        <translation>Удалить первую часть трека и сохранить вторую</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
-        <source>Keep both parts of the track</source>
-        <translation>Сохранить обе части трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
-        <source>Keep first part of the track and delete second one</source>
-        <translation>Сохранить первую часть трека и удалить вторую</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
-        <source>Cut Mode:</source>
-        <translation>Режим вырезания:</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
-        <source>Check this to store the result into a new track. 
-
-If you keep both parts of the track you have to create new ones. 
-
-If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
-        <translation>Выбрать, чтобы сохранить результат в новый трек.
-
-Если вы сохраните обе части трека, вы должны создать новые.
-
-Если вы желаете сохранить только одну часть вы можете просто удалить точки или выбрать это, чтобы создать новый трек.
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
-        <source>Create a new track</source>
-        <translation>Создать новый трек</translation>
-    </message>
-</context>
-<context>
-    <name>IDB</name>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="60"/>
-        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
-        <translation>Внутренний формат базы данных '%1' изменился. Сейчас QMapShack будет мигрировать вашу базу данных. После миграции база данных не будет работать с более старыми версиями QMapShack. Рекомендуется создать резервную копию базы данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="64"/>
-        <source>Migrate database...</source>
-        <translation>Перенести базу данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="69"/>
-        <source>Migration aborted by user</source>
-        <translation>Перенесение прервано пользователем</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="75"/>
-        <source>Failed to migrate '%1'.</source>
-        <translation>Не удалось перенести %1.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="77"/>
-        <location filename="../gis/db/IDB.cpp" line="106"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="81"/>
-        <source>Migration failed</source>
-        <translation>Не удалось перенесение</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="88"/>
-        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
-        <translation>Версия базы данных '%1' является более продвинутой чем та, которую знает ваша установка. Это не будет работать.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="110"/>
-        <source>Initialization failed</source>
-        <translation>Инициализация не удалось</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="91"/>
-        <source>Wrong database version...</source>
-        <translation>Неверная версия базы данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="95"/>
-        <source>Database created by newer version of QMapShack</source>
-        <translation>База данных создан при помощи более новой версии QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDB.cpp" line="104"/>
-        <source>Failed to initialize '%1'.</source>
-        <translation>Не удалось инициализировать %1.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBMysql</name>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password...</source>
-        <translation>Пароль...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
-        <source>Password for database '%1':</source>
-        <translation>Пароль для базы данных '%1':</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Обновить базы данных к версии 5. Перенести все элементы ГИС.</translation>
-    </message>
-</context>
-<context>
-    <name>IDBSqlite</name>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
-        <source>Update to database version 3. Migrate all GIS items.</source>
-        <translation>Обновить базы данных к версии 3. Перенести все элементы ГИС.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
-        <source>Update to database version 5. Migrate all GIS items.</source>
-        <translation>Обновить базы данных к версии 5. Перенести все элементы ГИС.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
-        <source>Update to database version 6. Migrate all GIS items.</source>
-        <translation>Обновить базы данных к версии 6. Перенести все элементы ГИС.</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPathSetup</name>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="14"/>
-        <source>Setup DEM file paths</source>
-        <translation>Настройка путей ЦМР</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="31"/>
-        <location filename="../dem/IDemPathSetup.ui" line="51"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPathSetup.ui" line="112"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IDemPropSetup</name>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Изменить прозрачность карты</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как минимальный масштаб для отображения карты.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="53"/>
-        <location filename="../dem/IDemPropSetup.ui" line="90"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Контролировать диапазон масштаба отображения карты. С помощью двух кнопок слева и справа определить данный масштаб как минимальный или максимальный масштаб.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как максимальный масштаб для отображения карты.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="118"/>
-        <source>Hillshading</source>
-        <translation>Затенения холмов</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="144"/>
-        <source>Slope </source>
-        <translation>Наклон </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="226"/>
-        <location filename="../dem/IDemPropSetup.ui" line="326"/>
-        <location filename="../dem/IDemPropSetup.ui" line="410"/>
-        <location filename="../dem/IDemPropSetup.ui" line="494"/>
-        <location filename="../dem/IDemPropSetup.ui" line="578"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="229"/>
-        <location filename="../dem/IDemPropSetup.ui" line="329"/>
-        <location filename="../dem/IDemPropSetup.ui" line="413"/>
-        <location filename="../dem/IDemPropSetup.ui" line="497"/>
-        <location filename="../dem/IDemPropSetup.ui" line="581"/>
-        <source>> </source>
-        <translation>> </translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemPropSetup.ui" line="251"/>
-        <location filename="../dem/IDemPropSetup.ui" line="270"/>
-        <location filename="../dem/IDemPropSetup.ui" line="354"/>
-        <location filename="../dem/IDemPropSetup.ui" line="438"/>
-        <location filename="../dem/IDemPropSetup.ui" line="522"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IDemsList</name>
-    <message>
-        <location filename="../dem/IDemList.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="112"/>
-        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Чтобы добавить файлы с высотными данными использовать <b>Файл->Настройка пути к ЦМР</b>. Или нажать <a href='setup'><b>здесь</b></a></translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="125"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
-        <translation>Использовать контекстное меню (нажать правой кнопкой мышки на элемент), чтобы активировать файл. Использовать перетаскивание мышкой, чтобы переместить активированный файл в порядке обработки.</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="150"/>
-        <source>Activate</source>
-        <translation>Активировать</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="159"/>
-        <source>Move Up</source>
-        <translation>Переместить вверх</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="162"/>
-        <source>Hide DEM behind previous one</source>
-        <translation>Скрыть ЦМР за предыдущей</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="171"/>
-        <source>Move down</source>
-        <translation>Переместить вниз</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="174"/>
-        <source>Show DEM on top of next one</source>
-        <translation>Показать ЦМР над следующей</translation>
-    </message>
-    <message>
-        <location filename="../dem/IDemList.ui" line="183"/>
-        <source>Reload DEM</source>
-        <translation>Перезагрузить ЦМР</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsGeoCache</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
-        <source>Dialog</source>
-        <translation>Диалог</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
-        <source>Position:</source>
-        <translation>Позиция:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
-        <source>Difficulty</source>
-        <translation>Сложность</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
-        <source>Terrain</source>
-        <translation>Местность</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
-        <source>Update spoilers</source>
-        <translation>Обновить спойлеры</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
-        <source>about:blank</source>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
-        <source>Hint:</source>
-        <translation>Подсказка:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Диалог</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
-        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Область была импортирована в QMapShack и была изменена. Она больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="148"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="151"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="181"/>
-        <source>Color</source>
-        <translation>Цвет</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="202"/>
-        <source>Border width</source>
-        <translation>Ширина границы</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="216"/>
-        <source>Style</source>
-        <translation>Стиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="235"/>
-        <source>Opacity</source>
-        <translation>Прозрачность</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="248"/>
-        <source>Info</source>
-        <translation>Сведение</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="277"/>
-        <source>Points</source>
-        <translation>Точки</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="304"/>
-        <source>Position</source>
-        <translation>Позиция</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="313"/>
-        <source>Hist.</source>
-        <translation>История</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsPrj</name>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
-        <source>Keywords:</source>
-        <translation>Ключевые слова:</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
-        <source>Keep order of project</source>
-        <translation>Сохранить порядок проекта</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
-        <source>Sort along track (multiple)</source>
-        <translation>Отсортировать вдоль трека (кратно)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
-        <source>Sort along track (single)</source>
-        <translation>Отсортировать вдоль трека (одинарно)</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
-        <source>Print diary</source>
-        <translation>Печатать дневник</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
-        <source>Rebuild diary.</source>
-        <translation>Перестроить дневник.</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsRte</name>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
-        <source>Info</source>
-        <translation>Сведение</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
-        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Маршрут импортирован в QMapShack и был изменен. Он больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="170"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="173"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="205"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IDetailsRte.ui" line="229"/>
-        <source>Hist.</source>
-        <translation>История</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsTrk</name>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
-        <source>-
--</source>
-        <translation>-
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="287"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="290"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="454"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="483"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="548"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="574"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="603"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="692"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="721"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1050"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1079"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1111"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1147"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1176"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1208"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1244"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1273"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1305"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="316"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="355"/>
-        <source>Info</source>
-        <translation>Сведение</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="387"/>
-        <source>Style</source>
-        <translation>Стиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="429"/>
-        <source>Source</source>
-        <translation>Источник</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="634"/>
-        <source>Maximum</source>
-        <translation>Максимум</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="451"/>
-        <source>Use/edit user defined visibility of arrows for this track</source>
-        <translation>Использовать/изменить определённую пользователем видимость стрелок направления для этого трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="480"/>
-        <source>Use/edit system's visibility of arrows for all tracks</source>
-        <translation>Использовать/изменить системная видимость стрелок направления для всех треков</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="774"/>
-        <source>Minimum</source>
-        <translation>Минимум</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="842"/>
-        <source>Graphs</source>
-        <translation>Графики</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
-        <source>Profile</source>
-        <translation>Профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="436"/>
-        <source>Width</source>
-        <translation>Ширина</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="689"/>
-        <source>Use/edit user defined scale factor for this track</source>
-        <translation>Использовать/изменить пользовательский коэффициент масштабирования для этого трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="718"/>
-        <source>Use/edit system's default factor for all tracks</source>
-        <translation>Использовать/изменить фактор по умолчанию система для всех треков</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="641"/>
-        <source>with arrows</source>
-        <translation>со стрелками</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="648"/>
-        <source>x </source>
-        <translation>х </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="545"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1047"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1144"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1241"/>
-        <source>User defined limits for this track</source>
-        <translation>Определённые пользователем пределы для этого трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
-        <source>-
--
--</source>
-        <translation>-
--
--</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
-        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Трек был импортирован в QMapShack и был изменен. Он больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="571"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1076"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1173"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1270"/>
-        <source>Automatic limits</source>
-        <translation>Автоматическая установка пределов</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="600"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1108"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1205"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1302"/>
-        <source>User defined limits for all tracks</source>
-        <translation>Определённые пользователем пределы для всех треков</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="794"/>
-        <source>Color</source>
-        <translation>Цвет</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="855"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="875"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="961"/>
-        <source>max.</source>
-        <translation>макс.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="994"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1001"/>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1015"/>
-        <source>min.</source>
-        <translation>мин.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1334"/>
-        <source>Activity</source>
-        <translation>Мероприятие</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1357"/>
-        <source>Set Track Activity</source>
-        <translation>Добавить мероприятие</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1400"/>
-        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
-        <translation>Чтобы получить статистику трека выбрать мероприятие для полного трека из списка.  Или выбрать часть трека, чтобы назначить мероприятие.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1427"/>
-        <source>Points</source>
-        <translation>Точки</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1475"/>
-        <source>Time</source>
-        <translation>Время</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1480"/>
-        <source>Ele.</source>
-        <translation>Высота</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1485"/>
-        <source>Delta</source>
-        <translation>Разница</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1490"/>
-        <source>Dist.</source>
-        <translation>Расстояние</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1495"/>
-        <source>Speed</source>
-        <translation>Скорость</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1500"/>
-        <source>Slope</source>
-        <translation>Наклон</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1505"/>
-        <source>Ascent</source>
-        <translation>Подъем</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1510"/>
-        <source>Descent</source>
-        <translation>Спуск</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1515"/>
-        <source>Position</source>
-        <translation>Позиция</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1524"/>
-        <source>Filter</source>
-        <translation>Фильтр</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IDetailsTrk.ui" line="1561"/>
-        <source>Hist.</source>
-        <translation>История</translation>
-    </message>
-</context>
-<context>
-    <name>IDetailsWpt</name>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
-        <source>Dialog</source>
-        <translation>Диалог</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
-        <source>Info</source>
-        <translation>Сведение</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
-        <source>Position:</source>
-        <translation>Позиция:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="328"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
-        <source>Ele.</source>
-        <translation>Высота</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
-        <source>Proximity:</source>
-        <translation>Радиус близости:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
-        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
-        <translation>Маршрутная точка была импортирована в QMapShack и была изменена. Она больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="284"/>
-        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
-        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="287"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="342"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="394"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="321"/>
-        <source>Date/Time:</source>
-        <translation>Дата/время:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="339"/>
-        <source>Add images.</source>
-        <translation>Добавить изображения.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="359"/>
-        <source>Delete selected image.</source>
-        <translation>Удалить выбранное изображение.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IDetailsWpt.ui" line="413"/>
-        <source>Hist.</source>
-        <translation>История</translation>
-    </message>
-</context>
-<context>
-    <name>IDevice</name>
-    <message>
-        <location filename="../device/IDevice.cpp" line="314"/>
-        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
-        <translation>Существует другой проект с таким же именем. Если нажать кнопку 'ОК', он будет удален и заменен.</translation>
-    </message>
-</context>
-<context>
-    <name>IElevationDialog</name>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="14"/>
-        <source>Edit elevation...</source>
-        <translation>Изменить высоту...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="22"/>
-        <source>Elevation</source>
-        <translation>Высота</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="32"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="39"/>
-        <source>Get elevation from active digital elevation model.</source>
-        <translation>Получить высоту из активной цифровой модели рельефа.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IElevationDialog.ui" line="42"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IExportDatabase</name>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
-        <source>Export database to GPX...</source>
-        <translation>Экспортировать в GPX...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
-        <source>Export Path:</source>
-        <translation>Путь для экспорта:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
-        <source>GPX 1.1 without extensions</source>
-        <translation>GPX 1.1 без расширений</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
-        <source>Start</source>
-        <translation>Начать</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
-        <source>Abort</source>
-        <translation>Прервать</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
-        <source>Close</source>
-        <translation>Закрыть</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDelete</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
-        <source><b>Remove Track Points</b></source>
-        <translation><b>Удалить точки трека</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
-        <source>Remove all hidden track points permanently.</source>
-        <translation>Удалить все скрытые точки безвозвратно.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDeleteExtension</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
-        <source><b>Remove Extension from all Track Points</b></source>
-        <translation><b>Удалить расширение от всех маршрутных точек</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
-        <source>Remove </source>
-        <translation>Удалить </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
-        <source>from all Track Points</source>
-        <translation>от всех точек трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterDouglasPeuker</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
-        <source><b>Hide Points (Douglas Peuker)</b></source>
-        <translation><b>Скрыть точки (Douglas Peuker)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
-        <source>Hide track points if the distance to a line between neighboring points is less than</source>
-        <translation>Скрыть точки трека если расстояние до линии между соседними точками меньше чем</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
-        <source>m</source>
-        <translation> м</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
-        <source>Apply filter now.</source>
-        <translation>Применить фильтр.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInterpolateElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
-        <source><b>Interpolate Elevation Data</b></source>
-        <translation><b>Интерполировать высотные данные</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
-        <source>Replace elevation of track points with interpolated data.</source>
-        <translation>Заменить высоты точек трека интерполированными значениями.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
-        <source>Quality</source>
-        <translation>Качество</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
-        <source>Preview</source>
-        <translation>Просмотр</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterInvalid</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
-        <source>Hide Invalid Points</source>
-        <translation>Скрыть неверные точки</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
-        <source>Hide points with invalid data.</source>
-        <translation>Скрыть точки с неверными данными.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterMedian</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
-        <source><b>Smooth Profile (Median Method)</b></source>
-        <translation><b>Сгладить профиль (метод медиана)</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
-        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
-        <translation>Сгладить отклонение высот точек используя фильтр медиана размера </translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
-        <source>points</source>
-        <translation> точек</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterNewDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
-        <source><b>Change Time</b></source>
-        <translation><b>Изменить метки времени</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
-        <source>Change start of track to </source>
-        <translation>Изменить начало трека на</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
-        <source>dd.MM.yy HH:mm:ss</source>
-        <translation>дд.ММ.гг ЧЧ.мм.сс</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterObscureDate</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
-        <source><b>Obscure Timestamps</b></source>
-        <translation><b>Скрыть метки времени</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
-        <source>Increase timestamp by</source>
-        <translation>Увеличить метку времени на</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
-        <source> sec.</source>
-        <translation> сек.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
-        <source>with each track point. 0 sec. will remove timestamps.</source>
-        <translation>для каждой точки трека. Значение 0 сек.: удалить метки времени.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterOffsetElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
-        <source><b>Offset Elevation</b></source>
-        <translation><b>Сместить высоту</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
-        <source>Add offset of</source>
-        <translation>Добавить смещение</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
-        <source>to track points elevation.</source>
-        <translation>к высотам точек трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReplaceElevation</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
-        <source><b>Replace Elevation Data</b></source>
-        <translation><b>Заменить высотные данные</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
-        <source>Replace elevation of track points with the values from loaded DEM files.</source>
-        <translation>Заменить высотные данные данными файлов ЦМР.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterReset</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
-        <source><b>Reset Hidden Track Points</b></source>
-        <translation><b>Восстановить скрытые точки трека</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
-        <source>Make all trackpoints visible again.</source>
-        <translation>Восстановить все скрытые точки трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSpeed</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="35"/>
-        <source><b>Change Speed</b></source>
-        <translation><b>Изменить скорость</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="44"/>
-        <source>Set speed to </source>
-        <translation>Установить скорость в</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="51"/>
-        <source> km/h</source>
-        <translation> км/ч</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSplitSegment</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
-        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
-        <translation><html><head/><body><p><span style=" font-weight:600;">Разделить сегменты в треки</span></p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
-        <source>Creates a new track for every segment within this track.</source>
-        <translation>Создать новый трек для каждого сегмента трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterSubPt2Pt</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
-        <source><b>Convert track subpoints to points</b></source>
-        <translation><b>Преобразовать подточки трека в точки трека</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
-        <source>Convert subpoints obtained from routing to ordinary track points </source>
-        <translation>Преобразовать подточки полученные от маршрутизации в точки трека</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFilterTerrainSlope</name>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
-        <source>Form</source>
-        <translatorcomment>Вычислить склон местности</translatorcomment>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
-        <source><b>Calculate Terrain Slope</b></source>
-        <translation><b>Вычислить склон местности</b></translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
-        <source>Calculate slope of the terrain based on loaded DEM files.</source>
-        <translation>Вычислить склон местности с помощью данных ЦМР.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IFitDecoderState</name>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
-        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
-        <translation>Ошибка декодирования FIT: декодер в неверном состоянии %1 после последнего байта в файле.</translation>
-    </message>
-    <message>
-        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
-        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
-        <translation>Ошибка декодирования FIT: поле развития с номером определения поля %1 уже существует.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisDatabase</name>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="59"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="64"/>
-        <source>Age</source>
-        <translation>Срок</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisDatabase.ui" line="97"/>
-        <source>To add a database do a right click on the database list above.</source>
-        <translation>Для добавления базы данных сделайте щелчок правой кнопкой мышки на списке баз данных.</translation>
-    </message>
-</context>
-<context>
-    <name>IGisItem</name>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="45"/>
-        <source>[no name]</source>
-        <translation>[нет имени]</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="317"/>
-        <source>The item is not part of the project in the database.</source>
-        <translation>Элемент не является частью проекта в базе данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="318"/>
-        <source>
-It is either a new item or it has been deleted in the database by someone else.</source>
-        <translation>
-Это или новый элемент, или элемент был удален с базы данных кем-то другим.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="324"/>
-        <source>The item is not in the database.</source>
-        <translation>Элемент не в базе данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="330"/>
-        <source>The item might need to be saved</source>
-        <translation>Возможно нужно сохранить элемент</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="414"/>
-        <source>Initial version.</source>
-        <translation>Исходная версия.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="534"/>
-        <source>Never ask again.</source>
-        <translation>Больше не спрашивать.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="535"/>
-        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
-        <translation><h3>%1</h3> Вероятно, это элемент доступен только для чтения, потому что он не был создан внутри QMapShack. Обычно нет необходимости изменить импортированные данные. Но если для вас это приемлемо нажмите "Да".</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="536"/>
-        <source>Read Only Mode...</source>
-        <translation>Режим 'только чтения'...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="713"/>
-        <location filename="../gis/IGisItem.cpp" line="766"/>
-        <source><h4>Description:</h4></source>
-        <translation><h4>Описание:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="716"/>
-        <location filename="../gis/IGisItem.cpp" line="769"/>
-        <source><p>--- no description ---</p></source>
-        <translation><p>---нет описания---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="727"/>
-        <source><h4>Comment:</h4></source>
-        <translation><h4>Комментарий:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="730"/>
-        <source><p>--- no comment ---</p></source>
-        <translation><p>---нет комментария---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="741"/>
-        <location filename="../gis/IGisItem.cpp" line="780"/>
-        <source><h4>Links:</h4></source>
-        <translation><h4>Ссылки:</h4></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="744"/>
-        <location filename="../gis/IGisItem.cpp" line="783"/>
-        <source><p>--- no links ---</p></source>
-        <translation><p>---нет ссылок---</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Edit name...</source>
-        <translation>Изменить имя...</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisItem.cpp" line="864"/>
-        <source>Enter new %1 name.</source>
-        <translation>Задать новое имя (%1).</translation>
-    </message>
-</context>
-<context>
-    <name>IGisProject</name>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source>Save project?</source>
-        <translation>Сохранить проект?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
-        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
-        <translation><h3>%1</h3> Проект изменен. Сохранить его перед закрытием?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
-        <source>%1: Correlate tracks and waypoints.</source>
-        <translation>%1: коррелировать треки и маршрутные точки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
-        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
-        <translation><h3>%1</h3> Было слишком долго? Желаете ли вы пропускать корреляцию треков и маршрутных точек для этого проекта в будущем?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
-        <source>Canceled correlation...</source>
-        <translation>Корреляция отменена ...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
-        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
-        <source>Save "%1" to...</source>
-        <translation>Сохранить "%1" в...</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
-        <source><br/>
-Filename: %1</source>
-        <translation><br/>
-Имя файла: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
-        <source>Waypoints: %1</source>
-        <translation>Маршрутные точки: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
-        <source>Tracks: %1</source>
-        <translation>Треки: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
-        <source>Routes: %1</source>
-        <translation>Маршруты: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
-        <source>Areas: %1</source>
-        <translation>Области: %1</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="733"/>
-        <source>Are you sure you want to delete '%1' from project '%2'?</source>
-        <translation>Вы уверены что хотите удалить '%1' из проекта '%2'?</translation>
-    </message>
-    <message>
-        <location filename="../gis/prj/IGisProject.cpp" line="734"/>
-        <source>Delete...</source>
-        <translation>Удалить...</translation>
-    </message>
-</context>
-<context>
-    <name>IGisWorkspace</name>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="43"/>
-        <source>Opacity</source>
-        <translation>Прозрачность</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="50"/>
-        <source>Change the opacity of all GIS Items on the map.</source>
-        <translation>Изменить прозрачность всех элементов ГИС на карте.</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="66"/>
-        <source>Filter</source>
-        <translation>Фильтр</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="116"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="129"/>
-        <source>Clear Filter</source>
-        <translation>Очистить фильтр</translation>
-    </message>
-    <message>
-        <location filename="../gis/IGisWorkspace.ui" line="138"/>
-        <source>Setup Filter</source>
-        <translation>Настройка фильтра</translation>
-    </message>
-</context>
-<context>
-    <name>IGridSetup</name>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="14"/>
-        <source>Setup Grid...</source>
-        <translation>Настройка координатной сетки...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="22"/>
-        <source>Projection</source>
-        <translation>Проекция</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="37"/>
-        <source>restore default</source>
-        <translation>восстановить умолчание</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="40"/>
-        <location filename="../grid/IGridSetup.ui" line="66"/>
-        <location filename="../grid/IGridSetup.ui" line="92"/>
-        <location filename="../grid/IGridSetup.ui" line="146"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="63"/>
-        <source>Get projection from current map.</source>
-        <translation>Получить проекцию с текущей карты.</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="89"/>
-        <source>projection wizzard</source>
-        <translation>Мастер проекций</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="130"/>
-        <source>Grid color</source>
-        <translation>Цвет координатной сетки</translation>
-    </message>
-    <message>
-        <location filename="../grid/IGridSetup.ui" line="143"/>
-        <source>setup grid color</source>
-        <translation>настройка цвета координатной сетки</translation>
-    </message>
-</context>
-<context>
-    <name>IImportDatabase</name>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="22"/>
-        <location filename="../tool/IImportDatabase.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="45"/>
-        <source>Source Database:</source>
-        <translation>Исходная база данных:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="52"/>
-        <location filename="../tool/IImportDatabase.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="86"/>
-        <source>Target Database:</source>
-        <translation>Целевая база данных:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IImportDatabase.ui" line="102"/>
-        <source>Start</source>
-        <translation>Начать</translation>
-    </message>
-</context>
-<context>
-    <name>IInputDialog</name>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="14"/>
-        <source>Edit...</source>
-        <translation>Изменить...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IInputDialog.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>ILineOp</name>
-    <message>
-        <location filename="../mouse/line/ILineOp.cpp" line="279"/>
-        <source>Routing</source>
-        <translation>Маршрутизация</translation>
-    </message>
-</context>
-<context>
-    <name>ILinksDialog</name>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="14"/>
-        <source>Links...</source>
-        <translation>Ссылки...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="23"/>
-        <source>Type</source>
-        <translation>Тип</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="28"/>
-        <source>Text</source>
-        <translation>Текст</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="33"/>
-        <source>Uri</source>
-        <translation>URI</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ILinksDialog.ui" line="43"/>
-        <location filename="../helpers/ILinksDialog.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IMainWindow</name>
-    <message>
-        <location filename="../IMainWindow.ui" line="17"/>
-        <source>QMapShack</source>
-        <translation>QMapShack</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="63"/>
-        <source>File</source>
-        <translation>Файл</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="80"/>
-        <source>View</source>
-        <translation>Вид</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="104"/>
-        <source>Window</source>
-        <translation>Окно</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="114"/>
-        <source>?</source>
-        <translation>?</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="133"/>
-        <source>Tool</source>
-        <translation>Инструмент</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="152"/>
-        <source>Maps</source>
-        <translation>Карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="189"/>
-        <source>Dig. Elev. Model (DEM)</source>
-        <translation>Цифровая модель рельефа (ЦМР)</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="122"/>
-        <location filename="../IMainWindow.ui" line="222"/>
-        <source>Workspace</source>
-        <translation>Рабочая область</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="231"/>
-        <source>Toolbar</source>
-        <translation>Панель инструментов</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="257"/>
-        <source>Routing</source>
-        <translation>Маршрутизация</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="276"/>
-        <location filename="../IMainWindow.ui" line="279"/>
-        <source>Add Map View</source>
-        <translation>Добавить окно карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="282"/>
-        <source>Ctrl+T</source>
-        <translation>Ctrl+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="297"/>
-        <source>Show Scale</source>
-        <translation>Показать масштаб</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="309"/>
-        <source>Setup Map Font</source>
-        <translation>Настройка шрифта карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="324"/>
-        <source>Show Grid</source>
-        <translation>Показать координатную сетку</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="327"/>
-        <source>Ctrl+G</source>
-        <translation>Ctrl+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="339"/>
-        <source>Setup Grid</source>
-        <translation>Настройка координатной сетки</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="342"/>
-        <source>Ctrl+Alt+G</source>
-        <translation>Ctrl+Alt+G</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="357"/>
-        <source>Flip Mouse Wheel</source>
-        <translation>Флип колесо мышки</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="369"/>
-        <location filename="../IMainWindow.ui" line="372"/>
-        <source>Setup Map Paths</source>
-        <translation>Настройка пути к картам</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="387"/>
-        <source>POI Text</source>
-        <translation>Текст для точек интереса</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="402"/>
-        <source>Night / Day</source>
-        <translation>Ночь/день</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="417"/>
-        <source>Map Tool Tip</source>
-        <translation>Подсказка карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="420"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="432"/>
-        <source>Setup DEM Paths</source>
-        <translation>Настройка пути к ЦМР</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="444"/>
-        <source>About</source>
-        <translation>О программе</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="456"/>
-        <source>Help</source>
-        <translation>Справки</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="459"/>
-        <source>F1</source>
-        <translation>F1</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="471"/>
-        <location filename="../IMainWindow.ui" line="474"/>
-        <source>Setup Map View</source>
-        <translation>Настройка вида карт</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="486"/>
-        <source>Load GIS Data</source>
-        <translation>Загрузить данные ГИС</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="489"/>
-        <source>Load projects from file</source>
-        <translation>Загрузить проекты с файла</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="492"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="504"/>
-        <source>Save All GIS Data</source>
-        <translation>Сохранить все данные ГИС</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="507"/>
-        <source>Save all projects in the workspace</source>
-        <translation>Сохранить все проекты в рабочей области</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="510"/>
-        <source>Ctrl+S</source>
-        <translation>Ctrl+S</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="522"/>
-        <source>Setup Time Zone</source>
-        <translation>Настройка часового пояса</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="534"/>
-        <source>Add empty project</source>
-        <translation>Добавить пустой проект</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="549"/>
-        <source>Search Google</source>
-        <translation>Поиск в Google</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="561"/>
-        <source>Close all projects</source>
-        <translation>Закрыть все проекты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="564"/>
-        <source>F8</source>
-        <translation>F8</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="576"/>
-        <source>Setup Units</source>
-        <translation>Настройка единиц</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="588"/>
-        <source>Setup Workspace</source>
-        <translation>Настройка рабочей области</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="591"/>
-        <source>Setup save on exit.</source>
-        <translation>Настройка рабочей области.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="603"/>
-        <source>Import Database from QLandkarte</source>
-        <translation>Импортировать базу данных QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="606"/>
-        <source>Import QLandkarte GT database</source>
-        <translation>Импортировать базу данных QLandkarte</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="618"/>
-        <source>VRT Builder</source>
-        <translation>Создать файл VRT</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="621"/>
-        <source>GUI front end to gdalbuildvrt</source>
-        <translation>Графический интерфейс к gdalbuildvrt</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="633"/>
-        <source>Store Map View</source>
-        <translation>Сохранить вид карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="636"/>
-        <source>Write current active map and DEM list including the properties to a file</source>
-        <translation>Сохранить вид карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="648"/>
-        <source>Load Map View</source>
-        <translation>Загрузить вид карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="651"/>
-        <source>Restore view with active map and DEM list including the properties from a file</source>
-        <translatorcomment>Tooltip??</translatorcomment>
-        <translation>Загрузить вид карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="666"/>
-        <source>Ext. Profile</source>
-        <translation>Расширенный профиль</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="669"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="681"/>
-        <source>Close</source>
-        <translation>Закрыть</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="684"/>
-        <source>Ctrl+Q</source>
-        <translation>Ctrl+Q</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="696"/>
-        <source>Clone Map View</source>
-        <translation>Клонировать вид карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="699"/>
-        <source>Ctrl+Shift+T</source>
-        <translation>Ctrl+Shift+T</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="711"/>
-        <source>Create Routino Database</source>
-        <translation>Создать базу данных Routino</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="723"/>
-        <source>Save(Print) Map Screenshot</source>
-        <translation>Сохранить (Печатать) снимок экрана карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="726"/>
-        <source>Print a selected area of the map</source>
-        <translation>Печатать выбранную область карты</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="729"/>
-        <source>Ctrl+P</source>
-        <translation>Ctrl+P</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="741"/>
-        <source>Setup Coord. Format</source>
-        <translation>Настройка формата координат</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="744"/>
-        <source>Change the format coordinates are displayed</source>
-        <translation>Изменить формат отображения координат</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="756"/>
-        <source>Setup Map Background</source>
-        <translation>Настройка фона карт</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="768"/>
-        <source>Setup Waypoint Icons</source>
-        <translation>Настройка пиктограмм для маршрутных точек</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="771"/>
-        <source>Setup path to custom icons</source>
-        <translation>Настройка пути к пользовательским пиктограммам</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="780"/>
-        <source>Close Tab</source>
-        <translation>Закрыть вкладку</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="783"/>
-        <source>Ctrl+W</source>
-        <translation>Ctrl+W</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="792"/>
-        <source>Quickstart Help</source>
-        <translation>Помощь для быстрого старта</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="801"/>
-        <source>Setup Toolbar</source>
-        <translation>Настройка панели инструментов</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="813"/>
-        <source>Toggle Docks</source>
-        <translation>Переключить закрепленные окна</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="816"/>
-        <source>Toggle visibility of dockable windows</source>
-        <translation>Переключить видимость закрепленных окон</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="819"/>
-        <source>Ctrl+D</source>
-        <translation>Ctrl+D</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="828"/>
-        <source>Full Screen</source>
-        <translation>Во весь экран</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="831"/>
-        <source>F11</source>
-        <translation>F11</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="843"/>
-        <source>Min./Max. Track Values</source>
-        <translation>Мин./макс. значения трека</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="846"/>
-        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
-        <translation>Показать минимальные и максимальные значения свойств трека в просмотре карт.</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="849"/>
-        <source>Ctrl+N</source>
-        <translation>Ctrl+N</translation>
-    </message>
-    <message>
-        <location filename="../IMainWindow.ui" line="245"/>
-        <source>Database</source>
-        <translation>База данных</translation>
-    </message>
-</context>
-<context>
-    <name>IMapList</name>
-    <message>
-        <location filename="../map/IMapList.ui" line="14"/>
-        <source>Form</source>
-        <translation>форма</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="103"/>
-        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
-        <translation>Чтобы добавить карты использовать <b>Файл->Настройка пути к картам</b>. Или нажать <a href='setup'><b>здесь</b></a></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="116"/>
-        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
-        <translation>Использовать контекстное меню (нажать правой кнопкой мышки на элемент), чтобы активировать карту. Использовать перетаскивание мышкой, для перемещения активированной карты в порядке рисования.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="129"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Помогите! Я хочу карты!
-Мне не хочется читать документацию!</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="149"/>
-        <source>Activate</source>
-        <translation>Активировать</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="158"/>
-        <source>Move Up</source>
-        <translation>Переместить вверх</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="161"/>
-        <source>Hide map behind previous map</source>
-        <translation>Скрыть карту за предыдущей картой</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="170"/>
-        <source>Move down</source>
-        <translation>Переместить вниз</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="173"/>
-        <source>Show map on top of next map</source>
-        <translation>Показать карту над следующей картой</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapList.ui" line="182"/>
-        <source>Reload Maps</source>
-        <translation>Перезагрузить карты</translation>
-    </message>
-</context>
-<context>
-    <name>IMapOnline</name>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="41"/>
-        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
-        <translation>Эта карта требует поддержки OpenSSL. Однако для соблюдения законов некоторых стран OpenSSL не поставляется с QMapShack. Вы можете посетить <a href='https://www.openssl.org/community/binaries.html'> домашнюю страницу OpenSSL</a> для бинарных файлов. Вы должны скопировать libeay32.dll и ssleay32.dll в папку программы QMapShack.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="47"/>
-        <source>Error...</source>
-        <translation>Ошибка...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapOnline.cpp" line="98"/>
-        <source><b>%1</b>: %2 tiles pending<br/></source>
-        <translation><b>%1</b>: %2 плиток ожидается<br/></translation>
-    </message>
-</context>
-<context>
-    <name>IMapPathSetup</name>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="14"/>
-        <source>Setup map paths</source>
-        <translation>Настройка путей к картам</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="20"/>
-        <source>Root path of tile cache for online maps:</source>
-        <translation>Корневой путь к кэшу плиток онлайновых карт:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="29"/>
-        <location filename="../map/IMapPathSetup.ui" line="154"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="36"/>
-        <location filename="../map/IMapPathSetup.ui" line="73"/>
-        <location filename="../map/IMapPathSetup.ui" line="93"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPathSetup.ui" line="185"/>
-        <source>Help! I want maps!
-I don't want to read the documentation!</source>
-        <translation>Помогите! Я хочу карты!
-Мне не хочется читать документацию!</translation>
-    </message>
-</context>
-<context>
-    <name>IMapPropSetup</name>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="35"/>
-        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
-        <translation><html><head/><body><p>Изменить прозрачность карты</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="50"/>
-        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как минимальный масштаб для отображения карты.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="53"/>
-        <location filename="../map/IMapPropSetup.ui" line="90"/>
-        <location filename="../map/IMapPropSetup.ui" line="370"/>
-        <location filename="../map/IMapPropSetup.ui" line="384"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="74"/>
-        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
-        <translation><html><head/><body><p>Контролировать диапазон масштаба отображения карты. С помощью двух кнопок слева и справа определить данный масштаб как минимальный или максимальный масштаб.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="87"/>
-        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
-        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как максимальный масштаб для отображения карты.</p></body></html></translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="139"/>
-        <source>Areas</source>
-        <translation>Области</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="146"/>
-        <source>Lines</source>
-        <translation>Линии</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="153"/>
-        <source>Points</source>
-        <translation>Точки</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="170"/>
-        <source>Details</source>
-        <translation>Деталь</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="227"/>
-        <source>Cache Size (MB)</source>
-        <translation>Размер кэша (МБ)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="247"/>
-        <source>Expiration (Days)</source>
-        <translation>Срок хранения (дни)</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="264"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="271"/>
-        <source>Cache Path</source>
-        <translation>Путь к кэшу</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="353"/>
-        <source>Type File:</source>
-        <translation>Файл типов:</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="367"/>
-        <source>Forget external type file and use internal types.</source>
-        <translation>Забыть внешний файл типов и использовать внутренние типы.</translation>
-    </message>
-    <message>
-        <location filename="../map/IMapPropSetup.ui" line="381"/>
-        <source>Load an external type file.</source>
-        <translation>Загрузить внешний файл типов.</translation>
-    </message>
-</context>
-<context>
-    <name>IMapVrtBuilder</name>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="27"/>
-        <source>Advanced Options</source>
-        <translation>Дополнительные параметры</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
-        <source>Source No Data (-srcnodata)</source>
-        <translation>Нет данных в источнике (-srcnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="46"/>
-        <source>Target No Data (-vrtnodata)</source>
-        <translation>Нет данных в цели (-vrtnodata)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="56"/>
-        <source>Target Projection (-a_srs)</source>
-        <translation>Целевая проекция (-a_srs)</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="63"/>
-        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
-        <translation>Эти параметры относятся к частным случаям и обычно не заполняются. Сравните <a href='http://www.gdal.org/gdalbuildvrt.html'>GDAL справка </a> для дополнительной информации.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="202"/>
-        <source><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></source>
-        <translation><ol>
-<li>Выберите один или несколько исходных файлов.</li>
-<li>Выберите имя файла для целевого файла VRT.</li>
-<li>Нажмите кнопку "Начать".</li>
-</ol>
-
-Намек:
-<ul>
-<li>Если у вас несколько файлов, поместите их в подпапку вашей папки к карте. Создайте файл VRT в вашей папки к картам.</li>
-<li>Используйте дополнительные параметры, чтобы добавить значение для "нет данных", если исходные файлы не имеют этого и не образуют прямоугольную карту. Области без файла карты станут прозрачными.</li>
-<li>Параметр "-a_srs" предназначен для назначения проекции/датума, когда в исходном файле этого нет. Это НЕ перепроектирует данные.</li>
-</ul>
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="98"/>
-        <location filename="../tool/IMapVrtBuilder.ui" line="139"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="156"/>
-        <source>Select source files:</source>
-        <translation>Выбрать исходные файлы:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="121"/>
-        <source>Target Filename:</source>
-        <translation>Имя целевого файла:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="128"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IMapVrtBuilder.ui" line="20"/>
-        <source>Start</source>
-        <translation>Начать</translation>
-    </message>
-</context>
-<context>
-    <name>IMouseEditLine</name>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="249"/>
-        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
-        <translation><b>Новая линия</b><br/>Переместить мышку и использовать левую кнопку мышки, чтобы создать точки. Когда это сделано остановить с помощью правой кнопки мышки.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="300"/>
-        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
-        <translation><b>Удалить точку</b><br/>Переместить мышку близко к точке и нажать левую кнопку, чтобы удалить её.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="308"/>
-        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Выбрать интервал точек</b><br/>Нажать левой кнопкой на первой точке, чтобы начать выбор. Нажать левой кнопкой на второй точке, чтобы завершить выбор и выбрать параметры. Использовать правую кнопку мышки для отмены.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="316"/>
-        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Переместить точку</b><br/>Переместить мышку близко к точке и нажать левую кнопку. Точка будет прилипать к курсору, и вы можете переместить её. Использовать правую кнопку мышки для отмены.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
-        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
-        <translation><b>Добавить точку</b><br/>Переместить мышку близко к сегменту линии и нажать левую кнопку, чтобы добавить точку. Точка будет прилипать к курсору, и вы можете переместить его. Отбросьте точку с помощью левой кнопки мышки. Использовать правую кнопку мышки для отмены.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="332"/>
-        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
-        <translation><b>Без маршрутизации</b><br/>Все точки будут соединены прямыми линиями.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="338"/>
-        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
-        <translation><b>Автоматическая маршрутизация</b><br/>Настройка маршрутизатора используется для вычисления маршрута между точками.<b>Замечание</b>Выбранный маршрутизатор должен быть способным вычислять маршруты налету. Оффлайновые маршрутизаторы обычно это могут, Интернет маршрутизаторы этого не могут.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="343"/>
-        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
-        <translation><b>Векторная маршрутизация</b><br/>Если возможно соединить точки линией с загруженной векторной карты.<br/></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="515"/>
-        <source><b>%1 Metrics</b></source>
-        <translation><b>%1. Метрика</b></translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="518"/>
-        <source>Distance:</source>
-        <translation>Расстояние:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="520"/>
-        <source>Ascent:</source>
-        <translation>Подъем:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.cpp" line="522"/>
-        <source>Descent:</source>
-        <translation>Спуск:</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IMouseEditLine.h" line="137"/>
-        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
-        <translation><br/><b>Переместить карту</b><br/>Если удержите нажатой левую кнопку мышки и переместите мышку, вы будете перемещать карту.<br/><br/></translation>
-    </message>
-</context>
-<context>
-    <name>IPhotoAlbum</name>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
-        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>IPlot</name>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="94"/>
-        <source>Reset Zoom</source>
-        <translation>Сбросить увеличение</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="95"/>
-        <source>Stop Range</source>
-        <translation>Отменить интервал</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="96"/>
-        <source>Save...</source>
-        <translation>Сохранить...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="98"/>
-        <source>Add Waypoint</source>
-        <translation>Добавить маршрутную точку</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="99"/>
-        <source>Cut...</source>
-        <translation>Вырезать...</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="542"/>
-        <source>Hold CTRL key for vertical zoom, only.
-Hold ALT key for horizontal zoom, only.</source>
-        <translation>Удерживать клавишу CTRL для вертикального увеличения.
-Удерживать клавишу ALT для горизонтального увеличения.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="697"/>
-        <source>No or bad data.</source>
-        <translation>Отсутствующие или неверные данные.</translation>
-    </message>
-    <message>
-        <location filename="../plot/IPlot.cpp" line="1298"/>
-        <source>Select output file</source>
-        <translation>Выбрать выходной файл</translation>
-    </message>
-</context>
-<context>
-    <name>IPositionDialog</name>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="14"/>
-        <source>Position ...</source>
-        <translation>Позиция ...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="20"/>
-        <source>Enter new position</source>
-        <translation>Ввести новую позицию</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IPositionDialog.ui" line="30"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Неверный формат позиции. Должен быть:
-"[С|Ю] ddd mm.sss [З|В] ddd mm.sss"
-или
-"[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>IPrintDialog</name>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="20"/>
-        <source>Print map...</source>
-        <translation>Печатать карту...</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="37"/>
-        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
-        <translation>При сохранении онлайн-карты убедитесь, что карта была загружена в кэш в размере печати.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="60"/>
-        <source>Save</source>
-        <translation>Сохранить</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="79"/>
-        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
-        <translation>При печати онлайн-карты убедитесь, что карта была загружена в кэш в размере печати.</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="89"/>
-        <location filename="../print/IPrintDialog.ui" line="102"/>
-        <location filename="../print/IPrintDialog.ui" line="151"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-    <message>
-        <location filename="../print/IPrintDialog.ui" line="118"/>
-        <source>Print</source>
-        <translation>Печатать</translation>
-    </message>
-</context>
-<context>
-    <name>IProgressDialog</name>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="14"/>
-        <source>Please wait...</source>
-        <translation>Пожалуйста, подождите...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IProgressDialog.ui" line="20"/>
-        <location filename="../helpers/IProgressDialog.ui" line="27"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWizard</name>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="14"/>
-        <source>Proj4 Wizzard</source>
-        <translation>Проекции Proj4</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="29"/>
-        <source>Mercator</source>
-        <translation>Меркатор</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="38"/>
-        <source>UTM</source>
-        <translation>UTM</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="45"/>
-        <source>zone</source>
-        <translation>Зона</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="82"/>
-        <source>user defined</source>
-        <translation>Задание пользователя</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="94"/>
-        <source>Datum</source>
-        <translation>Датум</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="104"/>
-        <source>World Mercator (OSM)</source>
-        <translation>World Mercator(OSM)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="124"/>
-        <source>Result:</source>
-        <translation>Результат:</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="138"/>
-        <source>UPS North (North Pole)</source>
-        <translation>UPS Север (Северный полюс)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="145"/>
-        <source>UPS South (South Pole)</source>
-        <translation>UPS Юг (Южный полюс)</translation>
-    </message>
-    <message>
-        <location filename="../grid/IProjWizard.ui" line="152"/>
-        <source>Projection</source>
-        <translation>Проекция</translation>
-    </message>
-</context>
-<context>
-    <name>IProjWpt</name>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
-        <source>Waypoint Projection</source>
-        <translation>Переместить маршрутную точку</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
-        <source>Clone waypoint and move by:</source>
-        <translation>Клонировать маршрутную точку и переместить на:</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
-        <source>m</source>
-        <translation>м</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
-        <source>°</source>
-        <translation>°</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouter</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="28"/>
-        <source>Profile</source>
-        <translation>Профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="35"/>
-        <source>Alternative</source>
-        <translation>Альтернатива</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="64"/>
-        <source>display selected routing profile</source>
-        <translation>Отобразить выбранный профиль маршрутизации</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="67"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="128"/>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="142"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="87"/>
-        <source>on-the-fly routing</source>
-        <translation>Маршрутизация на лету</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="111"/>
-        <source>BRouter: </source>
-        <translation>BRouter:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="118"/>
-        <source>not running</source>
-        <translation>Не запущено</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="125"/>
-        <source>start/stop BRouter</source>
-        <translation>Старт / стоп BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="139"/>
-        <source>show BRouter console</source>
-        <translation>Показать консоль BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="172"/>
-        <source>Setup</source>
-        <translation>Настройка</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="181"/>
-        <source>Caution! BRouter is listening on all ports for connections.</source>
-        <translation>Осторожно! BRouter прослушивает все порты для соединений.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="217"/>
-        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
-        <translation><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, лицензия GPLv3</a></p></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="227"/>
-        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
-        <translation><p>Любезно предоставлены <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterBRouter.ui" line="237"/>
-        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
-        <translation><p>Данные маршрутизации <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterInfo</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
-        <source>BRouter Profile</source>
-        <translation>Профиль BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterBRouterSetupWizard</name>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
-        <source>BRouter Setup</source>
-        <translation>Настройка BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
-        <source>choose which BRouter to use</source>
-        <translation>Выберите, какой BRouter использовать</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
-        <source>BRouter-Web (online)</source>
-        <translation>BRouter-Web (онлайн)</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
-        <source>local Installation</source>
-        <translation>Локальная установка</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
-        <source>Expert Mode</source>
-        <translation>Экспертный режим</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
-        <source>local BRouter Installation directory:</source>
-        <translation>Папка для локальной установки:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
-        <source>select installation directory</source>
-        <translation>Выбрать папку установки</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
-        <source>labelLocalDirResult</source>
-        <translation>labelLocalDirResult</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
-        <source>create or update installation</source>
-        <translation>Создать или обновить установку</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
-        <source>Java Executable</source>
-        <translation>Исполняемый файл Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
-        <source>labelLocalJavaResult</source>
-        <translation>labelLocalJavaResult</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
-        <source>search for installed java</source>
-        <translation>Искать установленный Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
-        <source>Download and install BRouter Version</source>
-        <translation>Загрузить и установить версия BRouter</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
-        <source>about:blank</source>
-        <translatorcomment>about:blank</translatorcomment>
-        <translation>about:blank</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
-        <source>File to install</source>
-        <translation>Файл для установки</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
-        <source>Download and Install</source>
-        <translation>Загрузить и установить</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
-        <source>available Profiles</source>
-        <translation>Доступные профили</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
-        <source>install profile</source>
-        <translation>Установить профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
-        <source>remove profile</source>
-        <translation>Удалить профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
-        <source>installed Profiles</source>
-        <translation>Установленные профили</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
-        <source>content of profile</source>
-        <translation>Содержание профиля</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
-        <source>BRouter-Web URL:</source>
-        <translation>BRouter-Web URL:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
-        <source>Service-URL</source>
-        <translation>URL для сервисов</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
-        <source>Profile-URL</source>
-        <translation>URL для профилей</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
-        <source>Hostname</source>
-        <translation>Имя узла </translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
-        <source>Port</source>
-        <translation>Порт</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
-        <source>Profile directory</source>
-        <translation>Папка для профилей</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
-        <source>Segments directory</source>
-        <translation>Папка для сегментов</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
-        <source>Custom Profiles dir</source>
-        <translation>Папка для настраиваемого профиля</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
-        <source>Max Runtime</source>
-        <translation>Максимальная продолжительность выполнения</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
-        <source>Number Threads</source>
-        <translation>Количество потоков</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
-        <source>Java Options</source>
-        <translation>Параметры Java</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
-        <source>Profiles Url</source>
-        <translation>URL для профилей</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterMapQuest</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="22"/>
-        <source>Highways</source>
-        <translation>Автомагистрали</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="29"/>
-        <source>Seasonal</source>
-        <translation>Сезонные дороги</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="36"/>
-        <source>Language</source>
-        <translation>Язык</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="43"/>
-        <source>Country Border</source>
-        <translation>Государственная граница</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="53"/>
-        <source>Profile</source>
-        <translation>Профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="60"/>
-        <source>Avoid:</source>
-        <translation>Избегать:</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="67"/>
-        <source>Ferry</source>
-        <translation>Парома</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="74"/>
-        <source>Toll Road</source>
-        <translation>Платные дороги</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="84"/>
-        <source>Unpaved</source>
-        <translation>Дороги без покрытия</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="106"/>
-        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
-        <translation><p>Маршрутные направления с разрешением <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutino</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="31"/>
-        <source>Profile</source>
-        <translation>Профиль</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="38"/>
-        <source>Mode</source>
-        <translation>Режим</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="45"/>
-        <source>Database</source>
-        <translation>База данных</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="52"/>
-        <source>Add paths with Routino database.</source>
-        <translation>Добавить путь к базе данных Routino.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="55"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="66"/>
-        <source>Language</source>
-        <translation>Язык</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/IRouterRoutino.ui" line="118"/>
-        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
-        <translation>Для использования маршрутизации без доступа к сети вам необходимо определить пути к локальным данным маршрутизации. Использовать кнопку настройки чтобы зарегистрировать пути. Вы можете создать свои собственные данные для маршрутизации с помощью <b>Инструмент->Создать базу данных Routino</b>.</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterRoutinoPathSetup</name>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
-        <source>Setup Routino database...</source>
-        <translation>Настройка базы данных Routino...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-</context>
-<context>
-    <name>IRouterSetup</name>
-    <message>
-        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-</context>
-<context>
-    <name>IRoutinoDatabaseBuilder</name>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
-        <source>Select source files:</source>
-        <translation>Выбрать исходные файлы:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
-        <source>Start</source>
-        <translation>Начать</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
-        <source>Target Path:</source>
-        <translation>Целевой путь:</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
-        <source>File Prefix</source>
-        <translation>Префикс файла</translation>
-    </message>
-    <message>
-        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
-        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
-
-<ol>
-<li>Select one or multiple source *.pbf files.</li>
-<li>Select a path for your Routino database.</li>
-<li>Select a prefix. The database will be listed by this prefix.</li>
-<li>Press "Start" button.</li>
-</ol></source>
-        <translation><p>Чтобы создать базу данных маршрутизации Routino, вам необходимо загрузить файлы *.pbf из <a href='http://download.geofabrik.de/'>GeoFabrik</a>. Процесс создания базы данных Routino довольно медленный, и результирующие файлы довольно большие. Поэтому рекомендуется не загружать целые континенты. Ограничьте загрузку теми странами, которые вам действительно нужны. Однако, поскольку Routino не может маршрутизировать через несколько баз данны [...]
-
-<ol>
-<li>Выберите один или несколько исходных файлов *.pbf.</li>
-<li>Выберите путь для вашей базы данных Routino.</li>
-<li>Выберите префикс. База данных будет указана с этим префиксом.</li>
-<li>Нажмите кнопку "Начать".</li>
-</ol></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptEditLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
-        <source>Save to original</source>
-        <translation>Сохранить в оригинал</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
-        <source>Save as new</source>
-        <translation>Сохранить как новый</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
-        <source>Abort</source>
-        <translation>Прервать</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
-        <source>Move points. (Ctrl+M)</source>
-        <translation>Переместить точки. (Ctrl+M)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
-        <source>Ctrl+M</source>
-        <translation>Ctrl+M</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
-        <source>Add new points. (Ctrl++)</source>
-        <translation>Добавить новые точки. (Ctrl++)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
-        <source>Ctrl++</source>
-        <translation>Ctrl++</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
-        <source>Select a range of points. (Ctrl+R)</source>
-        <translation>Выбрать интервал точек. (Ctrl+R)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
-        <source>Delete a point. (Ctrl+-)</source>
-        <translation>Удалить точку. (Ctrl+-)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
-        <source>Ctrl+-</source>
-        <translation>Ctrl+-</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
-        <source>No auto-routing or line snapping (Ctrl+O)</source>
-        <translation>Без автоматической маршрутизации и прикрепления к линии (Ctrl+O)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
-        <source>0</source>
-        <translation>0</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
-        <source>Ctrl+O</source>
-        <translation>Ctrl+O</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
-        <source>Use auto-routing to between points. (Ctrl+A)</source>
-        <translation>Использовать автоматическую маршрутизацию между точками. (Ctrl+A)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
-        <source>A</source>
-        <translation>A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
-        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
-        <translation>Прикрепления линии к линиям векторной карты. (Ctrl+V)</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
-        <source>V</source>
-        <translation>V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
-        <source>Undo last change</source>
-        <translation>Отменить последнее изменение</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
-        <source>Redo last change</source>
-        <translation>Вернуть последнее изменение</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptOvlArea</name>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Показать и изменить детали.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
-        <source>Copy area into another project.</source>
-        <translation>Копировать область в другой проект.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
-        <source>Delete area from project.</source>
-        <translation>Удалить область с проекта.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
-        <source>Edit shape of the area.</source>
-        <translation>Изменить фигуру области.</translation>
-    </message>
-    <message>
-        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="121"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptPrint</name>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
-        <source>Save selected area as image.</source>
-        <translation>Сохранить выбранную область как изображение.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
-        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
-        <source>Print selected area.</source>
-        <translation>Печатать выбранную область.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeLine</name>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
-        <source>Delete all points between the first and last one.</source>
-        <translation>Удалить все точки между первой и последней.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
-        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
-        <translation><html><head/><body><p>Вычислить маршрут между первой и последней выбранной точками.</p></body></html></translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRangeTrk</name>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
-        <source>Hide all points.</source>
-        <translation>Скрыть все точки.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
-        <source>Show all points.</source>
-        <translation>Показать все точки.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
-        <source>Set an activity for the selected range.</source>
-        <translation>Установить мероприятие для выбранного интервала..</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
-        <source>Copy track points as new track.</source>
-        <translation>Скопировать точки трека в новый трек.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptRte</name>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
-        <source>View details and edit.</source>
-        <translation>Показать и изменить детали.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
-        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
-        <source>Copy route into another project.</source>
-        <translation>Скопировать маршрут в другой проект.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
-        <source>Delete route from project.</source>
-        <translation>Удалить маршрут с проекта.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
-        <source>Calculate route.</source>
-        <translation>Вычислить маршрут.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
-        <source>Reset route calculation.</source>
-        <translation>Сбросить маршрутизацию.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
-        <source>Move route points.</source>
-        <translation>Переместить точки маршрута.</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
-        <source>Convert route to track</source>
-        <translation>Преобразовать маршрут в трек</translation>
-    </message>
-    <message>
-        <location filename="../gis/rte/IScrOptRte.ui" line="174"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptSelect</name>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
-        <source>Copy all selected items to a project.</source>
-        <translation>Скопировать все выбранные элементы в проект.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="210"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="239"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="299"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="326"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="353"/>
-        <location filename="../mouse/IScrOptSelect.ui" line="380"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
-        <source>Create a route from selected waypoints.</source>
-        <translation>Создать маршрут с выбранных маршрутных точек.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
-        <source>Change the icon of all selected waypoints.</source>
-        <translation>Изменить пиктограммы всех выбранных маршрутных точек.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
-        <source>Combine all selected tracks to a new one.</source>
-        <translation>Объединить все выбранные треки в новый трек.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
-        <source>Set an activity for all selected tracks.</source>
-        <translation>Установить мероприятие для всех выбранных треков.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
-        <source>Delete all selected items.</source>
-        <translation>Удалить все выбранные элементы.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="207"/>
-        <source>Select all items that intersect the selected area.</source>
-        <translation>Выбрать все элементы, которые пересекают выбранную область.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="236"/>
-        <source>Select all items that are completely inside the selected area.</source>
-        <translation>Выбрать все элементы полностью внутри выбранной области.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="296"/>
-        <source>Add tracks to selection.</source>
-        <translation>Добавить треки к выбору.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="323"/>
-        <source>Add waypoints to selection.</source>
-        <translation>Добавить маршрутные точки к выбору.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="350"/>
-        <source>Add routes to selection.</source>
-        <translation>Добавить маршруты к выбору.</translation>
-    </message>
-    <message>
-        <location filename="../mouse/IScrOptSelect.ui" line="377"/>
-        <source>Add areas to selection.</source>
-        <translation>Добавить области к выбору.</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptTrk</name>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
-        <source>View details and edit properties of track.</source>
-        <translation>Показать детали и изменить свойства трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
-        <source>Copy track into another project.</source>
-        <translation>Скопировать трек в другой проект.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
-        <source>Delete track from project.</source>
-        <translation>Удалить трек с проекта.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
-        <source>Show on-screen profile and detailed information about points.</source>
-        <translation>Показать на экране профиль и подробные сведения о точках.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
-        <source>Select a range of points.</source>
-        <translation>Выбрать интервал трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
-        <source>Edit position of track points.</source>
-        <translation>Изменить позиции точек трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
-        <source>Reverse track.</source>
-        <translation>Обратить трек.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
-        <source>Combine tracks.</source>
-        <translation>Объединить треки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
-        <source>Cut track at selected point. You can use this to:
-
-* remove bad points at the start or end of the track
-* use the track parts to plan a new tour
-* cut a long track into stages
-</source>
-        <translation>Разрезать трек в выбранной точки. Можно использовать это чтобы:
-
-* удалить неверные точки с начала или с конца трека,
-* создать новый трек из частей трека,
-* разрезать длинный трек на меньшие составляющие
-</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
-        <source>Set an activity for the complete track.</source>
-        <translation>Установить мероприятие для всего трека.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
-        <source>Copy track together with all attached waypoints into another project.</source>
-        <translation>Скопировать трек вместе со всеми присоединёнными маршрутными точками в другой проект.</translation>
-    </message>
-    <message>
-        <location filename="../gis/trk/IScrOptTrk.ui" line="224"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWpt</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
-        <source>View details and edit.</source>
-        <translation>Показать детали и изменить.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="170"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
-        <source>Copy waypoint into another project.</source>
-        <translation>Скопировать маршрутную точку в другой проект.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
-        <source>Delete waypoint from project.</source>
-        <translation>Удалить маршрутную точку с проекта.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
-        <source>Show content as static bubble.</source>
-        <translation>Показать содержимое в статическом пузырьке.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
-        <source>Move waypoint to a new location.</source>
-        <translation>Переместить маршрутную точку в новую позицию.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
-        <source>Clone waypoint and move clone a given distance and angle.</source>
-        <translation>Клонировать маршрутную точку и переместить клон на данное расстояние под указанным углом.</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
-        <source>edit radius of circular area</source>
-        <translation>Изменить радиус круга близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>Переключить между кругом близости и запретной зоной</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="185"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Удалить круг близости маршрутной точки</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWpt.ui" line="232"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>IScrOptWptRadius</name>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
-        <source>edit radius of circular area</source>
-        <translation>Изменить радиус круга близости</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="84"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
-        <source>Switch between proximity and nogo-area</source>
-        <translation>Переключить между кругом близости и запретной зоной</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="81"/>
-        <source>Delete circle defined by waypoint</source>
-        <translation>Удалить круг близости маршрутной точки</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="128"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-</context>
-<context>
-    <name>ISearchDatabase</name>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
-        <source>Search...</source>
-        <translation>Поиск...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
-        <source>Type the word you want to search for and press the search button. 
-If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
-        <translation>Ввести слово, которое желаете найти, и нажать кнопку 'Найти'.
-Если ввести 'слово', будет произведён поиск с точным совпадением. Если ввести 'слово*', то 'слово' должно быть в начале строки.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
-        <source>Search</source>
-        <translation>Найти</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
-        <source>Close</source>
-        <translation>Закрыть</translation>
-    </message>
-</context>
-<context>
-    <name>ISelDevices</name>
-    <message>
-        <location filename="../gis/ISelDevices.ui" line="14"/>
-        <source>Select devices...</source>
-        <translation>Выбрать устройства...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectActivityColor</name>
-    <message>
-        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectCopyAction</name>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
-        <source>Copy item...</source>
-        <translation>Скопировать элемент...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
-        <source>Replace existing item</source>
-        <translation>Заменить существующий элемент</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
-        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
-        <source>Do not copy item</source>
-        <translation>Не копировать элемент</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
-        <source>Create a clone</source>
-        <translation>Создать клон</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
-        <source>Replace with:</source>
-        <translation>Заменить на:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
-        <source>Keep item:</source>
-        <translation>Оставить элемент:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>'_клон' будет добавлено к имени клона</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
-        <source>And for all other items, too.</source>
-        <translation>Также для всех остальных элементов.</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDBFolder</name>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
-        <source>Select Parent Folder...</source>
-        <translation>Выбрать корневую папку...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectDoubleListWidget</name>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
-        <source>Available</source>
-        <translation>Доступно</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
-        <source>Add to selected items</source>
-        <translation>Добавить к выбранным элементам</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
-        <source>Remove from selected items</source>
-        <translation>Удалить из выбранных элементов</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
-        <source>Selected</source>
-        <translation>Выбрано</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
-        <source>Move selected items up</source>
-        <translation>Переместить выбранные элементы вверх</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
-        <source>Move selected items down</source>
-        <translation>Переместить выбранные элементы вниз</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
-        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectProjectDialog</name>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
-        <source>Select a project...</source>
-        <translation>Выбрать проект...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
-        <source>Select project from list or enter new project name.</source>
-        <translation>Выбрать проект со списка или ввести имя нового проекта.</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
-        <source>New project's name</source>
-        <translation>Имя нового проекта</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
-        <source>New project is created as:</source>
-        <translation>Создать новый проект как:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
-        <source>*.qms</source>
-        <translation>*.qms</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
-        <source>*.gpx</source>
-        <translation>*.gpx</translation>
-    </message>
-    <message>
-        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
-        <source>Database</source>
-        <translation>База данных</translation>
-    </message>
-</context>
-<context>
-    <name>ISelectSaveAction</name>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
-        <source>Copy item...</source>
-        <translation>Копировать элемент...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
-        <source>Replace existing item</source>
-        <translation>Заменить существующий элемент</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
-        <source>TextLabel</source>
-        <translation>Метка текста</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
-        <source>Do not replace item</source>
-        <translation>Не заменять элемент</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
-        <source>Add a clone</source>
-        <translation>Добавить клон</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
-        <source>The clone's name will be appended with '_Clone'</source>
-        <translation>'_клон' будет добавлено к имени клона</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
-        <source>And for all other items, too.</source>
-        <translation>Также для всех остальных элементов.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
-        <source>Use item:</source>
-        <translation>Использовать элемент:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
-        <source>Replace with:</source>
-        <translation>Заменить на:</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupDatabase</name>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
-        <source>Add database...</source>
-        <translation>Добавить базу данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
-        <source>Server</source>
-        <translation>Сервер</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
-        <source>Port</source>
-        <translation>Порт</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
-        <source>User</source>
-        <translation>Пользователь</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
-        <source>Password</source>
-        <translation>Пароль</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
-        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
-        <translation><p align="justify"><span style=" font-weight:600;">Внимание!</span> Рекомендуется оставить поле пароля пустым, так как QMapShack сохранит его как простой текст. Если нет пароля, то программа будет запрашивать его при каждом запуске.</p></translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
-        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
-        <translation><b>Порт:</b> Если оставить поле порт пустым, то будет использоваться порт по умолчанию.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
-        <source>Do not use a password.</source>
-        <translation>Не использовать пароль.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
-        <source>File:</source>
-        <translation>Файл:</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
-        <source>Add new database.</source>
-        <translation>Добавить новую базу данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
-        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
-        <source>Open existing database.</source>
-        <translation>Открыть существующую базу данных.</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
-        <source>MySQL</source>
-        <translation>MySQL</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
-        <source>SQLite</source>
-        <translation>SQLite</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFilter</name>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="14"/>
-        <source>Form</source>
-        <translation>Форма</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="38"/>
-        <source>Apply filter to</source>
-        <translation>Применить фильтр</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="45"/>
-        <source>name only</source>
-        <translation>только к имени</translation>
-    </message>
-    <message>
-        <location filename="../gis/ISetupFilter.ui" line="52"/>
-        <source>complete text</source>
-        <translation>к полному тексту</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupFolder</name>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
-        <source>Database Folder...</source>
-        <translation>Папка базы данных...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
-        <source>Folder name</source>
-        <translation>Имя папки</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
-        <source>Group</source>
-        <translation>Группа</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
-        <source>Project</source>
-        <translation>Проект</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
-        <source>Other</source>
-        <translation>Остальное</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupNewWpt</name>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
-        <source>New Waypoint...</source>
-        <translation>Новая маршрутная точка...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
-        <source>Symbol</source>
-        <translation>Символ</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
-        <source>Position</source>
-        <translation>Позиция</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
-        <source>Name</source>
-        <translation>Имя</translation>
-    </message>
-    <message>
-        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
-        <source>Bad position format. Must be: 
-"[N|S] ddd mm.sss [W|E] ddd mm.sss"
-or
-"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Неверный формат позиции. Должен быть:
-"[С|Ю] ddd mm.sss [З|В] ddd mm.sss"
- или 
-"[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
-    </message>
-</context>
-<context>
-    <name>ISetupWorkspace</name>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
-        <source>Setup workspace...</source>
-        <translation>Настройка рабочей области...</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
-        <source>save workspace on exit, and every</source>
-        <translation>Сохранять рабочую область при выходе и каждые</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
-        <source>minutes</source>
-        <translation>минут</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
-        <source>listen for database changes from other instances of QMapShack. On port</source>
-        <translation>Прослушивать изменений в базе данных другой работающей QMapShack. Порт</translation>
-    </message>
-    <message>
-        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
-        <source>00000</source>
-        <translation>00000</translation>
-    </message>
-</context>
-<context>
-    <name>ITemplateWidget</name>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
-        <source>Insert Template...</source>
-        <translation>Вставить шаблон...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
-        <source>Templates</source>
-        <translation>Шаблоны</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
-        <source>Select a path with your own templates.</source>
-        <translation>Выбрать путь собственных шаблонов.</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
-        <source>Preview</source>
-        <translation>Просмотр</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidget</name>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
-        <source>Edit text...</source>
-        <translation>Изменить текст...</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
-        <source>Undo</source>
-        <translation>Отменить</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
-        <source>Ctrl+Z</source>
-        <translation>Ctrl+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
-        <source>Redo</source>
-        <translation>Вернуть</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
-        <source>Ctrl+Shift+Z</source>
-        <translation>Ctrl+Shift+Z</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
-        <source>Cut</source>
-        <translation>Вырезать</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
-        <source>Ctrl+X</source>
-        <translation>Ctrl+X</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
-        <source>Copy</source>
-        <translation>Копировать</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
-        <source>Ctrl+C</source>
-        <translation>Ctrl+C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
-        <source>Paste</source>
-        <translation>Вставить</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
-        <source>Templ.</source>
-        <translation>Шаблон</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
-        <source>A:L</source>
-        <translation>A:L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
-        <source>A:C</source>
-        <translation>A:C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
-        <source>A:R</source>
-        <translation>A:R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
-        <source>A:B</source>
-        <translation>A:B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
-        <source>U</source>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
-        <source>C</source>
-        <translation>C</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
-        <source>Standard</source>
-        <translation>Стандарт</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
-        <source>Bullet List (Disc)</source>
-        <translation>Маркированный список (диск)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
-        <source>Bullet List (Circle)</source>
-        <translation>Маркированный список (круг)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
-        <source>Bullet List (Square)</source>
-        <translation>Маркированный список (квадрат)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
-        <source>Ordered List (Decimal)</source>
-        <translation>Упорядоченный список (цифра, арабская)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
-        <source>Ordered List (Alpha lower)</source>
-        <translation>Упорядоченный список (буква маленькая)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
-        <source>Ordered List (Alpha upper)</source>
-        <translation>Упорядоченный список (буква большая)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
-        <source>Ordered List (Roman lower)</source>
-        <translation>Упорядоченный список (цифра, латинская маленькая)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
-        <source>Ordered List (Roman upper)</source>
-        <translation>Упорядоченный список (цифра, латинская большая)</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
-        <source>Ctrl+V</source>
-        <translation>Ctrl+V</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
-        <source>Align Left</source>
-        <translation>Выровнять по левому краю</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
-        <source>Ctrl+L</source>
-        <translation>Ctrl+L</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
-        <source>Align Right</source>
-        <translation>Выровнять по правому краю</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
-        <source>Ctrl+R</source>
-        <translation>Ctrl+R</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
-        <source>Align Center</source>
-        <translation>Выровнять по центру</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
-        <source>Ctrl+E</source>
-        <translation>Ctrl+E</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
-        <source>Align Block</source>
-        <translation>Выровнять в блок</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
-        <source>Ctrl+J</source>
-        <translation>Ctrl+J</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
-        <source>Underline</source>
-        <translation>Подчеркнуть</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
-        <source>Ctrl+U</source>
-        <translation>Ctrl+U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
-        <source>Bold</source>
-        <translation>Жирный</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
-        <source>Ctrl+B</source>
-        <translation>Ctrl+B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
-        <source>Italic</source>
-        <translation>Курсив</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
-        <source>Ctrl+I</source>
-        <translation>Ctrl+I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
-        <source>Plain</source>
-        <translation>Обычный</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
-        <source>Reset the text's format before pasting</source>
-        <translation>Сбросить форматирование текста до вставки</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
-        <source>Select All</source>
-        <translation>Выделить все</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
-        <source>Ctrl+A</source>
-        <translation>Ctrl+A</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
-        <source>Delete</source>
-        <translation>Удалить</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
-        <source>Reset Font</source>
-        <translation>Сбросить шрифт</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
-        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
-        <source>Reset Layout</source>
-        <translation>Сбросить раскладку</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
-        <source>Normal</source>
-        <translation>Нормально</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
-        <source>Paste without resetting the text's format</source>
-        <translation>Вставить без сброса форматирования текста</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
-        <source>Insert From Template</source>
-        <translation>Вставить из шаблона</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
-        <source>Create text from template.</source>
-        <translation>Создать текст из шаблона.</translation>
-    </message>
-</context>
-<context>
-    <name>ITextEditWidgetSelMenu</name>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
-        <source>B</source>
-        <translation>B</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
-        <source>I</source>
-        <translation>I</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
-        <source>U</source>
-        <translatorcomment>???</translatorcomment>
-        <translation>U</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
-        <source>Cut</source>
-        <translation>Вырезать</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
-        <source>Copy</source>
-        <translation>Скопировать</translation>
-    </message>
-    <message>
-        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
-        <source>Paste</source>
-        <translation>Вставить</translation>
-    </message>
-</context>
-<context>
-    <name>ITimeZoneSetup</name>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
-        <source>Setup Time Zone ...</source>
-        <translation>Настройка часового пояса...</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
-        <source>UTC</source>
-        <translation>UTC</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
-        <source>Local</source>
-        <translation>Местный</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
-        <source>Automatic</source>
-        <translation>Автоматический</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
-        <source>Print date/time in </source>
-        <translation>Печатать дату/время в</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
-        <source>long format, or</source>
-        <translation>длинном формате, или</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
-        <source>short format</source>
-        <translation>сокращённом формате</translation>
-    </message>
-    <message>
-        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Примечание:</b> Изменение единиц для некоторых элементов графического пользовательского интерфейса вступит в силу только после перезапуска QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IToolBarSetupDialog</name>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
-        <source>Setup Toolbar</source>
-        <translation>Настройка панели инструментов</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
-        <source>Toolbar is visible in Fullscreen-mode</source>
-        <translation>Панель инструментов видна в полноэкранном режиме</translation>
-    </message>
-</context>
-<context>
-    <name>IToolShell</name>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="46"/>
-        <source>Execution of external program `%1` failed: </source>
-        <translation>Не удалось выполнить внешнюю программу `%1`: </translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="50"/>
-        <source>Process cannot be started.
-</source>
-        <translation>Невозможно запустить процесс.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="51"/>
-        <source>Make sure the required packages are installed, `%1` exists and is executable.
-</source>
-        <translation>Убедитесь, что установлены необходимые пакеты, `%1` существует и разрешено его исполнение.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="55"/>
-        <source>External process crashed.
-</source>
-        <translation>Крах внешнего процесса.
-</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="59"/>
-        <source>An unknown error occurred.
-</source>
-        <translation>Случилась неизвестная ошибка.</translation>
-    </message>
-    <message>
-        <location filename="../tool/IToolShell.cpp" line="172"/>
-        <source>!!! failed !!!
-</source>
-        <translation>!Не удалось!</translation>
-    </message>
-</context>
-<context>
-    <name>IUnit</name>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Error</source>
-        <translation>Ошибка</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="770"/>
-        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
-        <translation>Неверный формат позиции. Должен быть: "[С|Ю] ddd mm.sss [З|В] ddd mm.sss" или "[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnit.cpp" line="776"/>
-        <source>Position values out of bounds. </source>
-        <translation>Значения позиции вне допустимого интервала.</translation>
-    </message>
-</context>
-<context>
-    <name>IUnitsSetup</name>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="14"/>
-        <source>Setup units...</source>
-        <translation>Настройка единиц измерения...</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="36"/>
-        <source>Length unit</source>
-        <translation>Единица длины</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="48"/>
-        <source>Nautic</source>
-        <translation>Морские</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="61"/>
-        <source>Imperial</source>
-        <translation>Британские</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="74"/>
-        <source>Metric</source>
-        <translation>Метрические</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="80"/>
-        <source>Slope unit</source>
-        <translation>Единица спуска</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="92"/>
-        <source>Degrees (°)</source>
-        <translation>Градус (°)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="105"/>
-        <source>Percent (%)</source>
-        <translation>Процент (%)</translation>
-    </message>
-    <message>
-        <location filename="../units/IUnitsSetup.ui" line="133"/>
-        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
-        <translation><b>Примечание:</b> Изменение единиц для некоторых элементов графического пользовательского интерфейса вступят в силу только после перезапуска QMapShack.</translation>
-    </message>
-</context>
-<context>
-    <name>IWptIconDialog</name>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
-        <source>Icons...</source>
-        <translation>Пиктограммы...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
-        <source>External Icons:</source>
-        <translation>Внешние пиктограммы:</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
-        <source>-</source>
-        <translation>-</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
-        <source>...</source>
-        <translation>...</translation>
-    </message>
-    <message>
-        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
-        <source>All custom icons have to be *.bmp or *.png format.</source>
-        <translation>Все пользовательские пиктограммы должны быть в *.bmp или *.png формате.</translation>
-    </message>
-</context>
-</TS>
diff --git a/src/map/CMapVRT.cpp b/src/map/CMapVRT.cpp
deleted file mode 100644
index 478c0c9..0000000
--- a/src/map/CMapVRT.cpp
+++ /dev/null
@@ -1,436 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "helpers/CDraw.h"
-#include "map/CMapDraw.h"
-#include "map/CMapVRT.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-#include <gdal_priv.h>
-#include <ogr_spatialref.h>
-
-#define TILELIMIT 2500
-#define TILESIZEX 64
-#define TILESIZEY 64
-
-
-CMapVRT::CMapVRT(const QString &filename, CMapDraw *parent)
-    : IMap(eFeatVisibility,parent)
-    , filename(filename)
-{
-    qDebug() << "------------------------------";
-    qDebug() << "VRT: try to open" << filename;
-
-    dataset = (GDALDataset*)GDALOpen(filename.toUtf8(),GA_ReadOnly);
-
-    if(nullptr == dataset)
-    {
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to load file: %1").arg(filename));
-        return;
-    }
-
-    // ------- setup color table ---------
-    rasterBandCount = dataset->GetRasterCount();
-    if(rasterBandCount == 1)
-    {
-        GDALRasterBand *pBand = dataset->GetRasterBand(1);
-
-        if(nullptr == pBand)
-        {
-            GDALClose(dataset);
-            dataset = nullptr;
-            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to load file: %1").arg(filename));
-            return;
-        }
-
-        if(pBand->GetColorInterpretation() ==  GCI_PaletteIndex )
-        {
-            GDALColorTable * pct = pBand->GetColorTable();
-            for(int i=0; i < pct->GetColorEntryCount(); ++i)
-            {
-                const GDALColorEntry& e = *pct->GetColorEntry(i);
-                colortable << qRgba(e.c1, e.c2, e.c3, e.c4);
-            }
-        }
-        else if(pBand->GetColorInterpretation() ==  GCI_GrayIndex )
-        {
-            for(int i=0; i < 256; ++i)
-            {
-                colortable << qRgba(i, i, i, 255);
-            }
-        }
-        else
-        {
-            GDALClose(dataset);
-            dataset = nullptr;
-            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("File must be 8 bit palette or gray indexed."));
-            return;
-        }
-
-        int success = 0;
-        qreal idx = pBand->GetNoDataValue(&success);
-        if(success)
-        {
-            if((idx > 0) && (idx < colortable.size()))
-            {
-                QColor tmp(colortable[idx]);
-                tmp.setAlpha(0);
-                colortable[idx] = tmp.rgba();
-            }
-            else
-            {
-                qDebug() << "Index for no data value is out of bound";
-                return;
-            }
-        }
-    }
-
-    if(dataset->GetRasterCount() > 0)
-    {
-        hasOverviews = dataset->GetRasterBand(1)->GetOverviewCount() != 0;
-    }
-
-    qDebug() << "has overviews" << hasOverviews;
-
-
-    // ------- setup projection ---------------
-    char str[1025] = {0};
-    if(dataset->GetProjectionRef())
-    {
-        strncpy(str, dataset->GetProjectionRef(), sizeof(str) - 1);
-    }
-
-    OGRSpatialReference oSRS;
-    char *wkt = str;
-    oSRS.importFromWkt(&wkt);
-
-    char *proj4 = nullptr;
-    oSRS.exportToProj4(&proj4);
-    pjsrc = pj_init_plus(proj4);
-    free(proj4);
-
-    if(pjsrc == 0)
-    {
-        delete dataset;
-        dataset = nullptr;
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("No georeference information found."));
-        return;
-    }
-
-    xsize_px = dataset->GetRasterXSize();
-    ysize_px = dataset->GetRasterYSize();
-
-
-    qreal adfGeoTransform[6];
-    dataset->GetGeoTransform( adfGeoTransform );
-
-    xscale  = adfGeoTransform[1];
-    yscale  = adfGeoTransform[5];
-    xrot    = adfGeoTransform[4];
-    yrot    = adfGeoTransform[2];
-
-    trFwd.translate(adfGeoTransform[0], adfGeoTransform[3]);
-    trFwd.scale(adfGeoTransform[1],adfGeoTransform[5]);
-
-    if(adfGeoTransform[4] != 0.0)
-    {
-        trFwd.rotate(qAtan(adfGeoTransform[2]/adfGeoTransform[4]));
-    }
-
-    if(pj_is_latlong(pjsrc))
-    {
-        // convert to RAD to match internal notations
-        trFwd = trFwd * DEG_TO_RAD;
-    }
-
-    trInv = trFwd.inverted();
-
-    ref1 = trFwd.map(QPointF(0,0));
-    ref2 = trFwd.map(QPointF(xsize_px,0));
-    ref3 = trFwd.map(QPointF(xsize_px,ysize_px));
-    ref4 = trFwd.map(QPointF(0,ysize_px));
-
-    qDebug() << "FF" << trFwd;
-    qDebug() << "RR" << trInv;
-
-    isActivated = true;
-}
-
-CMapVRT::~CMapVRT()
-{
-    GDALClose(dataset);
-}
-
-void CMapVRT::draw(IDrawContext::buffer_t& buf) /* override */
-{
-    if(map->needsRedraw())
-    {
-        return;
-    }
-
-    QPointF bufferScale = buf.scale * buf.zoomFactor;
-
-    // calculate bounding box;
-    QPointF pt1 = ref1;
-    QPointF pt2 = ref2;
-    QPointF pt3 = ref3;
-    QPointF pt4 = ref4;
-
-    pj_transform(pjsrc,pjtar, 1, 0, &pt1.rx(), &pt1.ry(), 0);
-    pj_transform(pjsrc,pjtar, 1, 0, &pt2.rx(), &pt2.ry(), 0);
-    pj_transform(pjsrc,pjtar, 1, 0, &pt3.rx(), &pt3.ry(), 0);
-    pj_transform(pjsrc,pjtar, 1, 0, &pt4.rx(), &pt4.ry(), 0);
-
-    QPolygonF boundingBox;
-    boundingBox << pt1 << pt2 << pt3 << pt4;
-    map->convertRad2Px(boundingBox);
-
-    // get pixel offset of top left buffer corner
-    QPointF pp = buf.ref1;
-    map->convertRad2Px(pp);
-
-    // calculate area to read from file
-    pt1 = buf.ref1;
-    pt2 = buf.ref2;
-    pt3 = buf.ref3;
-    pt4 = buf.ref4;
-
-    pj_transform(pjtar,pjsrc, 1, 0, &pt1.rx(), &pt1.ry(), 0);
-    pj_transform(pjtar,pjsrc, 1, 0, &pt2.rx(), &pt2.ry(), 0);
-    pj_transform(pjtar,pjsrc, 1, 0, &pt3.rx(), &pt3.ry(), 0);
-    pj_transform(pjtar,pjsrc, 1, 0, &pt4.rx(), &pt4.ry(), 0);
-
-    pt1 = trInv.map(pt1);
-    pt2 = trInv.map(pt2);
-    pt3 = trInv.map(pt3);
-    pt4 = trInv.map(pt4);
-
-    qreal left, right, top, bottom;
-    left     = pt1.x() < pt4.x() ? pt1.x() : pt4.x();
-    right    = pt2.x() > pt3.x() ? pt2.x() : pt3.x();
-    top      = pt1.y() < pt2.y() ? pt1.y() : pt2.y();
-    bottom   = pt4.y() > pt3.y() ? pt4.y() : pt3.y();
-
-    if(left < 0)
-    {
-        left = 0;
-    }
-    if(left > xsize_px)
-    {
-        left = xsize_px;
-    }
-
-    if(top < 0)
-    {
-        top  = 0;
-    }
-    if(top > ysize_px)
-    {
-        top  = ysize_px;
-    }
-
-    if(right > xsize_px)
-    {
-        right = xsize_px;
-    }
-    if(right < 0)
-    {
-        right = 0;
-    }
-
-    if(bottom > ysize_px)
-    {
-        bottom = ysize_px;
-    }
-    if(bottom < 0)
-    {
-        bottom = 0;
-    }
-
-    qreal imgw = TILESIZEX;
-    qreal imgh = TILESIZEY;
-    qreal dx =  imgw;
-    qreal dy =  imgh;
-
-
-    // estimate number of tiles and use it as a limit if no
-    // user defined limit is given
-    qreal nTiles = ((right - left) * (bottom - top) / (dx*dy));
-    if(hasOverviews)
-    {
-        // if there are overviews tiles can be reduced by reading
-        // with a scale factor from file. Increase amount of pixel
-        // read until tile limit is met.
-        while(nTiles > TILELIMIT)
-        {
-            dx *= 2;
-            dy *= 2;
-            nTiles /= 4;
-        }
-    }
-    else
-    {
-        nTiles = getMaxScale() == NOFLOAT ? nTiles : 0;
-    }
-
-    // start to draw the map
-    QPainter p(&buf.image);
-    USE_ANTI_ALIASING(p,true);
-    p.setOpacity(getOpacity()/100.0);
-    p.translate(-pp);
-
-
-//    qDebug() << imgw << dx << nTiles;
-    // limit number of tiles to keep performance
-    if(!isOutOfScale(bufferScale) && (nTiles < TILELIMIT))
-    {
-        for(qreal y = top; y < bottom; y += dy)
-        {
-            if(map->needsRedraw())
-            {
-                break;
-            }
-
-            for(qreal x = left; x < right; x += dx)
-            {
-                if(map->needsRedraw())
-                {
-                    break;
-                }
-
-                // read tile from file
-                CPLErr err = CE_Failure;
-
-                // reduce tile size at the border of the file
-                qreal dx_used   = dx;
-                qreal dy_used   = dy;
-                qreal imgw_used = imgw;
-                qreal imgh_used = imgh;
-
-                if((x + dx) > xsize_px)
-                {
-                    dx_used     = xsize_px - x;
-                    imgw_used   = qRound(imgw * dx_used / dx) & 0xFFFFFFFC;
-                }
-                if((y + dy) > ysize_px)
-                {
-                    dy_used     = ysize_px - y;
-                    imgh_used   = imgh * dy_used / dy;
-                }
-
-                x           = qRound(x);
-                y           = qRound(y);
-                dx_used     = qFloor(dx_used);
-                dy_used     = qFloor(dy_used);
-                imgw_used   = qRound(imgw_used);
-                imgh_used   = qRound(imgh_used);
-
-                if(imgw_used < 1 || imgh_used < 1)
-                {
-                    continue;
-                }
-
-                QImage img;
-                if(rasterBandCount == 1)
-                {
-                    GDALRasterBand * pBand;
-                    pBand = dataset->GetRasterBand(1);
-
-                    img = QImage(QSize(imgw_used,imgh_used),QImage::Format_Indexed8);
-                    img.setColorTable(colortable);
-
-                    err = pBand->RasterIO(GF_Read
-                                          ,x,y
-                                          ,dx_used,dy_used
-                                          ,img.bits()
-                                          ,imgw_used,imgh_used
-                                          ,GDT_Byte,0,0);
-                }
-                else
-                {
-                    img = QImage(imgw_used,imgh_used, QImage::Format_ARGB32);
-                    img.fill(qRgba(255,255,255,255));
-
-                    QVector<quint8> buffer(imgw_used * imgh_used);
-
-                    QRgb testPix = qRgba(GCI_RedBand, GCI_GreenBand, GCI_BlueBand, GCI_AlphaBand);
-
-                    for(int b = 1; b <= rasterBandCount; ++b)
-                    {
-                        GDALRasterBand * pBand;
-                        pBand = dataset->GetRasterBand(b);
-
-                        err = pBand->RasterIO(GF_Read
-                                              , x, y
-                                              , dx_used, dy_used
-                                              , buffer.data()
-                                              , imgw_used, imgh_used
-                                              , GDT_Byte, 0, 0);
-
-                        if(!err)
-                        {
-                            int pbandColour = pBand->GetColorInterpretation();
-                            unsigned int offset;
-
-                            for (offset = 0; offset < sizeof(testPix) && *(((quint8 *)&testPix) + offset) != pbandColour; offset++)
-                            {
-                            }
-                            if(offset < sizeof(testPix))
-                            {
-                                quint8 * pTar   = img.bits() + offset;
-                                quint8 * pSrc   = buffer.data();
-                                const int size  = buffer.size();
-
-                                for(int i = 0; i < size; ++i)
-                                {
-                                    *pTar = *pSrc;
-                                    pTar += sizeof(testPix);
-                                    pSrc += 1;
-                                }
-                            }
-                        }
-                    }
-                }
-
-                if(err)
-                {
-                    continue;
-                }
-
-
-                QPolygonF l;
-                l << QPointF(x,y) << QPointF(x+dx_used,y) << QPointF(x+dx_used,y+dy_used) << QPointF(x,y+dy_used);
-                l = trFwd.map(l);
-
-                pj_transform(pjsrc,pjtar, 1, 0, &l[0].rx(), &l[0].ry(), 0);
-                pj_transform(pjsrc,pjtar, 1, 0, &l[1].rx(), &l[1].ry(), 0);
-                pj_transform(pjsrc,pjtar, 1, 0, &l[2].rx(), &l[2].ry(), 0);
-                pj_transform(pjsrc,pjtar, 1, 0, &l[3].rx(), &l[3].ry(), 0);
-
-                drawTile(img, l, p);
-            }
-        }
-    }
-
-    p.setPen(Qt::black);
-    p.setBrush(Qt::NoBrush);
-    p.drawPolygon(boundingBox);
-}
-
diff --git a/src/map/CMapWMTS.cpp b/src/map/CMapWMTS.cpp
deleted file mode 100644
index 8405ffa..0000000
--- a/src/map/CMapWMTS.cpp
+++ /dev/null
@@ -1,551 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "helpers/CDraw.h"
-#include "map/CMapDraw.h"
-#include "map/CMapWMTS.h"
-#include "map/cache/CDiskCache.h"
-#include "units/IUnit.h"
-
-#include <QtNetwork>
-#include <QtWidgets>
-#include <QtXml>
-
-#include <ogr_spatialref.h>
-
-
-CMapWMTS::CMapWMTS(const QString &filename, CMapDraw *parent)
-    : IMapOnline(parent)
-{
-    qDebug() << "------------------------------";
-    qDebug() << "WMTS: try to open" << filename;
-
-
-    QFile file(filename);
-    if(!file.open(QIODevice::ReadOnly))
-    {
-        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to open %1").arg(filename), QMessageBox::Abort, QMessageBox::Abort);
-        return;
-    }
-
-    QString msg;
-    int line, column;
-    QDomDocument dom;
-    if(!dom.setContent(&file, true, &msg, &line, &column))
-    {
-        file.close();
-        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to read: %1\nline %2, column %3:\n %4").arg(filename).arg(line).arg(column).arg(msg), QMessageBox::Abort, QMessageBox::Abort);
-        return;
-    }
-    file.close();
-
-    // start to decode XML
-    // validate content as WMTS capability sheet
-    const QDomElement& xmlCapabilities = dom.documentElement();
-    if(xmlCapabilities.tagName() != "Capabilities")
-    {
-        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to read: %1\nUnknown structure.").arg(filename), QMessageBox::Abort, QMessageBox::Abort);
-        return;
-    }
-    const QDomNode& xmlServiceIdentification = xmlCapabilities.namedItem("ServiceIdentification");
-    QString ServiceType         = xmlServiceIdentification.firstChildElement("ServiceType").text();
-    QString ServiceTypeVersion  = xmlServiceIdentification.firstChildElement("ServiceTypeVersion").text();
-
-    if(!ServiceType.contains("WMTS", Qt::CaseInsensitive) || ServiceTypeVersion != "1.0.0")
-    {
-        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.").arg(ServiceType).arg(ServiceTypeVersion), QMessageBox::Abort, QMessageBox::Abort);
-        return;
-    }
-
-    // read setup of all layers
-    const QDomNode& xmlContents = xmlCapabilities.namedItem("Contents");
-    const QDomNodeList& xmlLayers = xmlContents.toElement().elementsByTagName("Layer");
-    const int N = xmlLayers.count();
-    for(int n = 0; n < N; n++)
-    {
-        QString str;
-        QStringList values;
-        const QDomNode& xmlLayer = xmlLayers.at(n);
-        layer_t layer;
-
-        layer.title = xmlLayer.firstChildElement("Title").text();
-
-        // read bounding box
-        const QDomNode& xmlBoundingBox = xmlLayer.firstChildElement("WGS84BoundingBox");
-        str = xmlBoundingBox.namedItem("LowerCorner").toElement().text();
-        values = str.split(" ");
-        QPointF bottomLeft(values[0].toDouble(), values[1].toDouble());
-
-        str = xmlBoundingBox.namedItem("UpperCorner").toElement().text();
-        values = str.split(" ");
-        QPointF topRight(values[0].toDouble(), values[1].toDouble());
-
-        layer.boundingBox.setBottomLeft(bottomLeft);
-        layer.boundingBox.setTopRight(topRight);
-
-        const QDomNode& xmlStyle = xmlLayer.firstChildElement("Style");
-        layer.styles << xmlStyle.namedItem("Identifier").toElement().text();
-
-        const QDomNode& xmlTileMatrixSetLink = xmlLayer.firstChildElement("TileMatrixSetLink");
-        layer.tileMatrixSet = xmlTileMatrixSetLink.namedItem("TileMatrixSet").toElement().text();
-
-        // read limits if any
-        const QDomNode& xmlTileMatrixSetLimits = xmlTileMatrixSetLink.firstChildElement("TileMatrixSetLimits");
-        if(xmlTileMatrixSetLimits.isElement())
-        {
-            const QDomNodeList& xmlTileMatrixLimits = xmlTileMatrixSetLimits.toElement().elementsByTagName("TileMatrixLimits");
-            const int L = xmlTileMatrixLimits.count();
-            for(int l = 0; l < L; l++)
-            {
-                const QDomNode& xmlTileMatrixLimit = xmlTileMatrixLimits.at(l);
-                QString Identifier          = xmlTileMatrixLimit.namedItem("TileMatrix").toElement().text();
-                layer.limits[Identifier]    = limit_t();
-                limit_t& limit              = layer.limits[Identifier];
-
-                limit.minTileRow = xmlTileMatrixLimit.namedItem("MinTileRow").toElement().text().toInt();
-                limit.maxTileRow = xmlTileMatrixLimit.namedItem("MaxTileRow").toElement().text().toInt();
-                limit.minTileCol = xmlTileMatrixLimit.namedItem("MinTileCol").toElement().text().toInt();
-                limit.maxTileCol = xmlTileMatrixLimit.namedItem("MaxTileCol").toElement().text().toInt();
-            }
-        }
-
-        // read resource URL of layer and replace placeholders by information that is already available
-        const QDomNode& xmlResourceURL = xmlLayer.firstChildElement("ResourceURL");
-        const QDomNamedNodeMap& attr = xmlResourceURL.attributes();
-
-        layer.resourceURL = attr.namedItem("template").nodeValue();
-        layer.resourceURL = layer.resourceURL.replace("{style}",layer.styles[0], Qt::CaseInsensitive);
-        layer.resourceURL = layer.resourceURL.replace("{TileMatrixSet}",layer.tileMatrixSet, Qt::CaseInsensitive);
-
-        // read and replace dimensions in url string by default value
-        const QDomNodeList& xmlDimensions = xmlLayer.toElement().elementsByTagName("Dimension");
-        const int D = xmlDimensions.count();
-        for(int d = 0; d < D; d++)
-        {
-            const QDomNode& xmlDimension = xmlDimensions.at(d);
-
-            QString Identifier = xmlDimension.namedItem("Identifier").toElement().text();
-            QString Default    = xmlDimension.namedItem("Default").toElement().text();
-
-            layer.resourceURL  = layer.resourceURL.replace("{" + Identifier + "}", Default, Qt::CaseInsensitive);
-        }
-
-        if(!httpsCheck(layer.resourceURL))
-        {
-            return;
-        }
-
-        // enable layer by default
-        layer.enabled = true;
-        layers << layer;
-    }
-
-    // if there is more than one layer the layer list in the properties widget has to be enabled.
-    if(layers.size() > 1)
-    {
-        flagsFeature |= eFeatLayers;
-    }
-
-    // read setup of all tile matrices
-    const QDomNodeList& xmlTileMatrixSets = xmlContents.childNodes();
-    const int M = xmlTileMatrixSets.count();
-    for(int m = 0; m < M; m++)
-    {
-        const QDomNode& xmlTileMatrixSet = xmlTileMatrixSets.at(m);
-        if(xmlTileMatrixSet.nodeName() != "TileMatrixSet")
-        {
-            continue;
-        }
-
-
-        QString Identifier      = xmlTileMatrixSet.namedItem("Identifier").toElement().text();
-        tilesets[Identifier]    = tileset_t();
-        tileset_t& tileset      = tilesets[Identifier];
-
-        // read projection string
-        QString str = xmlTileMatrixSet.namedItem("SupportedCRS").toElement().text();
-
-        char * ptr1 = (char*)malloc(str.toLatin1().size() + 1);
-        char * ptr2 = nullptr;
-
-        strncpy(ptr1,str.toLatin1().data(), str.toLatin1().size() + 1);
-        OGRSpatialReference oSRS;
-
-        if(str.startsWith("EPSG"))
-        {
-            QStringList tokens = str.split(":");
-            oSRS.importFromEPSG(tokens.last().toInt());
-        }
-        else
-        {
-            oSRS.importFromURN(ptr1);
-        }
-        oSRS.exportToProj4(&ptr2);
-
-        qDebug() << ptr1 << ptr2;
-        tileset.pjsrc = pj_init_plus(ptr2);
-
-        free(ptr1);
-        free(ptr2);
-
-        if(tileset.pjsrc == nullptr)
-        {
-            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("No georeference information found."));
-            return;
-        }
-
-        // read information about all matrix levels
-        const QDomNodeList& xmlTileMatrixN = xmlTileMatrixSet.toElement().elementsByTagName("TileMatrix");
-        const int N = xmlTileMatrixN.count();
-        for(int n = 0; n < N; n++)
-        {
-            QString str;
-            QStringList values;
-            const QDomNode& xmlTileMatrix = xmlTileMatrixN.at(n);
-            QString Identifier =  xmlTileMatrix.namedItem("Identifier").toElement().text();
-            tileset.tilematrix[Identifier] = tilematrix_t();
-            tilematrix_t& matrix = tileset.tilematrix[Identifier];
-
-            str = xmlTileMatrix.namedItem("TopLeftCorner").toElement().text();
-            values = str.split(" ");
-            matrix.topLeft      = QPointF(values[0].toDouble(), values[1].toDouble());
-            matrix.scale        = xmlTileMatrix.namedItem("ScaleDenominator").toElement().text().toDouble();
-            matrix.tileWidth    = xmlTileMatrix.namedItem("TileWidth").toElement().text().toInt();
-            matrix.tileHeight   = xmlTileMatrix.namedItem("TileHeight").toElement().text().toInt();
-            matrix.matrixWidth  = xmlTileMatrix.namedItem("MatrixWidth").toElement().text().toInt();
-            matrix.matrixHeight = xmlTileMatrix.namedItem("MatrixHeight").toElement().text().toInt();
-        }
-    }
-    // ----  done reading XML file
-
-    // create default cache path from filename
-    QFileInfo fi(filename);
-    slotSetCachePath(QDir(CMapDraw::getCacheRoot()).absoluteFilePath(fi.completeBaseName()));
-
-    name = fi.completeBaseName().replace("_", " ");
-
-    isActivated = true;
-}
-
-void CMapWMTS::getLayers(QListWidget& list)
-{
-    QMutexLocker lock(&mutex);
-
-    list.clear();
-    if(layers.size() < 2)
-    {
-        return;
-    }
-
-    int i = 0;
-    for(const layer_t &layer : layers)
-    {
-        QListWidgetItem * item = new QListWidgetItem(layer.title, &list);
-        item->setCheckState(layer.enabled ? Qt::Checked : Qt::Unchecked);
-        item->setData(Qt::UserRole, i++);
-    }
-
-    connect(&list, &QListWidget::itemChanged, this, &CMapWMTS::slotLayersChanged);
-}
-
-
-void CMapWMTS::saveConfig(QSettings& cfg) /* override */
-{
-    QMutexLocker lock(&mutex);
-
-    IMapOnline::saveConfig(cfg);
-    if(layers.size() < 2)
-    {
-        return;
-    }
-
-    // save indices of enabled layers
-    QStringList enabled;
-    for(int i = 0; i< layers.size(); i++)
-    {
-        if(layers[i].enabled)
-        {
-            enabled << QString::number(i);
-        }
-    }
-    cfg.setValue("enabledLayers", enabled);
-}
-
-void CMapWMTS::loadConfig(QSettings& cfg) /* override */
-{
-    QMutexLocker lock(&mutex);
-
-    IMapOnline::loadConfig(cfg);
-    if(layers.size() < 2)
-    {
-        return;
-    }
-
-    QStringList enabled;
-    // set all layers to disabled first
-    for(int i = 0; i< layers.size(); i++)
-    {
-        layers[i].enabled = false;
-        enabled << QString::number(i);
-    }
-
-    // enable layers stored in configuration
-    enabled = cfg.value("enabledLayers", enabled).toStringList();
-    for(const QString &str : enabled)
-    {
-        int idx = str.toInt();
-        if(idx < layers.size())
-        {
-            layers[idx].enabled = true;
-        }
-    }
-}
-
-
-void CMapWMTS::slotLayersChanged(QListWidgetItem * item)
-{
-    QMutexLocker lock(&mutex);
-
-    bool isChecked = (item->checkState() == Qt::Checked);
-    int idx = item->data(Qt::UserRole).toInt();
-    if(idx < 0)
-    {
-        QListWidget * list = item->listWidget();
-        list->blockSignals(true);
-
-        for(int i = 0; i < layers.size(); i++)
-        {
-            list->item(i + 1)->setCheckState(isChecked ? Qt::Checked : Qt::Unchecked);
-            layers[i].enabled = isChecked;
-        }
-
-        list->blockSignals(false);
-    }
-    else
-    {
-        layers[idx].enabled = isChecked;
-    }
-
-    map->emitSigCanvasUpdate();
-}
-
-
-void CMapWMTS::draw(IDrawContext::buffer_t& buf) /* override */
-{
-    QMutexLocker lock(&mutex);
-
-    timeLastUpdate.start();
-    urlQueue.clear();
-
-    if(map->needsRedraw())
-    {
-        return;
-    }
-
-    QPointF bufferScale = buf.scale * buf.zoomFactor;
-
-    if(isOutOfScale(bufferScale))
-    {
-        return;
-    }
-
-    // get pixel offset of top left buffer corner
-    QPointF pp = buf.ref1;
-    map->convertRad2Px(pp);
-
-    // start to draw the map
-    QPainter p(&buf.image);
-    USE_ANTI_ALIASING(p,true);
-    p.setOpacity(getOpacity()/100.0);
-    p.translate(-pp);
-
-    // calculate maximum viewport
-    qreal x1 = buf.ref1.x() < buf.ref4.x() ? buf.ref1.x() : buf.ref4.x();
-    qreal y1 = buf.ref1.y() > buf.ref2.y() ? buf.ref1.y() : buf.ref2.y();
-
-    qreal x2 = buf.ref2.x() > buf.ref3.x() ? buf.ref2.x() : buf.ref3.x();
-    qreal y2 = buf.ref3.y() < buf.ref4.y() ? buf.ref3.y() : buf.ref4.y();
-
-    if(x1 < -180.0*DEG_TO_RAD)
-    {
-        x1 = -180*DEG_TO_RAD;
-    }
-    if(x2 >  180.0*DEG_TO_RAD)
-    {
-        x2 =  180*DEG_TO_RAD;
-    }
-
-
-    QRectF viewport(QPointF(x1,y1) * RAD_TO_DEG, QPointF(x2,y2) * RAD_TO_DEG);
-
-    // draw layers
-    for(const layer_t &layer : layers)
-    {
-        if(!layer.boundingBox.intersects(viewport) || !layer.enabled)
-        {
-            continue;
-        }
-
-        const tileset_t& tileset            = tilesets[layer.tileMatrixSet];
-        const QMap<QString,limit_t>& limits = layer.limits;
-
-        // convert viewport to layer's coordinate system
-        QPointF pt1(x1,y1);
-        QPointF pt2(x2,y2);
-
-        pj_transform(pjtar, tileset.pjsrc, 1, 0, &pt1.rx(), &pt1.ry(), 0);
-        pj_transform(pjtar, tileset.pjsrc, 1, 0, &pt2.rx(), &pt2.ry(), 0);
-
-        if(pj_is_latlong(tileset.pjsrc))
-        {
-            pt1 *= RAD_TO_DEG;
-            pt2 *= RAD_TO_DEG;
-        }
-
-        // search matrix ID of tile level with best matching scale
-        QString tileMatrixId;
-        QPointF s1 = (pt2 - pt1)/QPointF(buf.image.width(), buf.image.height());
-        qreal d = NOFLOAT;
-        for(const QString &key : tileset.tilematrix.keys())
-        {
-            const tilematrix_t& tilematrix = tileset.tilematrix[key];
-            qreal s2 = tilematrix.scale * 0.28e-3;
-
-
-            if(qAbs(s2 - s1.x()) < d)
-            {
-                tileMatrixId = key;
-                d = qAbs(s2 - s1.x());
-            }
-        }
-
-
-        // get min/max col/row values for that level
-        qint32 minRow, maxRow, minCol, maxCol;
-        const tilematrix_t& tilematrix = tileset.tilematrix[tileMatrixId];
-        if(!limits.isEmpty())
-        {
-            if(limits.contains(tileMatrixId))
-            {
-                const limit_t& limit = limits[tileMatrixId];
-                minCol = limit.minTileCol;
-                maxCol = limit.maxTileCol;
-                minRow = limit.minTileRow;
-                maxRow = limit.maxTileRow;
-            }
-            else
-            {
-                // layer has limits but not for the selected tileMatrixId -> skip layer
-                continue;
-            }
-        }
-        else
-        {
-            minCol = 0;
-            maxCol = tilematrix.matrixWidth;
-            minRow = 0;
-            maxRow = tilematrix.matrixHeight;
-        }
-
-
-        // derive range of col/row to request tiles
-        qreal xscale =  tilematrix.scale * 0.28e-3;
-        qreal yscale = -tilematrix.scale * 0.28e-3;
-
-        qint32 col1 = qFloor((pt1.x() - tilematrix.topLeft.x()) / ( xscale * tilematrix.tileWidth));
-        qint32 row1 = qFloor((pt1.y() - tilematrix.topLeft.y()) / ( yscale * tilematrix.tileHeight));
-        qint32 col2 = qFloor((pt2.x() - tilematrix.topLeft.x()) / ( xscale * tilematrix.tileWidth));
-        qint32 row2 = qFloor((pt2.y() - tilematrix.topLeft.y()) / ( yscale * tilematrix.tileHeight));
-
-
-        if(col1 < minCol)
-        {
-            col1 = minCol;
-        }
-        if(col1 > maxCol)
-        {
-            col1 = maxCol;
-        }
-        if(row1 < minRow)
-        {
-            row1 = minRow;
-        }
-        if(row1 > maxRow)
-        {
-            row1 = maxRow;
-        }
-
-        if(col2 < minCol)
-        {
-            col2 = minCol;
-        }
-        if(col2 > maxCol)
-        {
-            col2 = maxCol;
-        }
-        if(row2 < minRow)
-        {
-            row2 = minRow;
-        }
-        if(row2 > maxRow)
-        {
-            row2 = maxRow;
-        }
-
-
-        // start to request tiles. draw tiles in cache, queue urls of tile yet to be requested
-        for(qint32 row = row1; row <= row2; row++)
-        {
-            for(qint32 col = col1; col <= col2; col++)
-            {
-                QString url = layer.resourceURL;
-                url = url.replace("{TileMatrix}",tileMatrixId, Qt::CaseInsensitive);
-                url = url.replace("{TileRow}",QString::number(row), Qt::CaseInsensitive);
-                url = url.replace("{TileCol}",QString::number(col), Qt::CaseInsensitive);
-
-                if(diskCache->contains(url))
-                {
-                    QImage img;
-                    diskCache->restore(url, img);
-
-                    QPolygonF l;
-
-                    qreal xx1 =  col      * (xscale * tilematrix.tileWidth)  + tilematrix.topLeft.x();
-                    qreal yy1 =  row      * (yscale * tilematrix.tileHeight) + tilematrix.topLeft.y();
-                    qreal xx2 = (col + 1) * (xscale * tilematrix.tileWidth)  + tilematrix.topLeft.x();
-                    qreal yy2 = (row + 1) * (yscale * tilematrix.tileHeight) + tilematrix.topLeft.y();
-
-                    l << QPointF(xx1, yy1) << QPointF(xx2, yy1) << QPointF(xx2, yy2) << QPointF(xx1, yy2);
-                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[0].rx(), &l[0].ry(), 0);
-                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[1].rx(), &l[1].ry(), 0);
-                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[2].rx(), &l[2].ry(), 0);
-                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[3].rx(), &l[3].ry(), 0);
-
-                    drawTile(img, l, p);
-                }
-                else
-                {
-                    urlQueue << url;
-                }
-            }
-        }
-
-        emit sigQueueChanged();
-    }
-}
diff --git a/src/mouse/CMouseDummy.cpp b/src/mouse/CMouseDummy.cpp
deleted file mode 100644
index 39e40c1..0000000
--- a/src/mouse/CMouseDummy.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "CMouseDummy.h"
-
-CMouseDummy::CMouseDummy()
-    : IMouse(nullptr, nullptr)
-{
-    cursor = QCursor(QPixmap(":/cursors/cursorArrow.png"),0,0);
-}
-
-CMouseDummy::~CMouseDummy()
-{
-}
-
diff --git a/src/mouse/CMouseDummy.h b/src/mouse/CMouseDummy.h
deleted file mode 100644
index 2d55832..0000000
--- a/src/mouse/CMouseDummy.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEDUMMY_H
-#define CMOUSEDUMMY_H
-
-#include "mouse/IMouse.h"
-
-
-class CMouseDummy : public IMouse
-{
-public:
-    CMouseDummy();
-    virtual ~CMouseDummy();
-
-    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override
-    {
-    }
-    void mousePressEvent(QMouseEvent * e) override
-    {
-    }
-    void mouseMoveEvent(QMouseEvent * e) override
-    {
-    }
-    void mouseReleaseEvent(QMouseEvent *e) override
-    {
-    }
-};
-
-#endif //CMOUSEDUMMY_H
-
diff --git a/src/mouse/CMouseEditArea.cpp b/src/mouse/CMouseEditArea.cpp
deleted file mode 100644
index 822e4f3..0000000
--- a/src/mouse/CMouseEditArea.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "mouse/CMouseEditArea.h"
-
-#include <QtWidgets>
-
-CMouseEditArea::CMouseEditArea(const QPointF& point, CGisDraw * gis, CCanvas * parent)
-    : IMouseEditLine(IGisItem::key_t(), point, false, tr("Area"), gis, parent)
-{
-    startNewLine(point);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-CMouseEditArea::CMouseEditArea(CGisItemOvlArea &area, CGisDraw * gis, CCanvas * parent)
-    : IMouseEditLine(area.getKey(), area, false, tr("Area"), gis, parent)
-{
-    canvas->reportStatus(key.item, tr("<b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-CMouseEditArea::~CMouseEditArea()
-{
-    canvas->reportStatus(key.item, "");
-}
-
-void CMouseEditArea::mousePressEvent(QMouseEvent * e)
-{
-    canvas->reportStatus(key.item, "");
-    IMouseEditLine::mousePressEvent(e);
-}
-
-void CMouseEditArea::drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p)
-{
-    p.setPen(QPen(color, width, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.setBrush(QBrush(Qt::magenta, Qt::BDiagPattern));
-    p.drawPolygon(l);
-}
-
-IGisLine * CMouseEditArea::getGisLine() const
-{
-    return dynamic_cast<CGisItemOvlArea*>(CGisWorkspace::self().getItemByKey(key));
-}
-
-void CMouseEditArea::slotAbort()
-{
-    canvas->reportStatus(key.item,"");
-    IMouseEditLine::slotAbortEx(false);
-}
-
-void CMouseEditArea::slotCopyToOrig()
-{
-    canvas->reportStatus(key.item,"");
-    IMouseEditLine::slotCopyToOrig();
-}
-
-void CMouseEditArea::slotCopyToNew()
-{
-    canvas->reportStatus(key.item,"");
-
-    if(points.size() < 3)
-    {
-        return;
-    }
-
-    IGisProject * project = nullptr;
-
-    QString name;
-    CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(CGisWorkspace::self().getItemByKey(key));
-    if(area != nullptr)
-    {
-        name = area->getName();
-    }
-
-    if(!IGisItem::getNameAndProject(name, project, tr("area")))
-    {
-        return;
-    }
-
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        new CGisItemOvlArea(points, name, project, NOIDX);
-    }
-
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
diff --git a/src/mouse/CMouseEditArea.h b/src/mouse/CMouseEditArea.h
deleted file mode 100644
index 1366b03..0000000
--- a/src/mouse/CMouseEditArea.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEEDITAREA_H
-#define CMOUSEEDITAREA_H
-
-#include "gis/IGisItem.h"
-#include "mouse/line/IMouseEditLine.h"
-
-class CGisItemOvlArea;
-
-class CMouseEditArea : public IMouseEditLine
-{
-    Q_OBJECT
-public:
-    CMouseEditArea(const QPointF& point, CGisDraw * gis, CCanvas * parent);
-    CMouseEditArea(CGisItemOvlArea &area, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseEditArea();
-
-    void mousePressEvent(QMouseEvent * e) override;
-
-protected slots:
-    void slotAbort()      override;
-    void slotCopyToNew()  override;
-    void slotCopyToOrig() override;
-
-protected:
-    void drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p) override;
-
-    IGisLine * getGisLine() const override;
-};
-
-#endif //CMOUSEEDITAREA_H
-
diff --git a/src/mouse/CMouseEditRte.cpp b/src/mouse/CMouseEditRte.cpp
deleted file mode 100644
index de502a6..0000000
--- a/src/mouse/CMouseEditRte.cpp
+++ /dev/null
@@ -1,117 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/rte/CGisItemRte.h"
-#include "mouse/CMouseEditRte.h"
-#include "mouse/line/CScrOptEditLine.h"
-
-#include <QtWidgets>
-
-
-CMouseEditRte::CMouseEditRte(const QPointF &point, CGisDraw *gis, CCanvas *parent)
-    : IMouseEditLine(IGisItem::key_t(), point, true, tr("Route"), gis, parent)
-{
-    startNewLine(point);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-CMouseEditRte::CMouseEditRte(CGisItemRte &rte, CGisDraw * gis, CCanvas * parent)
-    : IMouseEditLine(rte.getKey(), rte, true, tr("Route"), gis, parent)
-{
-    canvas->reportStatus(key.item, tr("<b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
-
-    if(!points.first().subpts.isEmpty())
-    {
-        scrOptEditLine->toolAutoRoute->setChecked(true);
-    }
-    else
-    {
-        scrOptEditLine->toolNoRoute->setChecked(true);
-    }
-
-    /*
-        trigger complete update of GIS components to make sure all changes to
-        the originating object are reflected on the canvas
-     */
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-
-CMouseEditRte::~CMouseEditRte()
-{
-}
-
-void CMouseEditRte::mousePressEvent(QMouseEvent * e)
-{
-    canvas->reportStatus(key.item, "");
-    IMouseEditLine::mousePressEvent(e);
-}
-
-IGisLine * CMouseEditRte::getGisLine() const
-{
-    return dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
-}
-
-void CMouseEditRte::slotAbort()
-{
-    canvas->reportStatus(key.item,"");
-    IMouseEditLine::slotAbortEx(false);
-}
-
-void CMouseEditRte::slotCopyToOrig()
-{
-    canvas->reportStatus(key.item,"");
-    IMouseEditLine::slotCopyToOrig();
-}
-
-
-void CMouseEditRte::slotCopyToNew()
-{
-    canvas->reportStatus(key.item,"");
-
-    if(points.size() < 2)
-    {
-        return;
-    }
-
-
-    IGisProject * project = nullptr;
-
-    QString name;
-    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
-    if(rte != nullptr)
-    {
-        name = rte->getName();
-    }
-
-    if(!IGisItem::getNameAndProject(name, project, tr("route")))
-    {
-        return;
-    }
-
-
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        new CGisItemRte(points,name, project, NOIDX);
-    }
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
diff --git a/src/mouse/CMouseEditRte.h b/src/mouse/CMouseEditRte.h
deleted file mode 100644
index 888730b..0000000
--- a/src/mouse/CMouseEditRte.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEEDITRTE_H
-#define CMOUSEEDITRTE_H
-
-#include "gis/IGisItem.h"
-#include "mouse/line/IMouseEditLine.h"
-
-class CGisItemRte;
-
-class CMouseEditRte : public IMouseEditLine
-{
-    Q_OBJECT
-public:
-    CMouseEditRte(const QPointF& point, CGisDraw * gis, CCanvas * parent);
-    CMouseEditRte(CGisItemRte &rte, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseEditRte();
-
-    void mousePressEvent(QMouseEvent * e) override;
-
-protected slots:
-    void slotAbort()      override;
-    void slotCopyToNew()  override;
-    void slotCopyToOrig() override;
-
-protected:
-    IGisLine* getGisLine() const override;
-};
-
-#endif //CMOUSEEDITRTE_H
-
diff --git a/src/mouse/CMouseEditTrk.cpp b/src/mouse/CMouseEditTrk.cpp
deleted file mode 100644
index 746a643..0000000
--- a/src/mouse/CMouseEditTrk.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "mouse/CMouseEditTrk.h"
-
-#include <QtWidgets>
-
-CMouseEditTrk::CMouseEditTrk(const QPointF& point, CGisDraw * gis, CCanvas * parent)
-    : IMouseEditLine(IGisItem::key_t(), point, true, tr("Track"), gis, parent)
-{
-    startNewLine(point);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-CMouseEditTrk::CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * parent)
-    : IMouseEditLine(trk.getKey(), trk, true, tr("Track"), gis, parent)
-    , isNewLine(false)
-{
-    canvas->reportStatus(key.item, tr("<b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
-
-    // reset any focus the track might have.
-    trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseEditTrk");
-    trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseEditTrk");
-    trk.looseUserFocus();
-
-    /*
-        trigger complete update of GIS components to make sure all changes to
-        the originating object are reflected on the canvas
-     */
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-CMouseEditTrk::~CMouseEditTrk()
-{
-//    canvas->reportStatus(key,"");
-}
-
-void CMouseEditTrk::mousePressEvent(QMouseEvent * e)
-{
-    canvas->reportStatus(key.item, "");
-    IMouseEditLine::mousePressEvent(e);
-}
-
-IGisLine * CMouseEditTrk::getGisLine() const
-{
-    return dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-}
-
-void CMouseEditTrk::slotAbort()
-{
-    canvas->reportStatus(key.item, "");
-    IMouseEditLine::slotAbortEx(false);
-}
-
-void CMouseEditTrk::slotCopyToOrig()
-{
-    canvas->reportStatus(key.item, "");
-
-    if(!isNewLine)
-    {
-        QMessageBox::StandardButton button = QMessageBox::warning(canvas, tr("Warning!"), tr("This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
-
-        if(button != QMessageBox::Ok)
-        {
-            return;
-        }
-    }
-    IMouseEditLine::slotCopyToOrig();
-}
-
-
-void CMouseEditTrk::slotCopyToNew()
-{
-    canvas->reportStatus(key.item,"");
-
-    if(points.size() < 2)
-    {
-        return;
-    }
-
-
-    IGisProject * project = nullptr;
-
-    QString name;
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk != nullptr)
-    {
-        name = trk->getName();
-    }
-
-    if(!IGisItem::getNameAndProject(name, project, tr("track")))
-    {
-        return;
-    }
-
-
-    CMainWindow::self().getElevationAt(points);
-
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-        new CGisItemTrk(points, name, project, NOIDX);
-    }
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
diff --git a/src/mouse/CMouseEditTrk.h b/src/mouse/CMouseEditTrk.h
deleted file mode 100644
index e817591..0000000
--- a/src/mouse/CMouseEditTrk.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEEDITTRK_H
-#define CMOUSEEDITTRK_H
-
-#include "mouse/line/IMouseEditLine.h"
-
-class CGisItemTrk;
-
-class CMouseEditTrk : public IMouseEditLine
-{
-    Q_OBJECT
-public:
-    CMouseEditTrk(const QPointF& point, CGisDraw * gis, CCanvas * parent);
-    CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseEditTrk();
-
-    void mousePressEvent(QMouseEvent * e) override;
-
-protected slots:
-    void slotAbort()      override;
-    void slotCopyToNew()  override;
-    void slotCopyToOrig() override;
-
-
-protected:
-    IGisLine* getGisLine() const override;
-    bool isNewLine = true;
-};
-
-#endif //CMOUSEEDITTRK_H
-
diff --git a/src/mouse/CMouseMoveWpt.cpp b/src/mouse/CMouseMoveWpt.cpp
deleted file mode 100644
index fc77c51..0000000
--- a/src/mouse/CMouseMoveWpt.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/WptIcons.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CDraw.h"
-#include "mouse/CMouseMoveWpt.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-CMouseMoveWpt::CMouseMoveWpt(CGisItemWpt &wpt, CGisDraw * gis, CCanvas *parent)
-    : IMouse(gis, parent),
-    key(wpt.getKey()),
-    origPos(wpt.getPosition()*DEG_TO_RAD),
-    radius(wpt.getProximity()),
-    avoid(wpt.isNogoArea())
-{
-    cursor  = QCursor(QPixmap(":/cursors/cursorMoveWpt.png"), 0, 0);
-    icon    = getWptIconByName(wpt.getIconName(), focus);
-    newPos  = origPos;
-    wpt.setHideArea(true);
-    canvas->triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-CMouseMoveWpt::~CMouseMoveWpt()
-{
-}
-
-void CMouseMoveWpt::draw(QPainter& p, CCanvas::redraw_e, const QRect&)
-{
-    QString val, unit;
-    qreal a1 = 0, a2 = 0;
-    QPointF p1 = origPos;
-    QPointF p2 = newPos;
-
-    qreal d = GPS_Math_Distance(p1.x(), p1.y(), p2.x(), p2.y(), a1, a2);
-    IUnit::self().meter2distance(d, val, unit);
-    const QString &str = QString("%1 %2, %3%4").arg(val).arg(unit).arg(a2, 0, 'f', 1).arg(QChar(0260));
-
-    gis->convertRad2Px(p1);
-    gis->convertRad2Px(p2);
-
-    qreal r = CGisItemWpt::calcRadius(newPos,p2,radius,gis);
-    CGisItemWpt::drawCircle(p,p2,r,avoid,false);
-
-    QPointF p11 = p1 + QPoint(17 * qCos((a1 - 90) * DEG_TO_RAD), 17 * qSin((a1 - 90) * DEG_TO_RAD));
-    QPointF p22 = p2 + QPoint(21 * qCos((a2 + 90) * DEG_TO_RAD), 21 * qSin((a2 + 90) * DEG_TO_RAD));
-
-    QPen pen(Qt::darkBlue, 3);
-    pen.setCapStyle(Qt::RoundCap);
-    pen.setJoinStyle(Qt::MiterJoin);
-    p.setPen(pen);
-
-    p.setBrush(Qt::NoBrush);
-    p.drawEllipse(p1, 16, 16);
-    p.drawEllipse(p2, 16, 16);
-    p.drawLine(p11, p22);
-
-    p.save();
-    p.translate(p22);
-    p.rotate(a2 + 180);
-    QPolygonF arrow;
-    arrow << QPointF(0, 0) << QPointF(5, -20) << QPointF(0, -10) << QPointF(-5, -20);
-    p.setBrush(Qt::NoBrush);
-    p.drawPolygon(arrow);
-    p.restore();
-
-    CDraw::text(str, p, (p2 + QPoint(0, -30)).toPoint(), Qt::darkBlue);
-
-    p.drawPixmap(p1 - focus, icon);
-    p.drawPixmap(p2 - focus, icon);
-}
-
-
-void CMouseMoveWpt::mousePressEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-    if(e->button() == Qt::RightButton)
-    {
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-        if(wpt != nullptr)
-        {
-            wpt->setHideArea(false);
-        }
-        canvas->resetMouse();
-        canvas->triggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-    else if(e->button() == Qt::LeftButton)
-    {
-        mapMove = true;
-        lastPoint = point;
-    }
-}
-
-void CMouseMoveWpt::mouseMoveEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-
-    if(mapMove)
-    {
-        if(point != lastPoint)
-        {
-            QPoint delta = point - lastPoint;
-            canvas->moveMap(delta);
-            mapDidMove = true;
-        }
-    }
-    else
-    {
-        newPos = point;
-        gis->convertPx2Rad(newPos);
-    }
-
-    lastPoint = point;
-    canvas->update();
-}
-
-void CMouseMoveWpt::mouseReleaseEvent(QMouseEvent *e)
-{
-    point = e->pos();
-    if(!mapDidMove && (e->button() == Qt::LeftButton))
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-
-        QPointF pos = e->pos();
-        gis->convertPx2Rad(pos);
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-        if(wpt != nullptr)
-        {
-            wpt->setPosition(pos * RAD_TO_DEG);
-            wpt->setHideArea(false);
-        }
-        canvas->resetMouse();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    mapMove     = false;
-    mapDidMove    = false;
-}
-
-void CMouseMoveWpt::wheelEvent(QWheelEvent*)
-{
-    canvas->update();
-}
-
-void CMouseMoveWpt::afterMouseLostEvent(QMouseEvent *e)
-{
-    if (e->type() == QEvent::MouseMove)
-    {
-        lastPoint = e->pos();
-    }
-    mapMove = e->buttons() & Qt::LeftButton;
-    mapDidMove = true;
-}
-
diff --git a/src/mouse/CMouseMoveWpt.h b/src/mouse/CMouseMoveWpt.h
deleted file mode 100644
index 84af0d9..0000000
--- a/src/mouse/CMouseMoveWpt.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEMOVEWPT_H
-#define CMOUSEMOVEWPT_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IMouse.h"
-
-#include <QPixmap>
-
-class CCanvas;
-class CGisItemWpt;
-class CGisDraw;
-
-class CMouseMoveWpt : public IMouse
-{
-public:
-    CMouseMoveWpt(CGisItemWpt& wpt, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseMoveWpt();
-
-    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-    void mousePressEvent(QMouseEvent *e) override;
-    void mouseMoveEvent(QMouseEvent *e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-    void wheelEvent(QWheelEvent *e) override;
-    void afterMouseLostEvent(QMouseEvent *e) override;
-
-private:
-    const IGisItem::key_t key;
-    const QPointF origPos;
-    const qreal radius;
-    const bool avoid;
-
-    QPointF newPos;
-    QPointF focus;
-    QPixmap icon;
-
-    bool mapMove    = false;
-    bool mapDidMove   = false;
-
-    QPoint lastPoint;
-};
-
-#endif //CMOUSEMOVEWPT_H
-
diff --git a/src/mouse/CMouseNormal.cpp b/src/mouse/CMouseNormal.cpp
deleted file mode 100644
index 3e74599..0000000
--- a/src/mouse/CMouseNormal.cpp
+++ /dev/null
@@ -1,464 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/prj/IGisProject.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "mouse/CMouseNormal.h"
-#include "mouse/CScrOptUnclutter.h"
-#include "widgets/CFadingIcon.h"
-
-#include <QtWidgets>
-
-CMouseNormal::CMouseNormal(CGisDraw *gis, CCanvas *canvas)
-    : IMouse(gis, canvas)
-{
-    cursor = QCursor(QPixmap(":/cursors/cursorMoveMap.png"),0,0);
-    screenUnclutter = new CScrOptUnclutter(this);
-
-    menu = new QMenu(canvas);
-    actionPoiAsWpt = menu->addAction(QIcon("://icons/32x32/AddWpt.png"),  tr("Add POI as Waypoint"), this, SLOT(slotAddPoi()));
-    menu->addAction(QIcon("://icons/32x32/AddWpt.png"),  tr("Add Waypoint"), this, SLOT(slotAddWpt()));
-    menu->addAction(QIcon("://icons/32x32/AddTrk.png"),  tr("Add Track"),    this, SLOT(slotAddTrk()));
-    menu->addAction(QIcon("://icons/32x32/AddRte.png"),  tr("Add Route"),    this, SLOT(slotAddRte()));
-    menu->addAction(QIcon("://icons/32x32/AddArea.png"), tr("Add Area"),     this, SLOT(slotAddArea()));
-    menu->addSeparator();
-    menu->addAction(QIcon("://icons/32x32/SelectArea.png"), tr("Select Items On Map"), this, SLOT(slotSelectArea()));
-    menu->addSeparator();
-    menu->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy position"), this, SLOT(slotCopyPosition()));
-    menu->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy position (Grid)"), this, SLOT(slotCopyPositionGrid()));
-}
-
-CMouseNormal::~CMouseNormal()
-{
-}
-
-void CMouseNormal::stopTracking() const
-{
-    const IGisItem::key_t& key = CGisItemTrk::getKeyUserFocus();
-    if(!key.item.isEmpty())
-    {
-        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-        if(trk != nullptr)
-        {
-            trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
-        }
-    }
-}
-
-void CMouseNormal::mousePressEvent(QMouseEvent * e)
-{
-    point = e->pos();
-
-    if(e->button() == Qt::LeftButton)
-    {
-        lastPos     = e->pos();
-        firstPos    = lastPos;
-        // start to block map moving when a previous click
-        // has triggered a selection of any kind
-        mapMove     = (stateItemSel < eStateNoMapMovePossible);
-        mapDidMove  = false;
-    }
-    else if(e->button() == Qt::RightButton)
-    {
-        QPoint p = canvas->mapToGlobal(point);
-
-        actionPoiAsWpt->setEnabled(curPOI.pos != NOPOINTF);
-        menu->exec(p);
-    }
-}
-
-void CMouseNormal::mouseMoveEvent(QMouseEvent * e)
-{
-    screenUnclutter->mouseMoveEvent(e);
-    if(!screenItemOption.isNull())
-    {
-        screenItemOption->mouseMoveEvent(e);
-    }
-
-    point = e->pos();
-
-    if(mapMove)
-    {
-        if((point - firstPos).manhattanLength() >= 4)
-        {
-            QPoint delta = point - lastPos;
-            canvas->moveMap(delta);
-            lastPos    = point;
-            mapDidMove = true;
-        }
-    }
-    else
-    {
-        switch(stateItemSel)
-        {
-        case eStateIdle:
-            CGisWorkspace::self().mouseMove(point);
-
-        //break; skip break intentionally
-        case eStateHooverSingle:
-        case eStateHooverMultiple:
-        {
-            const IGisItem::key_t& keyTrk = CGisItemTrk::getKeyUserFocus();
-            if(!keyTrk.item.isEmpty())
-            {
-                CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(keyTrk));
-                if(trk != nullptr)
-                {
-                    trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
-                }
-            }
-
-            const IGisItem::key_t& keyRte = CGisItemRte::getKeyUserFocus();
-            if(!keyRte.item.isEmpty())
-            {
-                CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(keyRte));
-                if(rte != nullptr)
-                {
-                    rte->setMouseFocusByPoint(point, CGisItemRte::eFocusMouseMove, "CMouseNormal");
-                }
-            }
-            break;
-        }
-
-        default:
-            ;
-        }
-
-        curPOI = canvas->findPOICloseBy(point);
-
-        canvas->displayInfo(point);
-        canvas->update();
-    }
-}
-
-void CMouseNormal::mouseReleaseEvent(QMouseEvent *e)
-{
-    point = e->pos();
-    if(e->button() == Qt::LeftButton)
-    {
-        if(!mapDidMove)
-        {
-            switch(stateItemSel)
-            {
-            case eStateIdle:
-            {
-                CGisWorkspace::self().slotWksItemSelectionReset();
-                break;
-            }
-
-            case eStateHooverSingle:
-            {
-                stateItemSel = eStateIdle;
-
-                IGisItem * item = CGisWorkspace::self().getItemByKey(screenUnclutter->getItemKey());
-                if(nullptr != item)
-                {
-                    scrollToItem(item);
-                    if(setScreenOption(point, item))
-                    {
-                        stateItemSel = eStateShowItemOptions;
-                    }
-                    stopTracking();
-                }
-                break;
-            }
-
-            case eStateHooverMultiple:
-            {
-                screenUnclutter->setOrigin(e->pos());
-                stateItemSel = eStateUnclutterMultiple;
-                stopTracking();
-                break;
-            }
-
-            case eStateUnclutterMultiple:
-            {
-                const CScrOptUnclutter::item_t * scrOpt = screenUnclutter->selectItem(point);
-                if(scrOpt != nullptr)
-                {
-                    IGisItem * item = CGisWorkspace::self().getItemByKey(scrOpt->key);
-                    screenUnclutter->clear(); // CAUTION!! this will delete the object scrOpt is pointing to.
-                    scrOpt = nullptr;
-                    if(item)
-                    {
-                        scrollToItem(item);
-                        if(setScreenOption(screenUnclutter->getOrigin(), item))
-                        {
-                            stateItemSel = eStateShowItemOptions;
-                            break;
-                        }
-                    }
-                }
-                resetState();
-                CGisWorkspace::self().slotWksItemSelectionReset();
-                break;
-            }
-
-            case eStateShowItemOptions:
-            {
-                resetState();
-                CGisWorkspace::self().slotWksItemSelectionReset();
-                break;
-            }
-            }
-
-            canvas->update();
-        }
-        mapMove     = false;
-        mapDidMove  = false;
-    }
-}
-
-void CMouseNormal::mouseDoubleClickEvent(QMouseEvent *e)
-{
-    if(stateItemSel == eStateIdle)
-    {
-        const IGisItem::key_t& keyTrk = CGisItemTrk::getKeyUserFocus();
-        CGisWorkspace::self().focusTrkByKey(false, keyTrk);
-
-        const IGisItem::key_t& keyRte = CGisItemRte::getKeyUserFocus();
-        CGisWorkspace::self().focusRteByKey(false, keyRte);
-    }
-}
-
-void CMouseNormal::wheelEvent(QWheelEvent * e)
-{
-    resetState();
-}
-
-void CMouseNormal::keyPressEvent(QKeyEvent * e)
-{
-    resetState();
-}
-
-void CMouseNormal::afterMouseLostEvent(QMouseEvent *e)
-{
-    resetState();
-
-    if (e->type() == QEvent::MouseMove)
-    {
-        lastPos    = e->pos();
-        firstPos   = lastPos;
-    }
-    mapMove = e->buttons() & Qt::LeftButton;
-    mapDidMove = true;
-}
-
-void CMouseNormal::resetState()
-{
-    screenUnclutter->clear();
-    if(!screenItemOption.isNull())
-    {
-        screenItemOption->deleteLater();
-    }
-    stateItemSel = eStateIdle;
-}
-
-void CMouseNormal::scrollToItem(IGisItem * item)
-{
-    QTreeWidget * treeWidget = item->treeWidget();
-    // block signals as this is an internal
-    // change and no user interaction with
-    // the tree widget
-    treeWidget->blockSignals(true);
-    treeWidget->collapseAll();
-    treeWidget->setCurrentItem(item);
-    treeWidget->scrollToItem(item, QAbstractItemView::PositionAtCenter);
-    treeWidget->blockSignals(false);
-}
-
-bool CMouseNormal::setScreenOption(const QPoint& pt, IGisItem * item)
-{
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
-    if(trk && trk->setMouseFocusByPoint(pt, CGisItemTrk::eFocusMouseClick, "CMouseNormal") == NOPOINTF)
-    {
-        new CFadingIcon(pt, "://icons/48x48/NoGo.png", canvas);
-        return false;
-    }
-
-    delete screenItemOption;
-    screenItemOption = item->getScreenOptions(pt, this);
-
-    return !screenItemOption.isNull();
-}
-
-void CMouseNormal::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
-{
-    // no mouse interaction while gis thread is running
-    if(gis->isRunning())
-    {
-        return;
-    }
-
-    switch(stateItemSel)
-    {
-    case eStateIdle:
-    case eStateHooverSingle:
-    case eStateHooverMultiple:
-    {
-        if(curPOI.pos != NOPOINTF)
-        {
-            const QSize s = curPOI.symbolSize;
-            const qint32 x = (qMax(qMax(s.width(), s.height()), 7)<<1) & 0xFFFFFFFE;
-
-            p.drawImage(curPOI.pos - QPointF(x,x), QImage("://cursors/wptHighlightBlue.png").scaled(x<<1, x<<1, Qt::KeepAspectRatio, Qt::SmoothTransformation));
-        }
-
-        /*
-            Collect and draw items close to the last mouse position in the draw method.
-
-            This might be a bit odd but there are two reasons:
-
-            1) Multiple update events are combined by the event loop. Thus multiple mouse move
-               events are reduced to a single paint event. As getItemsByPos() is quite cycle
-               intense this seems like a good idea.
-
-            2) The list of items passed back by getItemsByPos() must not be stored. That is why
-               the list has to be generated within the draw handler to access the item's drawHighlight()
-               method.
-
-         */
-        screenUnclutter->clear();
-
-        QList<IGisItem*> items;
-        CGisWorkspace::self().getItemsByPos(point, items);
-
-        if(items.empty() || items.size() > 8)
-        {
-            stateItemSel = eStateIdle;
-            break;
-        }
-
-        for(IGisItem * item : items)
-        {
-            item->drawHighlight(p);
-            screenUnclutter->addItem(item);
-        }
-
-        stateItemSel = (screenUnclutter->size() == 1) ? eStateHooverSingle : eStateHooverMultiple;
-        break;
-    }
-
-    case eStateUnclutterMultiple:
-    {
-        screenUnclutter->draw(p);
-        break;
-    }
-
-    case eStateShowItemOptions:
-    {
-        if(screenItemOption.isNull())
-        {
-            stateItemSel = eStateIdle;
-            break;
-        }
-
-        // the screen option might not be destroyed yet, but already hidden
-        if(screenItemOption->isVisible())
-        {
-            screenItemOption->draw(p);
-        }
-        break;
-    }
-
-    default:
-        ;
-    }
-}
-
-void CMouseNormal::slotAddPoi() const
-{
-    QPointF pt = curPOI.pos;
-    gis->convertPx2Rad(pt);
-    pt *= RAD_TO_DEG;
-
-    CGisWorkspace::self().addWptByPos(pt, curPOI.name, curPOI.desc);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseNormal::slotAddWpt() const
-{
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-    pt *= RAD_TO_DEG;
-
-    CGisWorkspace::self().addWptByPos(pt);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseNormal::slotAddTrk() const
-{
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-
-    canvas->setMouseEditTrk(pt);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseNormal::slotAddRte() const
-{
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-
-    canvas->setMouseEditRte(pt);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseNormal::slotAddArea() const
-{
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-
-    canvas->setMouseEditArea(pt);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseNormal::slotCopyPosition() const
-{
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-
-    QString position;
-    IUnit::degToStr(pt.x() * RAD_TO_DEG, pt.y() * RAD_TO_DEG, position);
-
-    QClipboard *clipboard = QApplication::clipboard();
-    clipboard->setText(position);
-}
-
-void CMouseNormal::slotCopyPositionGrid() const
-{
-    QString position;
-    QPointF pt = point;
-    gis->convertPx2Rad(pt);
-
-    canvas->convertGridPos2Str(pt * RAD_TO_DEG, position, true);
-
-    QClipboard *clipboard = QApplication::clipboard();
-    clipboard->setText(position);
-}
-
-void CMouseNormal::slotSelectArea() const
-{
-    canvas->setMouseSelect();
-}
diff --git a/src/mouse/CMouseNormal.h b/src/mouse/CMouseNormal.h
deleted file mode 100644
index 3fabb5a..0000000
--- a/src/mouse/CMouseNormal.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSENORMAL_H
-#define CMOUSENORMAL_H
-
-#include "gis/Poi.h"
-#include "mouse/IMouse.h"
-
-#include <QPixmap>
-#include <QPointer>
-#include <QRect>
-#include <QStringList>
-
-class CCanvas;
-class IScrOpt;
-class CScrOptUnclutter;
-class QMenu;
-
-class CMouseNormal : public IMouse
-{
-    Q_OBJECT
-public:
-    CMouseNormal(CGisDraw * gis, CCanvas *canvas);
-    virtual ~CMouseNormal();
-
-    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw,  const QRect &rect) override;
-    void mousePressEvent(QMouseEvent * e) override;
-    void mouseMoveEvent(QMouseEvent * e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-    void mouseDoubleClickEvent(QMouseEvent *e) override;
-    void wheelEvent(QWheelEvent * e) override;
-    void keyPressEvent(QKeyEvent * e) override;
-    void afterMouseLostEvent(QMouseEvent *e) override;
-
-private slots:
-    void slotAddPoi()           const;
-    void slotAddWpt()           const;
-    void slotAddTrk()           const;
-    void slotAddRte()           const;
-    void slotAddArea()          const;
-    void slotSelectArea()       const;
-    void slotCopyPosition()     const;
-    void slotCopyPositionGrid() const;
-
-private:
-    bool setScreenOption(const QPoint& pt, IGisItem * item);
-    void scrollToItem(IGisItem * item);
-protected:
-    void stopTracking() const;
-    void resetState();
-
-
-    /// the flag is true if the map moving is in progress
-    bool mapMove = false;
-    /// the flag is true if the map has been moved actually
-    bool mapDidMove = false;
-    /// always the last seen mouse cursor position
-    QPoint lastPos;
-    /// the last mouse press event position
-    QPoint firstPos;
-
-    enum item_selection_states_e
-    {
-        eStateIdle = 0
-        , eStateHooverSingle      = 1 //< there is only a single item close to the cursor
-        , eStateHooverMultiple    = 2 //< there are multiple items close to the cursor
-        , eStateNoMapMovePossible = 3 //< not a real state, but at this value and above no map move is allowed to take place
-        , eStateUnclutterMultiple = 3 //< the user clicked on multiple cluttered items and gets now an uncluttered representation
-        , eStateShowItemOptions   = 4 //< the user has selected a single item, show options how to proceed
-    };
-
-    item_selection_states_e stateItemSel = eStateIdle;
-
-    CScrOptUnclutter * screenUnclutter;
-    QPointer<IScrOpt>  screenItemOption;
-
-    QMenu * menu;
-    QAction * actionPoiAsWpt;
-
-    poi_t curPOI;
-};
-
-#endif //CMOUSENORMAL_H
-
diff --git a/src/mouse/CMousePrint.cpp b/src/mouse/CMousePrint.cpp
deleted file mode 100644
index 42ffba2..0000000
--- a/src/mouse/CMousePrint.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "gis/CGisDraw.h"
-#include "mouse/CMousePrint.h"
-#include "mouse/CScrOptPrint.h"
-#include "print/CPrintDialog.h"
-
-#include <QtWidgets>
-
-CMousePrint::CMousePrint(CGisDraw *gis, CCanvas *parent)
-    : IMouseSelect(gis, parent)
-{
-    cursor = QCursor(QPixmap("://cursors/cursorSave.png"),0,0);
-
-    canvas->reportStatus("IMouseSelect", tr("<b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners."));
-
-    CScrOptPrint * scrOptPrint;
-    scrOpt = scrOptPrint = new CScrOptPrint(this);
-
-    connect(scrOptPrint->toolSave,  &QToolButton::clicked, this, &CMousePrint::slotSave);
-    connect(scrOptPrint->toolPrint, &QToolButton::clicked, this, &CMousePrint::slotPrint);
-}
-
-CMousePrint::~CMousePrint()
-{
-}
-
-void CMousePrint::slotSave()
-{
-    CPrintDialog dlg(CPrintDialog::eTypeImage, rectSelection, canvas);
-    dlg.exec();
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
-
-    canvas->resetMouse();
-}
-
-void CMousePrint::slotPrint()
-{
-    CPrintDialog dlg(CPrintDialog::eTypePrint, rectSelection, canvas);
-    dlg.exec();
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
-
-    canvas->resetMouse();
-}
-
diff --git a/src/mouse/CMousePrint.h b/src/mouse/CMousePrint.h
deleted file mode 100644
index 3b65c4b..0000000
--- a/src/mouse/CMousePrint.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEPRINT_H
-#define CMOUSEPRINT_H
-
-#include "mouse/IMouseSelect.h"
-
-class CGisDraw;
-class CCanvas;
-
-class CMousePrint : public IMouseSelect
-{
-    Q_OBJECT
-public:
-    CMousePrint(CGisDraw * gis, CCanvas * parent);
-    virtual ~CMousePrint();
-
-private slots:
-    void slotSave();
-    void slotPrint();
-};
-
-#endif //CMOUSEPRINT_H
-
diff --git a/src/mouse/CMouseRadiusWpt.cpp b/src/mouse/CMouseRadiusWpt.cpp
deleted file mode 100644
index 75a044f..0000000
--- a/src/mouse/CMouseRadiusWpt.cpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/WptIcons.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CDraw.h"
-#include "mouse/CMouseRadiusWpt.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-
-
-#include <QtWidgets>
-
-CMouseRadiusWpt::CMouseRadiusWpt(CGisItemWpt &wpt, CGisDraw * gis, CCanvas * parent)
-    : IMouse(gis, parent),
-    key(wpt.getKey()),
-    wptPosition(wpt.getPosition() * DEG_TO_RAD),
-    avoid(wpt.isNogoArea()),
-    start(true)
-{
-    QPointF pos = GPS_Math_Wpt_Projection(wptPosition,wpt.getProximity(),90 * DEG_TO_RAD);
-    gis->convertRad2Px(pos);
-    point = QPoint(pos.rx(),pos.ry());
-    cursor  = QCursor(QPixmap(":/cursors/cursorRadiusWpt.png"), 0, 0);
-    wpt.setHideArea(true);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-CMouseRadiusWpt::~CMouseRadiusWpt()
-{
-}
-
-void CMouseRadiusWpt::draw(QPainter& p, CCanvas::redraw_e, const QRect&)
-{
-    QPointF pos = point;
-    gis->convertPx2Rad(pos);
-    dist = GPS_Math_Distance(pos.rx(),pos.ry(),wptPosition.x(),wptPosition.y());
-    QPointF screenPos = wptPosition;
-    gis->convertRad2Px(screenPos);
-    qreal radius = CGisItemWpt::calcRadius(wptPosition,screenPos,dist,gis);
-
-    CGisItemWpt::drawCircle(p,screenPos,radius,avoid,start);
-}
-
-void CMouseRadiusWpt::mousePressEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-    if(e->button() == Qt::RightButton)
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-        if(wpt != nullptr)
-        {
-            wpt->setHideArea(false);
-        }
-        canvas->resetMouse();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-    else if(e->button() == Qt::LeftButton)
-    {
-        mapMove = true;
-        lastPoint = point;
-    }
-    start = false;
-}
-
-void CMouseRadiusWpt::mouseMoveEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-
-    if(mapMove)
-    {
-        if(point != lastPoint)
-        {
-            QPoint delta = point - lastPoint;
-            canvas->moveMap(delta);
-            mapDidMove = true;
-        }
-    }
-
-    lastPoint = point;
-    canvas->update();
-    start = false;
-}
-
-void CMouseRadiusWpt::mouseReleaseEvent(QMouseEvent *e)
-{
-    point = e->pos();
-    if(!mapDidMove && e->button()==Qt::LeftButton)
-    {
-        QMutexLocker lock(&IGisItem::mutexItems);
-
-        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-        if(wpt != nullptr)
-        {
-            wpt->setProximity(dist);
-            wpt->setHideArea(false);
-        }
-        canvas->resetMouse();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    mapMove     = false;
-    mapDidMove    = false;
-    start = false;
-}
-
-void CMouseRadiusWpt::wheelEvent(QWheelEvent*)
-{
-    canvas->update();
-}
-
-void CMouseRadiusWpt::afterMouseLostEvent(QMouseEvent *e)
-{
-    if (e->type() == QEvent::MouseMove)
-    {
-        lastPoint = e->pos();
-    }
-    mapMove = e->buttons() & Qt::LeftButton;
-    mapDidMove = true;
-}
diff --git a/src/mouse/CMouseRadiusWpt.h b/src/mouse/CMouseRadiusWpt.h
deleted file mode 100644
index 3cfa57e..0000000
--- a/src/mouse/CMouseRadiusWpt.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSERADIUSWPT_H
-#define CMOUSERADIUSWPT_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IMouse.h"
-
-class CGisItemWpt;
-class CGisDraw;
-class CCanvas;
-
-class CMouseRadiusWpt : public IMouse
-{
-    Q_OBJECT
-public:
-    CMouseRadiusWpt(CGisItemWpt& wpt, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseRadiusWpt();
-
-    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-    void mousePressEvent(QMouseEvent *e) override;
-    void mouseMoveEvent(QMouseEvent *e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-    void wheelEvent(QWheelEvent *e) override;
-    void afterMouseLostEvent(QMouseEvent *e) override;
-
-private:
-    const IGisItem::key_t key;
-    const QPointF wptPosition;
-    const bool avoid;
-    bool start;
-    qreal dist;
-
-    bool mapMove    = false;
-    bool mapDidMove   = false;
-
-    QPoint lastPoint;
-};
-
-#endif //CMOUSERADIUSWPT_H
-
diff --git a/src/mouse/CMouseRangeTrk.cpp b/src/mouse/CMouseRangeTrk.cpp
deleted file mode 100644
index 285c6a1..0000000
--- a/src/mouse/CMouseRangeTrk.cpp
+++ /dev/null
@@ -1,298 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "mouse/CMouseRangeTrk.h"
-#include "mouse/CScrOptRangeTrk.h"
-
-#include <QtWidgets>
-
-
-CMouseRangeTrk::CMouseRangeTrk(CGisItemTrk &trk, CGisDraw *gis, CCanvas *parent)
-    : IMouse(gis, parent)
-{
-    cursor      = QCursor(QPixmap("://cursors/cursorSelectRange.png"),0,0);
-    key         = trk.getKey();
-
-    // switch to full mode to show deleted (hidden) track points, too
-    trk.setMode(CGisItemTrk::eModeRange, "CMouseRangeTrk");
-
-    resetState();
-}
-
-CMouseRangeTrk::~CMouseRangeTrk()
-{
-    canvas->reportStatus(key.item, "");
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk)
-    {
-        trk->setMode(CGisItemTrk::eModeNormal, "CMouseRangeTrk");
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    delete scrOptRange;
-}
-
-void CMouseRangeTrk::draw(QPainter& p,  CCanvas::redraw_e, const QRect &)
-{
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk)
-    {
-        trk->drawRange(p);
-        if(!mapDidMove && (anchor != NOPOINTF))
-        {
-            p.setPen(Qt::darkBlue);
-            p.setBrush(QColor(255,255,255,200));
-            p.drawEllipse(anchor, 6, 6);
-
-            QPixmap bullet("://icons/8x8/bullet_magenta.png");
-            p.drawPixmap(anchor.x() - 3, anchor.y() - 3, bullet);
-        }
-    }
-
-    if(!scrOptRange.isNull())
-    {
-        scrOptRange->draw(p);
-    }
-}
-
-void CMouseRangeTrk::mousePressEvent(QMouseEvent * e)
-{
-    canvas->reportStatus(key.item, "");
-    point = e->pos();
-    if(e->button() == Qt::RightButton)
-    {
-        canvas->resetMouse();
-        canvas->update();
-    }
-    else if(e->button() == Qt::LeftButton)
-    {
-        mapMove     = true;
-        firstPoint  = point;
-    }
-}
-
-void CMouseRangeTrk::mouseMoveEvent(QMouseEvent * e)
-{
-    point = e->pos();
-
-    if(mapMove)
-    {
-        if((point - firstPoint).manhattanLength() >= 4)
-        {
-            QPoint delta = point - lastPoint;
-            canvas->moveMap(delta);
-            mapDidMove = true;
-        }
-    }
-    else
-    {
-        switch(state)
-        {
-        case eStateIdle:
-        {
-            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-            if(trk != nullptr)
-            {
-                anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
-                canvas->update();
-            }
-            break;
-        }
-
-        case eStateSelectRange:
-        {
-            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-            if(trk != nullptr)
-            {
-                anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
-                canvas->update();
-            }
-            break;
-        }
-
-        default:
-            ;
-        }
-    }
-    lastPoint = point;
-}
-
-void CMouseRangeTrk::mouseReleaseEvent(QMouseEvent *e)
-{
-    if(e->button() == Qt::LeftButton)
-    {
-        if(!mapDidMove)
-        {
-            switch(state)
-            {
-            case eStateIdle:
-            {
-                CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-                if(trk != nullptr && anchor != NOPOINTF)
-                {
-                    anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
-                    state = eStateSelectRange;
-                    canvas->update();
-                }
-                break;
-            }
-
-
-            case eStateSelectRange:
-            {
-                CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-                if(trk != nullptr && anchor != NOPOINTF)
-                {
-                    QPointF pt = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
-                    scrOptRange = new CScrOptRangeTrk(pt, trk, this);
-                    connect(scrOptRange->toolHidePoints, &QToolButton::clicked, this, &CMouseRangeTrk::slotHidePoints);
-                    connect(scrOptRange->toolShowPoints, &QToolButton::clicked, this, &CMouseRangeTrk::slotShowPoints);
-                    connect(scrOptRange.data(), &CScrOptRangeTrk::activitySelected, this, &CMouseRangeTrk::slotActivity);
-                    connect(scrOptRange->toolCopy,       &QToolButton::clicked, this, &CMouseRangeTrk::slotCopy);
-
-                    state = eStateRangeSelected;
-                    canvas->update();
-                }
-
-                break;
-            }
-
-            case eStateRangeSelected:
-            {
-                resetState();
-                break;
-            }
-            }
-        }
-        mapDidMove = false;
-        mapMove  = false;
-    }
-}
-
-void CMouseRangeTrk::wheelEvent(QWheelEvent * e)
-{
-    if(state == eStateRangeSelected)
-    {
-        resetState();
-    }
-}
-
-void CMouseRangeTrk::keyPressEvent(QKeyEvent * e)
-{
-    if(state == eStateRangeSelected)
-    {
-        resetState();
-    }
-}
-
-void CMouseRangeTrk::afterMouseLostEvent(QMouseEvent *e)
-{
-    if(state == eStateRangeSelected)
-    {
-        resetState();
-    }
-
-    if (e->type() == QEvent::MouseMove)
-    {
-        firstPoint = e->pos();
-    }
-    mapMove = e->buttons() & Qt::LeftButton;
-    mapDidMove = true;
-}
-
-void CMouseRangeTrk::resetState()
-{
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk != nullptr)
-    {
-        trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
-        trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
-    }
-
-    if(!scrOptRange.isNull())
-    {
-        scrOptRange->deleteLater();
-    }
-    state  = eStateIdle;
-    anchor = NOPOINTF;
-
-    canvas->reportStatus(key.item, tr("<b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/>"));
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void CMouseRangeTrk::slotHidePoints()
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk != nullptr)
-    {
-        trk->hideSelectedPoints();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    resetState();
-}
-
-void CMouseRangeTrk::slotShowPoints()
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk != nullptr)
-    {
-        trk->showSelectedPoints();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    resetState();
-}
-
-void CMouseRangeTrk::slotActivity(quint32 flags)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(nullptr != trk)
-    {
-        trk->setActivityRange(flags);
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-
-    scrOptRange->deleteLater();
-    canvas->resetMouse();
-}
-
-void CMouseRangeTrk::slotCopy()
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
-    if(trk != nullptr)
-    {
-        trk->copySelectedPoints();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-    }
-    scrOptRange->deleteLater();
-    canvas->resetMouse();
-}
diff --git a/src/mouse/CMouseRangeTrk.h b/src/mouse/CMouseRangeTrk.h
deleted file mode 100644
index 61455fd..0000000
--- a/src/mouse/CMouseRangeTrk.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSERANGETRK_H
-#define CMOUSERANGETRK_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IMouse.h"
-#include <QPointer>
-
-class CGisItemTrk;
-class CGisDraw;
-class CCanvas;
-class CScrOptRangeTrk;
-
-class CMouseRangeTrk : public IMouse
-{
-    Q_OBJECT
-public:
-    CMouseRangeTrk(CGisItemTrk& trk, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseRangeTrk();
-
-    void draw(QPainter& p, CCanvas::redraw_e, const QRect &) override;
-    void mousePressEvent(QMouseEvent *e) override;
-    void mouseMoveEvent(QMouseEvent *e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-    void wheelEvent(QWheelEvent *e) override;
-    void keyPressEvent(QKeyEvent *e) override;
-    void afterMouseLostEvent(QMouseEvent *e) override;
-
-private slots:
-    void slotHidePoints();
-    void slotShowPoints();
-    void slotActivity(quint32 flags);
-    void slotCopy();
-
-private:
-    void resetState();
-    IGisItem::key_t key;
-
-    enum state_e
-    {
-        eStateIdle
-        ,eStateSelectRange
-        ,eStateRangeSelected
-    };
-
-    bool mapMove    = false;
-    bool mapDidMove = false;
-    state_e state   = eStateIdle;
-    QPointF anchor  = NOPOINTF;
-
-    QPoint lastPoint;
-    QPoint firstPoint;
-
-    QPointer<CScrOptRangeTrk> scrOptRange;
-};
-
-#endif //CMOUSERANGETRK_H
-
diff --git a/src/mouse/CMouseSelect.cpp b/src/mouse/CMouseSelect.cpp
deleted file mode 100644
index 84b4bd3..0000000
--- a/src/mouse/CMouseSelect.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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 "gis/CGisDraw.h"
-#include "gis/CGisWorkspace.h"
-#include "helpers/CWptIconDialog.h"
-#include "mouse/CMouseSelect.h"
-#include "mouse/CScrOptSelect.h"
-
-#include <QtWidgets>
-
-CMouseSelect::CMouseSelect(CGisDraw *gis, CCanvas *parent)
-    : IMouseSelect(gis, parent)
-{
-    cursor = QCursor(QPixmap("://cursors/cursorSelectArea.png"),0,0);
-
-    canvas->reportStatus("IMouseSelect", tr("<b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners."));
-
-    CScrOptSelect * scrOptSelect;
-    scrOpt = scrOptSelect = new CScrOptSelect(this);
-
-    connect(scrOptSelect->toolCopy,         &QToolButton::clicked, this, &CMouseSelect::slotCopy);
-    connect(scrOptSelect->toolRoute,        &QToolButton::clicked, this, &CMouseSelect::slotRoute);
-    connect(scrOptSelect->toolSymWpt,       &QToolButton::clicked, this, &CMouseSelect::slotSymWpt);
-    connect(scrOptSelect->toolCombineTrk,   &QToolButton::clicked, this, &CMouseSelect::slotCombineTrk);
-    connect(scrOptSelect->toolActivityTrk,  &QToolButton::clicked, this, &CMouseSelect::slotActivityTrk);
-    connect(scrOptSelect->toolDelete,       &QToolButton::clicked, this, &CMouseSelect::slotDelete);
-}
-
-CMouseSelect::~CMouseSelect()
-{
-    canvas->reportStatus("CMouseSelect::Stat", "");
-}
-
-
-
-void CMouseSelect::findItems(QList<IGisItem*>& items)
-{
-    CScrOptSelect * scrOptSelect = dynamic_cast<CScrOptSelect*>((IScrOpt*)scrOpt);
-    IGisItem::selflags_t modeSelection = scrOptSelect->getModeSelection();
-
-    if((rectSelection == rectLastSel) && (modeSelection == modeLastSel))
-    {
-        if(!itemKeys.isEmpty())
-        {
-            CGisWorkspace::self().getItemsByKeys(itemKeys, items);
-        }
-    }
-    else
-    {
-        itemKeys.clear();
-
-        QRectF area;
-        rectRad2Px(rectSelection, area);
-        CGisWorkspace::self().getItemsByArea(area, modeSelection, items);
-
-        cntWpt = 0;
-        cntTrk = 0;
-        cntRte = 0;
-        cntOvl = 0;
-        for(IGisItem * item : items)
-        {
-            itemKeys << item->getKey();
-            switch(item->type())
-            {
-            case IGisItem::eTypeWpt:
-                cntWpt++;
-                break;
-
-            case IGisItem::eTypeTrk:
-                cntTrk++;
-                break;
-
-            case IGisItem::eTypeRte:
-                cntRte++;
-                break;
-
-            case IGisItem::eTypeOvl:
-                cntOvl++;
-                break;
-            }
-        }
-
-        QString msg = tr("<b>Selected:</b><br/>");
-        if(scrOptSelect->toolItemTrk->isChecked())
-        {
-            msg += tr("%1 tracks<br/>").arg(cntTrk);
-        }
-
-        if(scrOptSelect->toolItemWpt->isChecked())
-        {
-            msg += tr("%1 waypoints<br/>").arg(cntWpt);
-        }
-
-        if(scrOptSelect->toolItemRte->isChecked())
-        {
-            msg += tr("%1 routes<br/>").arg(cntRte);
-        }
-
-        if(scrOptSelect->toolItemOvl->isChecked())
-        {
-            msg += tr("%1 areas<br/>").arg(cntOvl);
-        }
-
-        canvas->reportStatus("CMouseSelect::Stat",msg);
-
-        rectLastSel = rectSelection;
-        modeLastSel = modeSelection;
-    }
-
-    scrOptSelect->frameFunction->setDisabled(items.isEmpty());
-    scrOptSelect->toolSymWpt->setEnabled(cntWpt);
-    scrOptSelect->toolRoute->setEnabled(cntWpt > 1);
-    scrOptSelect->toolCombineTrk->setEnabled(cntTrk > 1);
-    scrOptSelect->toolActivityTrk->setEnabled(cntTrk > 0);
-}
-
-void CMouseSelect::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
-{
-    if(rectSelection.isNull())
-    {
-        return;
-    }
-
-    QList<IGisItem*> items;
-    findItems(items);
-
-    for(IGisItem * item : items)
-    {
-        item->drawHighlight(p);
-    }
-
-    IMouseSelect::draw(p, needsRedraw, rect);
-}
-
-
-
-void CMouseSelect::slotCopy() const
-{
-    CGisWorkspace::self().copyItemsByKey(itemKeys);
-    canvas->resetMouse();
-}
-
-void CMouseSelect::slotDelete() const
-{
-    CGisWorkspace::self().delItemsByKey(itemKeys);
-    canvas->resetMouse();
-}
-
-void CMouseSelect::slotRoute() const
-{
-    CGisWorkspace::self().makeRteFromWpt(itemKeys);
-    canvas->resetMouse();
-}
-
-void CMouseSelect::slotCombineTrk() const
-{
-    CGisWorkspace::self().combineTrkByKey(itemKeys, itemKeys);
-    canvas->resetMouse();
-}
-
-void CMouseSelect::slotActivityTrk() const
-{
-    CGisWorkspace::self().activityTrkByKey(itemKeys);
-    canvas->resetMouse();
-}
-
-void CMouseSelect::slotSymWpt() const
-{
-    QToolButton tb;
-    CWptIconDialog dlg(&tb);
-    if(dlg.exec() == QDialog::Rejected)
-    {
-        return;
-    }
-
-    CGisWorkspace::self().changeWptSymByKey(itemKeys, tb.objectName());
-    canvas->resetMouse();
-}
diff --git a/src/mouse/CMouseSelect.h b/src/mouse/CMouseSelect.h
deleted file mode 100644
index 2e27121..0000000
--- a/src/mouse/CMouseSelect.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSESELECT_H
-#define CMOUSESELECT_H
-
-#include "canvas/CCanvas.h"
-#include "gis/IGisItem.h"
-#include "mouse/IMouseSelect.h"
-
-class CGisDraw;
-class CCanvas;
-class CScrOptSelect;
-
-class CMouseSelect : public IMouseSelect
-{
-    Q_OBJECT
-public:
-    CMouseSelect(CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseSelect();
-
-    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-
-private slots:
-    void slotCopy() const;
-    void slotRoute() const;
-    void slotSymWpt() const;
-    void slotCombineTrk() const;
-    void slotActivityTrk() const;
-    void slotDelete() const;
-
-private:
-    /**
-       @brief Get a temporary list of all items
-
-       @Note: The list of items is only temporary and must not be used outside the calling method.
-
-       @param items a temporary list to collect all item pointers
-     */
-    void findItems(QList<IGisItem *> &items);
-
-
-    QList<IGisItem::key_t> itemKeys;
-    IGisItem::selflags_t modeLastSel   = IGisItem::eSelectionNone;
-    QRectF rectLastSel;
-
-    quint32 cntWpt = 0;
-    quint32 cntTrk = 0;
-    quint32 cntRte = 0;
-    quint32 cntOvl = 0;
-};
-
-#endif //CMOUSESELECT_H
-
diff --git a/src/mouse/CMouseWptBubble.cpp b/src/mouse/CMouseWptBubble.cpp
deleted file mode 100644
index 0813eb8..0000000
--- a/src/mouse/CMouseWptBubble.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "mouse/CMouseWptBubble.h"
-
-#include <QtWidgets>
-
-CMouseWptBubble::CMouseWptBubble(const IGisItem::key_t &key, CGisDraw * gis, CCanvas * parent)
-    : IMouse(gis, parent)
-    , key(key)
-{
-    cursor = QCursor(QPixmap("://cursors/cursorArrow.png"), 0, 0);
-}
-
-CMouseWptBubble::~CMouseWptBubble()
-{
-}
-
-void CMouseWptBubble::draw(QPainter&, CCanvas::redraw_e, const QRect&)
-{
-}
-
-void CMouseWptBubble::mousePressEvent(QMouseEvent * e)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    QPointF pos = e->pos();
-
-    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-    if(wpt)
-    {
-        wpt->mousePress(pos);
-    }
-    else
-    {
-        canvas->resetMouse();
-    }
-}
-
-void CMouseWptBubble::mouseMoveEvent(QMouseEvent * e)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    QPointF pos = e->pos();
-
-    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-    if(wpt)
-    {
-        wpt->mouseMove(pos);
-    }
-    else
-    {
-        canvas->resetMouse();
-    }
-}
-
-void CMouseWptBubble::mouseReleaseEvent(QMouseEvent *e)
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    QPointF pos = e->pos();
-
-    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
-    if(wpt)
-    {
-        wpt->mouseRelease(pos);
-    }
-    else
-    {
-        canvas->resetMouse();
-    }
-}
diff --git a/src/mouse/CMouseWptBubble.h b/src/mouse/CMouseWptBubble.h
deleted file mode 100644
index be60074..0000000
--- a/src/mouse/CMouseWptBubble.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMOUSEWPTBUBBLE_H
-#define CMOUSEWPTBUBBLE_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IMouse.h"
-
-class CGisItemWpt;
-class CGisDraw;
-class CCanvas;
-
-class CMouseWptBubble : public IMouse
-{
-    Q_OBJECT
-public:
-    CMouseWptBubble(const IGisItem::key_t& key, CGisDraw * gis, CCanvas * parent);
-    virtual ~CMouseWptBubble();
-
-    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-    void mousePressEvent(QMouseEvent *e) override;
-    void mouseMoveEvent(QMouseEvent *e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-
-private:
-    const IGisItem::key_t& key;
-};
-
-#endif //CMOUSEWPTBUBBLE_H
-
diff --git a/src/mouse/CScrOptSelect.cpp b/src/mouse/CScrOptSelect.cpp
deleted file mode 100644
index 9406e7f..0000000
--- a/src/mouse/CScrOptSelect.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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 "canvas/CCanvas.h"
-#include "helpers/CSettings.h"
-#include "mouse/CScrOptSelect.h"
-#include "mouse/IMouse.h"
-
-#include <QtWidgets>
-#include <functional>
-
-using std::bind;
-
-CScrOptSelect::CScrOptSelect(IMouse *mouse)
-    : IScrOpt(mouse)
-{
-    setupUi(this);
-    adjustSize();
-
-    SETTINGS;
-    cfg.beginGroup("Selection");
-    toolModeExact->setChecked(cfg.value("modeExact", toolModeExact->isChecked()).toBool());
-    toolModeIntersect->setChecked(cfg.value("modeIntersect", toolModeIntersect->isChecked()).toBool());
-    toolItemTrk->setChecked(cfg.value("itemTrk", toolItemTrk->isChecked()).toBool());
-    toolItemWpt->setChecked(cfg.value("itemWpt", toolItemWpt->isChecked()).toBool());
-    toolItemRte->setChecked(cfg.value("itemRte", toolItemRte->isChecked()).toBool());
-    toolItemOvl->setChecked(cfg.value("itemOvl", toolItemOvl->isChecked()).toBool());
-    cfg.endGroup(); //Selection
-
-    modeSelection |= toolModeExact->isChecked() ? IGisItem::eSelectionExact : 0;
-    modeSelection |= toolModeIntersect->isChecked() ? IGisItem::eSelectionIntersect : 0;
-    modeSelection |= toolItemTrk->isChecked() ? IGisItem::eSelectionTrk : 0;
-    modeSelection |= toolItemWpt->isChecked() ? IGisItem::eSelectionWpt : 0;
-    modeSelection |= toolItemRte->isChecked() ? IGisItem::eSelectionRte : 0;
-    modeSelection |= toolItemOvl->isChecked() ? IGisItem::eSelectionOvl : 0;
-
-    auto slotModeExact      = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionExact, std::placeholders::_1);
-    auto slotModeIntersect  = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionIntersect, std::placeholders::_1);
-    auto slotModeTrk        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionTrk, std::placeholders::_1);
-    auto slotModeWpt        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionWpt, std::placeholders::_1);
-    auto slotModeRte        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionRte, std::placeholders::_1);
-    auto slotModeOvl        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionOvl, std::placeholders::_1);
-
-    connect(toolModeExact,     &QToolButton::toggled, this, slotModeExact);
-    connect(toolModeIntersect, &QToolButton::toggled, this, slotModeIntersect);
-    connect(toolItemTrk,       &QToolButton::toggled, this, slotModeTrk);
-    connect(toolItemWpt,       &QToolButton::toggled, this, slotModeWpt);
-    connect(toolItemRte,       &QToolButton::toggled, this, slotModeRte);
-    connect(toolItemOvl,       &QToolButton::toggled, this, slotModeOvl);
-}
-
-CScrOptSelect::~CScrOptSelect()
-{
-    SETTINGS;
-    cfg.beginGroup("Selection");
-    cfg.setValue("modeExact", toolModeExact->isChecked());
-    cfg.setValue("modeIntersect", toolModeIntersect->isChecked());
-    cfg.setValue("itemTrk", toolItemTrk->isChecked());
-    cfg.setValue("itemWpt", toolItemWpt->isChecked());
-    cfg.setValue("itemRte", toolItemRte->isChecked());
-    cfg.setValue("itemOvl", toolItemOvl->isChecked());
-    cfg.endGroup(); //Selection
-
-    mouse->getCanvas()->reportStatus("CScrOptSelect","");
-}
-
-void CScrOptSelect::slotModeSwitch(IGisItem::selection_e mode, bool checked)
-{
-    CCanvas * canvas = mouse->getCanvas();
-
-    if(checked)
-    {
-        modeSelection |= mode;
-
-        switch(mode)
-        {
-        case IGisItem::eSelectionExact:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/>"));
-            break;
-
-        case IGisItem::eSelectionIntersect:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/>"));
-            break;
-
-        case IGisItem::eSelectionTrk:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Add Tracks</b><br/>Add tracks to list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionWpt:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionRte:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Add Routes</b><br/>Add routes to list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionOvl:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Add Areas</b><br/>Add areas to list of selected items<br/>"));
-            break;
-        }
-    }
-    else
-    {
-        modeSelection &= ~mode;
-
-        switch(mode)
-        {
-        case IGisItem::eSelectionTrk:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionWpt:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionRte:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/>"));
-            break;
-
-        case IGisItem::eSelectionOvl:
-            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/>"));
-            break;
-        }
-    }
-
-    canvas->update();
-}
diff --git a/src/mouse/CScrOptSelect.h b/src/mouse/CScrOptSelect.h
deleted file mode 100644
index d9f6ecf..0000000
--- a/src/mouse/CScrOptSelect.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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/>.
-
-**********************************************************************************************/
-
-#ifndef CSCROPTSELECT_H
-#define CSCROPTSELECT_H
-
-
-#include "gis/IGisItem.h"
-#include "mouse/IScrOpt.h"
-#include "ui_IScrOptSelect.h"
-
-class IMouse;
-
-class CScrOptSelect : public IScrOpt, public Ui::IScrOptSelect
-{
-    Q_OBJECT
-public:
-    CScrOptSelect(IMouse *mouse);
-    virtual ~CScrOptSelect();
-
-    void draw(QPainter& p) override
-    {
-    }
-
-    IGisItem::selflags_t getModeSelection() const
-    {
-        return modeSelection;
-    }
-
-private slots:
-    void slotModeSwitch(IGisItem::selection_e mode, bool checked);
-
-
-private:
-    IGisItem::selflags_t modeSelection = IGisItem::eSelectionNone;
-};
-
-#endif //CSCROPTSELECT_H
-
diff --git a/src/mouse/CScrOptUnclutter.cpp b/src/mouse/CScrOptUnclutter.cpp
deleted file mode 100644
index d7b7efd..0000000
--- a/src/mouse/CScrOptUnclutter.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "canvas/CCanvas.h"
-#include "gis/IGisItem.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "helpers/CDraw.h"
-#include "mouse/CScrOptUnclutter.h"
-
-#include <QtWidgets>
-
-const QPoint CScrOptUnclutter::positions[9][8] =
-{
-    {
-    },
-
-    {
-        QPoint(-50,-23)
-    },
-
-    {
-        QPoint(-30,0)
-        , QPoint( 30,0)
-    },
-
-    {
-        QPoint(  0,-30)
-        , QPoint( 30, 30)
-        , QPoint(-30, 30)
-    },
-
-    {
-        QPoint(-30,-30)
-        , QPoint( 30,-30)
-        , QPoint(-30, 30)
-        , QPoint( 30, 30)
-    },
-
-    {
-        QPoint(-25, 40)
-        , QPoint( 25, 40)
-        , QPoint(-40, -5)
-        , QPoint( 40, -5)
-        , QPoint(  0,-40)
-    },
-
-    {
-        QPoint(-40,-22)
-        , QPoint( 40,-22)
-        , QPoint(-40, 22)
-        , QPoint( 40, 22)
-        , QPoint(  0,-55)
-        , QPoint(  0, 55)
-    },
-
-    {
-        QPoint(-50,-23)
-        , QPoint( 50,-23)
-        , QPoint(-45, 21)
-        , QPoint( 45, 21)
-        , QPoint(-22,-55)
-        , QPoint( 22,-55)
-        , QPoint(  0, 50)
-    },
-
-    {
-        QPoint(-50,-23)
-        , QPoint( 50,-23)
-        , QPoint(-50, 23)
-        , QPoint( 50, 23)
-        , QPoint(-22,-55)
-        , QPoint( 22,-55)
-        , QPoint(-22, 55)
-        , QPoint( 22, 55)
-    }
-};
-
-
-CScrOptUnclutter::CScrOptUnclutter(IMouse *mouse)
-    : IScrOpt(mouse)
-{
-}
-
-CScrOptUnclutter::~CScrOptUnclutter()
-{
-}
-
-void CScrOptUnclutter::clear()
-{
-    if(doSpecialCursor)
-    {
-        CCanvas::restoreOverrideCursor("CScrOptUnclutter::clear()");
-        doSpecialCursor = false;
-    }
-    items.clear();
-}
-
-void CScrOptUnclutter::mouseMoveEvent(QMouseEvent * e)
-{
-    IScrOpt::mouseMoveEvent(e);
-
-    for(const item_t &item : items)
-    {
-        if(item.active.contains(mousePos) || item.text.contains(mousePos))
-        {
-            if(!doSpecialCursor)
-            {
-                CCanvas::setOverrideCursor(Qt::PointingHandCursor,"CScrOptUnclutter::mouseMoveEvent");
-                doSpecialCursor = true;
-            }
-            return;
-        }
-    }
-
-    if(doSpecialCursor)
-    {
-        CCanvas::restoreOverrideCursor("CScrOptUnclutter::mouseMoveEvent");
-        doSpecialCursor = false;
-        return;
-    }
-}
-
-void CScrOptUnclutter::addItem(IGisItem * gisItem)
-{
-    items << item_t();
-    item_t& item        = items.last();
-    item.hasUserFocus   = gisItem->hasUserFocus();
-    item.name           = gisItem->getNameEx();
-    item.key            = gisItem->getKey();
-    item.icon           = gisItem->getIcon();
-    item.area           = item.icon.rect();
-    item.active         = item.area.adjusted(-10,-10,10,10);
-}
-
-IGisItem::key_t CScrOptUnclutter::getItemKey(int index)
-{
-    if(index < items.size())
-    {
-        return items[index].key;
-    }
-    return IGisItem::key_t();
-}
-
-
-const CScrOptUnclutter::item_t * CScrOptUnclutter::selectItem(const QPoint& point)
-{
-    for(const item_t &item : items)
-    {
-        if(item.active.contains(point) || item.text.contains(point))
-        {
-            return &item;
-        }
-    }
-    return nullptr;
-}
-
-void CScrOptUnclutter::draw(QPainter& p)
-{
-    const int N = items.size();
-    QFontMetrics fm(CMainWindow::self().getMapFont());
-    for(int cnt = 0; cnt < N; cnt++)
-    {
-        item_t& item = items[cnt];
-
-        if(item.text.isNull())
-        {
-            item.area.moveCenter(origin + positions[N][cnt]);
-            item.active.moveCenter(item.area.center());
-            item.text = fm.boundingRect(item.name);
-            if(cnt & 0x01)
-            {
-                item.text.moveTopLeft(item.area.topRight() + QPoint( 17, fm.height()/2));
-            }
-            else
-            {
-                item.text.moveTopRight(item.area.topLeft() + QPoint(-17, fm.height()/2));
-            }
-            item.text.adjust(-4, -3, 4, 3);
-        }
-    }
-
-    for(const item_t &item : items)
-    {
-        p.setPen(Qt::NoPen);
-        p.setBrush(QColor(255,255,255,255));
-        p.drawEllipse(item.area.center(), 20,20);
-        p.drawRoundedRect(item.text, RECT_RADIUS, RECT_RADIUS);
-
-        p.setPen(QPen(item.hasUserFocus ? Qt::red : Qt::lightGray,2));
-        p.setBrush(Qt::NoBrush);
-        p.drawRoundedRect(item.text, RECT_RADIUS, RECT_RADIUS);
-        p.drawEllipse(item.area.center(), 18,18);
-
-        p.drawPixmap(item.area, item.icon);
-        CDraw::text(item.name, p, item.text, Qt::darkBlue);
-    }
-}
-
diff --git a/src/mouse/CScrOptUnclutter.h b/src/mouse/CScrOptUnclutter.h
deleted file mode 100644
index 313a4c3..0000000
--- a/src/mouse/CScrOptUnclutter.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CSCROPTUNCLUTTER_H
-#define CSCROPTUNCLUTTER_H
-
-#include "gis/IGisItem.h"
-#include "mouse/IScrOpt.h"
-
-
-class CScrOptUnclutter : public IScrOpt
-{
-public:
-    CScrOptUnclutter(IMouse *mouse);
-    virtual ~CScrOptUnclutter();
-
-    struct item_t
-    {
-        bool hasUserFocus;
-        QString name;
-        IGisItem::key_t key;
-        QPixmap icon;
-        QRect area;
-        QRect text;
-        QRect active;
-    };
-
-    virtual void clear();
-    virtual int  size()
-    {
-        return items.size();
-    }
-
-    void addItem(IGisItem * gisItem);
-    IGisItem::key_t getItemKey(int index = 0);
-    const item_t *selectItem(const QPoint& point);
-
-    void draw(QPainter& p) override;
-    void mouseMoveEvent(QMouseEvent * e) override;
-
-private:
-    static const QPoint positions[9][8];
-    QList<item_t> items;
-    bool doSpecialCursor = false;
-};
-
-#endif //CSCROPTUNCLUTTER_H
-
diff --git a/src/mouse/IMouse.cpp b/src/mouse/IMouse.cpp
deleted file mode 100644
index 0ed46ec..0000000
--- a/src/mouse/IMouse.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/**********************************************************************************************
-    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 "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "mouse/IMouse.h"
-
-#include <QtWidgets>
-
-IMouse::IMouse(CGisDraw *gis, CCanvas *canvas)
-    : QObject(canvas)
-    , gis(gis)
-    , canvas(canvas)
-{
-}
-
-IMouse::~IMouse()
-{
-}
-
-void IMouse::setMouseTracking(bool enabled)
-{
-    canvas->setMouseTracking(enabled);
-}
-
-
diff --git a/src/mouse/IMouse.h b/src/mouse/IMouse.h
deleted file mode 100644
index 2a7e167..0000000
--- a/src/mouse/IMouse.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
-
-**********************************************************************************************/
-
-#ifndef IMOUSE_H
-#define IMOUSE_H
-
-#include "canvas/CCanvas.h"
-
-#include <QCursor>
-#include <QObject>
-#include <QPointer>
-
-class QMouseEvent;
-class QPinchGesture;
-class QWheelEvent;
-class QTimer;
-class CGisDraw;
-
-class IMouse : public QObject
-{
-    Q_OBJECT
-public:
-    IMouse(CGisDraw * gis, CCanvas * canvas);
-    virtual ~IMouse();
-
-    virtual void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) = 0;
-    virtual void mousePressEvent(QMouseEvent *e) = 0;
-    virtual void mouseMoveEvent(QMouseEvent *e) = 0;
-    virtual void mouseReleaseEvent(QMouseEvent *e) = 0;
-    virtual void mouseDoubleClickEvent(QMouseEvent *e)
-    {
-    }
-    virtual void wheelEvent(QWheelEvent *e)
-    {
-    }
-    virtual void keyPressEvent(QKeyEvent *e)
-    {
-    }
-    virtual void pinchGestureEvent(QPinchGesture *e)
-    {
-    }
-    virtual void afterMouseLostEvent(QMouseEvent *e)
-    {
-    }
-
-    /// the current mouse cursor
-    /**
-        Each mouse function is represented by a special cursor. The main
-        widget uses this method to query the current cursor.
-     */
-    operator const QCursor&() const
-    {
-        return cursor;
-    }
-
-    CCanvas * getCanvas() const
-    {
-        return canvas;
-    }
-
-    virtual void setMouseTracking(bool enabled);
-
-    const static int longButtonPressTimeout = 400;
-    const static int minimalMouseMovingDistance = 4;
-
-protected:
-    /// the functions mouse icon
-    QCursor cursor;
-
-    QPointer<CGisDraw> gis;
-
-    QPointer<CCanvas>  canvas;
-    // the current point reported by the mouse events
-    QPoint point;
-};
-
-#endif //IMOUSE_H
-
diff --git a/src/mouse/IMouseSelect.cpp b/src/mouse/IMouseSelect.cpp
deleted file mode 100644
index c34f347..0000000
--- a/src/mouse/IMouseSelect.cpp
+++ /dev/null
@@ -1,301 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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 "gis/CGisDraw.h"
-#include "mouse/IMouseSelect.h"
-#include "mouse/IScrOpt.h"
-
-#include <QtWidgets>
-
-IMouseSelect::IMouseSelect(CGisDraw *gis, CCanvas *canvas)
-    : IMouse(gis, canvas)
-{
-}
-
-IMouseSelect::~IMouseSelect()
-{
-    canvas->reportStatus("IMouseSelect", "");
-    delete scrOpt;
-}
-
-void IMouseSelect::rectRad2Px(const QRectF& rectSrc, QRectF& rectTar) const
-{
-    QPointF pt1 = rectSrc.topLeft();
-    QPointF pt2 = rectSrc.bottomRight();
-
-    gis->convertRad2Px(pt1);
-    gis->convertRad2Px(pt2);
-
-    rectTar = QRectF(pt1,pt2);
-}
-
-void IMouseSelect::placeScrOpt()
-{
-    if(scrOpt.isNull())
-    {
-        return;
-    }
-
-    if((state == eStateMap) || (state == eStateMapMoving))
-    {
-        QRectF rectSel;
-        rectRad2Px(rectSelection, rectSel);
-        scrOpt->move(rectSel.topRight().toPoint());
-        scrOpt->show();
-    }
-    else
-    {
-        scrOpt->hide();
-    }
-}
-
-
-void IMouseSelect::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
-{
-    if(rectSelection.isNull())
-    {
-        return;
-    }
-
-    QRectF rectSel;
-    rectRad2Px(rectSelection, rectSel);
-
-    QRectF rectScr = canvas->rect();
-
-    rectTopLeft.moveTopLeft(rectSel.topLeft());
-    rectTopRight.moveTopRight(rectSel.topRight());
-    rectBottomLeft.moveBottomLeft(rectSel.bottomLeft());
-    rectBottomRight.moveBottomRight(rectSel.bottomRight());
-
-
-    QPainterPath path;
-    path.addRect(rectScr);
-    path.addRect(rectSel);
-
-    p.setPen(Qt::black);
-    p.setBrush(QColor(0,0,0,128));
-    p.drawPath(path);
-
-    p.setBrush(Qt::lightGray);
-    p.drawRect(rectTopLeft);
-    p.drawRect(rectTopRight);
-    p.drawRect(rectBottomLeft);
-    p.drawRect(rectBottomRight);
-
-    p.setBrush(Qt::red);
-    switch(corner)
-    {
-    case eCornerTopLeft:
-        p.drawRect(rectTopLeft);
-        break;
-
-    case eCornerTopRight:
-        p.drawRect(rectTopRight);
-        break;
-
-    case eCornerBottomLeft:
-        p.drawRect(rectBottomLeft);
-        break;
-
-    case eCornerBottomRight:
-        p.drawRect(rectBottomRight);
-        break;
-    }
-
-    placeScrOpt();
-}
-
-void IMouseSelect::mousePressEvent(QMouseEvent * e)
-{
-    e->accept();
-
-    canvas->reportStatus("IMouseSelect", "");
-
-    if(e->button() == Qt::RightButton)
-    {
-        canvas->resetMouse();
-        canvas->update();
-    }
-    else if(e->button() == Qt::LeftButton)
-    {
-        switch(state)
-        {
-        case eStateIdle:
-        {
-            QPointF pos = e->pos();
-            gis->convertPx2Rad(pos);
-            rectSelection.setTopLeft(pos);
-            rectSelection.setBottomRight(pos);
-            posInitial = pos;
-            state = eStateInitial;
-            break;
-        }
-
-        case eStateMap:
-        {
-            if(corner != eCornerNone)
-            {
-                state = eStateResize;
-            }
-            else
-            {
-                lastPos = e->pos();
-                state = eStateMapMoving;
-            }
-            break;
-        }
-        }
-    }
-}
-
-
-void IMouseSelect::mouseMoveEvent(QMouseEvent * e)
-{
-    e->accept();
-
-    switch(state)
-    {
-    case eStateInitial:
-    {
-        QPointF pos = e->pos();
-        gis->convertPx2Rad(pos);
-
-        if(pos.x() < posInitial.x())
-        {
-            rectSelection.setLeft(pos.x());
-        }
-        else
-        {
-            rectSelection.setRight(pos.x());
-        }
-
-        if(pos.y() < posInitial.y())
-        {
-            rectSelection.setBottom(pos.y());
-        }
-        else
-        {
-            rectSelection.setTop(pos.y());
-        }
-
-        canvas->update();
-        break;
-    }
-
-    case eStateMap:
-    {
-        corner_e _corner = corner;
-        QPoint pos = e->pos();
-        if(rectTopLeft.contains(pos))
-        {
-            offset = pos - rectTopLeft.topLeft();
-            corner = eCornerTopLeft;
-        }
-        else if(rectTopRight.contains(pos))
-        {
-            offset = pos - rectTopRight.topRight();
-            corner = eCornerTopRight;
-        }
-        else if(rectBottomLeft.contains(pos))
-        {
-            offset = pos - rectBottomLeft.bottomLeft();
-            corner = eCornerBottomLeft;
-        }
-        else if(rectBottomRight.contains(pos))
-        {
-            offset = pos - rectBottomRight.bottomRight();
-            corner = eCornerBottomRight;
-        }
-        else
-        {
-            corner = eCornerNone;
-        }
-
-        if(corner != _corner)
-        {
-            canvas->update();
-        }
-        break;
-    }
-
-    case eStateMapMoving:
-    {
-        QPoint pos = e->pos();
-
-        if(pos != lastPos)
-        {
-            QPoint delta = pos - lastPos;
-            canvas->moveMap(delta);
-            lastPos     = pos;
-        }
-        break;
-    }
-
-    case eStateResize:
-    {
-        QPointF pos = e->pos() - offset;
-        gis->convertPx2Rad(pos);
-        switch(corner)
-        {
-        case eCornerTopLeft:
-            rectSelection.setTopLeft(pos);
-            break;
-
-        case eCornerTopRight:
-            rectSelection.setTopRight(pos);
-            break;
-
-        case eCornerBottomLeft:
-            rectSelection.setBottomLeft(pos);
-            break;
-
-        case eCornerBottomRight:
-            rectSelection.setBottomRight(pos);
-            break;
-        }
-
-        canvas->update();
-        break;
-    }
-    }
-}
-
-void IMouseSelect::mouseReleaseEvent(QMouseEvent *e)
-{
-    e->accept();
-
-    if(!rectSelection.isNull())
-    {
-        QPointF pt1 = rectSelection.topLeft();
-        QPointF pt2 = rectSelection.bottomRight();
-
-        gis->convertRad2Px(pt1);
-        gis->convertRad2Px(pt2);
-
-        QRectF rectSel(pt1,pt2);
-
-        if(rectSel.width() < 40 || rectSel.height() < 40)
-        {
-            rectSelection = QRectF();
-        }
-    }
-
-    state = rectSelection.isNull() ? eStateIdle : eStateMap;
-
-    canvas->update();
-}
diff --git a/src/mouse/IMouseSelect.h b/src/mouse/IMouseSelect.h
deleted file mode 100644
index a5bf9c9..0000000
--- a/src/mouse/IMouseSelect.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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/>.
-
-**********************************************************************************************/
-
-#ifndef IMOUSESELECT_H
-#define IMOUSESELECT_H
-
-#include "canvas/CCanvas.h"
-#include "mouse/IMouse.h"
-
-class CGisDraw;
-
-
-class IMouseSelect : public IMouse
-{
-    Q_OBJECT
-public:
-    IMouseSelect(CGisDraw * gis, CCanvas * canvas);
-    virtual ~IMouseSelect();
-
-    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-    void mousePressEvent(QMouseEvent * e) override;
-    void mouseMoveEvent(QMouseEvent * e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-
-protected:
-    void rectRad2Px(const QRectF& rectSrc, QRectF& rectTar) const;
-    void placeScrOpt();
-
-    QPoint lastPos;
-    QPointF offset;
-    QPointF posInitial;
-
-    QRectF rectSelection;
-    QRectF rectTopLeft     {0, 0, 20, 20};
-    QRectF rectTopRight    {0, 0, 20, 20};
-    QRectF rectBottomLeft  {0, 0, 20, 20};
-    QRectF rectBottomRight {0, 0, 20, 20};
-
-    enum state_e
-    {
-        eStateIdle
-        ,eStateInitial
-        ,eStateMap
-        ,eStateMapMoving
-        ,eStateResize
-    };
-
-    state_e state = eStateIdle;
-
-    enum corner_e
-    {
-        eCornerNone
-        , eCornerTopLeft
-        , eCornerTopRight
-        , eCornerBottomLeft
-        , eCornerBottomRight
-        , eCornerPrint
-        , eCornerImage
-    };
-
-    corner_e corner = eCornerNone;
-
-    QPointer<IScrOpt> scrOpt;
-};
-
-#endif //IMOUSESELECT_H
-
diff --git a/src/mouse/IScrOpt.cpp b/src/mouse/IScrOpt.cpp
deleted file mode 100644
index 1477c69..0000000
--- a/src/mouse/IScrOpt.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-/**********************************************************************************************
-    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 "gis/CGisWorkspace.h"
-#include "helpers/CDraw.h"
-#include "mouse/IMouse.h"
-#include "mouse/IScrOpt.h"
-#include "units/IUnit.h"
-#include <QtWidgets>
-
-
-IScrOpt::IScrOpt(IMouse *mouse)
-    : QWidget(mouse->getCanvas())
-    , mouse(mouse)
-{
-    setFocusPolicy(Qt::WheelFocus);
-}
-
-IScrOpt::~IScrOpt()
-{
-    if(hasFocus() && !mouse.isNull())
-    {
-        CCanvas::setOverrideCursor(*mouse,"IScrOpt::~IScrOpt");
-    }
-    CGisWorkspace::self().slotWksItemSelectionReset();
-}
-
-void IScrOpt::mouseMoveEvent(QMouseEvent * e)
-{
-    mousePos = e->pos();
-}
-
-void IScrOpt::enterEvent(QEvent * e)
-{
-    QWidget::enterEvent(e);
-    CCanvas::restoreOverrideCursor("IScrOpt::enterEvent");
-}
-
-void IScrOpt::leaveEvent(QEvent * e)
-{
-    QWidget::leaveEvent(e);
-    if(!mouse.isNull())
-    {
-        CCanvas::setOverrideCursor(*mouse,"IScrOpt::leaveEvent");
-    }
-}
-
diff --git a/src/mouse/IScrOpt.h b/src/mouse/IScrOpt.h
deleted file mode 100644
index 8b55667..0000000
--- a/src/mouse/IScrOpt.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef ISCROPT_H
-#define ISCROPT_H
-
-#include <QPixmap>
-#include <QPointer>
-#include <QRect>
-#include <QWidget>
-
-class QMouseEvent;
-class IMouse;
-
-#define SCR_OPT_OFFSET 15
-
-class IScrOpt : public QWidget
-{
-public:
-    IScrOpt(IMouse *mouse);
-    virtual ~IScrOpt();
-
-    void setOrigin(const QPoint& pos)
-    {
-        origin = pos;
-    }
-
-    const QPoint& getOrigin() const
-    {
-        return origin;
-    }
-
-    virtual void draw(QPainter& p) = 0;
-    void mouseMoveEvent(QMouseEvent *) override;
-
-protected:
-    void enterEvent(QEvent *e) override;
-    void leaveEvent(QEvent *e) override;
-
-    QPoint origin;
-    QPoint mousePos;
-
-    QPointer<IMouse> mouse;
-};
-
-#endif //ISCROPT_H
-
diff --git a/src/mouse/IScrOptSelect.ui b/src/mouse/IScrOptSelect.ui
deleted file mode 100644
index d1be8d0..0000000
--- a/src/mouse/IScrOptSelect.ui
+++ /dev/null
@@ -1,410 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IScrOptSelect</class>
- <widget class="QWidget" name="IScrOptSelect">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>27</width>
-    <height>294</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <property name="spacing">
-    <number>3</number>
-   </property>
-   <property name="leftMargin">
-    <number>3</number>
-   </property>
-   <property name="topMargin">
-    <number>0</number>
-   </property>
-   <property name="rightMargin">
-    <number>0</number>
-   </property>
-   <property name="bottomMargin">
-    <number>0</number>
-   </property>
-   <item>
-    <widget class="QFrame" name="frameFunction">
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Plain</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <property name="spacing">
-       <number>0</number>
-      </property>
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-      <item>
-       <widget class="QToolButton" name="toolCopy">
-        <property name="toolTip">
-         <string>Copy all selected items to a project.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolRoute">
-        <property name="toolTip">
-         <string>Create a route from selected waypoints.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Route.png</normaloff>:/icons/32x32/Route.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolSymWpt">
-        <property name="toolTip">
-         <string>Change the icon of all selected waypoints.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/waypoints/32x32/PinBlue.png</normaloff>:/icons/waypoints/32x32/PinBlue.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolCombineTrk">
-        <property name="toolTip">
-         <string>Combine all selected tracks to a new one.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Combine.png</normaloff>:/icons/32x32/Combine.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolActivityTrk">
-        <property name="toolTip">
-         <string>Set an activity for all selected tracks.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolDelete">
-        <property name="toolTip">
-         <string>Delete all selected items.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="frameMode">
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Plain</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_3">
-      <property name="spacing">
-       <number>0</number>
-      </property>
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-      <item>
-       <widget class="QToolButton" name="toolModeIntersect">
-        <property name="toolTip">
-         <string>Select all items that intersect the selected area.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/SelectIntersectArea.png</normaloff>:/icons/32x32/SelectIntersectArea.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-        <property name="autoExclusive">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolModeExact">
-        <property name="toolTip">
-         <string>Select all items that are completely inside the selected area.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/SelectExactArea.png</normaloff>:/icons/32x32/SelectExactArea.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="autoExclusive">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="Line" name="line_2">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <widget class="QFrame" name="frameItem">
-     <property name="frameShape">
-      <enum>QFrame::NoFrame</enum>
-     </property>
-     <property name="frameShadow">
-      <enum>QFrame::Plain</enum>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_4">
-      <property name="spacing">
-       <number>0</number>
-      </property>
-      <property name="leftMargin">
-       <number>0</number>
-      </property>
-      <property name="topMargin">
-       <number>0</number>
-      </property>
-      <property name="rightMargin">
-       <number>0</number>
-      </property>
-      <property name="bottomMargin">
-       <number>0</number>
-      </property>
-      <item>
-       <widget class="QToolButton" name="toolItemTrk">
-        <property name="toolTip">
-         <string>Add tracks to selection.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Track.png</normaloff>
-          <normalon>:/icons/32x32/TrackOn.png</normalon>:/icons/32x32/Track.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolItemWpt">
-        <property name="toolTip">
-         <string>Add waypoints to selection.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/waypoints/32x32/FlagBlue.png</normaloff>
-          <normalon>:/icons/32x32/WaypointOn.png</normalon>:/icons/waypoints/32x32/FlagBlue.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolItemRte">
-        <property name="toolTip">
-         <string>Add routes to selection.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Route.png</normaloff>
-          <normalon>:/icons/32x32/RouteOn.png</normalon>:/icons/32x32/Route.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item>
-       <widget class="QToolButton" name="toolItemOvl">
-        <property name="toolTip">
-         <string>Add areas to selection.</string>
-        </property>
-        <property name="text">
-         <string>...</string>
-        </property>
-        <property name="icon">
-         <iconset resource="../resources.qrc">
-          <normaloff>:/icons/32x32/Area.png</normaloff>
-          <normalon>:/icons/32x32/AreaOn.png</normalon>:/icons/32x32/Area.png</iconset>
-        </property>
-        <property name="iconSize">
-         <size>
-          <width>16</width>
-          <height>16</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/mouse/line/CLineOpAddPoint.cpp b/src/mouse/line/CLineOpAddPoint.cpp
deleted file mode 100644
index 2b4ac34..0000000
--- a/src/mouse/line/CLineOpAddPoint.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "mouse/line/CLineOpAddPoint.h"
-#include "mouse/line/IMouseEditLine.h"
-
-#include <QtWidgets>
-
-CLineOpAddPoint::CLineOpAddPoint(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
-    : ILineOp(points, gis, canvas, parent)
-{
-    cursor = QCursor(QPixmap(":/cursors/cursorPointAdd.png"), 0, 0);
-}
-
-CLineOpAddPoint::~CLineOpAddPoint()
-{
-}
-
-void CLineOpAddPoint::append()
-{
-    // this is called on construction when creating a complete new line
-    // A new point is appended to what ever line already exists,
-    // and add point mode is entered immediately.
-    idxFocus = points.size();
-    points.insert(idxFocus, IGisLine::point_t(points.last()));
-    addPoint = true;
-    isPoint  = true;
-    // make sure that when starting the line-edit on-the-fly-routing will
-    // not trigger before the mouse has been moved a bit away from last point of line
-    startMouseMove(points.last().pixel);
-}
-
-void CLineOpAddPoint::mouseReleaseEventEx(QMouseEvent * e)
-{
-    if(e->button() == Qt::LeftButton)
-    {
-        if(addPoint)
-        {
-            // drop the new point at current position
-            // update subpoints of previous and this point
-            slotTimeoutRouting();
-
-            // if isPoint is true the line has been appended/prepended
-            // in this case go on with adding another point
-            if(isPoint)
-            {
-                if(idxFocus == (points.size() - 1))
-                {
-                    idxFocus++;
-                }
-
-                // store current state of line to undo/redo history
-                parentHandler->storeToHistory(points);
-
-                QPointF coord = e->pos();
-                gis->convertPx2Rad(coord);
-                points.insert(idxFocus, IGisLine::point_t(coord));
-            }
-            else
-            {
-                // store current state of line to undo/redo history
-                parentHandler->storeToHistory(points);
-                // terminate operation if the new point was inbetween a line segment.
-                addPoint = false;
-                idxFocus = NOIDX;
-            }
-        }
-        else if(isPoint)
-        {
-            // as isPoint is set, add a new point either at the start or end of the line
-            if(idxFocus == (points.size() - 1))
-            {
-                idxFocus++;
-            }
-
-            QPointF coord = e->pos();
-            gis->convertPx2Rad(coord);
-            points.insert(idxFocus, IGisLine::point_t(coord));
-
-            addPoint = true;
-        }
-        else if(idxFocus != NOIDX)
-        {
-            // clear current line segment
-            points[idxFocus].subpts.clear();
-
-            // add a new point to line segment
-            QPointF coord = e->pos();
-            gis->convertPx2Rad(coord);
-
-            idxFocus++;
-            points.insert(idxFocus, IGisLine::point_t(coord));
-
-            addPoint = true;
-        }
-    }
-    else if(e->button() == Qt::RightButton)
-    {
-        abortStep();
-        idxFocus = NOIDX;
-    }
-
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-bool CLineOpAddPoint::abortStep()
-{
-    if(addPoint)
-    {
-        // cancel action and restore last state of line
-        cancelDelayedRouting();
-        parentHandler->restoreFromHistory(points);
-
-        addPoint = false;
-        idxFocus = NOIDX;
-
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-
-        return true;
-    }
-    return false;
-}
-
-void CLineOpAddPoint::mouseMoveEventEx(QMouseEvent * e)
-{
-    if(addPoint)
-    {
-        QPointF coord = e->pos();
-        gis->convertPx2Rad(coord);
-
-        IGisLine::point_t& pt = points[idxFocus];
-        // update position of point
-        pt.coord = coord;
-
-        // clear subpoints, as they have to be recalculated
-        // by the routing, if any
-        pt.subpts.clear();
-        if(idxFocus > 0)
-        {
-            points[idxFocus - 1].subpts.clear();
-        }
-
-        // retrigger delayed routing
-        startDelayedRouting();
-    }
-    else
-    {
-        isPoint  = false;
-        // find line segment close to cursor
-        idxFocus = isCloseToLine(e->pos());
-        // if none is found try to find point
-        if(idxFocus == NOIDX)
-        {
-            // if no line segment is found but a point
-            // it is either first or the last point in the line
-            idxFocus = isCloseTo(e->pos());
-
-            if((idxFocus == 0) || (idxFocus == (points.size() - 1)))
-            {
-                isPoint = true;
-            }
-        }
-    }
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-
-
-void CLineOpAddPoint::drawFg(QPainter& p)
-{
-    if(idxFocus == NOIDX)
-    {
-        return;
-    }
-
-    if(addPoint)
-    {
-        const IGisLine::point_t& pt = points[idxFocus];
-        drawSinglePointSmall(pt.pixel, p);
-    }
-    else if(isPoint)
-    {
-        const IGisLine::point_t& pt = points[idxFocus];
-        drawSinglePointLarge(pt.pixel, p);
-    }
-    else if(idxFocus < (points.size() - 1))
-    {
-        QPolygonF line;
-        const IGisLine::point_t& pt1 = points[idxFocus];
-        const IGisLine::point_t& pt2 = points[idxFocus + 1];
-
-        if(pt1.subpts.isEmpty())
-        {
-            line << pt1.pixel << pt2.pixel;
-        }
-        else
-        {
-            line << pt1.pixel;
-            for(const IGisLine::subpt_t& pt : pt1.subpts)
-            {
-                line << pt.pixel;
-            }
-            line << pt2.pixel;
-        }
-
-        p.setPen(penBgPoint);
-        p.setBrush(brushBgPoint);
-
-        rectPoint.moveCenter(pt1.pixel.toPoint());
-        p.drawRect(rectPoint);
-        rectPoint.moveCenter(pt2.pixel.toPoint());
-        p.drawRect(rectPoint);
-
-        p.setPen(QPen(Qt::white, 7, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-        p.drawPolyline(line);
-
-
-        p.setPen(penFgPoint);
-        p.setBrush(brushFgPoint);
-
-        rectPoint.moveCenter(pt1.pixel.toPoint());
-        p.drawRect(rectPoint);
-        rectPoint.moveCenter(pt2.pixel.toPoint());
-        p.drawRect(rectPoint);
-
-        p.setPen(QPen(Qt::red, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-        p.drawPolyline(line);
-    }
-}
-
diff --git a/src/mouse/line/CLineOpAddPoint.h b/src/mouse/line/CLineOpAddPoint.h
deleted file mode 100644
index fdd8314..0000000
--- a/src/mouse/line/CLineOpAddPoint.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CLINEOPADDPOINT_H
-#define CLINEOPADDPOINT_H
-
-#include "mouse/line/ILineOp.h"
-
-class CLineOpAddPoint : public ILineOp
-{
-public:
-    CLineOpAddPoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
-    virtual ~CLineOpAddPoint();
-
-    void mousePressEventEx(QMouseEvent *e) override
-    {
-    }
-    void mouseMoveEventEx(QMouseEvent *e) override;
-    void mouseReleaseEventEx(QMouseEvent *e) override;
-
-    void drawFg(QPainter& p) override;
-
-    void append();
-
-    bool abortStep() override;
-
-private:
-    bool addPoint = false;
-    bool isPoint = false;
-};
-
-#endif //CLINEOPADDPOINT_H
-
diff --git a/src/mouse/line/CLineOpDeletePoint.cpp b/src/mouse/line/CLineOpDeletePoint.cpp
deleted file mode 100644
index a272121..0000000
--- a/src/mouse/line/CLineOpDeletePoint.cpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "canvas/CCanvas.h"
-#include "mouse/line/CLineOpDeletePoint.h"
-#include "mouse/line/IMouseEditLine.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-
-CLineOpDeletePoint::CLineOpDeletePoint(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
-    : ILineOp(points, gis, canvas, parent)
-{
-    cursor  = QCursor(QPixmap(":/cursors/cursorPointDel.png"), 0, 0);
-}
-
-CLineOpDeletePoint::~CLineOpDeletePoint()
-{
-}
-
-void CLineOpDeletePoint::mouseMoveEventEx(QMouseEvent * e)
-{
-    idxFocus = isCloseTo(e->pos());
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-void CLineOpDeletePoint::mouseReleaseEventEx(QMouseEvent *e)
-{
-    if(idxFocus != NOIDX)
-    {
-        if(idxFocus > 0)
-        {
-            points[idxFocus - 1].subpts.clear();
-        }
-
-        points.remove(idxFocus--);
-        updateLeadLines(idxFocus);
-
-        slotTimeoutRouting();
-
-        // store to undo/redo history
-        parentHandler->storeToHistory(points);
-    }
-    idxFocus = NOIDX;
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-
-void CLineOpDeletePoint::drawFg(QPainter& p)
-{
-    if(idxFocus == NOIDX)
-    {
-        return;
-    }
-
-    drawSinglePointLarge(points[idxFocus].pixel, p);
-}
diff --git a/src/mouse/line/CLineOpDeletePoint.h b/src/mouse/line/CLineOpDeletePoint.h
deleted file mode 100644
index 80fd808..0000000
--- a/src/mouse/line/CLineOpDeletePoint.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CLINEOPDELETEPOINT_H
-#define CLINEOPDELETEPOINT_H
-
-#include "mouse/line/ILineOp.h"
-
-class CLineOpDeletePoint : public ILineOp
-{
-public:
-    CLineOpDeletePoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
-    virtual ~CLineOpDeletePoint();
-
-    void mousePressEventEx(QMouseEvent*) override
-    {
-    }
-    void mouseMoveEventEx(QMouseEvent *e) override;
-    void mouseReleaseEventEx(QMouseEvent *e) override;
-
-    void drawFg(QPainter& p) override;
-};
-
-#endif //CLINEOPDELETEPOINT_H
-
diff --git a/src/mouse/line/CLineOpMovePoint.cpp b/src/mouse/line/CLineOpMovePoint.cpp
deleted file mode 100644
index 7261964..0000000
--- a/src/mouse/line/CLineOpMovePoint.cpp
+++ /dev/null
@@ -1,146 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "mouse/line/CLineOpMovePoint.h"
-#include "mouse/line/IMouseEditLine.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-
-CLineOpMovePoint::CLineOpMovePoint(SGisLine &points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine *parent)
-    : ILineOp(points, gis, canvas, parent)
-{
-    cursor = QCursor(QPixmap(":/cursors/cursorPointMove.png"),0,0);
-}
-
-CLineOpMovePoint::~CLineOpMovePoint()
-{
-}
-
-void CLineOpMovePoint::mouseReleaseEventEx(QMouseEvent * e)
-{
-    if(e->button() == Qt::LeftButton)
-    {
-        if(movePoint)
-        {
-            // update subpoints by triggering the routing, if any.
-            slotTimeoutRouting();
-            // terminate moving the point
-            movePoint = false;
-            // store new state of line to undo/redo history
-            parentHandler->storeToHistory(points);
-        }
-        else if(idxFocus != NOIDX)
-        {
-            QPointF coord = e->pos();
-            gis->convertPx2Rad(coord);
-
-            // start moving the point
-            IGisLine::point_t& pt = points[idxFocus];
-            pt.coord = coord;
-            // clear the subpoints from this point to the next
-            pt.subpts.clear();
-
-
-            // clear the subpoints from the previous point to this point
-            if(idxFocus != 0)
-            {
-                points[idxFocus - 1].subpts.clear();
-            }
-
-            movePoint = true;
-        }
-    }
-    else if(e->button() == Qt::RightButton)
-    {
-        abortStep();
-    }
-
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-bool CLineOpMovePoint::abortStep()
-{
-    if(movePoint)
-    {
-        // cancel action and restore last state of line
-        cancelDelayedRouting();
-        parentHandler->restoreFromHistory(points);
-
-        movePoint = false;
-        idxFocus  = NOIDX;
-
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-
-        return true;
-    }
-    return false;
-}
-
-void CLineOpMovePoint::mouseMoveEventEx(QMouseEvent * e)
-{
-    if(movePoint)
-    {
-        QPointF coord = e->pos();
-        gis->convertPx2Rad(coord);
-
-        IGisLine::point_t& pt = points[idxFocus];
-
-        // update position of point
-        pt.coord = coord;
-
-        // clear subpoints, as they have to be recalculated
-        // by the routing, if any
-        pt.subpts.clear();
-        if(idxFocus > 0)
-        {
-            points[idxFocus - 1].subpts.clear();
-        }
-
-        // retrigger delayed routing
-        startDelayedRouting();
-    }
-    else
-    {
-        // no point selected yet, find point to highlight
-        idxFocus = isCloseTo(e->pos());
-    }
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-
-void CLineOpMovePoint::drawFg(QPainter& p)
-{
-    if(idxFocus == NOIDX)
-    {
-        return;
-    }
-
-    const IGisLine::point_t& pt = points[idxFocus];
-    if(movePoint)
-    {
-        drawSinglePointSmall(pt.pixel, p);
-    }
-    else
-    {
-        drawSinglePointLarge(pt.pixel, p);
-    }
-}
-
diff --git a/src/mouse/line/CLineOpMovePoint.h b/src/mouse/line/CLineOpMovePoint.h
deleted file mode 100644
index 7b4f8a7..0000000
--- a/src/mouse/line/CLineOpMovePoint.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CLINEOPMOVEPOINT_H
-#define CLINEOPMOVEPOINT_H
-
-#include "mouse/line/ILineOp.h"
-
-class CLineOpMovePoint : public ILineOp
-{
-public:
-    CLineOpMovePoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
-    virtual ~CLineOpMovePoint();
-
-    void mousePressEventEx(QMouseEvent * e) override
-    {
-    }
-    void mouseMoveEventEx(QMouseEvent * e) override;
-    void mouseReleaseEventEx(QMouseEvent * e) override;
-
-    void drawFg(QPainter& p) override;
-
-    bool abortStep() override;
-
-private:
-    bool movePoint = false;
-};
-
-#endif //CLINEOPMOVEPOINT_H
-
diff --git a/src/mouse/line/CLineOpSelectRange.cpp b/src/mouse/line/CLineOpSelectRange.cpp
deleted file mode 100644
index 9250138..0000000
--- a/src/mouse/line/CLineOpSelectRange.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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 "canvas/CCanvas.h"
-#include "mouse/line/CLineOpSelectRange.h"
-#include "mouse/line/CScrOptRangeLine.h"
-#include "mouse/line/IMouseEditLine.h"
-
-#include <QtWidgets>
-
-CLineOpSelectRange::CLineOpSelectRange(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
-    : ILineOp(points, gis, canvas, parent)
-{
-    cursor = QCursor(QPixmap(":/cursors/cursorSelectRange.png"),0,0);
-}
-
-CLineOpSelectRange::~CLineOpSelectRange()
-{
-    delete scrOptRangeLine;
-}
-
-void CLineOpSelectRange::mouseReleaseEventEx(QMouseEvent * e)
-{
-    if(e->button() == Qt::LeftButton)
-    {
-        switch(state)
-        {
-        case eStateIdle:
-        {
-            if(idxFocus != NOIDX)
-            {
-                state = eState1st;
-            }
-            break;
-        }
-
-        case eState1st:
-        {
-            if(idx2nd < 0 || points.size() <= idx2nd)
-            {
-                break;
-            }
-
-            qint32 d = qAbs(idxFocus - idx2nd);
-            if(d < 1)
-            {
-                resetState();
-                return;
-            }
-
-            scrOptRangeLine = new CScrOptRangeLine(points[idx2nd].pixel, parentHandler, canvas);
-            connect(scrOptRangeLine->toolDelete,    &QToolButton::clicked, this,            &CLineOpSelectRange::slotDelete);
-            connect(scrOptRangeLine->toolCalcRoute, &QToolButton::clicked, this,            &CLineOpSelectRange::slotCalc);
-            connect(scrOptRangeLine->toolDelete,    &QToolButton::clicked, scrOptRangeLine.data(), &CScrOptRangeLine::hide);
-            connect(scrOptRangeLine->toolCalcRoute, &QToolButton::clicked, scrOptRangeLine.data(), &CScrOptRangeLine::hide);
-
-            if(d < 2)
-            {
-                scrOptRangeLine->toolDelete->setEnabled(false);
-            }
-
-            state = eState2nd;
-            break;
-        }
-        }
-    }
-    else if(e->button() == Qt::RightButton)
-    {
-        resetState();
-    }
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-bool CLineOpSelectRange::abortStep()
-{
-    if(state != eStateIdle)
-    {
-        resetState();
-        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-        return true;
-    }
-    return false;
-}
-
-void CLineOpSelectRange::mouseMoveEventEx(QMouseEvent * e)
-{
-    switch(state)
-    {
-    case eStateIdle:
-    {
-        // no point selected yet, find point to highlight
-        idxFocus = isCloseTo(e->pos());
-        break;
-    }
-
-    case eState1st:
-    {
-        idx2nd = isCloseTo(e->pos());
-        if(idx2nd == NOIDX)
-        {
-            idx2nd = isCloseToLine(e->pos());
-            if((idx2nd != NOIDX) && ((idx2nd + 1) < points.size()))
-            {
-                idx2nd++;
-            }
-        }
-        break;
-    }
-    }
-
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-void CLineOpSelectRange::wheelEvent(QWheelEvent * e)
-{
-    if(state == eState2nd)
-    {
-        resetState();
-    }
-}
-
-void CLineOpSelectRange::keyPressEvent(QKeyEvent * e)
-{
-    if(state == eState2nd)
-    {
-        resetState();
-    }
-}
-
-
-void CLineOpSelectRange::drawFg(QPainter& p)
-{
-    if(idxFocus == NOIDX)
-    {
-        return;
-    }
-
-    switch(state)
-    {
-    case eStateIdle:
-    {
-        const IGisLine::point_t& pt = points[idxFocus];
-        drawSinglePointLarge(pt.pixel, p);
-        break;
-    }
-
-    case eState1st:
-    case eState2nd:
-    {
-        if(idx2nd != NOIDX)
-        {
-            qint32 idx1 = qMin(idxFocus, idx2nd);
-            qint32 idx2 = qMax(idxFocus, idx2nd);
-
-            QPolygonF seg;
-            for(int i = idx1; i < idx2; i++)
-            {
-                const IGisLine::point_t& point = points[i];
-                seg << point.pixel;
-                for(const IGisLine::subpt_t& subpt : point.subpts)
-                {
-                    seg << subpt.pixel;
-                }
-            }
-
-            seg << points[idx2].pixel;
-
-            p.setPen(QPen(Qt::darkGreen, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-            p.drawPolyline(seg);
-
-            p.setPen(QPen(Qt::green, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-            p.drawPolyline(seg);
-
-            p.setPen(QPen(Qt::NoPen));
-            p.setBrush(Qt::black);
-
-            QRectF r(0, 0, 8, 8);
-            for(int i = idx1; i <= idx2; i++)
-            {
-                r.moveCenter(points[i].pixel);
-                p.drawRect(r);
-
-                for(const IGisLine::subpt_t& subpt : points[i].subpts)
-                {
-                    p.drawEllipse(subpt.pixel, 2, 2);
-                }
-            }
-        }
-
-        if(!scrOptRangeLine.isNull() && eState2nd == state)
-        {
-            scrOptRangeLine->draw(p);
-        }
-        break;
-    }
-    }
-}
-
-void CLineOpSelectRange::resetState()
-{
-    if(!scrOptRangeLine.isNull())
-    {
-        scrOptRangeLine->deleteLater();
-    }
-    idxFocus = NOIDX;
-    idx2nd   = NOIDX;
-    state    = eStateIdle;
-}
-
-void CLineOpSelectRange::slotDelete()
-{
-    qint32 idx = qMin(idxFocus, idx2nd);
-    qint32 N   = qAbs(idxFocus - idx2nd) - 1;
-
-    points[idx].subpts.clear();
-    points.remove(idx + 1, N);
-    parentHandler->storeToHistory(points);
-
-
-    resetState();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-void CLineOpSelectRange::slotCalc()
-{
-    qint32 idx = qMin(idxFocus, idx2nd);
-    qint32 N   = qAbs(idxFocus - idx2nd) - 1;
-
-    points.remove(idx + 1, N);
-
-    finalizeOperation(idx);
-    parentHandler->storeToHistory(points);
-
-    resetState();
-}
diff --git a/src/mouse/line/CLineOpSelectRange.h b/src/mouse/line/CLineOpSelectRange.h
deleted file mode 100644
index 64d9b89..0000000
--- a/src/mouse/line/CLineOpSelectRange.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef CLINEOPSELECTRANGE_H
-#define CLINEOPSELECTRANGE_H
-
-#include "mouse/line/ILineOp.h"
-
-#include <QPointer>
-
-class CScrOptRangeLine;
-
-class CLineOpSelectRange : public ILineOp
-{
-    Q_OBJECT
-public:
-    CLineOpSelectRange(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
-    virtual ~CLineOpSelectRange();
-
-    void mousePressEventEx(QMouseEvent *e) override
-    {
-    }
-    void mouseMoveEventEx(QMouseEvent *e) override;
-    void mouseReleaseEventEx(QMouseEvent *e) override;
-
-    void wheelEvent(QWheelEvent * e) override;
-    void keyPressEvent(QKeyEvent * e) override;
-
-    void drawFg(QPainter& p) override;
-
-    bool abortStep() override;
-
-private slots:
-    void slotDelete();
-    void slotCalc();
-
-private:
-    void resetState();
-    enum state_e
-    {
-        eStateIdle
-        , eState1st
-        , eState2nd
-    };
-
-    state_e state = eStateIdle;
-
-    qint32 idx2nd = NOIDX;
-
-    QPointer<CScrOptRangeLine>  scrOptRangeLine;
-};
-
-#endif //CLINEOPSELECTRANGE_H
-
diff --git a/src/mouse/line/ILineOp.cpp b/src/mouse/line/ILineOp.cpp
deleted file mode 100644
index 2441dbf..0000000
--- a/src/mouse/line/ILineOp.cpp
+++ /dev/null
@@ -1,412 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/rte/router/CRouterSetup.h"
-#include "mouse/line/ILineOp.h"
-#include "mouse/line/IMouseEditLine.h"
-
-#include <QtWidgets>
-
-ILineOp::ILineOp(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent)
-    : QObject(parent)
-    , parentHandler(parent)
-    , points(points)
-    , canvas(canvas)
-    , gis(gis)
-{
-    timerRouting = new QTimer(this);
-    timerRouting->setSingleShot(true);
-    timerRouting->setInterval(400);
-    connect(timerRouting, &QTimer::timeout, this, &ILineOp::slotTimeoutRouting);
-}
-
-ILineOp::~ILineOp()
-{
-    canvas->reportStatus("Routino", QString());
-}
-
-void ILineOp::cancelDelayedRouting()
-{
-    timerRouting->stop();
-}
-
-void ILineOp::startDelayedRouting()
-{
-    if(parentHandler->useAutoRouting())
-    {
-        timerRouting->start();
-    }
-    else if(parentHandler->useVectorRouting())
-    {
-        slotTimeoutRouting();
-    }
-}
-
-void ILineOp::slotTimeoutRouting()
-{
-    timerRouting->stop();
-    finalizeOperation(idxFocus);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-
-void ILineOp::drawBg(QPainter& p)
-{
-    drawLeadLine(leadLinePixel1,p);
-    drawLeadLine(leadLinePixel2,p);
-}
-
-void ILineOp::drawSinglePointSmall(const QPointF& pt, QPainter& p)
-{
-    QRect r(0,0,3,3);
-    r.moveCenter(pt.toPoint());
-
-    p.setPen(QPen(Qt::white, 2));
-    p.setBrush(Qt::white);
-    p.drawRect(r);
-
-    p.setPen(Qt::black);
-    p.setBrush(Qt::black);
-    p.drawRect(r);
-}
-
-void ILineOp::drawSinglePointLarge(const QPointF &pt, QPainter& p)
-{
-    rectPoint.moveCenter(pt.toPoint());
-
-    p.setPen(penBgPoint);
-    p.setBrush(brushBgPoint);
-    p.drawRect(rectPoint);
-
-    p.setPen(penFgPoint);
-    p.setBrush(brushFgPoint);
-    p.drawRect(rectPoint);
-}
-
-void ILineOp::drawLeadLine(const QPolygonF& line, QPainter& p) const
-{
-    p.setPen(QPen(Qt::yellow, 7, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolyline(line);
-}
-
-void ILineOp::mousePressEvent(QMouseEvent * e)
-{
-    if(idxFocus != NOIDX)
-    {
-        mousePressEventEx(e);
-    }
-
-
-    if(e->button() == Qt::LeftButton)
-    {
-        lastPos    = e->pos();
-        mapMove    = true;
-    }
-
-    // make sure that on-the-fly-routing will
-    // not trigger before the mouse has been moved a bit
-    startMouseMove(e->pos());
-    // make sure a click is actually shorter than longButtonPressTimeout
-    buttonPressTime.start();
-    ignoreClick = false;
-
-    showRoutingErrorMessage(QString());
-}
-
-void ILineOp::mouseMoveEvent(QMouseEvent * e)
-{
-    const QPoint& pos = e->pos();
-
-    // do not take the mouse as moving unless it has been moved
-    // by significant distance away from starting point.
-    // this helps doing clicks with the finger on a touchscreen
-    // and suppresses routing triggered by very small movements.
-    if (!mouseDidMove && (pos - firstPos).manhattanLength() >= IMouse::minimalMouseMovingDistance)
-    {
-        mouseDidMove = true;
-    }
-
-    if (mouseDidMove)
-    {
-        if(mapMove)
-        {
-            QPoint delta = pos - lastPos;
-            canvas->moveMap(delta);
-        }
-        else
-        {
-            updateLeadLines(idxFocus);
-            mouseMoveEventEx(e);
-        }
-    }
-
-    lastPos = pos;
-}
-
-void ILineOp::mouseReleaseEvent(QMouseEvent *e)
-{
-    // suppress map-movement, long-clicks and button-release after zooming or display of CProgressDialog
-    if(!(mouseDidMove && mapMove) && !ignoreClick && (buttonPressTime.elapsed() < IMouse::longButtonPressTimeout))
-    {
-        mouseReleaseEventEx(e);
-    }
-
-    mapMove     = false;
-    mouseDidMove  = false;
-}
-
-void ILineOp::wheelEvent(QWheelEvent *e)
-{
-    // suppress little mouse-movements that are likely to happen when scrolling the mousewheel.
-    startMouseMove(e->pos());
-    if (e->buttons() != Qt::NoButton)
-    {
-        // no shortclick by releasing button right after scrolling the wheel
-        ignoreClick = true;
-    }
-}
-
-void ILineOp::pinchGestureEvent(QPinchGesture *e)
-{
-    // consider finger being down (equivalent to button pressed) during pinch
-    mapMove = true;
-    // no shortclick by lifting the finger right after a pinch
-    ignoreClick = true;
-    // no on-the-fly-routing during pinch
-    timerRouting->stop();
-}
-
-void ILineOp::afterMouseLostEvent(QMouseEvent *e)
-{
-    // pinch or modal dialog interrupt tracking of mouse. As result the mouse
-    // is at an arbitrary position.
-    if (e->type() == QEvent::MouseMove)
-    {
-        // suppress jump of map when touching screen right afterwards
-        lastPos    = e->pos();
-        // consider the move starting at this position
-        startMouseMove(e->pos());
-    }
-    mapMove = e->buttons() & Qt::LeftButton;
-}
-
-void ILineOp::startMouseMove(const QPointF& pos)
-{
-    // the mouse is not considered as moving
-    // as long it has not been moved away from firstPos
-    // by at least a few pixels.
-    firstPos = pos.toPoint();
-    mouseDidMove = false;
-    // as long the mouse is not taken as moving
-    // to not trigger on-the-fly-routing
-    timerRouting->stop();
-}
-
-void ILineOp::updateLeadLines(qint32 idx)
-{
-    leadLinePixel1.clear();
-    leadLinePixel2.clear();
-    subLinePixel1.clear();
-    subLinePixel2.clear();
-
-    if(parentHandler->useVectorRouting() && (idx != NOIDX))
-    {
-        leadLineCoord1.clear();
-        leadLineCoord2.clear();
-        subLineCoord1.clear();
-        subLineCoord2.clear();
-
-        if(idx > 0)
-        {
-            const IGisLine::point_t& pt1 = points[idx - 1];
-            const IGisLine::point_t& pt2 = points[idx];
-            if(canvas->findPolylineCloseBy(pt2.pixel, pt2.pixel, 10, leadLineCoord1))
-            {
-                leadLinePixel1 = leadLineCoord1;
-                gis->convertRad2Px(leadLinePixel1);
-
-                segment_t result;
-                GPS_Math_SubPolyline(pt1.pixel, pt2.pixel, 10, leadLinePixel1, result);
-                result.apply(leadLineCoord1, leadLinePixel1, subLineCoord1, subLinePixel1, gis);
-            }
-        }
-
-        if(idx < points.size() - 1)
-        {
-            const IGisLine::point_t& pt1 = points[idx];
-            const IGisLine::point_t& pt2 = points[idx + 1];
-            if(canvas->findPolylineCloseBy(pt1.pixel, pt1.pixel, 10, leadLineCoord2))
-            {
-                leadLinePixel2 = leadLineCoord2;
-                gis->convertRad2Px(leadLinePixel2);
-
-                segment_t result;
-                GPS_Math_SubPolyline(pt1.pixel, pt2.pixel, 10, leadLinePixel2, result);
-                result.apply(leadLineCoord2, leadLinePixel2, subLineCoord2, subLinePixel2, gis);
-            }
-        }
-    }
-}
-
-void ILineOp::showRoutingErrorMessage(const QString &msg) const
-{
-    if(msg.isEmpty())
-    {
-        canvas->reportStatus("Routino", QString());
-    }
-    else
-    {
-        canvas->reportStatus("Routino", QString("<span style='color: red;'><b>%1</b><br />%2</span>").arg(tr("Routing")).arg(msg));
-    }
-}
-
-void ILineOp::tryRouting(IGisLine::point_t& pt1, IGisLine::point_t& pt2) const
-{
-    QPolygonF subs;
-
-    try
-    {
-        if(CRouterSetup::self().calcRoute(pt1.coord, pt2.coord, subs) >= 0)
-        {
-            pt1.subpts.clear();
-            for(const QPointF &sub : subs)
-            {
-                pt1.subpts << IGisLine::subpt_t(sub);
-            }
-        }
-        showRoutingErrorMessage(QString());
-    }
-    catch(const QString &msg)
-    {
-        showRoutingErrorMessage(msg);
-    }
-    // that is a workaround for canvas loosing mousetracking caused by CProgressDialog being modal:
-    canvas->setMouseTracking(true);
-}
-
-void ILineOp::finalizeOperation(qint32 idx)
-{
-    if(idx == NOIDX)
-    {
-        return;
-    }
-
-    if(parentHandler->useAutoRouting())
-    {
-        CCanvas::setOverrideCursor(Qt::WaitCursor,"ILineOp::finalizeOperation");
-        if(idx > 0)
-        {
-            tryRouting(points[idx - 1], points[idx]);
-        }
-        if(idx < (points.size() - 1))
-        {
-            tryRouting(points[idx], points[idx + 1]);
-        }
-        CCanvas::restoreOverrideCursor("ILineOp::finalizeOperation");
-    }
-    else if(parentHandler->useVectorRouting())
-    {
-        if(idx > 0)
-        {
-            IGisLine::point_t& pt1 = points[idx - 1];
-            pt1.subpts.clear();
-            for(const QPointF &pt : subLineCoord1)
-            {
-                pt1.subpts << IGisLine::subpt_t(pt);
-            }
-        }
-
-        if(idx < (points.size() - 1))
-        {
-            IGisLine::point_t& pt1 = points[idx];
-            pt1.subpts.clear();
-            for(const QPointF &pt : subLineCoord2)
-            {
-                pt1.subpts << IGisLine::subpt_t(pt);
-            }
-        }
-    }
-
-    // need to move the mouse away by some pixels to trigger next routing event
-    startMouseMove(points[idx].pixel);
-
-    parentHandler->updateStatus();
-}
-
-
-qint32 ILineOp::isCloseTo(const QPoint& pos) const
-{
-    qint32 min = 30;
-    qint32 idx = NOIDX;
-    const int N = points.size();
-    for(int i = 0; i < N; i++)
-    {
-        const IGisLine::point_t& pt = points[i];
-
-        qint32 d = (pos - pt.pixel).manhattanLength();
-        if(d < min)
-        {
-            min = d;
-            idx = i;
-        }
-    }
-
-    return idx;
-}
-
-qint32 ILineOp::isCloseToLine(const QPoint& pos) const
-{
-    qint32 idx = NOIDX;
-    qreal dist = 60;
-
-    for(int i = 0; i < points.size() - 1; i++)
-    {
-        QPolygonF line;
-        const IGisLine::point_t& pt1 = points[i];
-        const IGisLine::point_t& pt2 = points[i + 1];
-
-        if(pt1.subpts.isEmpty())
-        {
-            line << pt1.pixel << pt2.pixel;
-        }
-        else
-        {
-            line << pt1.pixel;
-            for(const IGisLine::subpt_t& pt : pt1.subpts)
-            {
-                line << pt.pixel;
-            }
-            line << pt2.pixel;
-        }
-
-        qreal d = GPS_Math_DistPointPolyline(line, pos);
-        if(d < dist)
-        {
-            dist = d;
-            idx  = i;
-        }
-    }
-
-    return idx;
-}
-
diff --git a/src/mouse/line/ILineOp.h b/src/mouse/line/ILineOp.h
deleted file mode 100644
index 58976ab..0000000
--- a/src/mouse/line/ILineOp.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014-2015 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/>.
-
-**********************************************************************************************/
-
-#ifndef ILINEOP_H
-#define ILINEOP_H
-
-#include "gis/IGisLine.h"
-#include <QBrush>
-#include <QCursor>
-#include <QObject>
-#include <QPen>
-#include <QRect>
-
-class QMouseEvent;
-class QPinchGesture;
-class CCanvas;
-class QPainter;
-class IMouseEditLine;
-
-class ILineOp : public QObject
-{
-    Q_OBJECT
-public:
-    ILineOp(SGisLine &points, CGisDraw * gis, CCanvas * canvas, IMouseEditLine * parent);
-    virtual ~ILineOp();
-
-    virtual void mousePressEvent(QMouseEvent * e);
-    virtual void mouseMoveEvent(QMouseEvent * e);
-    virtual void mouseReleaseEvent(QMouseEvent *e);
-
-    virtual void mousePressEventEx(QMouseEvent * e) = 0;
-    virtual void mouseMoveEventEx(QMouseEvent * e) = 0;
-    virtual void mouseReleaseEventEx(QMouseEvent *e) = 0;
-
-    virtual void wheelEvent(QWheelEvent*);
-
-    virtual void keyPressEvent(QKeyEvent*)
-    {
-    }
-
-    virtual void pinchGestureEvent(QPinchGesture *e);
-    virtual void afterMouseLostEvent(QMouseEvent *e);
-
-    virtual void drawFg(QPainter& p) = 0;
-    virtual void drawBg(QPainter& p);
-
-    const QCursor& getCursor() const
-    {
-        return cursor;
-    }
-
-    /**
-       @brief   (try to) abort a step in the current operation
-
-       Method called, if a step in the current operation should be aborted, such as
-       adding or moving a(n already) selected waypoint.
-       This dummy implementation does not do anything and therefore always returns `false`.
-
-       @return  `true` if a step in the current operation was  successfully, `false` otherwise
-     */
-    virtual bool abortStep()
-    {
-        return false;
-    }
-
-    void updateStatus();
-
-protected slots:
-    void slotTimeoutRouting();
-
-protected:
-    virtual void cancelDelayedRouting();
-    virtual void startDelayedRouting();
-    virtual void finalizeOperation(qint32 idx);
-    qint32 isCloseTo(const QPoint& pos) const;
-    qint32 isCloseToLine(const QPoint& pos) const;
-
-    void drawSinglePointSmall(const QPointF& pt, QPainter& p);
-    void drawSinglePointLarge(const QPointF &pt, QPainter& p);
-    void drawLeadLine(const QPolygonF& line, QPainter& p) const;
-    void updateLeadLines(qint32 idx);
-
-    void startMouseMove(const QPointF &pos);
-
-    IMouseEditLine * parentHandler;
-    SGisLine& points;
-    CCanvas * canvas;
-    CGisDraw * gis;
-
-    QCursor cursor;
-
-    qint32 idxFocus = NOIDX;
-
-    QPoint lastPos;
-    QPoint firstPos;
-
-    QRect rectPoint {0,0,9,9};
-    const QPen penBgPoint {Qt::white, 4};
-    const QPen penFgPoint {Qt::red, 2};
-    const QBrush brushBgPoint {Qt::white};
-    const QBrush brushFgPoint {Qt::red};
-
-    QPolygonF leadLineCoord1;
-    QPolygonF leadLineCoord2;
-    QPolygonF leadLinePixel1;
-    QPolygonF leadLinePixel2;
-
-    QPolygonF subLineCoord1;
-    QPolygonF subLineCoord2;
-    QPolygonF subLinePixel1;
-    QPolygonF subLinePixel2;
-
-private:
-    void showRoutingErrorMessage(const QString &msg) const;
-    void tryRouting(IGisLine::point_t& pt1, IGisLine::point_t& pt2) const;
-
-    QTimer * timerRouting;
-    QTime buttonPressTime;
-
-    bool ignoreClick = false;
-    bool mapMove = false;
-    bool mouseDidMove = false;
-};
-
-#endif //ILINEOP_H
-
diff --git a/src/mouse/line/IMouseEditLine.cpp b/src/mouse/line/IMouseEditLine.cpp
deleted file mode 100644
index e50a097..0000000
--- a/src/mouse/line/IMouseEditLine.cpp
+++ /dev/null
@@ -1,526 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "GeoMath.h"
-#include "canvas/CCanvas.h"
-#include "gis/CGisDraw.h"
-#include "gis/IGisLine.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "helpers/CDraw.h"
-#include "helpers/CSettings.h"
-#include "mouse/line/CLineOpAddPoint.h"
-#include "mouse/line/CLineOpDeletePoint.h"
-#include "mouse/line/CLineOpMovePoint.h"
-#include "mouse/line/CLineOpSelectRange.h"
-#include "mouse/line/CScrOptEditLine.h"
-#include "mouse/line/IMouseEditLine.h"
-#include "units/IUnit.h"
-
-#include <QtWidgets>
-
-IMouseEditLine::IMouseEditLine(const IGisItem::key_t &key, const QPointF& point, bool enableStatus, const QString &type, CGisDraw * gis, CCanvas * parent)
-    : IMouse(gis, parent)
-    , key(key)
-    , enableStatus(enableStatus)
-    , type(type)
-{
-    commonSetup();
-    scrOptEditLine->pushSaveOrig->hide(); // hide as there is no original
-
-    points << IGisLine::point_t(point);
-    points.updatePixel(gis);
-
-    storeToHistory(points);
-}
-
-IMouseEditLine::IMouseEditLine(const IGisItem::key_t &key, IGisLine &src, bool enableStatus, const QString &type, CGisDraw *gis, CCanvas *parent)
-    : IMouse(gis, parent)
-    , key(key)
-    , enableStatus(enableStatus)
-    , type(type)
-{
-    commonSetup();
-
-    src.getPolylineFromData(points);
-    points.updatePixel(gis);
-
-    storeToHistory(points);
-}
-
-
-IMouseEditLine::~IMouseEditLine()
-{
-    canvas->reportStatus("IMouseEditLine","");
-    canvas->reportStatus(key.item,"");
-
-    int mode = 0;
-    if(scrOptEditLine->toolNoRoute->isChecked())
-    {
-        mode = 0;
-    }
-    else if(scrOptEditLine->toolAutoRoute->isChecked())
-    {
-        mode = 1;
-    }
-    else if(scrOptEditLine->toolVectorRoute->isChecked())
-    {
-        mode = 2;
-    }
-
-    SETTINGS;
-    cfg.setValue("Route/drawMode", mode);
-
-    delete scrOptEditLine;
-}
-
-
-
-void IMouseEditLine::commonSetup()
-{
-    // create permanent line edit on screen options
-    scrOptEditLine = new CScrOptEditLine(this);
-    connect(scrOptEditLine->pushSaveOrig,    &QPushButton::clicked, this, &IMouseEditLine::slotCopyToOrig   );
-    connect(scrOptEditLine->pushSaveNew,     &QPushButton::clicked, this, &IMouseEditLine::slotCopyToNew    );
-    connect(scrOptEditLine->pushAbort,       &QPushButton::clicked, this, &IMouseEditLine::slotAbort        );
-
-    connect(scrOptEditLine->toolMovePoint,   &QPushButton::clicked, this, &IMouseEditLine::slotMovePoint    );
-    connect(scrOptEditLine->toolSelectRange, &QPushButton::clicked, this, &IMouseEditLine::slotSelectRange  );
-    connect(scrOptEditLine->toolAddPoint,    &QPushButton::clicked, this, &IMouseEditLine::slotAddPoint     );
-    connect(scrOptEditLine->toolDeletePoint, &QPushButton::clicked, this, &IMouseEditLine::slotDeletePoint  );
-
-    connect(scrOptEditLine->toolNoRoute,     &QPushButton::clicked, this, &IMouseEditLine::slotNoRouting    );
-    connect(scrOptEditLine->toolAutoRoute,   &QPushButton::clicked, this, &IMouseEditLine::slotAutoRouting  );
-    connect(scrOptEditLine->toolVectorRoute, &QPushButton::clicked, this, &IMouseEditLine::slotVectorRouting);
-
-    connect(scrOptEditLine->toolUndo,        &QPushButton::clicked, this, &IMouseEditLine::slotUndo         );
-    connect(scrOptEditLine->toolRedo,        &QPushButton::clicked, this, &IMouseEditLine::slotRedo         );
-
-    SETTINGS;
-    int mode = cfg.value("Route/drawMode",0).toInt();
-    switch(mode)
-    {
-    case 0:
-        scrOptEditLine->toolNoRoute->setChecked(true);
-        break;
-
-    case 1:
-        scrOptEditLine->toolAutoRoute->setChecked(true);
-        break;
-
-    case 2:
-        scrOptEditLine->toolVectorRoute->setChecked(true);
-        break;
-    }
-
-    slotMovePoint();
-}
-
-void IMouseEditLine::abortStep()
-{
-    // at first try to abort a step within the current operation (px. stop adding a new waypoint)
-    if(!lineOp->abortStep())
-    {
-        // if within operation nothing can be aborted, then abort the whole operation
-        // this equals clicking the `abort` button
-        slotAbortEx(true);
-    }
-}
-
-bool IMouseEditLine::useAutoRouting() const
-{
-    return scrOptEditLine->toolAutoRoute->isChecked();
-}
-
-bool IMouseEditLine::useVectorRouting() const
-{
-    return scrOptEditLine->toolVectorRoute->isChecked();
-}
-
-void IMouseEditLine::drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p)
-{
-    p.setPen(QPen(color, width, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
-    p.drawPolyline(l);
-}
-
-
-void IMouseEditLine::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
-{
-    if(needsRedraw & (CCanvas::eRedrawMouse | CCanvas::eRedrawGis))
-    {
-        points.updatePixel(gis);
-
-        pixelLine.clear();
-        pixelPts.clear();
-        pixelSubs.clear();
-
-        for(const IGisLine::point_t &pt : points)
-        {
-            pixelLine << pt.pixel;
-            pixelPts << pt.pixel;
-
-            for(const IGisLine::subpt_t &sub : pt.subpts)
-            {
-                pixelLine << sub.pixel;
-                pixelSubs << sub.pixel;
-            }
-        }
-    }
-
-    if(pixelPts.isEmpty())
-    {
-        return;
-    }
-
-    lineOp->drawBg(p);
-
-    drawLine(pixelLine, Qt::white, 7, p);
-
-    // draw magenta arrows (with white background)
-    p.setBrush(Qt::magenta);
-    CDraw::arrows(pixelLine, QRectF(), p, 10, 80, 1.0);
-
-    p.setPen(Qt::NoPen);
-    p.setBrush(Qt::white);
-    QRect r1(0,0,9,9);
-    for(const QPointF &pt : pixelPts)
-    {
-        r1.moveCenter(pt.toPoint());
-        p.drawRect(r1);
-    }
-
-    drawLine(pixelLine, Qt::magenta, 5, p);
-
-    p.setPen(Qt::NoPen);
-    p.setBrush(Qt::black);
-    QRect r2(0,0,7,7);
-    for(const QPointF &pt : pixelPts)
-    {
-        r2.moveCenter(pt.toPoint());
-        p.drawRect(r2);
-    }
-
-    for(const QPointF &pt : pixelSubs)
-    {
-        p.drawEllipse(pt, 2, 2);
-    }
-
-    QRect r3(0,0,9,9);
-    p.setBrush(Qt::NoBrush);
-
-    p.setPen(QPen(Qt::yellow,2));
-    r3.moveCenter(pixelPts.first().toPoint());
-    p.drawRect(r3);
-
-    p.setPen(QPen(Qt::green,2));
-    r3.moveCenter(pixelPts.last().toPoint());
-    p.drawRect(r3);
-
-    lineOp->drawFg(p);
-}
-
-
-void IMouseEditLine::startNewLine(const QPointF& point)
-{
-    scrOptEditLine->toolAddPoint->setChecked(true);
-    slotAddPoint();
-
-    CLineOpAddPoint * lineOpAddPoint = dynamic_cast<CLineOpAddPoint*>(lineOp);
-    if(lineOpAddPoint)
-    {
-        lineOpAddPoint->append();
-    }
-
-    canvas->reportStatus(key.item, tr("<b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/>") + docPanning);
-}
-
-void IMouseEditLine::mousePressEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-    lineOp->mousePressEvent(e);
-}
-
-void IMouseEditLine::mouseMoveEvent(QMouseEvent * e)
-{
-    point  = e->pos();
-
-    lineOp->mouseMoveEvent(e);
-
-    canvas->displayInfo(point);
-    canvas->update();
-}
-
-void IMouseEditLine::mouseReleaseEvent(QMouseEvent *e)
-{
-    point  = e->pos();
-    lineOp->mouseReleaseEvent(e);
-}
-
-void IMouseEditLine::wheelEvent(QWheelEvent * e)
-{
-    canvas->update();
-    lineOp->wheelEvent(e);
-}
-
-void IMouseEditLine::keyPressEvent(QKeyEvent * e)
-{
-    canvas->update();
-    lineOp->keyPressEvent(e);
-}
-
-void IMouseEditLine::pinchGestureEvent(QPinchGesture *e)
-{
-    lineOp->pinchGestureEvent(e);
-}
-
-void IMouseEditLine::afterMouseLostEvent(QMouseEvent *e)
-{
-    point = e->pos();
-    lineOp->afterMouseLostEvent(e);
-}
-
-
-void IMouseEditLine::slotDeletePoint()
-{
-    canvas->reportStatus(key.item, tr("<b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/>") + docPanning);
-    delete lineOp;
-    lineOp = new CLineOpDeletePoint(points, gis, canvas, this);
-    changeCursor();
-}
-
-void IMouseEditLine::slotSelectRange()
-{
-    canvas->reportStatus(key.item, tr("<b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/>") + docPanning);
-    delete lineOp;
-    lineOp = new CLineOpSelectRange(points, gis, canvas, this);
-    changeCursor();
-}
-
-void IMouseEditLine::slotMovePoint()
-{
-    canvas->reportStatus(key.item, tr("<b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/>") + docPanning);
-    delete lineOp;
-    lineOp = new CLineOpMovePoint(points, gis, canvas, this);
-    changeCursor();
-}
-
-void IMouseEditLine::slotAddPoint()
-{
-    canvas->reportStatus(key.item, tr("<b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/>") + docPanning);
-    delete lineOp;
-    lineOp = new CLineOpAddPoint(points, gis, canvas, this);
-    changeCursor();
-}
-
-void IMouseEditLine::slotNoRouting()
-{
-    canvas->reportStatus(key.item, tr("<b>No Routing</b><br/>All points will be connected with a straight line.<br/>"));
-    canvas->reportStatus("Routino", QString());
-}
-
-void IMouseEditLine::slotAutoRouting()
-{
-    canvas->reportStatus(key.item, tr("<b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/>"));
-}
-
-void IMouseEditLine::slotVectorRouting()
-{
-    canvas->reportStatus(key.item, tr("<b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/>"));
-    canvas->reportStatus("Routino", QString());
-}
-
-
-void IMouseEditLine::changeCursor()
-{
-    cursor = lineOp->getCursor();
-    if(QApplication::overrideCursor() != 0)
-    {
-        CCanvas::changeOverrideCursor(cursor,"IMouseEditLine::changeCursor");
-    }
-}
-
-void IMouseEditLine::slotAbortEx(bool showMB)
-{
-    // ask if the current operation should be aborted (only in case there are things to be saved)
-    bool doAbort = ( idxHistory == 0 ) || !showMB;
-    if(!doAbort)
-    {
-        doAbort = (QMessageBox::Yes == QMessageBox::question(nullptr, "Abort", "Do you really want to abort?\nAny modifications done will be discarded.", QMessageBox::Yes | QMessageBox::No));
-    }
-
-    if(doAbort)
-    {
-        canvas->resetMouse();
-        canvas->update();
-    }
-}
-
-void IMouseEditLine::slotCopyToOrig()
-{
-    QMutexLocker lock(&IGisItem::mutexItems);
-
-    IGisLine * line = getGisLine();
-    if(line != nullptr)
-    {
-        CMainWindow::self().getElevationAt(points);
-        line->setDataFromPolyline(points);
-    }
-
-
-    canvas->resetMouse();
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void IMouseEditLine::restoreFromHistory(SGisLine& line)
-{
-    line = history[idxHistory];
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-
-    updateStatus();
-}
-
-void IMouseEditLine::storeToHistory(const SGisLine& line)
-{
-    // crop history if necessary
-    if(idxHistory != NOIDX)
-    {
-        while(history.size() > (idxHistory + 1))
-        {
-            history.pop_back();
-        }
-    }
-
-    history << line;
-    idxHistory = history.size() - 1;
-
-    scrOptEditLine->toolRedo->setEnabled(false);
-    scrOptEditLine->toolUndo->setEnabled(idxHistory > 0);
-
-    updateStatus();
-}
-
-void IMouseEditLine::slotUndo()
-{
-    if(lineOp != nullptr)
-    {
-        lineOp->abortStep();
-    }
-
-    if(idxHistory > 0)
-    {
-        idxHistory--;
-    }
-
-    points = history[idxHistory];
-
-    scrOptEditLine->toolRedo->setEnabled(true);
-    scrOptEditLine->toolUndo->setEnabled(idxHistory > 0);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-void IMouseEditLine::slotRedo()
-{
-    // abort operation
-    if(lineOp != nullptr)
-    {
-        lineOp->abortStep();
-    }
-
-    if(idxHistory < (history.size() - 1))
-    {
-        idxHistory++;
-    }
-
-    points = history[idxHistory];
-
-    scrOptEditLine->toolRedo->setEnabled(idxHistory < (history.size() - 1));
-    scrOptEditLine->toolUndo->setEnabled(true);
-    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
-}
-
-void IMouseEditLine::updateStatus()
-{
-    if(!enableStatus || points.isEmpty())
-    {
-        canvas->reportStatus("IMouseEditLine", QString());
-        return;
-    }
-
-    canvas->getElevationAt(points);
-
-    qreal asc   = 0;
-    qreal dsc   = 0;
-    qreal dist  = 0;
-
-    qreal lastEle = points[0].ele;
-    QPointF lastPos = points[0].coord;
-
-    for(const IGisLine::point_t &pt1 : points)
-    {
-        qreal delta = pt1.ele - lastEle;
-        if(qAbs(delta) > ASCENT_THRESHOLD)
-        {
-            if(delta > 0)
-            {
-                asc += delta;
-            }
-            if(delta < 0)
-            {
-                dsc -= delta;
-            }
-            lastEle = pt1.ele;
-        }
-
-        dist += GPS_Math_Distance(lastPos.x(), lastPos.y(), pt1.coord.x(), pt1.coord.y());
-        lastPos = pt1.coord;
-
-        for(const IGisLine::subpt_t& pt : pt1.subpts)
-        {
-            delta = pt.ele - lastEle;
-            if(qAbs(delta) > ASCENT_THRESHOLD)
-            {
-                if(delta > 0)
-                {
-                    asc += delta;
-                }
-                if(delta < 0)
-                {
-                    dsc -= delta;
-                }
-                lastEle = pt.ele;
-            }
-
-            dist += GPS_Math_Distance(lastPos.x(), lastPos.y(), pt.coord.x(), pt.coord.y());
-            lastPos = pt.coord;
-        }
-    }
-
-    QString msg, val, unit;
-
-    msg += tr("<b>%1 Metrics</b>").arg(type);
-    msg += "<table>";
-    IUnit::self().meter2distance(dist, val, unit);
-    msg += "<tr><td>" + tr("Distance:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
-    IUnit::self().meter2elevation(asc, val, unit);
-    msg += "<tr><td>" + tr("Ascent:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
-    IUnit::self().meter2elevation(dsc, val, unit);
-    msg += "<tr><td>" + tr("Descent:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
-    msg += "</table>";
-
-    canvas->reportStatus("IMouseEditLine",msg);
-}
diff --git a/src/mouse/line/IMouseEditLine.h b/src/mouse/line/IMouseEditLine.h
deleted file mode 100644
index ce10d64..0000000
--- a/src/mouse/line/IMouseEditLine.h
+++ /dev/null
@@ -1,157 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef IMOUSEEDITLINE_H
-#define IMOUSEEDITLINE_H
-
-#include "gis/IGisItem.h"
-#include "gis/IGisLine.h"
-#include "mouse/IMouse.h"
-#include <QDebug>
-#include <QPointer>
-#include <QPolygonF>
-
-class CGisDraw;
-class CCanvas;
-class IGisLine;
-class CScrOptEditLine;
-class ILineOp;
-
-class IMouseEditLine : public IMouse
-{
-    Q_OBJECT
-public:
-    enum features_e
-    {
-        eFeatureSnapToLines = 0x01
-        , eFeatureRouting   = 0x02
-    };
-
-    /**
-       @brief Start to create a new track with given point as first track point
-       @param point     the starting point
-       @param gis       the draw context to use
-       @param parent    the canvas to use
-     */
-    IMouseEditLine(const IGisItem::key_t& key, const QPointF& point, bool enableStatus, const QString& type, CGisDraw * gis, CCanvas * parent);
-    /**
-       @brief Edit an existing track
-       @param trk       the track to edit
-       @param gis       the draw context to use
-       @param parent    the canvas to use
-     */
-    IMouseEditLine(const IGisItem::key_t &key, IGisLine &src, bool enableStatus, const QString& type, CGisDraw * gis, CCanvas * parent);
-    virtual ~IMouseEditLine();
-
-    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
-    void mousePressEvent(QMouseEvent *e) override;
-    void mouseMoveEvent(QMouseEvent *e) override;
-    void mouseReleaseEvent(QMouseEvent *e) override;
-    void wheelEvent(QWheelEvent *e) override;
-    void keyPressEvent(QKeyEvent *e) override;
-    void pinchGestureEvent(QPinchGesture *e) override;
-    void afterMouseLostEvent(QMouseEvent *e) override;
-
-    void abortStep();
-
-    bool useAutoRouting() const;
-    bool useVectorRouting() const;
-
-    void storeToHistory(const SGisLine& line);
-    void restoreFromHistory(SGisLine& line);
-
-    virtual void updateStatus();
-
-protected slots:
-    /**
-       @brief Delete the selected point
-     */
-    void slotDeletePoint();
-    /**
-       @brief Start to select a range of points
-     */
-    void slotSelectRange();
-    /**
-       @brief Move selected point
-     */
-    void slotMovePoint();
-    /**
-       @brief Add points in direction start of track (eStateAddPointBwd)
-     */
-    void slotAddPoint();
-
-    void slotNoRouting();
-    void slotAutoRouting();
-    void slotVectorRouting();
-
-
-    virtual void slotAbort() = 0;
-    void slotAbortEx(bool showMB);
-    virtual void slotCopyToOrig();
-    virtual void slotCopyToNew() = 0;
-
-    void slotUndo();
-    void slotRedo();
-
-protected:
-    virtual void drawLine(const QPolygonF& l, const QColor color, int width, QPainter& p);
-    /**
-       @brief Get access to the IGisLine object a subclass of IMouseEditLine is handling.
-       @return A valid pointer or 0.
-     */
-    virtual IGisLine * getGisLine() const = 0;
-
-    virtual void startNewLine(const QPointF &point);
-
-    /// shadow cursor needed to restore cursor after some actions providing their own cursor.
-    QCursor cursor1;
-
-    /// the abstract line object to edit
-    SGisLine points;
-
-    /// undo/redo history
-    QList<SGisLine> history;
-    qint32 idxHistory = NOIDX;
-
-    /// the on screen buttons
-    CScrOptEditLine * scrOptEditLine;
-
-    /// the key of the GIS item to edit
-    IGisItem::key_t key;
-
-    QString docPanning = tr("<br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/>");
-
-private:
-    void commonSetup();
-    void changeCursor();
-
-    QPolygonF pixelLine;
-    QPolygonF pixelPts;
-    QPolygonF pixelSubs;
-
-    /// the current active line operation (move, add, delete...)
-    ILineOp * lineOp = nullptr;
-
-    bool enableStatus;
-
-    QString type;
-};
-
-#endif //IMOUSEEDITLINE_H
-
-
diff --git a/src/plot/IPlot.cpp b/src/plot/IPlot.cpp
deleted file mode 100644
index 7f97249..0000000
--- a/src/plot/IPlot.cpp
+++ /dev/null
@@ -1,1459 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
-    Copyright (C) 2015 Christian Eichler code at christian-eichler.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 "plot/CPlotAxis.h"
-#include "plot/IPlot.h"
-
-#include "CMainWindow.h"
-#include "gis/CGisWorkspace.h"
-#include "gis/trk/CActivityTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "helpers/CDraw.h"
-#include "helpers/CSettings.h"
-#include "mouse/CScrOptRangeTrk.h"
-#include "widgets/CFadingIcon.h"
-
-#include <QKeyEvent>
-#include <QtWidgets>
-
-const 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)
-};
-
-const QPen IPlot::pensThin[] =
-{
-    QPen(Qt::darkBlue,   2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
-    , QPen(Qt::darkRed,    2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
-    , QPen(Qt::darkYellow, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
-    , QPen(Qt::darkGreen,  2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
-};
-
-const QColor IPlot::colors[] =
-{
-    QColor(Qt::blue)
-    , QColor(0, 0, 0, 0)
-    , QColor(0, 0, 0, 0)
-    , QColor(Qt::darkGreen)
-};
-
-int IPlot::cnt = 0;
-
-IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget *parent)
-    : QWidget(parent)
-    , INotifyTrk(CGisItemTrk::eVisualPlot)
-    , mode(mode)
-    , trk(trk)
-    , fm(font())
-{
-    cnt++;
-    setObjectName(QString("IPlot%1").arg(cnt));
-
-    setContextMenuPolicy(Qt::CustomContextMenu);
-    setMouseTracking(true);
-
-    if(trk)
-    {
-        trk->registerVisual(this);
-    }
-
-    data = new CPlotData(type, this);
-
-    if(mode == eModeIcon)
-    {
-        showScale = false;
-        thinLine = true;
-    }
-
-    if(mode == eModeWindow)
-    {
-        overrideWindowFlags(Qt::Tool);
-        setAttribute(Qt::WA_DeleteOnClose, true);
-    }
-
-    menu = new QMenu(this);
-    actionResetZoom = menu->addAction(QIcon("://icons/32x32/Zoom.png"),        tr("Reset Zoom"), this, SLOT(slotResetZoom()));
-    actionStopRange = menu->addAction(QIcon("://icons/32x32/SelectRange.png"), tr("Stop Range"), this, SLOT(slotStopRange()));
-    actionPrint     = menu->addAction(QIcon("://icons/32x32/Save.png"),        tr("Save..."),    this, SLOT(slotSave()));
-    menu->addSeparator();
-    actionAddWpt    = menu->addAction(QIcon("://icons/32x32/AddWpt.png"),      tr("Add Waypoint"), this, SLOT(slotAddWpt()));
-    actionCutTrk    = menu->addAction(QIcon("://icons/32x32/TrkCut.png"),       tr("Cut..."),    this, SLOT(slotCutTrk()));
-
-    connect(this, &IPlot::customContextMenuRequested, this, &IPlot::slotContextMenu);
-}
-
-IPlot::~IPlot()
-{
-    cnt--;
-
-    if(trk)
-    {
-        trk->unregisterVisual(this);
-        /*
-            Always set the mode to normal. If the object is not owner
-            of the current mode, the request will be ignored.
-         */
-        trk->setMode(CGisItemTrk::eModeNormal, objectName());
-
-        /*
-            As having the user focus will always display an on screen plot, closing
-            the plot has to result into the track loosing the focus.
-         */
-        if(mode == eModeWindow)
-        {
-            trk->looseUserFocus();
-            CCanvas * canvas = dynamic_cast<CCanvas*>(parent());
-            if(canvas)
-            {
-                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
-            }
-        }
-    }
-}
-
-void IPlot::clear()
-{
-    needsRedraw = true;
-    data->lines.clear();
-    data->tags.clear();
-    data->badData = true;
-    update();
-}
-
-void IPlot::setXTicScale(qreal scale)
-{
-    data->x().setTicScale(scale);
-    setSizes();
-    update();
-}
-
-void IPlot::setYLabel(const QString& str)
-{
-    data->ylabel = str;
-    setSizes();
-    update();
-}
-
-
-void IPlot::setXLabel(const QString& str)
-{
-    data->xlabel = str;
-    setSizes();
-    update();
-}
-
-
-void IPlot::newLine(const QPolygonF& line, const QString& label)
-{
-    data->lines.clear();
-
-    QRectF r = line.boundingRect();
-    if((r.height() < 0) || (r.width() < 0) || line.isEmpty())
-    {
-        data->badData = true;
-        return;
-    }
-
-    CPlotData::line_t l;
-    l.points    = line;
-    l.label     = label;
-
-    data->badData = false;
-    data->lines << l;
-    setSizes();
-    data->x().setScale( rectGraphArea.width() );
-    data->y().setScale( rectGraphArea.height() );
-
-    needsRedraw = true;
-    update();
-}
-
-void IPlot::addLine(const QPolygonF& line, const QString& label)
-{
-    QRectF r = line.boundingRect();
-    if(!r.isValid() || line.isEmpty())
-    {
-        return;
-    }
-
-    CPlotData::line_t l;
-    l.points    = line;
-    l.label     = label;
-
-    data->lines << l;
-    setSizes();
-    data->x().setScale( rectGraphArea.width() );
-    data->y().setScale( rectGraphArea.height() );
-
-    needsRedraw = true;
-    update();
-}
-
-
-void IPlot::setLimits()
-{
-    data->setLimits();
-}
-
-void IPlot::resetZoom()
-{
-    data->x().resetZoom();
-    data->y().resetZoom();
-    setSizes();
-
-    needsRedraw = true;
-    update();
-}
-
-
-void IPlot::paintEvent(QPaintEvent * e)
-{
-    QPainter p(this);
-    draw(p);
-}
-
-void IPlot::resizeEvent(QResizeEvent * e)
-{
-    setSizes();
-
-    buffer = QImage(e->size(), QImage::Format_ARGB32);
-
-    needsRedraw = true;
-    update();
-}
-
-void IPlot::leaveEvent(QEvent * e)
-{
-    needsRedraw = true;
-    posMouse1    = NOPOINT;
-
-    CCanvas::restoreOverrideCursor("IPlot::leaveEvent");
-    update();
-}
-
-
-void IPlot::enterEvent(QEvent * e)
-{
-    needsRedraw = true;
-    CCanvas::setOverrideCursor(Qt::PointingHandCursor,"IPlot::enterEvent");
-    update();
-}
-
-void IPlot::draw(QPainter& p)
-{
-    if(needsRedraw)
-    {
-        draw();
-        needsRedraw = false;
-    }
-
-    p.drawImage(0,0,buffer);
-    drawDecoration(p);
-}
-
-void IPlot::keyPressEvent(QKeyEvent *e)
-{
-    // close the current window if `Esc` was pressed
-    if(Qt::Key_Escape == e->key())
-    {
-        e->accept();
-        deleteLater();
-    }
-    else
-    {
-        QWidget::keyPressEvent(e);
-    }
-}
-
-bool IPlot::graphAreaContainsMousePos(QPoint& pos)
-{
-    if(rectGraphArea.contains(pos))
-    {
-        return true;
-    }
-
-    if((pos.y() < rectGraphArea.bottom()) && (pos.y() > rectGraphArea.top()))
-    {
-        if(pos.x() < rectGraphArea.left())
-        {
-            pos.rx() = rectGraphArea.left();
-        }
-
-        if(pos.x() > rectGraphArea.right())
-        {
-            pos.rx() = rectGraphArea.right();
-        }
-
-        return true;
-    }
-
-    return false;
-}
-
-void IPlot::mouseMoveEvent(QMouseEvent * e)
-{
-    if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
-    {
-        return;
-    }
-
-    QPoint pos      = e->pos();
-    mouseDidMove    = (e->buttons() == Qt::LeftButton);
-    if(mouseDidMove)
-    {
-        if(!scrOptRange.isNull())
-        {
-            delete scrOptRange;
-        }
-        QPoint diff = pos - posLast;
-
-        data->x().move(-diff.x());
-        data->y().move( diff.y());
-        needsRedraw = true;
-        update();
-
-        posLast = pos;
-        return;
-    }
-
-    posMouse1    = NOPOINT;
-    if(graphAreaContainsMousePos(pos))
-    {
-        posMouse1 = pos;
-
-        // set point of focus at track object
-        qreal x = data->x().pt2val(posMouse1.x() - left);
-        setMouseFocus(x, CGisItemTrk::eFocusMouseMove);
-
-        // update canvas if visible
-        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-        if(canvas)
-        {
-            canvas->update();
-        }
-        e->accept();
-    }
-
-    update();
-}
-
-void IPlot::setMouseFocus(qreal pos, enum CGisItemTrk::focusmode_e fm)
-{
-    if(nullptr == trk)
-    {
-        return;
-    }
-
-    if(data->axisType == CPlotData::eAxisLinear)
-    {
-        trk->setMouseFocusByDistance(pos, fm, objectName());
-    }
-    else if(data->axisType == CPlotData::eAxisTime)
-    {
-        trk->setMouseFocusByTime(pos, fm, objectName());
-    }
-}
-
-void IPlot::mousePressEvent(QMouseEvent * e)
-{
-    if((e->button() == Qt::LeftButton) && (mode == eModeIcon))
-    {
-        trk->edit();
-    }
-
-    mouseDidMove    = false;
-    posLast         = e->pos();
-}
-
-void IPlot::mouseReleaseEvent(QMouseEvent * e)
-{
-    if(e->button() == Qt::LeftButton)
-    {
-        if((mode == eModeIcon) || mouseDidMove)
-        {
-            mouseDidMove = false;
-            return;
-        }
-        else
-        {
-            QPoint pos = e->pos();
-            posMouse1  = graphAreaContainsMousePos(pos) ? pos : NOPOINT;
-
-            bool wasProcessed = true;
-            // set point of focus at track object
-            qreal x = data->x().pt2val(posMouse1.x() - left);
-
-            switch(mouseClickState)
-            {
-            case eMouseClickIdle:
-            {
-                // In idle state a mouse click will select the first point of a range
-                if(trk->setMode(CGisItemTrk::eModeRange, objectName()))
-                {
-                    setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
-                    mouseClickState = eMouseClick1st;
-                }
-                else
-                {
-                    /*
-                        If the object is not the owner of the range selection, no action has to be taken.
-                        However the user has to be informed, that he clicked on the wrong widget.
-                     */
-                    new CFadingIcon(posMouse1, "://icons/48x48/NoGo.png", this);
-                    wasProcessed = false;
-                }
-                break;
-            }
-
-            case eMouseClick1st:
-            {
-                // In 1st click state a mouse click will select the second point of a range and display options
-                setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
-                /*
-                    As the screen option is created on the fly it has to be connected to all slots,too.
-                    Later, when destroyed the slots will be disconnected automatically.
-                 */
-                delete scrOptRange;
-                scrOptRange = new CScrOptRangeTrk(pos, trk, &dummyMouse, this);
-                connect(scrOptRange->toolHidePoints, &QToolButton::clicked, this, &IPlot::slotHidePoints);
-                connect(scrOptRange->toolShowPoints, &QToolButton::clicked, this, &IPlot::slotShowPoints);
-                connect(scrOptRange->toolCopy,       &QToolButton::clicked, this, &IPlot::slotCopy);
-
-                connect(scrOptRange.data(), &CScrOptRangeTrk::activitySelected, this, &IPlot::slotActivity);
-
-                /* Adjust position of screen option widget if the widget is out of the visible area*/
-                QRect r1 = scrOptRange->geometry();
-                QRect r2 = geometry();
-                r1.moveTopLeft(mapToParent(r1.topLeft()));
-                if(!r2.contains(r1))
-                {
-                    // test if screen option is out of area on the right side
-                    if(!r2.contains(r1.topRight()))
-                    {
-                        QPoint pt = QPoint(r2.width(), r2.height()) - QPoint(r1.width(), r1.height());
-                        scrOptRange->move(pt);
-                    }
-                    // test if screen option is out of area on the left side
-                    else if(!r2.contains(r1.topLeft()))
-                    {
-                        QPoint pt = QPoint(0, r2.height()) - QPoint(0, r1.height());
-                        scrOptRange->move(pt);
-                    }
-                    // test if screen option is out of area on the bottom
-                    else if(!r2.contains(r1.bottomLeft()))
-                    {
-                        QPoint pt = QPoint(r1.left(), r2.height()) - QPoint(r2.left(), r1.height());
-                        scrOptRange->move(pt);
-                    }
-                }
-
-                mouseClickState = eMouseClick2nd;
-                break;
-            }
-
-            case eMouseClick2nd:
-            {
-                // In second click state a mouse click will reset the range selection
-                delete scrOptRange;
-                trk->setMode(CGisItemTrk::eModeNormal, objectName());
-                idxSel1 = idxSel2 = NOIDX;
-                mouseClickState = eMouseClickIdle;
-                break;
-            }
-            }
-
-
-            // Update canvas only if the object is the owner of the range selection
-            if(wasProcessed)
-            {
-                emit sigMouseClickState(mouseClickState);
-
-                // update canvas if visible
-                CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-                if(canvas)
-                {
-                    canvas->update();
-                }
-            }
-        }
-        e->accept();
-    }
-    update();
-}
-
-void IPlot::wheelEvent(QWheelEvent * e)
-{
-    bool in = CMainWindow::self().flipMouseWheel() ? (e->delta() < 0) : (e->delta() > 0);
-
-    bool doHorizontalZoom   = false;
-    bool doVerticalZoom     = false;
-
-    switch(QApplication::keyboardModifiers())
-    {
-    case Qt::AltModifier:
-        doHorizontalZoom    = true;
-        break;
-
-    case Qt::ControlModifier:
-        doVerticalZoom      = true;
-        break;
-
-    case Qt::NoModifier:
-        doHorizontalZoom    = true;
-        doVerticalZoom      = true;
-        break;
-    }
-
-    if(doHorizontalZoom)
-    {
-        data->x().zoom(in, e->pos().x() - left);
-        setSizes();
-        data->x().setScale(rectGraphArea.width());
-    }
-
-    if(doVerticalZoom)
-    {
-        data->y().zoom(in, bottom - e->pos().y());
-        setSizes();
-        data->y().setScale(rectGraphArea.height());
-    }
-
-
-    QPoint p = mapToGlobal(e->pos() + QPoint(32,0));
-    QToolTip::showText(p,tr("Hold CTRL key for vertical zoom, only.\nHold ALT key for horizontal zoom, only."), this, QRect(), 500);
-    needsRedraw = true;
-    update();
-}
-
-void IPlot::setSizes()
-{
-    fm = QFontMetrics(CMainWindow::self().getMapFont());
-    left = 0;
-
-    scaleWidthX1 = showScale ? data->x().getScaleWidth( fm ) : 0;
-    scaleWidthY1 = showScale ? data->y().getScaleWidth( fm ) : 0;
-
-    scaleWidthY1 = (scaleWidthX1/2) > scaleWidthY1 ? scaleWidthX1/2 : scaleWidthY1;
-
-    fontWidth    = fm.maxWidth();
-    fontHeight   = fm.height();
-    deadAreaX    = fontWidth >> 1;
-    deadAreaY    = ( fontHeight + 1 ) >> 1;
-
-    setLRTB();
-    setSizeIconArea();
-    setSizeXLabel();
-    setSizeYLabel();
-    setSizeTrackInfo();
-    setSizeDrawArea();
-}
-
-void IPlot::setLRTB()
-{
-    left = 0;
-
-    left += data->ylabel.isEmpty() ? 0 : fontHeight;
-    left += scaleWidthY1;
-    left += deadAreaX;
-
-    right = size().width();
-    right -= deadAreaX;
-    right -= scaleWidthX1 / 2;
-
-    top = 0;
-    if(!data->tags.isEmpty())
-    {
-        top += 9;
-    }
-    top += deadAreaY;
-
-    bottom = size().height();
-    bottom -= data->xlabel.isEmpty() ? 0 : fontHeight;
-    // tick marks
-    if(scaleWidthX1)
-    {
-        bottom -= fontHeight;
-    }
-    bottom -= deadAreaY;
-
-    if(!data->xlabel.isEmpty())
-    {
-        bottom -= deadAreaY;
-    }
-}
-
-
-void IPlot::setSizeIconArea()
-{
-    rectIconArea = QRect(left, deadAreaY, right - left, 16 + fontHeight + deadAreaY);
-}
-
-void IPlot::setSizeXLabel()
-{
-    int y;
-    if ( data->xlabel.isEmpty() )
-    {
-        rectX1Label = QRect( 0, 0, 0, 0 );
-    }
-    else
-    {
-        rectX1Label.setWidth( right - left );
-        rectX1Label.setHeight( fontHeight );
-        y = ( size().height() - rectX1Label.height()) - deadAreaY;
-
-        rectX1Label.moveTopLeft( QPoint( left, y ) );
-    }
-}
-
-void IPlot::setSizeYLabel()
-{
-    if ( data->ylabel.isEmpty() )
-    {
-        rectY1Label = QRect( 0, 0, 0, 0 );
-    }
-    else
-    {
-        rectY1Label.setWidth( bottom - top );
-        rectY1Label.setHeight( fontHeight );
-        rectY1Label.moveTopLeft( QPoint( size().height() - bottom, 0 ) );
-    }
-}
-
-void IPlot::setSizeTrackInfo()
-{
-    if(data->tags.isEmpty() /*|| !CResources::self().showTrackProfileEleInfo()*/)
-    {
-        rectTrackInfo = QRect();
-        return;
-    }
-
-    rectTrackInfo.setWidth(right - left);
-    rectTrackInfo.setHeight(fontHeight);
-    rectTrackInfo.moveLeft(left);
-    rectTrackInfo.moveTop(size().height() - fontHeight);
-}
-
-void IPlot::setSizeDrawArea()
-{
-    rectGraphArea.setWidth( right - left );
-    rectGraphArea.setHeight( bottom - top );
-    rectGraphArea.moveTopLeft( QPoint( left, top ) );
-
-    data->x().setScale( rectGraphArea.width() );
-    data->y().setScale( rectGraphArea.height() );
-}
-
-
-void IPlot::draw()
-{
-    buffer.fill(Qt::transparent);
-    QPainter p(&buffer);
-    USE_ANTI_ALIASING(p, true);
-
-    if(mode == eModeNormal)
-    {
-        p.fillRect(rect(),Qt::white);
-    }
-    else if(mode == eModeIcon)
-    {
-        QRect r = rect();
-        r.adjust(2,2,-2,-2);
-        if(underMouse() || posMouse1 != NOPOINT || solid)
-        {
-            p.setPen(solid ? CDraw::penBorderBlack : CDraw::penBorderBlue);
-            p.setOpacity(1.0);
-        }
-        else
-        {
-            p.setPen(CDraw::penBorderBlack);
-            p.setOpacity(0.6);
-        }
-        p.setBrush(QColor(255,255,255,255));
-
-        PAINT_ROUNDED_RECT(p,r);
-    }
-
-    if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
-    {
-        p.drawText(rect(), Qt::AlignCenter, tr("No or bad data."));
-        return;
-    }
-
-    p.setFont(CMainWindow::self().getMapFont());
-    drawTags(p);
-    p.setClipping(true);
-    p.setClipRect(rectGraphArea);
-    drawData(p);
-    p.setClipping(false);
-    drawLabels(p);
-    if(showScale)
-    {
-        drawXScale(p);
-        drawYScale(p);
-    }
-    drawGridX(p);
-    drawGridY(p);
-    drawActivities(p);
-    drawXTic(p);
-    drawYTic(p);
-    p.setPen(QPen(Qt::black,2));
-    p.drawRect(rectGraphArea);
-
-    drawLegend(p);
-}
-
-QPointF IPlot::getBasePoint(int ptx) const
-{
-    CPlotAxis& yaxis = data->y();
-
-    if(0 >= data->ymin && 0 <= data->ymax)
-    {
-        return QPointF(ptx, bottom - yaxis.val2pt(0));
-    }
-    else if(data->ymin >= 0)
-    {
-        return QPointF(ptx, bottom - yaxis.val2pt(data->ymin));
-    }
-    else if(data->ymax <= 0)
-    {
-        return QPointF(ptx, bottom - yaxis.val2pt(data->ymax));
-    }
-
-    qWarning() << "Requesting basePoint for ptx = " << ptx << "; data->ymin/max = {" << data->ymin << ",  " << data->ymax << "}";
-    return QPointF(ptx, bottom);
-}
-
-QPolygonF IPlot::getVisiblePolygon(const QPolygonF &polyline, QPolygonF &line) const
-{
-    const CPlotAxis &xaxis = data->x();
-    const CPlotAxis &yaxis = data->y();
-
-    int ptx = NOINT;
-    int pty = NOINT;
-
-    for(const QPointF &pt : polyline)
-    {
-        int oldPtx = ptx;
-        int oldPty = pty;
-        ptx = left   + xaxis.val2pt( pt.x() );
-        pty = bottom - yaxis.val2pt( pt.y() );
-
-        if(ptx >= left && ptx <= right)
-        {
-            // if oldPtx is < left, then ptx is the first visible point
-            if(NOINT == oldPtx || oldPtx < left)
-            {
-                // we may need to interpolate things if we just found the first visible point
-                if(NOINT != oldPtx && ptx > left)
-                {
-                    line << getBasePoint(left);
-
-                    int intPty = oldPty + ((oldPty - pty) * (left - oldPtx)) / (oldPtx - ptx);
-                    line << QPointF(left, intPty);
-                }
-                else
-                {
-                    line << getBasePoint(ptx);
-                }
-            }
-
-            line << QPointF(ptx, pty);
-        }
-        else if(ptx > right)
-        {
-            // handle the special case `no point in the visible interval`
-            // -> add interpolated left point
-            if(oldPtx < left)
-            {
-                oldPty = oldPty + (pty - oldPty) / (left - oldPtx);
-                oldPtx = left;
-
-                line << getBasePoint(oldPtx);
-                line << QPointF(oldPtx, oldPty);
-            }
-
-            // interpolate the value at `right`
-            pty = oldPty + ((pty - oldPty) * (right - oldPtx)) / (ptx - oldPtx);
-            ptx = right;
-            line << QPointF(ptx, pty);
-        }
-
-        if(ptx >= right)
-        {
-            break;
-        }
-    }
-    line << getBasePoint(ptx);
-    return line;
-}
-
-void IPlot::drawData(QPainter& p)
-{
-    int penIdx = 0;
-    QList<CPlotData::line_t> lines                = data->lines;
-    QList<CPlotData::line_t>::const_iterator line = lines.begin();
-
-    while(line != lines.end())
-    {
-        QPolygonF poly;
-        getVisiblePolygon(line->points, poly);
-
-        p.setPen(Qt::NoPen);
-        p.setBrush(colors[penIdx]);
-        p.drawPolygon(poly);
-
-        p.setPen(thinLine ? pensThin[penIdx++] : pens[penIdx++]);
-        p.setBrush(Qt::NoBrush);
-        poly.pop_front();
-        poly.pop_back();
-        p.drawPolyline(poly);
-
-        ++line;
-    }
-}
-
-void IPlot::drawLabels( QPainter &p )
-{
-    p.setPen(Qt::darkBlue);
-
-    if ( rectX1Label.isValid() )
-    {
-        p.drawText( rectX1Label, Qt::AlignCenter, data->xlabel );
-    }
-
-    p.save();
-    QMatrix m = p.matrix();
-    m.translate( 0, size().height() );
-    m.rotate( -90 );
-    p.setMatrix( m );
-
-    if ( rectY1Label.isValid() )
-    {
-        p.drawText( rectY1Label, Qt::AlignCenter, data->ylabel );
-    }
-    p.restore();
-}
-
-void IPlot::drawXScale( QPainter &p )
-{
-    QRect recText;
-
-    if ( data->x().getTicType() == CPlotAxis::eNoTic )
-    {
-        return;
-    }
-
-    p.setPen(Qt::darkBlue);
-    recText.setHeight( fontHeight );
-    recText.setWidth( scaleWidthX1 );
-
-    int ix_ = -1;
-
-    const int iy = bottom + deadAreaY;
-    const CPlotAxis::tic_t * t = data->x().ticmark();
-    while ( t )
-    {
-        int ix = left + data->x().val2pt( t->val ) - ( scaleWidthX1 + 1 ) / 2;
-        if ( ( ( ix_ < 0 ) || ( ( ix - ix_ ) > scaleWidthX1 + 5 ) ) && !t->lbl.isEmpty() )
-        {
-            recText.moveTopLeft( QPoint( ix, iy ) );
-            p.drawText( recText, Qt::AlignCenter, t->lbl );
-            ix_ = ix;
-        }
-        t = data->x().ticmark( t );
-    }
-
-    qreal limMin, limMax, useMin, useMax;
-    data->x().getLimits(limMin, limMax, useMin, useMax);
-
-    if(!isZoomed())
-    {
-        return;
-    }
-
-    qreal scale = (right - left) / (limMax - limMin);
-
-    int x = left + (useMin - limMin) * scale;
-    int y = bottom + 5;
-    int w = (useMax - useMin) * scale;
-
-    p.setPen(QPen(Qt::red,3));
-    p.drawLine(x,y, x + w, y);
-}
-
-
-void IPlot::drawYScale( QPainter &p )
-{
-    QString format_single_prec;
-    QRect recText;
-    if ( data->y().getTicType() == CPlotAxis::eNoTic )
-    {
-        return;
-    }
-
-    p.setPen(Qt::darkBlue);
-    recText.setHeight( fontHeight );
-    recText.setWidth( scaleWidthY1 );
-
-    int ix = left - scaleWidthY1 - deadAreaX;
-    int iy;
-
-    qreal limMin, limMax, useMin, useMax;
-    data->y().getLimits(limMin, limMax, useMin, useMax);
-
-    // draw min/max labels 1st;
-    QRect recTextMin;
-    QRect recTextMax;
-
-    format_single_prec = data->y().fmtsgl(data->ymin);
-    if(data->ymin >= useMin)
-    {
-        iy = bottom - data->y().val2pt( data->ymin ) - fontHeight / 2;
-        recText.moveTopLeft( QPoint( ix, iy ) );
-        p.drawText( recText, Qt::AlignRight, QString().sprintf( format_single_prec.toLatin1().data(), data->ymin  ));
-        recTextMin = recText;
-    }
-    format_single_prec = data->y().fmtsgl(data->ymax);
-    if(data->ymax <= useMax)
-    {
-        iy = bottom - data->y().val2pt( data->ymax ) - fontHeight / 2;
-        recText.moveTopLeft( QPoint( ix, iy ) );
-        p.drawText( recText, Qt::AlignRight, QString().sprintf( format_single_prec.toLatin1().data(), data->ymax  ));
-        recTextMax = recText;
-    }
-
-    // draw tic marks
-    const CPlotAxis::tic_t * t = data->y().ticmark();
-    while ( t )
-    {
-        iy = bottom - data->y().val2pt( t->val ) - fontHeight / 2;
-
-        recText.moveTopLeft( QPoint( ix, iy ) );
-
-        if(!recTextMin.intersects(recText) && !recTextMax.intersects(recText))
-        {
-            p.drawText( recText, Qt::AlignRight, t->lbl );
-        }
-
-        t = data->y().ticmark( t );
-    }
-
-    if(!isZoomed())
-    {
-        return;
-    }
-
-    qreal scale = (top - bottom) / (limMax - limMin);
-
-    int x = left - 5;
-    int y = bottom + (useMin - limMin) * scale;
-    int h = (useMax - useMin) * scale;
-
-    p.setPen(QPen(Qt::red,3));
-    p.drawLine(x,y, x, y + h);
-}
-
-
-void IPlot::drawGridX( QPainter &p )
-{
-    CPlotAxis::tictype_e oldtic = data->x().setTicType( CPlotAxis::eTicNorm );
-
-    const int dy = rectGraphArea.height();
-    const CPlotAxis::tic_t * t = data->x().ticmark();
-
-    QPen oldpen = p.pen();
-    p.setPen( QPen( QColor(0,150,0,128), 1, Qt::DotLine ) );
-
-    const int iy = rectGraphArea.top();
-    while ( t )
-    {
-        int ix = left + data->x().val2pt( t->val );
-        p.drawLine( ix, iy, ix, iy + dy );
-        t = data->x().ticmark( t );
-    }
-    p.setPen( oldpen );
-    data->x().setTicType( oldtic );
-}
-
-
-void IPlot::drawGridY( QPainter &p )
-{
-    CPlotAxis::tictype_e oldtic = data->y().setTicType( CPlotAxis::eTicNorm );
-    const int dx = rectGraphArea.width();
-    const CPlotAxis::tic_t * t = data->y().ticmark();
-
-    QPen oldpen = p.pen();
-    p.setPen( QPen( QColor(0,150,0,128), 1, Qt::DotLine ) );
-
-    const int ix = rectGraphArea.left();
-    while(nullptr != t)
-    {
-        int iy = bottom - data->y().val2pt( t->val );
-        p.drawLine( ix, iy, ix + dx, iy );
-        t = data->y().ticmark( t );
-    }
-
-    // draw min/max lines
-    qreal limMin, limMax, useMin, useMax;
-    data->y().getLimits(limMin, limMax, useMin, useMax);
-
-    if(data->ymin > useMin)
-    {
-        int iy = bottom - data->y().val2pt( data->ymin );
-        p.drawLine( ix, iy, ix + dx, iy );
-    }
-    if(data->ymax < useMax)
-    {
-        int iy = bottom - data->y().val2pt( data->ymax );
-        p.drawLine( ix, iy, ix + dx, iy );
-    }
-
-    p.setPen( oldpen );
-    data->y().setTicType( oldtic );
-}
-
-void IPlot::drawXTic( QPainter & p )
-{
-    const CPlotAxis::tic_t * t = data->x().ticmark();
-
-    p.setPen(QPen(Qt::black, 2));
-    const int iyb = rectGraphArea.bottom();
-    const int iyt = rectGraphArea.top();
-    while(nullptr != t)
-    {
-        const int ix = left + data->x().val2pt( t->val );
-        p.drawLine( ix, iyb, ix, iyb - 5 );
-        p.drawLine( ix, iyt, ix, iyt + 5 );
-        t = data->x().ticmark( t );
-    }
-}
-
-
-void IPlot::drawYTic( QPainter &p )
-{
-    const CPlotAxis::tic_t * t = data->y().ticmark();
-
-    p.setPen(QPen(Qt::black, 2));
-    const int ixl = rectGraphArea.left();
-    const int ixr = rectGraphArea.right();
-    while ( t )
-    {
-        const int iy = bottom - data->y().val2pt( t->val );
-        p.drawLine( ixl, iy, ixl + 5, iy );
-        p.drawLine( ixr, iy, ixr - 5, iy );
-        t = data->y().ticmark( t );
-    }
-}
-
-void IPlot::drawLegend(QPainter& p)
-{
-    if((data->lines.size() < 2) || (mode == eModeIcon))
-    {
-        return;
-    }
-
-    int penIdx = 0;
-    QFontMetrics fm(p.font());
-    int h = fm.height();
-
-    int x = rectGraphArea.left() + 10;
-    int y = rectGraphArea.top()  + 2 + h;
-
-    QList<CPlotData::line_t> lines                  = data->lines;
-    QList<CPlotData::line_t>::const_iterator line   = lines.begin();
-
-    while(line != lines.end())
-    {
-        p.setPen(Qt::black);
-        p.drawText(x + 30,y,line->label);
-        p.setPen(pens[penIdx++]);
-        p.drawLine(x, y, x + 20, y);
-
-        y += fm.height();
-        ++line;
-    }
-}
-
-void IPlot::drawDecoration( QPainter &p )
-{
-    if(posMouse1 != NOPOINT)
-    {
-        // draw the vertical `you are here` line
-        int x = posMouse1.x();
-        p.setPen(QPen(Qt::red, 2));
-        if(x >= left && x <= right)
-        {
-            p.drawLine(x, top, x, bottom);
-
-            // check if the mouse is near a waypoint
-            for(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, RECT_RADIUS, RECT_RADIUS);
-
-                    p.setFont(f);
-                    p.setPen(Qt::darkBlue);
-                    p.drawText(r, Qt::AlignCenter, tag.label);
-
-                    break;
-                }
-            }
-        }
-    }
-
-    if((idxSel1 != NOIDX) && (idxSel2 != NOIDX) && !data->badData)
-    {
-        p.setClipRect(rectGraphArea);
-
-        int penIdx = 3;
-
-        const QPolygonF& polyline = data->lines.first().points.mid(idxSel1, idxSel2 - idxSel1 + 1);
-        QPolygonF line;
-        getVisiblePolygon(polyline, line);
-
-        // avoid drawing if the whole interval is outside the visible range
-        if(!(line.first().x() >= right || line.last().x() <= left))
-        {
-            // draw the background
-            p.setPen(Qt::NoPen);
-            p.setBrush(colors[penIdx]);
-            p.drawPolygon(line);
-
-            // draw the foreground
-            p.setPen(thinLine ? pensThin[penIdx] : pens[penIdx]);
-            p.setBrush(Qt::NoBrush);
-            line.pop_front();
-            line.pop_back();
-            p.drawPolyline(line);
-
-            p.setPen(QPen(Qt::darkBlue, 2));
-            p.drawLine(line.first().x(), top, line.first().x(), bottom);
-            p.drawLine(line.last().x(),  top, line.last().x(),  bottom);
-        }
-        p.setClipping(false);
-    }
-
-    if(!scrOptRange.isNull())
-    {
-        scrOptRange->draw(p);
-    }
-}
-
-void IPlot::drawTags(QPainter& p)
-{
-    if(data->tags.isEmpty())
-    {
-        return;
-    }
-
-    CPlotAxis& xaxis = data->x();
-    CPlotAxis& yaxis = data->y();
-
-    QVector<CPlotData::point_t>::const_iterator tag = data->tags.begin();
-    while(tag != data->tags.end())
-    {
-        int ptx = left   + xaxis.val2pt( tag->point.x() );
-        int 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;
-    }
-}
-
-void IPlot::drawActivities(QPainter& p)
-{
-    if((mode == eModeIcon) || (trk->getActivities().getAllFlags() == 0))
-    {
-        return;
-    }
-
-    const QList<CActivityTrk::activity_range_t>& ranges = trk->getActivities().getActivityRanges();
-
-
-    QRect rectClipping = QRect(0,0,right - left,22);
-    p.save();
-    p.translate(left, bottom - 22);
-    p.setClipRect(rectClipping);
-    p.setBrush(QColor(0,170,0,100));
-    p.setPen(Qt::NoPen);
-    p.drawRect(rectClipping);
-
-    QRect rectIconFrame(0,0,20,20);
-    QRect rectIcon(2,2,16,16);
-    for(const CActivityTrk::activity_range_t& range : ranges)
-    {
-        int x1, x2;
-        if(data->axisType == CPlotData::eAxisTime)
-        {
-            x1 = data->x().val2pt(range.t1);
-            x2 = data->x().val2pt(range.t2);
-        }
-        else
-        {
-            x1 = data->x().val2pt(range.d1);
-            x2 = data->x().val2pt(range.d2);
-        }
-
-        p.setPen(QPen(Qt::darkGreen,2));
-        p.drawLine(x1, 0, x1, 20);
-        p.drawLine(x2, 0, x2, 20);
-
-        int d = (x2 - x1);
-        if(d < 20)
-        {
-            continue;
-        }
-
-        int c = x1 + d/2;
-
-        rectIconFrame.moveCenter(QPoint(c,10));
-        p.setBrush(QColor(255, 255, 255, 100));
-        p.drawRoundedRect(rectIconFrame, RECT_RADIUS, RECT_RADIUS);
-
-        rectIcon.moveCenter(QPoint(c, 10));
-        p.drawPixmap(rectIcon, QPixmap(range.icon));
-    }
-
-    p.restore();
-}
-
-void IPlot::save(QImage& image)
-{
-    resize(image.size());
-    setSizes();
-    buffer = QImage(image.size(), QImage::Format_ARGB32);
-    draw();
-    image = buffer;
-}
-
-void IPlot::slotContextMenu(const QPoint & point)
-{
-    QPoint p = mapToGlobal(point);
-
-    actionResetZoom->setEnabled(isZoomed());
-    actionStopRange->setEnabled((mouseClickState != eMouseClickIdle) && !(idxSel1 == NOIDX || idxSel2 == NOIDX));
-    actionPrint->setEnabled(mouseClickState != eMouseClick2nd);
-    actionAddWpt->setDisabled(posMouse1 == NOPOINT);
-    actionCutTrk->setDisabled(actionStopRange->isEnabled());
-
-    posMouse2 = posMouse1;
-
-    menu->exec(p);
-
-    posMouse2 = NOPOINT;
-}
-
-void IPlot::slotSave()
-{
-    SETTINGS;
-    QString path = cfg.value("Paths/lastGraphPath", QDir::homePath()).toString();
-    QString filename = QFileDialog::getSaveFileName( this, tr("Select output file"), path, "PNG Image (*.png)");
-
-    if(filename.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(filename);
-    if(fi.suffix().toLower() != "png")
-    {
-        filename += ".png";
-    }
-
-    QImage img(size(), QImage::Format_ARGB32);
-    QPainter p;
-    p.begin(&img);
-    p.fillRect(rect(), QBrush(Qt::white));
-    draw(p);
-    p.end();
-
-    img.save(filename);
-
-    path = fi.absolutePath();
-    cfg.setValue("Paths/lastGraphPath", path);
-}
-
-
-void IPlot::slotHidePoints()
-{
-    trk->hideSelectedPoints();
-    slotStopRange();
-}
-
-void IPlot::slotShowPoints()
-{
-    trk->showSelectedPoints();
-    slotStopRange();
-}
-
-void IPlot::slotActivity(quint32 flags)
-{
-    trk->setActivityRange(flags);
-    slotStopRange();
-}
-
-void IPlot::slotCopy()
-{
-    trk->copySelectedPoints();
-    slotStopRange();
-}
-
-void IPlot::slotStopRange()
-{
-    scrOptRange->deleteLater();
-    trk->setMode(CGisItemTrk::eModeNormal, objectName());
-    idxSel1 = idxSel2 = NOIDX;
-    mouseClickState = eMouseClickIdle;
-
-    emit sigMouseClickState(mouseClickState);
-
-    // update canvas if visible
-    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
-    if(canvas)
-    {
-        canvas->update();
-    }
-}
-
-void IPlot::slotResetZoom()
-{
-    data->x().resetZoom();
-    data->y().resetZoom();
-    setSizes();
-
-    needsRedraw = true;
-    update();
-}
-
-
-void IPlot::slotAddWpt()
-{
-    if(posMouse2 == NOPOINT)
-    {
-        return;
-    }
-
-    const CTrackData::trkpt_t * trkpt = trk->getMouseMoveFocusPoint();
-    if(trkpt == nullptr)
-    {
-        return;
-    }
-
-    CGisWorkspace::self().addWptByPos({trkpt->lon, trkpt->lat});
-    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
-}
-
-void IPlot::slotCutTrk()
-{
-    // set point of mouse click focus to position of context menu stored in
-    // secondary mouse point
-    qreal x = data->x().pt2val(posMouse2.x() - left);
-    setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
-
-    /*
-       Trigger cut by event not by direct call to API. This is because cutting the track
-       might result into deleting the original one. The original one is the parent of this
-       plot and needs to destroy it. This would be impossible if we are still in this method
-       because the API call did not return yet.
-     */
-    CGisWorkspace::self().postEventForWks(new CEvtA2WCutTrk(trk->getKey()));
-}
-
-void IPlot::setMouseRangeFocus(const CTrackData::trkpt_t * ptRange1, const CTrackData::trkpt_t *ptRange2)
-{
-    if(nullptr == ptRange1 || nullptr == ptRange2)
-    {
-        idxSel1 = NOIDX;
-        idxSel2 = NOIDX;
-    }
-    else
-    {
-        if(ptRange1->idxTotal < ptRange2->idxTotal)
-        {
-            while(ptRange1->isHidden())
-            {
-                ptRange1++;
-            }
-            while(ptRange2->isHidden())
-            {
-                ptRange2--;
-            }
-            idxSel1 = ptRange1->idxVisible;
-            idxSel2 = ptRange2->idxVisible;
-        }
-        else
-        {
-            while(ptRange1->isHidden())
-            {
-                ptRange1--;
-            }
-            while(ptRange2->isHidden())
-            {
-                ptRange2++;
-            }
-            idxSel1 = ptRange2->idxVisible;
-            idxSel2 = ptRange1->idxVisible;
-        }
-    }
-    update();
-}
-
-bool IPlot::isZoomed() const
-{
-    bool zoomed = false;
-    qreal limMin, limMax, useMin, useMax;
-    data->x().getLimits(limMin, limMax, useMin, useMax);
-    zoomed |= !((limMax - limMin) <= (useMax - useMin));
-    data->y().getLimits(limMin, limMax, useMin, useMax);
-    zoomed |= !((limMax - limMin) <= (useMax - useMin));
-
-    return zoomed;
-}
diff --git a/src/qlgt/CQmsDb.cpp b/src/qlgt/CQmsDb.cpp
deleted file mode 100644
index a986181..0000000
--- a/src/qlgt/CQmsDb.cpp
+++ /dev/null
@@ -1,280 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "gis/db/CDBProject.h"
-#include "gis/db/IDBFolder.h"
-#include "gis/db/macros.h"
-#include "gis/ovl/CGisItemOvlArea.h"
-#include "gis/rte/CGisItemRte.h"
-#include "gis/trk/CGisItemTrk.h"
-#include "gis/wpt/CGisItemWpt.h"
-#include "qlgt/CQlgtDb.h"
-#include "qlgt/CQlgtFolder.h"
-#include "qlgt/CQlgtRoute.h"
-#include "qlgt/CQlgtTrack.h"
-#include "qlgt/CQlgtWpt.h"
-#include "qlgt/CQmsDb.h"
-#include "qlgt/IQlgtOverlay.h"
-#include "tool/CImportDatabase.h"
-
-#include <QtSql>
-#include <QtWidgets>
-
-CQmsDb::CQmsDb(const QString &filename, CImportDatabase *parent)
-    : QObject(parent)
-    , valid(false)
-    , gui(parent)
-
-{
-    if(QFile::exists(filename))
-    {
-        int res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Existing file..."), tr("Remove existing %1?").arg(filename), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
-        if(res != QMessageBox::Ok)
-        {
-            return;
-        }
-        gui->stdErr(tr("Remove existing file %1").arg(filename));
-        QFile::remove(filename);
-    }
-    QString error;
-    valid = setupDB(filename, "qlgt2qms", error);
-    if(!valid)
-    {
-        return;
-    }
-
-    mapFolderTypes[CQlgtDb::eFolder1] = IDBFolder::eTypeGroup;
-    mapFolderTypes[CQlgtDb::eFolder2] = IDBFolder::eTypeProject;
-    mapFolderTypes[CQlgtDb::eFolderN] = IDBFolder::eTypeOther;
-
-    mapFolderIDs[1] = 1;
-    mapFolderIDs[0] = 1;
-}
-
-CQmsDb::~CQmsDb()
-{
-    db.close();
-}
-
-
-void CQmsDb::addFolder2FolderRelation(quint64 parent, quint64 child)
-{
-    QSqlQuery query(db);
-    query.prepare("INSERT INTO folder2folder (parent, child) VALUES (:parent, :child)");
-    query.bindValue(":parent", mapFolderIDs[parent]);
-    query.bindValue(":child", mapFolderIDs[child]);
-    QUERY_EXEC(return );
-}
-
-void CQmsDb::addFolder2ItemRelation(quint64 parent, quint64 child)
-{
-    QSqlQuery query(db);
-    query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
-    query.bindValue(":parent", mapFolderIDs[parent]);
-    query.bindValue(":child", mapItemIDs[child]);
-    QUERY_EXEC(return );
-}
-
-
-void CQmsDb::addFolder(CQlgtFolder& folder)
-{
-    if(folder.id < 2)
-    {
-        return;
-    }
-
-    QSqlQuery query(db);
-
-    // folders without child items
-    if(folder.items.isEmpty())
-    {
-        query.prepare("INSERT INTO folders (type, name, locked) VALUES (:type, :name, :locked)");
-        query.bindValue(":type", mapFolderTypes[folder.type]);
-        query.bindValue(":name", folder.name);
-        query.bindValue(":locked", folder.locked);
-        QUERY_EXEC(return );
-
-        query.prepare("SELECT last_insert_rowid() from folders");
-        QUERY_EXEC(return );
-        query.next();
-        quint64 id = query.value(0).toULongLong();
-        if(id == 0)
-        {
-            qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
-            return;
-        }
-        mapFolderIDs[folder.id] = id;
-        return;
-    }
-
-    /*
-        Folders with child items will be loaded as complete CDBProject first, to
-        generate key and info text properly
-     */
-    CDBProject project(folder);
-    for(quint64 id : folder.items)
-    {
-        quint64 idChild = mapItemIDs[id];
-        query.prepare("SELECT type FROM items WHERE id=:id");
-        query.bindValue(":id", idChild);
-        QUERY_EXEC(continue);
-        if(query.next())
-        {
-            int type = query.value(0).toInt();
-            switch(type)
-            {
-            case IGisItem::eTypeWpt:
-                new CGisItemWpt(idChild, db, &project);
-                break;
-
-            case IGisItem::eTypeTrk:
-                new CGisItemTrk(idChild, db, &project);
-                break;
-
-            case IGisItem::eTypeRte:
-                new CGisItemRte(idChild, db, &project);
-                break;
-
-            case IGisItem::eTypeOvl:
-                new CGisItemOvlArea(idChild, db, &project);
-                break;
-
-            default:
-                ;
-            }
-        }
-        else
-        {
-            gui->stdErr(tr("%1: drop item with QLGT DB ID %2").arg(folder.name).arg(id));
-        }
-    }
-
-    // serialize metadata of project
-    QByteArray data;
-    QDataStream in(&data, QIODevice::WriteOnly);
-    in.setByteOrder(QDataStream::LittleEndian);
-    in.setVersion(QDataStream::Qt_5_2);
-    project >> in;
-
-    query.prepare("INSERT INTO folders (type, keyqms, name, comment, locked, data) VALUES (:type, :keyqms, :name, :comment, :locked, :data)");
-    query.bindValue(":type",    mapFolderTypes[folder.type]);
-    query.bindValue(":keyqms",     project.getKey());
-    query.bindValue(":name",    project.getName());
-    query.bindValue(":comment", project.getInfo());
-    query.bindValue(":locked",  folder.locked);
-    query.bindValue(":data",    data);
-    QUERY_EXEC(return );
-
-    query.prepare("SELECT last_insert_rowid() from folders");
-    QUERY_EXEC(return );
-    query.next();
-    quint64 id = query.value(0).toULongLong();
-    if(id == 0)
-    {
-        qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
-        return;
-    }
-    mapFolderIDs[folder.id] = id;
-}
-
-void CQmsDb::addWpt(CQlgtWpt& wpt1)
-{
-    CGisItemWpt wpt(wpt1);
-    quint64 id = store(wpt);
-    if(id != 0)
-    {
-        mapItemIDs[wpt1.id] = id;
-    }
-}
-
-void CQmsDb::addTrk(CQlgtTrack &trk1)
-{
-    CGisItemTrk trk(trk1);
-    quint64 id = store(trk);
-    if(id != 0)
-    {
-        mapItemIDs[trk1.id] = id;
-    }
-}
-
-void CQmsDb::addTrk(IQlgtOverlay &trk1)
-{
-    CGisItemTrk trk(trk1);
-    quint64 id = store(trk);
-    if(id != 0)
-    {
-        mapItemIDs[trk1.id] = id;
-    }
-}
-
-void CQmsDb::addRte(CQlgtRoute& rte1)
-{
-    CGisItemRte rte(rte1);
-    quint64 id = store(rte);
-    if(id != 0)
-    {
-        mapItemIDs[rte1.id] = id;
-    }
-}
-
-void CQmsDb::addArea(IQlgtOverlay& ovl1)
-{
-    CGisItemOvlArea ovl(ovl1);
-    quint64 id = store(ovl);
-    if(id != 0)
-    {
-        mapItemIDs[ovl1.id] = id;
-    }
-}
-
-quint64 CQmsDb::store(IGisItem& item)
-{
-    // serialize complete history of item
-    QByteArray data;
-    QDataStream in(&data, QIODevice::WriteOnly);
-    in.setByteOrder(QDataStream::LittleEndian);
-    in.setVersion(QDataStream::Qt_5_2);
-    in << item.getHistory();
-
-    QBuffer buffer;
-    buffer.open(QIODevice::ReadWrite);
-    QPixmap pixmap = item.getIcon();
-    pixmap.save(&buffer, "PNG");
-    buffer.seek(0);
-
-    QSqlQuery query(db);
-    // item is unknown to database -> create item in database
-    query.prepare("INSERT INTO items (type, keyqms, icon, name, date, comment, data, hash) VALUES (:type, :keyqms, :icon, :name, :date, :comment, :data, :hash)");
-    query.bindValue(":type",    item.type());
-    query.bindValue(":keyqms",     item.getKey().item);
-    query.bindValue(":icon",    buffer.data());
-    query.bindValue(":name",    item.getName());
-    query.bindValue(":date",    item.getTimestamp());
-    query.bindValue(":comment", item.getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
-    query.bindValue(":data", data);
-    query.bindValue(":hash", item.getHash());
-    QUERY_EXEC(return 0);
-
-    query.prepare("SELECT last_insert_rowid() from items");
-    QUERY_EXEC(return 0);
-    query.next();
-    quint64 idItem = query.value(0).toULongLong();
-
-    return idItem;
-}
diff --git a/src/qmapshack/CAbout.cpp b/src/qmapshack/CAbout.cpp
new file mode 100644
index 0000000..f55261e
--- /dev/null
+++ b/src/qmapshack/CAbout.cpp
@@ -0,0 +1,65 @@
+/**********************************************************************************************
+    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 "CAbout.h"
+#include "version.h"
+
+#include <QtWidgets>
+#include <gdal.h>
+#include <proj_api.h>
+#include <routino.h>
+
+CAbout::CAbout(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    if(QString(VER_SUFFIX).isEmpty())
+    {
+        labelVersion->setText(VER_STR);
+    }
+    else
+    {
+        labelVersion->setText(VER_STR "." VER_SUFFIX);
+    }
+
+    labelQtVersion->setText(qVersion());
+    labelGDALVersion->setText(GDALVersionInfo("--version"));
+    labelProj4Version->setText(QString::number(PJ_VERSION));
+    if(Routino_CheckAPIVersion() != ROUTINO_ERROR_NONE)
+    {
+        labelRoutinoVersion->setText(tr("%1 (API V%2, expected V%3)").arg(Routino_Version).arg(ROUTINO_API_VERSION).arg(Routino_APIVersion));
+    }
+    else
+    {
+        labelRoutinoVersion->setText(tr("%1 (API V%2)").arg(Routino_Version).arg(Routino_APIVersion));
+    }
+
+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+    #if defined (HAVE_DBUS)
+    labelNoDBus->setText("");
+    #else
+    labelNoDBus->setText(tr("(no DBUS: device detection and handling disabled)"));
+    #endif
+#endif
+}
+
+CAbout::~CAbout()
+{
+}
+
diff --git a/src/CAbout.h b/src/qmapshack/CAbout.h
similarity index 100%
rename from src/CAbout.h
rename to src/qmapshack/CAbout.h
diff --git a/src/qmapshack/CMainWindow.cpp b/src/qmapshack/CMainWindow.cpp
new file mode 100644
index 0000000..8e34f0e
--- /dev/null
+++ b/src/qmapshack/CMainWindow.cpp
@@ -0,0 +1,1577 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CAbout.h"
+#include "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "config.h"
+#include "dem/CDemDraw.h"
+#include "dem/CDemList.h"
+#include "gis/CGisDatabase.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/IGisLine.h"
+#include "gis/WptIcons.h"
+#include "gis/db/CSetupWorkspace.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/trk/CActivityTrk.h"
+#include "gis/trk/CKnownExtension.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSettings.h"
+#include "helpers/CToolBarConfig.h"
+#include "helpers/CToolBarSetupDialog.h"
+#include "helpers/CWptIconDialog.h"
+#include "map/CMapDraw.h"
+#include "map/CMapItem.h"
+#include "map/CMapList.h"
+#include "realtime/CRtWorkspace.h"
+#include "setup/IAppSetup.h"
+#include "tool/CImportDatabase.h"
+#include "tool/CMapVrtBuilder.h"
+#include "tool/CRoutinoDatabaseBuilder.h"
+#include "units/CCoordFormatSetup.h"
+#include "units/CTimeZoneSetup.h"
+#include "units/CUnitsSetup.h"
+#include "units/IUnit.h"
+#include "version.h"
+
+#include <QtGui>
+#include <QtSql>
+#include <QtWidgets>
+
+#ifdef WIN32
+#include "device/CDeviceWatcherWindows.h"
+#include <dbt.h>
+#include <guiddef.h>
+#include <initguid.h>
+#include <usbiodef.h>
+#include <windows.h>
+#endif // WIN32
+
+CMainWindow * CMainWindow::pSelf = nullptr;
+
+QMutex CMainWindow::mutex(QMutex::NonRecursive);
+
+CMainWindow::CMainWindow()
+    : id(qrand())
+{
+    qDebug() << "Application ID:" << id;
+    SETTINGS;
+
+    pSelf = this;
+    setupUi(this);
+    setWindowTitle(WHAT_STR);
+    dockRealtime->toggleViewAction()->setChecked(false);
+
+    initWptIcons();
+
+    IUnit::setUnitType((IUnit::type_e)cfg.value("MainWindow/units",IUnit::eTypeMetric).toInt(), this);
+    IUnit::setSlopeMode((IUnit::slope_mode_e)cfg.value("Units/slopeMode", IUnit::eSlopeDegrees).toInt());
+
+    QByteArray tz;
+    IUnit::tz_mode_e tzmode;
+    bool useShortFormat;
+    tz = cfg.value("Units/timezone", "UTC").toByteArray();
+    tzmode = (IUnit::tz_mode_e)cfg.value("Units/timezone/mode", IUnit::eTZUtc).toInt();
+    useShortFormat = cfg.value("Units/time/useShortFormat", false).toBool();
+    IUnit::setTimeZoneSetup(tzmode, tz, useShortFormat);
+
+    IUnit::coord_format_e coordFormat;
+    coordFormat = (IUnit::coord_format_e)cfg.value("Units/coordFormat", IUnit::eCoordFormat1).toInt();
+    IUnit::setCoordFormat(coordFormat);
+
+    CKnownExtension::init(IUnit::self());
+    CActivityTrk::init();
+
+    widgetGisWorkspace = new CGisWorkspace(menuProject, this);
+    dockWorkspace->setWidget(widgetGisWorkspace);
+
+    widgetGisDatabase = new CGisDatabase(this);
+    dockDatabase->setWidget(widgetGisDatabase);
+
+    widgetRtWorkspace = new CRtWorkspace(this);
+    dockRealtime->setWidget(widgetRtWorkspace);
+
+    // start ---- restore window geometry -----
+    cfg.beginGroup("MainWindow");
+    if ( cfg.contains("geometry"))
+    {
+        restoreGeometry(cfg.value("geometry").toByteArray());
+    }
+    else
+    {
+        QTimer::singleShot(500, this, SLOT(showMaximized()));
+    }
+
+    if ( cfg.contains("state"))
+    {
+        restoreState(cfg.value("state").toByteArray());
+    }
+
+    if (cfg.contains("displaymode"))
+    {
+        displayMode = static_cast<Qt::WindowStates>(cfg.value("displaymode").toInt());
+        if (displayMode == Qt::WindowFullScreen)
+        {
+            displayMode = Qt::WindowMaximized;
+        }
+    }
+
+    if (cfg.contains("dockstate"))
+    {
+        dockStates = cfg.value("dockstate").toByteArray();
+    }
+
+    menuVisible = cfg.value("menuvisible",false).toBool();
+
+    if(windowState() == Qt::WindowFullScreen)
+    {
+        displayRegular();
+    }
+    cfg.endGroup();
+
+    // end ---- restore window geometry -----
+
+    connect(actionAbout,                 &QAction::triggered,            this,      &CMainWindow::slotAbout);
+    connect(actionHelp,                  &QAction::triggered,            this,      &CMainWindow::slotHelp);
+    connect(actionQuickstart,            &QAction::triggered,            this,      &CMainWindow::slotQuickstart);
+    connect(actionAddMapView,            &QAction::triggered,            this,      &CMainWindow::slotAddCanvas);
+    connect(actionCloneMapView,          &QAction::triggered,            this,      &CMainWindow::slotCloneCanvas);
+    connect(actionShowScale,             &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
+    connect(actionShowGrid,              &QAction::changed,              this,      static_cast<void (CMainWindow::*)()>(&CMainWindow::update));
+    connect(actionPOIText,               &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
+    connect(actionMapToolTip,            &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
+    connect(actionNightDay,              &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
+    connect(actionMinMaxTrackValues,     &QAction::changed,              this,      &CMainWindow::slotUpdateCurrentWidget);
+    connect(actionProfileIsWindow,       &QAction::toggled,              this,      &CMainWindow::slotSetProfileMode);
+    connect(actionSetupMapFont,          &QAction::triggered,            this,      &CMainWindow::slotSetupMapFont);
+    connect(actionSetupMapBackground,    &QAction::triggered,            this,      &CMainWindow::slotSetupMapBackground);
+    connect(actionSetupGrid,             &QAction::triggered,            this,      &CMainWindow::slotSetupGrid);
+    connect(actionSetupMapPaths,         &QAction::triggered,            this,      &CMainWindow::slotSetupMapPath);
+    connect(actionSetupDEMPaths,         &QAction::triggered,            this,      &CMainWindow::slotSetupDemPath);
+    connect(actionSetupMapView,          &QAction::triggered,            this,      &CMainWindow::slotSetupMapView);
+    connect(actionSetupTimeZone,         &QAction::triggered,            this,      &CMainWindow::slotSetupTimeZone);
+    connect(actionSetupUnits,            &QAction::triggered,            this,      &CMainWindow::slotSetupUnits);
+    connect(actionSetupWorkspace,        &QAction::triggered,            this,      &CMainWindow::slotSetupWorkspace);
+    connect(actionSetupCoordFormat,      &QAction::triggered,            this,      &CMainWindow::slotSetupCoordFormat);
+    connect(actionSetupToolbar,          &QAction::triggered,            this,      &CMainWindow::slotSetupToolbar);
+    connect(actionImportDatabase,        &QAction::triggered,            this,      &CMainWindow::slotImportDatabase);
+    connect(actionSaveGISData,           &QAction::triggered,            widgetGisWorkspace, &CGisWorkspace::slotSaveAll);
+    connect(actionLoadGISData,           &QAction::triggered,            this,      &CMainWindow::slotLoadGISData);
+    connect(actionVrtBuilder,            &QAction::triggered,            this,      &CMainWindow::slotBuildVrt);
+    connect(actionStoreView,             &QAction::triggered,            this,      &CMainWindow::slotStoreView);
+    connect(actionLoadView,              &QAction::triggered,            this,      &CMainWindow::slotLoadView);
+    connect(actionClose,                 &QAction::triggered,            this,      &CMainWindow::close);
+    connect(actionCreateRoutinoDatabase, &QAction::triggered,            this,      &CMainWindow::slotCreateRoutinoDatabase);
+    connect(actionPrintMap,              &QAction::triggered,            this,      &CMainWindow::slotPrintMap);
+    connect(actionSetupWaypointIcons,    &QAction::triggered,            this,      &CMainWindow::slotSetupWptIcons);
+    connect(actionCloseTab,              &QAction::triggered,            this,      &CMainWindow::slotCloseTab);
+    connect(actionToggleDocks,           &QAction::triggered,            this,      &CMainWindow::slotToggleDocks);
+    connect(actionFullScreen,            &QAction::triggered,            this,      &CMainWindow::slotFullScreen);
+    connect(actionStartQMapTool,         &QAction::triggered,            this,      &CMainWindow::slotStartQMapTool);
+    connect(tabWidget,                   &QTabWidget::tabCloseRequested, this,      &CMainWindow::slotTabCloseRequest);
+    connect(tabWidget,                   &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabCanvas);
+    connect(tabMaps,                     &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabMaps);
+    connect(tabDem,                      &QTabWidget::currentChanged,    this,      &CMainWindow::slotCurrentTabDem);
+
+    if(IAppSetup::getPlatformInstance()->findExecutable("qmaptool").isEmpty())
+    {
+        actionStartQMapTool->setVisible(false);
+    }
+
+    cfg.beginGroup("Canvas");
+    CMapDraw::loadMapPath(cfg);
+    CDemDraw::loadDemPath(cfg);
+
+    cfg.beginGroup("Views");
+    QStringList names = cfg.childGroups();
+
+    for(const QString &name : names)
+    {
+        CCanvas * view = addView(name);
+
+        cfg.beginGroup(name);
+        view->loadConfig(cfg);
+        cfg.endGroup(); // name
+    }
+    if(names.isEmpty())
+    {
+        CCanvas * view = addView(QString());
+        // call just to setup default values
+        view->loadConfig(cfg);
+    }
+    cfg.endGroup(); // Views
+    testForNoView();
+
+    CCanvas::gisLayerOpacity = cfg.value("gisLayerOpacity",1.0).toFloat();
+    widgetGisWorkspace->setOpacity(CCanvas::gisLayerOpacity);
+
+    actionShowScale->setChecked(cfg.value("isScaleVisible", true).toBool());
+    actionShowGrid->setChecked(cfg.value("isGridVisible", false).toBool());
+    actionPOIText->setChecked(cfg.value("POIText", true).toBool());
+    actionMapToolTip->setChecked(cfg.value("MapToolTip", true).toBool());
+    actionNightDay->setChecked(cfg.value("isNight", false).toBool());
+    actionMinMaxTrackValues->setChecked(cfg.value("MinMaxTrackValues", 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
+
+
+
+    QStatusBar * status = statusBar();
+    lblPosWGS84 = new QLabel(status);
+    status->addPermanentWidget(lblPosWGS84);
+
+    lblElevation = new QLabel(status);
+    status->addPermanentWidget(lblElevation);
+
+    lblSlope = new QLabel(status);
+    status->addPermanentWidget(lblSlope);
+
+    lblPosGrid = new QLabel(status);
+    status->addPermanentWidget(lblPosGrid);
+
+
+    docks << dockMaps
+          << dockDem
+          << dockWorkspace
+          << dockDatabase
+          << dockRte
+          << dockRealtime;
+
+
+    if (cfg.contains("MainWindow/activedocks"))
+    {
+        const QStringList & dockNames = cfg.value("MainWindow/activedocks").toStringList();
+        for(QDockWidget * const & dock : docks)
+        {
+            if(dockNames.contains(dock->objectName()))
+            {
+                activeDocks << dock;
+            }
+        }
+    }
+
+    for (QDockWidget * const & dock : docks)
+    {
+        connect(dock, &QDockWidget::visibilityChanged, this, &CMainWindow::slotDockVisibilityChanged);
+    }
+
+
+    QAction * actionToggleToolBar = toolBar->toggleViewAction();
+    actionToggleToolBar->setObjectName("actionToggleToolBar");
+    actionToggleToolBar->setIcon(QIcon(":/icons/32x32/ToolBar.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleToolBar);
+
+    QAction * actionToggleMaps = dockMaps->toggleViewAction();
+    actionToggleMaps->setObjectName("actionToggleMaps");
+    actionToggleMaps->setIcon(QIcon(":/icons/32x32/ToggleMaps.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleMaps);
+
+    QAction * actionToggleDem = dockDem->toggleViewAction();
+    actionToggleDem->setObjectName("actionToggleDem");
+    actionToggleDem->setIcon(QIcon(":/icons/32x32/ToggleDem.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleDem);
+
+    QAction * actionToggleWorkspace = dockWorkspace->toggleViewAction();
+    actionToggleWorkspace->setObjectName("actionToggleWorkspace");
+    actionToggleWorkspace->setIcon(QIcon(":/icons/32x32/ToggleGis.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleWorkspace);
+
+    QAction * actionToggleRealtime = dockRealtime->toggleViewAction();
+    actionToggleRealtime->setObjectName("actionToggleRealtime");
+    actionToggleRealtime->setIcon(QIcon(":/icons/32x32/ToggleRealTime.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleRealtime);
+
+    QAction * actionToggleDatabase = dockDatabase->toggleViewAction();
+    actionToggleDatabase->setObjectName("actionToggleDatabase");
+    actionToggleDatabase->setIcon(QIcon(":/icons/32x32/ToggleDatabase.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleDatabase);
+
+    QAction * actionToggleRte = dockRte->toggleViewAction();
+    actionToggleRte->setObjectName("actionToggleRte");
+    actionToggleRte->setIcon(QIcon(":/icons/32x32/ToggleRouter.png"));
+    menuWindow->insertAction(actionSetupToolbar,actionToggleRte);
+
+
+    menuWindow->insertSeparator(actionSetupToolbar);
+
+    QAction * separator = new QAction("---------------",this);
+    separator->setSeparator(true);
+    separator->setObjectName("separator");
+
+    QList<QAction *> availableActions;
+    availableActions << separator
+                     << actionAddMapView
+                     << actionShowScale
+                     << actionSetupMapFont
+                     << actionShowGrid
+                     << actionSetupGrid
+                     << actionFlipMouseWheel
+                     << actionSetupMapPaths
+                     << actionPOIText
+                     << actionNightDay
+                     << actionMapToolTip
+                     << actionMinMaxTrackValues
+                     << actionSetupDEMPaths
+                     << actionAbout
+                     << actionHelp
+                     << actionSetupMapView
+                     << actionLoadGISData
+                     << actionSaveGISData
+                     << actionSetupTimeZone
+                     << actionAddEmptyProject
+                     << actionSearchGoogle
+                     << actionCloseAllProjects
+                     << actionSetupUnits
+                     << actionSetupWorkspace
+                     << actionImportDatabase
+                     << actionVrtBuilder
+                     << actionStoreView
+                     << actionLoadView
+                     << actionProfileIsWindow
+                     << actionClose
+                     << actionCloneMapView
+                     << actionCreateRoutinoDatabase
+                     << actionPrintMap
+                     << actionSetupCoordFormat
+                     << actionSetupMapBackground
+                     << actionSetupWaypointIcons
+                     << actionCloseTab
+                     << actionQuickstart
+                     << actionSetupToolbar
+                     << actionToggleMaps
+                     << actionToggleDem
+                     << actionToggleWorkspace
+                     << actionToggleRealtime
+                     << actionToggleDatabase
+                     << actionToggleRte
+                     << actionToggleDocks
+                     << actionToggleToolBar
+                     << actionFullScreen
+                     << actionStartQMapTool;
+
+    QAction * separator1 = new QAction("---------------",this);
+    separator1->setSeparator(true);
+    separator1->setObjectName("separator");
+
+    QList<QAction *> defaultActions;
+    defaultActions << actionSearchGoogle
+                   << actionAddEmptyProject
+                   << actionLoadGISData
+                   << actionSaveGISData
+                   << separator
+                   << actionShowScale
+                   << actionShowGrid
+                   << actionPOIText
+                   << actionNightDay
+                   << actionMapToolTip
+                   << actionMinMaxTrackValues
+                   << actionProfileIsWindow
+                   << separator1
+                   << actionSetupToolbar
+                   << actionToggleMaps
+                   << actionToggleDem
+                   << actionToggleWorkspace
+                   << actionToggleRealtime
+                   << actionToggleDatabase
+                   << actionToggleRte
+                   << actionToggleDocks
+                   << actionFullScreen;
+
+    toolBarConfig = new CToolBarConfig(this, toolBar, availableActions, defaultActions);
+    toolBarConfig->loadSettings();
+
+    prepareMenuForMac();
+
+    // make sure all actions that have a shortcut are available even when menu and toolbar are not visible
+    for (QAction * action : availableActions)
+    {
+        if (!action->shortcuts().isEmpty())
+        {
+            addAction(action);
+        }
+    }
+
+
+    loadGISData(qlOpts->arguments);
+
+    QTimer::singleShot(100, this, SLOT(slotSanityTest()));
+}
+
+void CMainWindow::prepareMenuForMac()
+{
+    toolBar->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockMaps->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockDem->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockWorkspace->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockRealtime->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockDatabase->toggleViewAction()->setMenuRole(QAction::NoRole);
+    dockRte->toggleViewAction()->setMenuRole(QAction::NoRole);
+}
+
+CMainWindow::~CMainWindow()
+{
+    CActivityTrk::release();
+
+    SETTINGS;
+    cfg.beginGroup("MainWindow");
+    cfg.setValue("state", saveState());
+    cfg.setValue("geometry", saveGeometry());
+    cfg.setValue("units", IUnit::self().type);
+    QStringList activeDockNames;
+    for (QDockWidget * const & dock : activeDocks)
+    {
+        activeDockNames << dock->objectName();
+    }
+    cfg.setValue("activedocks",activeDockNames);
+
+    cfg.setValue("displaymode",static_cast<int>(displayMode));
+    cfg.setValue("dockstate",dockStates);
+    cfg.setValue("menuvisible",menuVisible);
+    cfg.endGroup();
+
+    /*
+       The "Canvas" section will hold all settings global to all views
+       and "Views" section containing a subsection for each view.
+     */
+    cfg.beginGroup("Canvas");
+    QList<CCanvas*> allViews;
+    QList<QWidget*> allOtherTabs;
+
+    // save setup of all views
+    cfg.beginGroup("Views");
+    // remove all previous setups in this section first
+    cfg.remove(QString());
+
+    for(int i = 0; i < tabWidget->count(); i++)
+    {
+        CCanvas * view = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+        if(nullptr == view)
+        {
+            allOtherTabs << tabWidget->widget(i);
+            continue;
+        }
+
+        // save views
+        cfg.beginGroup(view->objectName());
+        view->saveConfig(cfg);
+        cfg.endGroup();
+
+        allViews << view;
+    }
+    cfg.endGroup(); // Views
+
+    cfg.setValue("gisLayerOpacity", CCanvas::gisLayerOpacity);
+    cfg.setValue("visibleCanvas", tabWidget->currentIndex());
+    cfg.setValue("isScaleVisible", actionShowScale->isChecked());
+    cfg.setValue("isGridVisible", actionShowGrid->isChecked());
+    cfg.setValue("POIText", actionPOIText->isChecked());
+    cfg.setValue("MapToolTip", actionMapToolTip->isChecked());
+    cfg.setValue("isNight", actionNightDay->isChecked());
+    cfg.setValue("MinMaxTrackValues", actionMinMaxTrackValues->isChecked());
+    cfg.setValue("flipMouseWheel", actionFlipMouseWheel->isChecked());
+    cfg.setValue("profileIsWindow",actionProfileIsWindow->isChecked());
+    cfg.setValue("mapFont", mapFont);
+    CMapDraw::saveMapPath(cfg);
+    CDemDraw::saveDemPath(cfg);
+    cfg.endGroup(); // Canvas
+
+
+    /*
+        Delete all widgets in the tab widget other than views. The IPlot objects
+        in a track detail dialog send update events to the view on destruction.
+        So it is important that these are destroyed first.
+     */
+    qDeleteAll(allOtherTabs);
+    /*
+        Delete all canvas objects now to make sure they are destroyed before all
+        other objects. This allows children of the canvas to access central objects
+        like CGisWorkspace safely upon their destruction. (e.g. CMouseRangeTrk to reset
+        it's track's draw mode by key)
+     */
+    qDeleteAll(allViews);
+
+    QByteArray tz;
+    IUnit::tz_mode_e tzmode;
+    bool useShortFormat;
+    IUnit::getTimeZoneSetup(tzmode, tz, useShortFormat);
+
+    cfg.setValue("Units/timezone", tz);
+    cfg.setValue("Units/timezone/mode", tzmode);
+    cfg.setValue("Units/time/useShortFormat", useShortFormat);
+    cfg.setValue("Units/coordFormat", IUnit::getCoordFormat());
+    cfg.setValue("Units/slopeMode", IUnit::getSlopeMode());
+
+    toolBarConfig->saveSettings();
+}
+
+CCanvas *CMainWindow::addView(const QString& name)
+{
+    CCanvas * view = new CCanvas(tabWidget, name);
+    tabWidget->addTab(view, view->objectName());
+    connect(view, &CCanvas::sigMousePosition, this, &CMainWindow::slotMousePosition);
+    connect(actionMinMaxTrackValues, &QAction::triggered, view, &CCanvas::slotUpdateTrackStatistic);
+
+    return view;
+}
+
+QWidget * CMainWindow::getBestWidgetForParent()
+{
+    QWidget * w = CProgressDialog::self();
+    if(w)
+    {
+        return w;
+    }
+
+    // this is a workaround for unittesting
+    if(nullptr == pSelf)
+    {
+        return nullptr;
+    }
+
+    w = self().getVisibleCanvas();
+    if(w)
+    {
+        return w;
+    }
+
+    return &self();
+}
+
+QString CMainWindow::getUser()
+{
+    QString user = getenv("USER");
+    if(user.isEmpty())
+    {
+        user = getenv("USERNAME"); //for windows
+
+        if(user.isEmpty())
+        {
+            user = "QMapShack";
+        }
+    }
+
+    return user;
+}
+
+bool CMainWindow::isScaleVisible() const
+{
+    return actionShowScale->isChecked();
+}
+
+bool CMainWindow::isGridVisible() const
+{
+    return actionShowGrid->isChecked();
+}
+
+bool CMainWindow::isNight() const
+{
+    return actionNightDay->isChecked();
+}
+
+bool CMainWindow::isPOIText() const
+{
+    return actionPOIText->isChecked();
+}
+
+bool CMainWindow::isMapToolTip() const
+{
+    return actionMapToolTip->isChecked();
+}
+
+bool CMainWindow::isMinMaxTrackValues() const
+{
+    return actionMinMaxTrackValues->isChecked();
+}
+
+bool CMainWindow::flipMouseWheel() const
+{
+    return actionFlipMouseWheel->isChecked();
+}
+
+bool CMainWindow::profileIsWindow() const
+{
+    return actionProfileIsWindow->isChecked();
+}
+
+void CMainWindow::addMapList(CMapList * list, const QString &name)
+{
+    tabMaps->addTab(list,name);
+    connect(list, &CMapList::sigSetupMapPath, this, &CMainWindow::slotSetupMapPath);
+}
+
+void CMainWindow::addDemList(CDemList * list, const QString &name)
+{
+    tabDem->addTab(list,name);
+    connect(list, &CDemList::sigSetupDemPath, this, &CMainWindow::slotSetupDemPath);
+}
+
+void CMainWindow::addWidgetToTab(QWidget * w)
+{
+    if(tabWidget->indexOf(w) == NOIDX)
+    {
+        tabWidget->addTab(w, w->objectName().replace("&", "&&"));
+    }
+    tabWidget->setCurrentWidget(w);
+}
+
+CCanvas* CMainWindow::getVisibleCanvas() const
+{
+    return dynamic_cast<CCanvas*>(tabWidget->currentWidget());
+}
+
+QList<CCanvas*> CMainWindow::getCanvas() const
+{
+    QList<CCanvas*> result;
+    const int N = tabWidget->count();
+    for(int n = 0; n < N; n++)
+    {
+        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(n));
+        if(canvas != nullptr)
+        {
+            result << canvas;
+        }
+    }
+
+    return result;
+}
+
+void CMainWindow::zoomCanvasTo(const QRectF rect)
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->zoomTo(rect);
+    }
+}
+
+qreal CMainWindow::getElevationAt(const QPointF& pos) const
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        return canvas->getElevationAt(pos);
+    }
+    else
+    {
+        for(int i = 0; i < tabWidget->count(); i++)
+        {
+            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+            if(canvas)
+            {
+                return canvas->getElevationAt(pos);
+            }
+        }
+    }
+    return NOFLOAT;
+}
+
+
+void CMainWindow::getElevationAt(SGisLine &line) const
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->getElevationAt(line);
+    }
+    else
+    {
+        for(int i = 0; i < tabWidget->count(); i++)
+        {
+            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+            if(canvas)
+            {
+                canvas->getElevationAt(line);
+                return;
+            }
+        }
+
+        for(int i = 0; i < line.size(); i++)
+        {
+            line[i].resetElevation();
+        }
+    }
+}
+
+void CMainWindow::getElevationAt(const QPolygonF &pos, QPolygonF& ele) const
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->getElevationAt(pos, ele);
+    }
+    else
+    {
+        for(int i = 0; i < tabWidget->count(); i++)
+        {
+            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+            if(canvas)
+            {
+                canvas->getElevationAt(pos, ele);
+                return;
+            }
+        }
+        ele.clear();
+    }
+}
+
+qreal CMainWindow::getSlopeAt(const QPointF& pos) const
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        return canvas->getSlopeAt(pos);
+    }
+    else
+    {
+        for(int i = 0; i < tabWidget->count(); i++)
+        {
+            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+            if(canvas)
+            {
+                return canvas->getSlopeAt(pos);
+            }
+        }
+    }
+    return NOFLOAT;
+}
+
+void CMainWindow::getSlopeAt(const QPolygonF &pos, QPolygonF& slope) const
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->getSlopeAt(pos, slope);
+    }
+    else
+    {
+        for(int i = 0; i < tabWidget->count(); i++)
+        {
+            canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+            if(canvas)
+            {
+                canvas->getSlopeAt(pos, slope);
+                return;
+            }
+        }
+        slope.clear();
+    }
+}
+
+void CMainWindow::slotAbout()
+{
+    CAbout dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotHelp()
+{
+    QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocMain"));
+}
+
+void CMainWindow::slotQuickstart()
+{
+    // show menu action for German help if system language is German.
+    QString locale = QLocale::system().name();
+    if(locale.size() >= 2)
+    {
+        locale = locale.left(2).toLower();
+        if(locale == "de")
+        {
+            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartGerman"));
+        }
+        else if(locale == "ru")
+        {
+            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartRussian"));
+        }
+        else if(locale == "es")
+        {
+            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartSpanish"));
+        }
+        else
+        {
+            QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartEnglish"));
+        }
+    }
+    else
+    {
+        QDesktopServices::openUrl(QUrl("https://bitbucket.org/maproom/qmapshack/wiki/DocQuickStartEnglish"));
+    }
+}
+
+
+void CMainWindow::slotAddCanvas()
+{
+    int i, cnt = 0;
+    for(i = 0; i < tabWidget->count(); i++)
+    {
+        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(i));
+        if(nullptr != canvas)
+        {
+            cnt++;
+        }
+    }
+
+    CCanvas * view = addView(QString());
+    tabWidget->setCurrentWidget(view);
+
+    testForNoView();
+}
+
+void CMainWindow::slotCloneCanvas()
+{
+    CCanvas * source = getVisibleCanvas();
+    if(nullptr == source)
+    {
+        return;
+    }
+
+    QTemporaryFile temp;
+    temp.open();
+    temp.close();
+
+    QSettings view(temp.fileName(), QSettings::IniFormat);
+    view.clear();
+
+    source->saveConfig(view);
+
+    slotAddCanvas();
+
+    CCanvas * target = getVisibleCanvas();
+    if(nullptr == target)
+    {
+        return;
+    }
+
+    target->loadConfig(view);
+    target->slotTriggerCompleteUpdate(CCanvas::redraw_e::eRedrawGis);
+
+    SETTINGS;
+    cfg.beginGroup("Canvas");
+    cfg.beginGroup("Views");
+    cfg.beginGroup(target->objectName());
+    target->saveConfig(cfg);
+    cfg.endGroup();
+    cfg.endGroup();
+    cfg.endGroup();
+
+    testForNoView();
+}
+
+void CMainWindow::testForNoView()
+{
+    if(tabWidget->count() == 0)
+    {
+        QLabel * label = new QLabel(tabWidget);
+        label->setAlignment(Qt::AlignCenter);
+        label->setWordWrap(true);
+        label->setText(tr("Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>."));
+        label->setObjectName("NoViewInfo");
+        connect(label, &QLabel::linkActivated, this, &CMainWindow::slotLinkActivated);
+        tabWidget->addTab(label, "*");
+        return;
+    }
+
+    QLabel * label = tabWidget->findChild<QLabel*>("NoViewInfo");
+
+    if(label && tabWidget->count() > 1)
+    {
+        delete label;
+    }
+}
+
+void CMainWindow::slotTabCloseRequest(int i)
+{
+    QMutexLocker lock(&CMapItem::mutexActiveMaps);
+
+    delete tabWidget->widget(i);
+
+    testForNoView();
+}
+
+static inline bool compareNames(QString s1, QString s2)
+{
+    return s1.replace("&", "") == s2.replace("&", "");
+}
+
+void CMainWindow::slotCurrentTabCanvas(int i)
+{
+    QString name = tabWidget->tabText(i);
+    for(int n = 0; n < tabMaps->count(); n++)
+    {
+        bool isMapView = compareNames(name, tabMaps->tabText(n));
+
+        actionSetupGrid->setEnabled(isMapView);
+        actionSetupMapBackground->setEnabled(isMapView);
+        actionSetupMapView->setEnabled(isMapView);
+
+        if(isMapView)
+        {
+            tabMaps->setCurrentIndex(n);
+            break;
+        }
+    }
+
+    for(int n = 0; n < tabDem->count(); n++)
+    {
+        if(compareNames(name, tabDem->tabText(n)))
+        {
+            tabDem->setCurrentIndex(n);
+            break;
+        }
+    }
+
+    for(int n = 0; n < tabWidget->count(); n++)
+    {
+        CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->widget(n));
+        if(canvas)
+        {
+            if(n == i)
+            {
+                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+                canvas->showProfile(true);
+            }
+            else
+            {
+                canvas->showProfile(false);
+            }
+        }
+    }
+}
+
+void CMainWindow::slotCurrentTabMaps(int i)
+{
+    QString name = tabMaps->tabText(i);
+    for(int n = 0; n < tabWidget->count(); n++)
+    {
+        if(compareNames(name, tabWidget->tabText(n)))
+        {
+            tabWidget->setCurrentIndex(n);
+            break;
+        }
+    }
+
+    for(int n = 0; n < tabDem->count(); n++)
+    {
+        if(compareNames(name, tabDem->tabText(n)))
+        {
+            tabDem->setCurrentIndex(n);
+            break;
+        }
+    }
+}
+
+void CMainWindow::slotCurrentTabDem(int i)
+{
+    QString name = tabMaps->tabText(i);
+    for(int n = 0; n < tabWidget->count(); n++)
+    {
+        if(compareNames(name, tabWidget->tabText(n)))
+        {
+            tabWidget->setCurrentIndex(n);
+            break;
+        }
+    }
+
+    for(int n = 0; n < tabMaps->count(); n++)
+    {
+        if(compareNames(name, tabMaps->tabText(n)))
+        {
+            tabMaps->setCurrentIndex(n);
+            break;
+        }
+    }
+}
+
+void CMainWindow::slotMousePosition(const QPointF& pos, qreal ele, qreal slope)
+{
+    QString str;
+    IUnit::degToStr(pos.x(), pos.y(), str);
+    lblPosWGS84->setText(str);
+
+    if(ele != NOFLOAT)
+    {
+        QString val, unit;
+        IUnit::self().meter2elevation(ele, val, unit);
+        lblElevation->setText(tr("Ele.: %1%2").arg(val).arg(unit));
+        lblElevation->show();
+    }
+    else
+    {
+        lblElevation->hide();
+    }
+
+    if(slope != NOFLOAT)
+    {
+        QString val;
+        val.sprintf("%.1f", slope);
+        lblSlope->setText(tr("Slope: %1%2", "terrain").arg(val).arg("°"));
+        lblSlope->show();
+    }
+    else
+    {
+        lblSlope->hide();
+    }
+
+    if(actionShowGrid->isChecked())
+    {
+        CCanvas * canvas = getVisibleCanvas();
+        if(canvas)
+        {
+            QString str;
+            lblPosGrid->show();
+            canvas->convertGridPos2Str(pos, str, false);
+            lblPosGrid->setText(tr("[Grid: %1]").arg(str));
+        }
+    }
+    else
+    {
+        lblPosGrid->hide();
+    }
+}
+
+void CMainWindow::slotUpdateCurrentWidget()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+        return;
+    }
+
+    QWidget * w = tabWidget->currentWidget();
+    if(w)
+    {
+        w->update();
+        return;
+    }
+}
+
+
+void CMainWindow::slotSetupMapFont()
+{
+    bool ok = false;
+    QFont f = QFontDialog::getFont(&ok, mapFont, this);
+    if(ok)
+    {
+        mapFont = f;
+        QWidget * w = tabWidget->currentWidget();
+        if(w)
+        {
+            w->update();
+        }
+    }
+}
+
+void CMainWindow::slotSetupMapBackground()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr == canvas)
+    {
+        return;
+    }
+    canvas->setupBackgroundColor();
+}
+
+void CMainWindow::slotSetupGrid()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr == canvas)
+    {
+        return;
+    }
+    canvas->setupGrid();
+}
+
+void CMainWindow::slotSetupMapPath()
+{
+    CMapDraw::setupMapPath();
+}
+
+void CMainWindow::slotSetupDemPath()
+{
+    CDemDraw::setupDemPath();
+}
+
+void CMainWindow::slotSetupMapView()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr == canvas)
+    {
+        return;
+    }
+    canvas->setup();
+}
+
+void CMainWindow::slotSetupTimeZone()
+{
+    CTimeZoneSetup dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupUnits()
+{
+    CUnitsSetup dlg(this);
+    dlg.exec();
+
+    if(QDialog::Accepted == dlg.result())
+    {
+        CKnownExtension::init(IUnit::self());
+    }
+}
+
+void CMainWindow::slotSetupWorkspace()
+{
+    CSetupWorkspace dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupCoordFormat()
+{
+    CCoordFormatSetup dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupToolbar()
+{
+    CToolBarSetupDialog dlg(this,toolBarConfig);
+    dlg.exec();
+}
+
+void CMainWindow::slotImportDatabase()
+{
+    CImportDatabase * widget = new CImportDatabase(this);
+    addWidgetToTab(widget);
+}
+
+void CMainWindow::slotBuildVrt()
+{
+    CMapVrtBuilder * widget = new CMapVrtBuilder(this);
+    addWidgetToTab(widget);
+}
+
+void CMainWindow::slotCreateRoutinoDatabase()
+{
+    CRoutinoDatabaseBuilder * widget = new CRoutinoDatabaseBuilder(this);
+    addWidgetToTab(widget);
+}
+
+void CMainWindow::slotLoadGISData()
+{
+    SETTINGS;
+    QString path   = cfg.value("Paths/lastGisPath",   QDir::homePath()).toString();
+    QString filter = cfg.value("Paths/lastGisFilter", IGisProject::filedialogAllSupported).toString();
+
+    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Load GIS Data..."), path, IGisProject::filedialogLoadFilters, &filter);
+
+    if(filenames.isEmpty())
+    {
+        return;
+    }
+
+    loadGISData(filenames);
+
+    path = QFileInfo(filenames.first()).absolutePath();
+    cfg.setValue("Paths/lastGisPath",   path);
+    cfg.setValue("Paths/lastGisFilter", filter);
+}
+
+
+void CMainWindow::loadGISData(const QStringList& filenames)
+{
+    for(const QString &filename : filenames)
+    {
+        widgetGisWorkspace->loadGisProject(filename);
+    }
+}
+
+
+void CMainWindow::slotStoreView()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr == canvas)
+    {
+        return;
+    }
+
+    SETTINGS;
+    QString path = cfg.value("Paths/lastViewPath", QDir::homePath()).toString();
+    QString filename = QFileDialog::getSaveFileName( this, tr("Select output file"), path, tr("QMapShack View (*.view)"));
+
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(filename);
+    if(fi.suffix().toLower() != "view")
+    {
+        filename += ".view";
+    }
+
+    QSettings view(filename, QSettings::IniFormat);
+    view.clear();
+
+    canvas->saveConfig(view);
+
+    path = fi.absolutePath();
+    cfg.setValue("Paths/lastViewPath", path);
+}
+
+void CMainWindow::slotLoadView()
+{
+    SETTINGS;
+    QString path = cfg.value("Paths/lastViewPath", QDir::homePath()).toString();
+    QString filename = QFileDialog::getOpenFileName(this, tr("Select file to load"), path, tr("QMapShack View (*.view)"));
+
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    slotAddCanvas();
+
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr == canvas)
+    {
+        return;
+    }
+
+    QSettings view(filename, QSettings::IniFormat);
+    canvas->loadConfig(view);
+
+    cfg.beginGroup("Canvas");
+    cfg.beginGroup("Views");
+    cfg.beginGroup(canvas->objectName());
+    canvas->saveConfig(cfg);
+    cfg.endGroup(); // objectName
+    cfg.endGroup(); // "Views"
+    cfg.endGroup(); // "Canvas"
+
+    QFileInfo fi(filename);
+    path = fi.absolutePath();
+    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(nullptr != view)
+        {
+            view->showProfileAsWindow(on);
+        }
+    }
+}
+
+void CMainWindow::slotPrintMap()
+{
+    CCanvas * canvas = getVisibleCanvas();
+    if(nullptr != canvas)
+    {
+        canvas->setMousePrint();
+    }
+}
+
+void CMainWindow::slotLinkActivated(const QString& link)
+{
+    if(link == "newview")
+    {
+        actionAddMapView->trigger();
+    }
+}
+
+void CMainWindow::slotSetupWptIcons()
+{
+    CWptIconDialog dlg(this);
+    dlg.exec();
+}
+
+
+void CMainWindow::slotCloseTab()
+{
+    CCanvas * canvas = dynamic_cast<CCanvas*>(tabWidget->currentWidget());
+    if(canvas == nullptr)
+    {
+        QWidget * widget = tabWidget->currentWidget();
+        if(widget != nullptr)
+        {
+            widget->deleteLater();
+        }
+    }
+}
+
+void CMainWindow::slotToggleDocks()
+{
+    if (docksVisible())
+    {
+        dockStates = saveState();
+        hideDocks();
+    }
+    else
+    {
+        showDocks();
+        if (!dockStates.isEmpty())
+        {
+            restoreState(dockStates);
+        }
+    }
+}
+
+bool CMainWindow::docksVisible() const
+{
+    for (QDockWidget * const & dock : docks)
+    {
+        if (!dock->isHidden())
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+void CMainWindow::showDocks() const
+{
+    if (activeDocks.isEmpty())
+    {
+        for (QDockWidget * const & dock : docks)
+        {
+            dock->show();
+        }
+    }
+    else
+    {
+        const QList<QDockWidget *> docksToShow(activeDocks);
+        for (QDockWidget * const & dock : docksToShow)
+        {
+            dock->show();
+        }
+    }
+}
+
+void CMainWindow::hideDocks()
+{
+    activeDocks.clear();
+    for (QDockWidget * const & dock : docks)
+    {
+        if (!dock->isHidden())
+        {
+            dock->hide();
+            activeDocks << dock;
+        }
+    }
+}
+
+void CMainWindow::slotDockVisibilityChanged(bool visible)
+{
+    if (visible)
+    {
+        activeDocks.clear();
+    }
+    else
+    {
+        for (QDockWidget * const & dock : docks)
+        {
+            if (!dock->isHidden())
+            {
+                visible = true;
+                break;
+            }
+        }
+    }
+    actionToggleDocks->setChecked(visible);
+}
+
+void CMainWindow::slotFullScreen()
+{
+    QMutexLocker lock(&CMainWindow::mutex);
+
+    Qt::WindowStates state = windowState();
+    if(state == Qt::WindowFullScreen)
+    {
+        displayRegular();
+    }
+    else
+    {
+        displayMode = state;
+        displayFullscreen();
+    }
+}
+
+void CMainWindow::slotStartQMapTool()
+{
+    QProcess::startDetached("qmaptool");
+}
+
+void CMainWindow::displayRegular()
+{
+    if (!dockStates.isEmpty())
+    {
+        restoreState(dockStates);
+    }
+    tabWidget->tabBar()->setVisible(true);
+    statusBar()->setVisible(true);
+    if (menuVisible)
+    {
+        menuBar()->setVisible(true);
+    }
+    actionFullScreen->setIcon(QIcon(":/icons/32x32/FullScreen.png"));
+    setWindowState(displayMode);
+}
+
+void CMainWindow::displayFullscreen()
+{
+    dockStates = saveState();
+    setWindowState(Qt::WindowFullScreen);
+    statusBar()->setVisible(false);
+    menuVisible = menuBar()->isVisible();
+    // menu is handled dynamically as on some platforms (e.g. ubuntu with unity)
+    // the menu is not visible but it's actions are active nevertheless
+    if (menuVisible)
+    {
+        menuBar()->setVisible(false);
+    }
+    if (docksVisible())
+    {
+        hideDocks();
+    }
+    if (!toolBarConfig->visibleInFullscreen())
+    {
+        toolBar->setVisible(false);
+    }
+    tabWidget->tabBar()->setVisible(false);
+    actionFullScreen->setIcon(QIcon(":/icons/32x32/RegularScreen.png"));
+}
+
+#ifdef WIN32
+
+static void sendDeviceEvent(DWORD unitmask, bool add)
+{
+    for (char i = 0; i < 26; ++i)
+    {
+        if (unitmask & 0x1)
+        {
+            QString path = QString(i + 'A') + ":/";
+            qDebug() << "sendDeviceEvent" << path << add;
+            CEventDevice * event = new CEventDevice(path, add);
+            QCoreApplication::postEvent(CDeviceWatcherWindows::self(), event);
+            //qDebug() << "postEvent";
+        }
+        unitmask = unitmask >> 1;
+    }
+}
+
+
+bool CMainWindow::nativeEvent(const QByteArray & eventType, void * message, long * result)
+{
+    MSG* msg = (MSG*)message;
+    //qDebug() << "nativeEvent" << eventType << msg->message << msg->lParam << msg->wParam;
+
+    if (WM_DEVICECHANGE == msg->message)
+    {
+        //qDebug() << "WM_DEVICECHANGE";
+        PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)msg->lParam;
+        switch (msg->wParam)
+        {
+        case DBT_DEVICEARRIVAL:
+        {
+            qDebug() << "DBT_DEVICEARRIVAL"<< pHdr->dbch_devicetype;
+            if (pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
+            {
+                PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr;
+                sendDeviceEvent(pHdrv->dbcv_unitmask, true);
+            }
+            break;
+        }
+
+        case  DBT_DEVICEREMOVECOMPLETE:
+        {
+            qDebug() << "DBT_DEVICEREMOVECOMPLETE" << pHdr->dbch_devicetype;
+            if (pHdr->dbch_devicetype == DBT_DEVTYP_VOLUME)
+            {
+                PDEV_BROADCAST_VOLUME pHdrv = (PDEV_BROADCAST_VOLUME)pHdr;
+                sendDeviceEvent(pHdrv->dbcv_unitmask, false);
+            }
+            break;
+        }
+
+        default:
+        {
+            break;
+        }
+        }
+    }
+
+    return QWidget::nativeEvent(eventType, message, result);
+}
+#endif // WIN32
+
+void CMainWindow::dragEnterEvent(QDragEnterEvent *event)
+{
+    if(event->mimeData()->hasUrls())
+    {
+        QList<QUrl> urls = event->mimeData()->urls();
+        QFileInfo fi(urls[0].path());
+        QString ext = fi.suffix().toUpper();
+
+        if ((ext == "QMS") || (ext == "GPX") || (ext == "SLF") || (ext == "FIT") || (ext == "TCX") || (ext == "SML") || (ext == "LOG"))
+        {
+            event->acceptProposedAction();
+        }
+    }
+}
+
+
+void CMainWindow::dropEvent(QDropEvent *event)
+{
+    QList<QUrl> urls = event->mimeData()->urls();
+
+    QStringList filenames;
+    for(const QUrl &url : urls)
+    {
+        filenames << url.toLocalFile();
+    }
+
+    loadGISData(filenames);
+
+    event->acceptProposedAction();
+}
+
+void CMainWindow::slotSanityTest()
+{
+    projPJ pjsrc = pj_init_plus("+init=epsg:32661");
+    if(pjsrc == nullptr)
+    {
+        QMessageBox::critical(this, tr("Fatal...")
+                              ,tr("QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.")
+                              ,QMessageBox::Close);
+
+        deleteLater();
+        return;
+    }
+
+    pj_free(pjsrc);
+
+
+    qDebug() << "Sanity test passed.";
+}
+
diff --git a/src/qmapshack/CMainWindow.h b/src/qmapshack/CMainWindow.h
new file mode 100644
index 0000000..6a490d7
--- /dev/null
+++ b/src/qmapshack/CMainWindow.h
@@ -0,0 +1,186 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMAINWINDOW_H
+#define CMAINWINDOW_H
+
+#include "ui_IMainWindow.h"
+#include <QMainWindow>
+
+class CMapList;
+class CDemList;
+class QLabel;
+class CGisWorkspace;
+class CGisDatabase;
+class CRtWorkspace;
+class CCanvas;
+class CToolBarConfig;
+struct SGisLine;
+
+class CMainWindow : public QMainWindow, private Ui::IMainWindow
+{
+    Q_OBJECT
+public:
+    static CMainWindow& self()
+    {
+        return *pSelf;
+    }
+
+    static QWidget * getBestWidgetForParent();
+
+    static QString getUser();
+
+    virtual ~CMainWindow();
+
+    void addMapList(CMapList *list, const QString& name);
+    void addDemList(CDemList *list, const QString& name);
+    void addWidgetToTab(QWidget * w);
+
+    bool isScaleVisible()  const;
+    bool isGridVisible()   const;
+    bool isNight()         const;
+    bool isPOIText()       const;
+    bool isMapToolTip()    const;
+    bool isMinMaxTrackValues() const;
+    bool flipMouseWheel()  const;
+    bool profileIsWindow() const;
+    const QFont& getMapFont() const
+    {
+        return mapFont;
+    }
+
+    void zoomCanvasTo(const QRectF rect);
+    /**
+       @brief Read the elevation from DEM data attached to the currently visible canvas for a given location
+       @param pos   a position in units of [rad]
+       @return If no elevation value can be found for the position NOFLOAT is returned.
+     */
+    qreal getElevationAt(const QPointF &pos) const;
+    void  getElevationAt(const QPolygonF& pos, QPolygonF &ele) const;
+    void  getElevationAt(SGisLine &line) const;
+
+    qreal getSlopeAt(const QPointF &pos) const;
+    void getSlopeAt(const QPolygonF &pos, QPolygonF& slope) const;
+    /**
+       @brief Get pointer to the currently visible canvas object.
+       @return If the currently visible tab does not contain a CCanvas object 0 is returned.
+     */
+    CCanvas* getVisibleCanvas() const;
+    QList<CCanvas*> getCanvas() const;
+
+    QAction * getMapSetupAction()
+    {
+        return actionSetupMapPaths;
+    }
+
+    QAction * getDemSetupAction()
+    {
+        return actionSetupDEMPaths;
+    }
+
+    void loadGISData(const QStringList& filenames);
+
+    const qint32 id;
+protected:
+#ifdef WIN32
+    bool CMainWindow::nativeEvent(const QByteArray & eventType, void * message, long * result);
+#endif // WIN32
+    void dragEnterEvent(QDragEnterEvent *event) override;
+    void dropEvent(QDropEvent *event) override;
+
+
+private slots:
+    void slotAbout();
+    void slotHelp();
+    void slotQuickstart();
+    void slotAddCanvas();
+    void slotCloneCanvas();
+    void slotTabCloseRequest(int i);
+    void slotCurrentTabCanvas(int i);
+    void slotCurrentTabMaps(int i);
+    void slotCurrentTabDem(int i);
+    void slotMousePosition(const QPointF& pos, qreal ele, qreal slope);
+    void slotUpdateCurrentWidget();
+    void slotSetupMapFont();
+    void slotSetupMapBackground();
+    void slotSetupGrid();
+    void slotSetupMapPath();
+    void slotSetupDemPath();
+    void slotSetupMapView();
+    void slotSetupTimeZone();
+    void slotSetupUnits();
+    void slotSetupWorkspace();
+    void slotSetupCoordFormat();
+    void slotSetupToolbar();
+    void slotImportDatabase();
+    void slotLoadGISData();
+    void slotBuildVrt();
+    void slotStoreView();
+    void slotLoadView();
+    void slotSetProfileMode(bool on);
+    void slotCreateRoutinoDatabase();
+    void slotPrintMap();
+    void slotSetupWptIcons();
+    void slotLinkActivated(const QString& link);
+    void slotSanityTest();
+    void slotCloseTab();
+    void slotToggleDocks();
+    void slotDockVisibilityChanged(bool visible);
+    void slotFullScreen();
+    void slotStartQMapTool();
+
+private:
+    friend int main(int argc, char ** argv);
+    CMainWindow();
+    void prepareMenuForMac();
+    void testForNoView();
+    bool docksVisible() const;
+    void showDocks() const;
+    void hideDocks();
+    void displayRegular();
+    void displayFullscreen();
+    CCanvas * addView(const QString &name);
+
+    static CMainWindow * pSelf;
+
+    /// status bar label
+    QLabel * lblPosWGS84;
+    QLabel * lblElevation;
+    QLabel * lblSlope;
+    QLabel * lblPosGrid;
+
+    QFont mapFont;
+
+    CGisWorkspace * widgetGisWorkspace;
+    CGisDatabase * widgetGisDatabase;
+    CRtWorkspace * widgetRtWorkspace;
+
+    CToolBarConfig * toolBarConfig;
+
+    QList<QDockWidget *> docks;
+    QList<QDockWidget *> activeDocks;
+    Qt::WindowStates displayMode = Qt::WindowMaximized;
+    QByteArray dockStates;
+    bool menuVisible = false;
+
+    static QMutex mutex;
+};
+
+#endif //CMAINWINDOW_H
+
diff --git a/src/qmapshack/CMakeLists.txt b/src/qmapshack/CMakeLists.txt
new file mode 100644
index 0000000..918c54e
--- /dev/null
+++ b/src/qmapshack/CMakeLists.txt
@@ -0,0 +1,852 @@
+# Prevent custom commands/targets outputs to be deleted by make clean
+# We need this to prevent .ts files from being deleted with make clean, when
+# UPDATE_TRANSLATIONS=ON
+# WARNING: Only works with Makefile generator.
+set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
+# Find includes in corresponding build directories
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+# Instruct CMake to run moc automatically when needed.
+set(CMAKE_AUTOMOC ON)
+
+
+###############################################################################################
+# Setup application name and version tags
+###############################################################################################
+
+STRING(TOLOWER ${PROJECT_NAME} APPLICATION_NAME)
+
+add_definitions(
+    -DVER_MAJOR=${PROJECT_VERSION_MAJOR}
+    -DVER_MINOR=${PROJECT_VERSION_MINOR}
+    -DVER_STEP=${PROJECT_VERSION_PATCH}
+    -DVER_TWEAK=${VERSION_SUFFIX}
+    -DAPPLICATION_NAME=${PROJECT_NAME}
+)
+
+# and other funny defines -> maybe config.h is a better place for that
+add_definitions(-DROUTINO_XML_PATH=${ROUTINO_XML_PATH})
+
+###############################################################################################
+# All source files needed to compile
+###############################################################################################
+
+set( SRCS    
+    CAbout.cpp
+    CMainWindow.cpp
+    CSingleInstanceProxy.cpp
+    GeoMath.cpp
+    canvas/CCanvas.cpp
+    canvas/CCanvasSetup.cpp
+    canvas/IDrawContext.cpp
+    canvas/IDrawObject.cpp
+    dem/CDemDraw.cpp
+    dem/CDemItem.cpp
+    dem/CDemList.cpp
+    dem/CDemPathSetup.cpp
+    dem/CDemPropSetup.cpp
+    dem/CDemVRT.cpp
+    dem/IDem.cpp
+    dem/IDemProp.cpp
+    device/CDeviceGarmin.cpp
+    device/CDeviceGarminArchive.cpp
+    device/CDeviceTwoNav.cpp
+    device/IDevice.cpp
+    device/IDeviceWatcher.cpp
+    gis/CGisDatabase.cpp
+    gis/CGisDraw.cpp
+    gis/CGisListDB.cpp
+    gis/CGisListWks.cpp
+    gis/CGisWorkspace.cpp
+    gis/CSelDevices.cpp
+    gis/CSetupFilter.cpp
+    gis/IGisItem.cpp
+    gis/IGisLine.cpp
+    gis/WptIcons.cpp
+    gis/db/CDBFolderGroup.cpp
+    gis/db/CDBFolderLostFound.cpp
+    gis/db/CDBFolderMysql.cpp
+    gis/db/CDBFolderOther.cpp
+    gis/db/CDBFolderProject.cpp
+    gis/db/CDBFolderSqlite.cpp
+    gis/db/CDBItem.cpp
+    gis/db/CDBProject.cpp
+    gis/db/CExportDatabase.cpp
+    gis/db/CExportDatabaseThread.cpp
+    gis/db/CLostFoundProject.cpp
+    gis/db/CSearchDatabase.cpp
+    gis/db/CSelectDBFolder.cpp
+    gis/db/CSelectSaveAction.cpp
+    gis/db/CSetupDatabase.cpp
+    gis/db/CSetupFolder.cpp
+    gis/db/CSetupWorkspace.cpp
+    gis/db/IDB.cpp
+    gis/db/IDBFolder.cpp
+    gis/db/IDBFolderSql.cpp
+    gis/db/IDBMysql.cpp
+    gis/db/IDBSqlite.cpp
+    gis/fit/CFitProject.cpp
+    gis/fit/CFitStream.cpp
+    gis/fit/decoder/CFitByteDataTransformer.cpp
+    gis/fit/decoder/CFitCrcState.cpp
+    gis/fit/decoder/CFitDecoder.cpp
+    gis/fit/decoder/CFitDefinitionMessage.cpp
+    gis/fit/decoder/CFitDevFieldDefinition.cpp
+    gis/fit/decoder/CFitDevFieldDefinitionState.cpp
+    gis/fit/decoder/CFitField.cpp
+    gis/fit/decoder/CFitFieldBuilder.cpp
+    gis/fit/decoder/CFitFieldDataState.cpp
+    gis/fit/decoder/CFitFieldDefinition.cpp
+    gis/fit/decoder/CFitFieldDefinitionState.cpp
+    gis/fit/decoder/CFitHeaderState.cpp
+    gis/fit/decoder/CFitMessage.cpp
+    gis/fit/decoder/CFitRecordContentState.cpp
+    gis/fit/decoder/CFitRecordHeaderState.cpp
+    gis/fit/decoder/IFitDecoderState.cpp
+    gis/fit/defs/CFitBaseType.cpp
+    gis/fit/defs/CFitFieldProfile.cpp
+    gis/fit/defs/CFitProfile.cpp
+    gis/fit/defs/CFitProfileLookup.cpp
+    gis/fit/serialization.cpp
+    gis/gpx/CGpxProject.cpp
+    gis/gpx/serialization.cpp
+    gis/ovl/CDetailsOvlArea.cpp
+    gis/ovl/CGisItemOvlArea.cpp
+    gis/ovl/CScrOptOvlArea.cpp
+    gis/prj/CDetailsPrj.cpp
+    gis/prj/IGisProject.cpp
+    gis/qlb/CQlbProject.cpp
+    gis/qms/CQmsProject.cpp
+    gis/qms/serialization.cpp
+    gis/rte/CCreateRouteFromWpt.cpp
+    gis/rte/CDetailsRte.cpp
+    gis/rte/CGisItemRte.cpp
+    gis/rte/CScrOptRte.cpp
+    gis/rte/router/CRouterBRouter.cpp
+    gis/rte/router/CRouterMapQuest.cpp
+    gis/rte/router/CRouterRoutino.cpp
+    gis/rte/router/CRouterSetup.cpp
+    gis/rte/router/IRouter.cpp
+    gis/rte/router/brouter/CRouterBRouterInfo.cpp
+    gis/rte/router/brouter/CRouterBRouterSetup.cpp
+    gis/rte/router/brouter/CRouterBRouterSetupPage.cpp
+    gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
+    gis/rte/router/brouter/CRouterBRouterTilesPage.cpp
+    gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp
+    gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp
+    gis/rte/router/brouter/CRouterBRouterToolShell.cpp
+    gis/rte/router/routino/CRouterRoutinoPathSetup.cpp
+    gis/search/CSearchGoogle.cpp
+    gis/slf/CSlfProject.cpp
+    gis/slf/CSlfReader.cpp
+    gis/summary/CGisSummary.cpp
+    gis/summary/CGisSummaryDropZone.cpp
+    gis/summary/CGisSummarySetup.cpp
+    gis/suunto/CLogProject.cpp
+    gis/suunto/CSmlProject.cpp
+    gis/suunto/ISuuntoProject.cpp
+    gis/tcx/CTcxProject.cpp
+    gis/tcx/serialization.cpp
+    gis/tnv/CTwoNavProject.cpp
+    gis/tnv/serialization.cpp
+    gis/trk/CActivityTrk.cpp
+    gis/trk/CCombineTrk.cpp
+    gis/trk/CCutTrk.cpp
+    gis/trk/CDetailsTrk.cpp
+    gis/trk/CGisItemTrk.cpp
+    gis/trk/CKnownExtension.cpp
+    gis/trk/CPropertyTrk.cpp
+    gis/trk/CScrOptTrk.cpp
+    gis/trk/CSelectActivityColor.cpp
+    gis/trk/CTableTrk.cpp
+    gis/trk/CTrackData.cpp
+    gis/trk/filter/CFilterDelete.cpp
+    gis/trk/filter/CFilterDeleteExtension.cpp
+    gis/trk/filter/CFilterDouglasPeuker.cpp
+    gis/trk/filter/CFilterInterpolateElevation.cpp
+    gis/trk/filter/CFilterInvalid.cpp
+    gis/trk/filter/CFilterMedian.cpp
+    gis/trk/filter/CFilterNewDate.cpp
+    gis/trk/filter/CFilterObscureDate.cpp
+    gis/trk/filter/CFilterOffsetElevation.cpp
+    gis/trk/filter/CFilterReplaceElevation.cpp
+    gis/trk/filter/CFilterReset.cpp
+    gis/trk/filter/CFilterSpeed.cpp
+    gis/trk/filter/CFilterSplitSegment.cpp
+    gis/trk/filter/CFilterSubPt2Pt.cpp
+    gis/trk/filter/CFilterTerrainSlope.cpp
+    gis/trk/filter/filter.cpp
+    gis/wpt/CDetailsGeoCache.cpp
+    gis/wpt/CDetailsWpt.cpp
+    gis/wpt/CGisItemWpt.cpp
+    gis/wpt/CProjWpt.cpp
+    gis/wpt/CScrOptWpt.cpp
+    gis/wpt/CScrOptWptRadius.cpp
+    gis/wpt/CSetupNewWpt.cpp
+    grid/CGrid.cpp
+    grid/CGridSetup.cpp
+    grid/CProjWizard.cpp
+    grid/mitab.cpp
+    helpers/CDraw.cpp
+    helpers/CElevationDialog.cpp
+    helpers/CInputDialog.cpp
+    helpers/CLimit.cpp
+    helpers/CLinksDialog.cpp
+    helpers/CPhotoViewer.cpp
+    helpers/CPositionDialog.cpp
+    helpers/CProgressDialog.cpp
+    helpers/CSelectCopyAction.cpp
+    helpers/CSelectProjectDialog.cpp
+    helpers/CToolBarConfig.cpp
+    helpers/CToolBarSetupDialog.cpp
+    helpers/CValue.cpp
+    helpers/CWptIconDialog.cpp
+    main.cpp
+    map/CMapDraw.cpp
+    map/CMapGEMF.cpp
+    map/CMapIMG.cpp
+    map/CMapItem.cpp
+    map/CMapJNX.cpp
+    map/CMapList.cpp
+    map/CMapMAP.cpp
+    map/CMapPathSetup.cpp
+    map/CMapPropSetup.cpp
+    map/CMapRMAP.cpp
+    map/CMapTMS.cpp
+    map/CMapVRT.cpp
+    map/CMapWMTS.cpp
+    map/IMap.cpp
+    map/IMapOnline.cpp
+    map/IMapProp.cpp
+    map/cache/CDiskCache.cpp
+    map/garmin/CGarminPoint.cpp
+    map/garmin/CGarminPolygon.cpp
+    map/garmin/CGarminStrTbl6.cpp
+    map/garmin/CGarminStrTbl8.cpp
+    map/garmin/CGarminStrTblUtf8.cpp
+    map/garmin/CGarminTyp.cpp
+    map/garmin/IGarminStrTbl.cpp
+    map/mapsforge/types.cpp
+    mouse/CMouseAdapter.cpp
+    mouse/CMouseDummy.cpp
+    mouse/CMouseEditArea.cpp
+    mouse/CMouseEditRte.cpp
+    mouse/CMouseEditTrk.cpp
+    mouse/CMouseMoveWpt.cpp
+    mouse/CMouseNormal.cpp
+    mouse/CMousePrint.cpp
+    mouse/CMouseRadiusWpt.cpp
+    mouse/CMouseRangeTrk.cpp
+    mouse/CMouseSelect.cpp
+    mouse/CMouseWptBubble.cpp
+    mouse/CScrOptPrint.cpp
+    mouse/CScrOptRangeTrk.cpp
+    mouse/CScrOptSelect.cpp
+    mouse/CScrOptUnclutter.cpp
+    mouse/IMouse.cpp
+    mouse/IMouseSelect.cpp
+    mouse/IScrOpt.cpp
+    mouse/line/CLineOpAddPoint.cpp
+    mouse/line/CLineOpDeletePoint.cpp
+    mouse/line/CLineOpMovePoint.cpp
+    mouse/line/CLineOpSelectRange.cpp
+    mouse/line/CScrOptEditLine.cpp
+    mouse/line/CScrOptRangeLine.cpp
+    mouse/line/ILineOp.cpp
+    mouse/line/IMouseEditLine.cpp
+    plot/CPlot.cpp
+    plot/CPlotAxis.cpp
+    plot/CPlotAxisTime.cpp
+    plot/CPlotData.cpp
+    plot/CPlotProfile.cpp
+    plot/CPlotTrack.cpp
+    plot/IPlot.cpp
+    plot/ITrack.cpp
+    print/CPrintDialog.cpp
+    qlgt/CQlb.cpp
+    qlgt/CQlgtDb.cpp
+    qlgt/CQlgtDiary.cpp
+    qlgt/CQlgtFolder.cpp
+    qlgt/CQlgtRoute.cpp
+    qlgt/CQlgtTrack.cpp
+    qlgt/CQlgtWpt.cpp
+    qlgt/CQmsDb.cpp
+    qlgt/IItem.cpp
+    qlgt/IQlgtOverlay.cpp
+    qlgt/converter.cpp
+    realtime/CRtDraw.cpp
+    realtime/CRtSelectSource.cpp
+    realtime/CRtWorkspace.cpp
+    realtime/IRtRecord.cpp
+    realtime/IRtSource.cpp
+    realtime/opensky/CRtOpenSky.cpp
+    realtime/opensky/CRtOpenSkyInfo.cpp
+    realtime/opensky/CRtOpenSkyRecord.cpp
+    setup/CAppSetupLinux.cpp
+    setup/CAppSetupMac.cpp
+    setup/CAppSetupWin.cpp
+    setup/CCommandProcessor.cpp
+    setup/CLogHandler.cpp
+    setup/IAppSetup.cpp
+    tool/CImportDatabase.cpp
+    tool/CMapVrtBuilder.cpp
+    tool/CRoutinoDatabaseBuilder.cpp
+    tool/IToolShell.cpp
+    units/CCoordFormatSetup.cpp
+    units/CTimeZoneSetup.cpp
+    units/CUnitImperial.cpp
+    units/CUnitMetric.cpp
+    units/CUnitNautic.cpp
+    units/CUnitsSetup.cpp
+    units/IUnit.cpp
+    widgets/CColorChooser.cpp
+    widgets/CColorLegend.cpp
+    widgets/CDoubleSpinBox.cpp
+    widgets/CFadingIcon.cpp
+    widgets/CHistoryListWidget.cpp
+    widgets/CLineEdit.cpp
+    widgets/CPhotoAlbum.cpp
+    widgets/CSelectDoubleListWidget.cpp
+    widgets/CTemplateWidget.cpp
+    widgets/CTextEdit.cpp
+    widgets/CTextEditWidget.cpp
+    widgets/CTextEditWidgetSelMenu.cpp
+    widgets/CTinySpinBox.cpp
+)
+
+
+if(Qt5DBus_FOUND)
+set( SRCS
+    ${SRCS}
+    device/CDeviceWatcherLinux.cpp
+)
+endif(Qt5DBus_FOUND)
+
+
+if (APPLE)
+set( SRCS
+    ${SRCS}
+    device/CDeviceWatcherMac.cpp
+)
+endif(APPLE)
+
+if(WIN32)
+set( SRCS
+    ${SRCS}
+    device/CDeviceWatcherWindows.cpp
+)
+endif(WIN32)
+
+
+set( HDRS
+    CAbout.h
+    CMainWindow.h
+    CSingleInstanceProxy.h
+    GeoMath.h
+    canvas/CCanvas.h
+    canvas/CCanvasSetup.h
+    canvas/IDrawContext.h
+    canvas/IDrawObject.h
+    dem/CDemDraw.h
+    dem/CDemItem.h
+    dem/CDemList.h
+    dem/CDemPathSetup.h
+    dem/CDemPropSetup.h
+    dem/CDemVRT.h
+    dem/IDem.h
+    dem/IDemProp.h
+    device/CDeviceGarmin.h
+    device/CDeviceGarminArchive.h
+    device/CDeviceTwoNav.h
+    device/IDevice.h
+    device/IDeviceWatcher.h
+    gis/CGisDatabase.h
+    gis/CGisDraw.h
+    gis/CGisListDB.h
+    gis/CGisListWks.h
+    gis/CGisWorkspace.h
+    gis/CSelDevices.h
+    gis/CSetupFilter.h
+    gis/IGisItem.h
+    gis/IGisLine.h
+    gis/Poi.h
+    gis/WptIcons.h
+    gis/db/CDBFolderGroup.h
+    gis/db/CDBFolderLostFound.h
+    gis/db/CDBFolderMysql.h
+    gis/db/CDBFolderOther.h
+    gis/db/CDBFolderProject.h
+    gis/db/CDBFolderSqlite.h
+    gis/db/CDBItem.h
+    gis/db/CDBProject.h
+    gis/db/CExportDatabase.h
+    gis/db/CExportDatabaseThread.h
+    gis/db/CLostFoundProject.h
+    gis/db/CSearchDatabase.h
+    gis/db/CSelectDBFolder.h
+    gis/db/CSelectSaveAction.h
+    gis/db/CSetupDatabase.h
+    gis/db/CSetupFolder.h
+    gis/db/CSetupWorkspace.h
+    gis/db/IDB.h
+    gis/db/IDBFolder.h
+    gis/db/IDBFolderSql.h
+    gis/db/IDBMysql.h
+    gis/db/IDBSqlite.h
+    gis/db/macros.h
+    gis/fit/CFitProject.h
+    gis/fit/CFitStream.h
+    gis/fit/decoder/CFitByteDataTransformer.h
+    gis/fit/decoder/CFitCrcState.h
+    gis/fit/decoder/CFitDecoder.h
+    gis/fit/decoder/CFitDefinitionMessage.h
+    gis/fit/decoder/CFitDevFieldDefinition.h
+    gis/fit/decoder/CFitDevFieldDefinitionState.h
+    gis/fit/decoder/CFitField.h
+    gis/fit/decoder/CFitFieldBuilder.h
+    gis/fit/decoder/CFitFieldDataState.h
+    gis/fit/decoder/CFitFieldDefinition.h
+    gis/fit/decoder/CFitFieldDefinitionState.h
+    gis/fit/decoder/CFitHeaderState.h
+    gis/fit/decoder/CFitMessage.h
+    gis/fit/decoder/CFitRecordContentState.h
+    gis/fit/decoder/CFitRecordHeaderState.h
+    gis/fit/decoder/IFitDecoderState.h
+    gis/fit/defs/CFitBaseType.h
+    gis/fit/defs/CFitFieldProfile.h
+    gis/fit/defs/CFitProfile.h
+    gis/fit/defs/CFitProfileLookup.h
+    gis/fit/defs/fit_const.h
+    gis/fit/defs/fit_enums.h
+    gis/fit/defs/fit_fields.h
+    gis/gpx/CGpxProject.h
+    gis/ovl/CDetailsOvlArea.h
+    gis/ovl/CGisItemOvlArea.h
+    gis/ovl/CScrOptOvlArea.h
+    gis/prj/CDetailsPrj.h
+    gis/prj/IGisProject.h
+    gis/qlb/CQlbProject.h
+    gis/qms/CQmsProject.h
+    gis/rte/CCreateRouteFromWpt.h
+    gis/rte/CDetailsRte.h
+    gis/rte/CGisItemRte.h
+    gis/rte/CScrOptRte.h
+    gis/rte/router/CRouterBRouter.h
+    gis/rte/router/CRouterMapQuest.h
+    gis/rte/router/CRouterRoutino.h
+    gis/rte/router/CRouterSetup.h
+    gis/rte/router/IRouter.h
+    gis/rte/router/brouter/CRouterBRouterInfo.h
+    gis/rte/router/brouter/CRouterBRouterSetup.h
+    gis/rte/router/brouter/CRouterBRouterSetupPage.h
+    gis/rte/router/brouter/CRouterBRouterSetupWizard.h
+    gis/rte/router/brouter/CRouterBRouterTilesPage.h
+    gis/rte/router/brouter/CRouterBRouterTilesSelect.h
+    gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h
+    gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h
+    gis/rte/router/brouter/CRouterBRouterTilesStatus.h
+    gis/rte/router/brouter/CRouterBRouterToolShell.h
+    gis/rte/router/routino/CRouterRoutinoPathSetup.h
+    gis/search/CSearchGoogle.h
+    gis/slf/CSlfProject.h
+    gis/slf/CSlfReader.h
+    gis/summary/CGisSummary.h
+    gis/summary/CGisSummaryDropZone.h
+    gis/summary/CGisSummarySetup.h
+    gis/suunto/CLogProject.h
+    gis/suunto/CSmlProject.h
+    gis/suunto/ISuuntoProject.h
+    gis/tcx/CTcxProject.h
+    gis/tnv/CTwoNavProject.h
+    gis/trk/CActivityTrk.h
+    gis/trk/CCombineTrk.h
+    gis/trk/CCutTrk.h
+    gis/trk/CDetailsTrk.h
+    gis/trk/CGisItemTrk.h
+    gis/trk/CKnownExtension.h
+    gis/trk/CPropertyTrk.h
+    gis/trk/CScrOptTrk.h
+    gis/trk/CSelectActivityColor.h
+    gis/trk/CTableTrk.h
+    gis/trk/CTrackData.h
+    gis/trk/filter/CFilterDelete.h
+    gis/trk/filter/CFilterDeleteExtension.h
+    gis/trk/filter/CFilterDouglasPeuker.h
+    gis/trk/filter/CFilterInterpolateElevation.h
+    gis/trk/filter/CFilterInvalid.h
+    gis/trk/filter/CFilterMedian.h
+    gis/trk/filter/CFilterNewDate.h
+    gis/trk/filter/CFilterObscureDate.h
+    gis/trk/filter/CFilterOffsetElevation.h
+    gis/trk/filter/CFilterReplaceElevation.h
+    gis/trk/filter/CFilterReset.h
+    gis/trk/filter/CFilterSpeed.h
+    gis/trk/filter/CFilterSplitSegment.h
+    gis/trk/filter/CFilterSubPt2Pt.h
+    gis/trk/filter/CFilterTerrainSlope.h
+    gis/wpt/CDetailsGeoCache.h
+    gis/wpt/CDetailsWpt.h
+    gis/wpt/CGisItemWpt.h
+    gis/wpt/CProjWpt.h
+    gis/wpt/CScrOptWpt.h
+    gis/wpt/CScrOptWptRadius.h
+    gis/wpt/CSetupNewWpt.h
+    grid/CGrid.h
+    grid/CGridSetup.h
+    grid/CProjWizard.h
+    grid/mitab.h
+    helpers/CDraw.h
+    helpers/CElevationDialog.h
+    helpers/CFileExt.h
+    helpers/CInputDialog.h
+    helpers/CLimit.h
+    helpers/CLinksDialog.h
+    helpers/CPhotoViewer.h
+    helpers/CPositionDialog.h
+    helpers/CProgressDialog.h
+    helpers/CSelectCopyAction.h
+    helpers/CSelectProjectDialog.h
+    helpers/CSettings.h
+    helpers/CToolBarConfig.h
+    helpers/CToolBarSetupDialog.h
+    helpers/CValue.h
+    helpers/CWptIconDialog.h
+    helpers/Platform.h
+    helpers/Signals.h
+    map/CMapDraw.h
+    map/CMapGEMF.h
+    map/CMapIMG.h
+    map/CMapItem.h
+    map/CMapJNX.h
+    map/CMapList.h
+    map/CMapMAP.h
+    map/CMapPathSetup.h
+    map/CMapPropSetup.h
+    map/CMapRMAP.h
+    map/CMapTMS.h
+    map/CMapVRT.h
+    map/CMapWMTS.h
+    map/IMap.h
+    map/IMapOnline.h
+    map/IMapProp.h
+    map/cache/CDiskCache.h
+    map/garmin/CGarminPoint.h
+    map/garmin/CGarminPolygon.h
+    map/garmin/CGarminStrTbl6.h
+    map/garmin/CGarminStrTbl8.h
+    map/garmin/CGarminStrTblUtf8.h
+    map/garmin/CGarminTyp.h
+    map/garmin/Garmin.h
+    map/garmin/IGarminStrTbl.h
+    map/mapsforge/types.h
+    mouse/CMouseAdapter.h
+    mouse/CMouseDummy.h
+    mouse/CMouseEditArea.h
+    mouse/CMouseEditRte.h
+    mouse/CMouseEditTrk.h
+    mouse/CMouseMoveWpt.h
+    mouse/CMouseNormal.h
+    mouse/CMousePrint.h
+    mouse/CMouseRadiusWpt.h
+    mouse/CMouseRangeTrk.h
+    mouse/CMouseSelect.h
+    mouse/CMouseWptBubble.h
+    mouse/CScrOptPrint.h
+    mouse/CScrOptRangeTrk.h
+    mouse/CScrOptSelect.h
+    mouse/CScrOptUnclutter.h
+    mouse/IMouse.h
+    mouse/IMouseSelect.h
+    mouse/IScrOpt.h
+    mouse/line/CLineOpAddPoint.h
+    mouse/line/CLineOpDeletePoint.h
+    mouse/line/CLineOpMovePoint.h
+    mouse/line/CLineOpSelectRange.h
+    mouse/line/CScrOptEditLine.h
+    mouse/line/CScrOptRangeLine.h
+    mouse/line/ILineOp.h
+    mouse/line/IMouseEditLine.h
+    plot/CPlot.h
+    plot/CPlotAxis.h
+    plot/CPlotAxisTime.h
+    plot/CPlotData.h
+    plot/CPlotProfile.h
+    plot/CPlotTrack.h
+    plot/IPlot.h
+    plot/ITrack.h
+    print/CPrintDialog.h
+    qlgt/CQlb.h
+    qlgt/CQlgtDb.h
+    qlgt/CQlgtDiary.h
+    qlgt/CQlgtFolder.h
+    qlgt/CQlgtRoute.h
+    qlgt/CQlgtTrack.h
+    qlgt/CQlgtWpt.h
+    qlgt/CQmsDb.h
+    qlgt/IItem.h
+    qlgt/IQlgtOverlay.h
+    realtime/CRtDraw.h
+    realtime/CRtSelectSource.h
+    realtime/CRtWorkspace.h
+    realtime/IRtRecord.h
+    realtime/IRtSource.h
+    realtime/opensky/CRtOpenSky.h
+    realtime/opensky/CRtOpenSkyInfo.h
+    realtime/opensky/CRtOpenSkyRecord.h
+    setup/CAppOpts.h
+    setup/CAppSetupLinux.h
+    setup/CAppSetupMac.h
+    setup/CAppSetupWin.h
+    setup/CCommandProcessor.h
+    setup/CLogHandler.h
+    setup/IAppSetup.h
+    tool/CImportDatabase.h
+    tool/CMapVrtBuilder.h
+    tool/CRoutinoDatabaseBuilder.h
+    tool/IToolShell.h
+    units/CCoordFormatSetup.h
+    units/CTimeZoneSetup.h
+    units/CUnitImperial.h
+    units/CUnitMetric.h
+    units/CUnitNautic.h
+    units/CUnitsSetup.h
+    units/IUnit.h
+    version.h
+    widgets/CColorChooser.h
+    widgets/CColorLegend.h
+    widgets/CDoubleSpinBox.h
+    widgets/CFadingIcon.h
+    widgets/CHistoryListWidget.h
+    widgets/CLineEdit.h
+    widgets/CPhotoAlbum.h
+    widgets/CSelectDoubleListWidget.h
+    widgets/CTemplateWidget.h
+    widgets/CTextEdit.h
+    widgets/CTextEditWidget.h
+    widgets/CTextEditWidgetSelMenu.h
+    widgets/CTinySpinBox.h
+)
+
+
+if(Qt5DBus_FOUND)
+set( HDRS
+    ${HDRS}
+    device/CDeviceWatcherLinux.h
+)
+endif(Qt5DBus_FOUND)
+
+
+if(APPLE)
+set( HDRS
+    ${HDRS}
+    device/CDeviceWatcherMac.h
+    )
+endif(APPLE)
+
+if(WIN32)
+set( HDRS
+    ${HDRS}
+    device/CDeviceWatcherWindows.h
+)
+endif(WIN32)
+
+set( UIS
+    IAbout.ui
+    IMainWindow.ui
+    canvas/ICanvasSetup.ui
+    dem/IDemList.ui
+    dem/IDemPathSetup.ui
+    dem/IDemPropSetup.ui
+    gis/IGisDatabase.ui
+    gis/IGisWorkspace.ui
+    gis/ISelDevices.ui
+    gis/ISetupFilter.ui
+    gis/db/IExportDatabase.ui
+    gis/db/ISearchDatabase.ui
+    gis/db/ISelectDBFolder.ui
+    gis/db/ISelectSaveAction.ui
+    gis/db/ISetupDatabase.ui
+    gis/db/ISetupFolder.ui
+    gis/db/ISetupWorkspace.ui
+    gis/ovl/IDetailsOvlArea.ui
+    gis/ovl/IScrOptOvlArea.ui
+    gis/prj/IDetailsPrj.ui
+    gis/rte/ICreateRouteFromWpt.ui
+    gis/rte/IDetailsRte.ui
+    gis/rte/IScrOptRte.ui
+    gis/rte/router/IRouterBRouter.ui
+    gis/rte/router/IRouterMapQuest.ui
+    gis/rte/router/IRouterRoutino.ui
+    gis/rte/router/IRouterSetup.ui
+    gis/rte/router/brouter/IRouterBRouterInfo.ui
+    gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
+    gis/rte/router/routino/IRouterRoutinoPathSetup.ui
+    gis/summary/IGisSummary.ui
+    gis/summary/IGisSummarySetup.ui
+    gis/trk/ICombineTrk.ui
+    gis/trk/ICutTrk.ui
+    gis/trk/IDetailsTrk.ui
+    gis/trk/IScrOptTrk.ui
+    gis/trk/ISelectActivityColor.ui
+    gis/trk/filter/IFilterDelete.ui
+    gis/trk/filter/IFilterDeleteExtension.ui
+    gis/trk/filter/IFilterDouglasPeuker.ui
+    gis/trk/filter/IFilterInterpolateElevation.ui
+    gis/trk/filter/IFilterInvalid.ui
+    gis/trk/filter/IFilterMedian.ui
+    gis/trk/filter/IFilterNewDate.ui
+    gis/trk/filter/IFilterObscureDate.ui
+    gis/trk/filter/IFilterOffsetElevation.ui
+    gis/trk/filter/IFilterReplaceElevation.ui
+    gis/trk/filter/IFilterReset.ui
+    gis/trk/filter/IFilterSpeed.ui
+    gis/trk/filter/IFilterSplitSegment.ui
+    gis/trk/filter/IFilterSubPt2Pt.ui
+    gis/trk/filter/IFilterTerrainSlope.ui
+    gis/wpt/IDetailsGeoCache.ui
+    gis/wpt/IDetailsWpt.ui
+    gis/wpt/IProjWpt.ui
+    gis/wpt/IScrOptWpt.ui
+    gis/wpt/IScrOptWptRadius.ui
+    gis/wpt/ISetupNewWpt.ui
+    grid/IGridSetup.ui
+    grid/IProjWizard.ui
+    helpers/IElevationDialog.ui
+    helpers/IInputDialog.ui
+    helpers/ILinksDialog.ui
+    helpers/IPositionDialog.ui
+    helpers/IProgressDialog.ui
+    helpers/ISelectCopyAction.ui
+    helpers/ISelectProjectDialog.ui
+    helpers/IToolBarSetupDialog.ui
+    helpers/IWptIconDialog.ui
+    map/IMapList.ui
+    map/IMapPathSetup.ui
+    map/IMapPropSetup.ui
+    mouse/IScrOptPrint.ui
+    mouse/IScrOptRangeTrk.ui
+    mouse/IScrOptSelect.ui
+    mouse/line/IScrOptEditLine.ui
+    mouse/line/IScrOptRangeLine.ui
+    print/IPrintDialog.ui
+    realtime/IRtSelectSource.ui
+    realtime/IRtWorkspace.ui
+    realtime/opensky/IRtOpenSkyInfo.ui
+    templates/Hiking_Tour_Summary.ui
+    tool/IImportDatabase.ui
+    tool/IMapVrtBuilder.ui
+    tool/IRoutinoDatabaseBuilder.ui
+    units/ICoordFormatSetup.ui
+    units/ITimeZoneSetup.ui
+    units/IUnitsSetup.ui
+    widgets/IColorChooser.ui
+    widgets/IPhotoAlbum.ui
+    widgets/ISelectDoubleListWidget.ui
+    widgets/ITemplateWidget.ui
+    widgets/ITextEditWidget.ui
+    widgets/ITextEditWidgetSelMenu.ui
+)
+
+
+set( RCS
+    resources.qrc
+)
+
+
+
+###############################################################################################
+# Some Qt magic
+###############################################################################################
+
+qt5_wrap_ui(UI_HDRS ${UIS})
+qt5_add_resources(RC_SRCS ${RCS})
+
+###############################################################################################
+# Translation related stuff
+###############################################################################################
+translate_ts(${APPLICATION_NAME}_QM_FILES
+    UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
+    UPDATE_OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}" "-no-obsolete"
+    SOURCES ${SRCS} ${HDRS} ${UIS}
+    TEMPLATE ${APPLICATION_NAME}
+    TRANSLATION_DIR "locale"
+)
+
+if (UNIX AND NOT WIN32 AND NOT APPLE)
+    translate_desktop(${APPLICATION_NAME}_DESKTOP_FILES
+        TRANSLATION_DIR "locale"
+        SOURCES "${PROJECT_SOURCE_DIR}/qmapshack.desktop.in"
+    )
+endif()
+
+###############################################################################################
+# Build source file and include paths lists
+###############################################################################################
+set(MAININP
+    ${SRCS}
+    ${HDRS}
+    ${UI_HDRS}
+    ${RC_SRCS}
+    ${${APPLICATION_NAME}_QM_FILES}
+    ${${APPLICATION_NAME}_DESKTOP_FILES}
+)
+
+include_directories(
+    SYSTEM # this prevents warnings from non-QMS headers
+    ${CMAKE_BINARY_DIR}
+    ${GDAL_INCLUDE_DIRS}
+    ${PROJ_INCLUDE_DIRS}
+    ${ROUTINO_INCLUDE_DIRS}
+    ${ALGLIB_INCLUDE_DIRS}
+    ${QUAZIP_INCLUDE_DIRS}
+)
+
+if(APPLE)
+     include_directories(/System/Library/Frameworks/Foundation.framework)
+     include_directories(/System/Library/Frameworks/DiskArbitration.framework)
+endif(APPLE)
+
+
+###############################################################################################
+# Build the executable and define necessary libraries.
+###############################################################################################
+add_executable(${APPLICATION_NAME} WIN32 ${MAININP})
+
+if(Qt5DBus_FOUND)
+    set(DBUS_LIB Qt5::DBus)
+else(Qt5DBus_FOUND)
+    set(DBUS_LIB)
+endif(Qt5DBus_FOUND)
+
+target_link_libraries(${APPLICATION_NAME}
+    Qt5::Widgets
+    Qt5::Xml
+    Qt5::Script
+    Qt5::Sql
+    Qt5::WebKitWidgets
+    Qt5::PrintSupport
+    Qt5::UiTools
+    ${DBUS_LIB}
+    ${GDAL_LIBRARIES}
+    ${PROJ_LIBRARIES}
+    ${ROUTINO_LIBRARIES}
+    ${ALGLIB_LIBRARIES}
+    ${QUAZIP_LIBRARIES}
+)
+
+if(APPLE)
+     target_link_libraries(${APPLICATION_NAME}
+     ${Foundation_LIBRARY}
+     ${DiskArbitration_LIBRARY}
+    )
+endif(APPLE)
+
+
+###############################################################################################
+# Install target related stuff
+###############################################################################################
+install(TARGETS     ${APPLICATION_NAME}                     DESTINATION     ${BIN_INSTALL_DIR})
+
+if (UNIX AND NOT WIN32 AND NOT APPLE)
+    install(FILES   ${${APPLICATION_NAME}_QM_FILES}         DESTINATION     ${DATA_INSTALL_PREFIX}/${APPLICATION_NAME}/translations)
+    install(FILES   ${${APPLICATION_NAME}_DESKTOP_FILES}    DESTINATION     ${XDG_APPS_DIR})
+endif (UNIX AND NOT WIN32 AND NOT APPLE)
diff --git a/src/CSingleInstanceProxy.cpp b/src/qmapshack/CSingleInstanceProxy.cpp
similarity index 100%
rename from src/CSingleInstanceProxy.cpp
rename to src/qmapshack/CSingleInstanceProxy.cpp
diff --git a/src/CSingleInstanceProxy.h b/src/qmapshack/CSingleInstanceProxy.h
similarity index 100%
copy from src/CSingleInstanceProxy.h
copy to src/qmapshack/CSingleInstanceProxy.h
diff --git a/src/GeoMath.cpp b/src/qmapshack/GeoMath.cpp
similarity index 100%
rename from src/GeoMath.cpp
rename to src/qmapshack/GeoMath.cpp
diff --git a/src/GeoMath.h b/src/qmapshack/GeoMath.h
similarity index 100%
rename from src/GeoMath.h
rename to src/qmapshack/GeoMath.h
diff --git a/src/IAbout.ui b/src/qmapshack/IAbout.ui
similarity index 100%
rename from src/IAbout.ui
rename to src/qmapshack/IAbout.ui
diff --git a/src/qmapshack/IMainWindow.ui b/src/qmapshack/IMainWindow.ui
new file mode 100644
index 0000000..edd3941
--- /dev/null
+++ b/src/qmapshack/IMainWindow.ui
@@ -0,0 +1,887 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IMainWindow</class>
+ <widget class="QMainWindow" name="IMainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="acceptDrops">
+   <bool>true</bool>
+  </property>
+  <property name="windowTitle">
+   <string>QMapShack</string>
+  </property>
+  <property name="windowIcon">
+   <iconset resource="resources.qrc">
+    <normaloff>:/icons/48x48/QMapShack.png</normaloff>:/icons/48x48/QMapShack.png</iconset>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QVBoxLayout" name="verticalLayout">
+    <property name="spacing">
+     <number>0</number>
+    </property>
+    <property name="leftMargin">
+     <number>0</number>
+    </property>
+    <property name="topMargin">
+     <number>0</number>
+    </property>
+    <property name="rightMargin">
+     <number>0</number>
+    </property>
+    <property name="bottomMargin">
+     <number>0</number>
+    </property>
+    <item>
+     <widget class="QTabWidget" name="tabWidget">
+      <property name="currentIndex">
+       <number>-1</number>
+      </property>
+      <property name="tabsClosable">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionLoadGISData"/>
+    <addaction name="actionSaveGISData"/>
+    <addaction name="separator"/>
+    <addaction name="actionLoadView"/>
+    <addaction name="actionStoreView"/>
+    <addaction name="separator"/>
+    <addaction name="actionSetupMapPaths"/>
+    <addaction name="actionSetupDEMPaths"/>
+    <addaction name="separator"/>
+    <addaction name="actionPrintMap"/>
+    <addaction name="separator"/>
+    <addaction name="actionClose"/>
+   </widget>
+   <widget class="QMenu" name="menuView">
+    <property name="title">
+     <string>View</string>
+    </property>
+    <addaction name="actionAddMapView"/>
+    <addaction name="actionCloneMapView"/>
+    <addaction name="separator"/>
+    <addaction name="actionShowScale"/>
+    <addaction name="actionShowGrid"/>
+    <addaction name="actionPOIText"/>
+    <addaction name="actionMapToolTip"/>
+    <addaction name="actionNightDay"/>
+    <addaction name="actionMinMaxTrackValues"/>
+    <addaction name="separator"/>
+    <addaction name="actionFlipMouseWheel"/>
+    <addaction name="actionProfileIsWindow"/>
+    <addaction name="actionSetupMapFont"/>
+    <addaction name="actionSetupMapBackground"/>
+    <addaction name="actionSetupUnits"/>
+    <addaction name="actionSetupGrid"/>
+    <addaction name="actionSetupMapView"/>
+    <addaction name="actionSetupTimeZone"/>
+    <addaction name="actionSetupCoordFormat"/>
+   </widget>
+   <widget class="QMenu" name="menuWindow">
+    <property name="title">
+     <string>Window</string>
+    </property>
+    <addaction name="actionCloseTab"/>
+    <addaction name="actionFullScreen"/>
+    <addaction name="actionToggleDocks"/>
+    <addaction name="separator"/>
+    <addaction name="actionSetupToolbar"/>
+   </widget>
+   <widget class="QMenu" name="menu">
+    <property name="title">
+     <string>?</string>
+    </property>
+    <addaction name="actionAbout"/>
+    <addaction name="actionHelp"/>
+    <addaction name="actionQuickstart"/>
+   </widget>
+   <widget class="QMenu" name="menuProject">
+    <property name="title">
+     <string>Workspace</string>
+    </property>
+    <addaction name="actionAddEmptyProject"/>
+    <addaction name="actionSearchGoogle"/>
+    <addaction name="actionCloseAllProjects"/>
+    <addaction name="separator"/>
+    <addaction name="actionSetupWorkspace"/>
+    <addaction name="actionSetupWaypointIcons"/>
+   </widget>
+   <widget class="QMenu" name="menuExtra">
+    <property name="title">
+     <string>Tool</string>
+    </property>
+    <addaction name="actionImportDatabase"/>
+    <addaction name="actionVrtBuilder"/>
+    <addaction name="actionCreateRoutinoDatabase"/>
+    <addaction name="actionStartQMapTool"/>
+   </widget>
+   <addaction name="menuFile"/>
+   <addaction name="menuProject"/>
+   <addaction name="menuView"/>
+   <addaction name="menuExtra"/>
+   <addaction name="menuWindow"/>
+   <addaction name="menu"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+  <widget class="QDockWidget" name="dockMaps">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Maps</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>1</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents">
+    <layout class="QVBoxLayout" name="verticalLayout_2">
+     <property name="spacing">
+      <number>0</number>
+     </property>
+     <property name="leftMargin">
+      <number>0</number>
+     </property>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="QTabWidget" name="tabMaps">
+       <property name="currentIndex">
+        <number>-1</number>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QDockWidget" name="dockDem">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Dig. Elev. Model (DEM)</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>1</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_3">
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <property name="spacing">
+      <number>0</number>
+     </property>
+     <property name="leftMargin">
+      <number>0</number>
+     </property>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="QTabWidget" name="tabDem"/>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QDockWidget" name="dockWorkspace">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Workspace</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>2</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_2"/>
+  </widget>
+  <widget class="QToolBar" name="toolBar">
+   <property name="windowTitle">
+    <string>Toolbar</string>
+   </property>
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>false</bool>
+   </attribute>
+  </widget>
+  <widget class="QDockWidget" name="dockDatabase">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Database</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>2</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_4"/>
+  </widget>
+  <widget class="QDockWidget" name="dockRte">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Routing</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>2</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_6">
+    <layout class="QVBoxLayout" name="verticalLayout_4">
+     <item>
+      <widget class="CRouterSetup" name="widget_2" native="true"/>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QDockWidget" name="dockRealtime">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Realtime</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>2</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_5"/>
+  </widget>
+  <action name="actionAddMapView">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/AddMapWorkspace.png</normaloff>:/icons/32x32/AddMapWorkspace.png</iconset>
+   </property>
+   <property name="text">
+    <string>Add Map View</string>
+   </property>
+   <property name="toolTip">
+    <string>Add Map View</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+T</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionShowScale">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Scale.png</normaloff>:/icons/32x32/Scale.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show Scale</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupMapFont">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Font.png</normaloff>:/icons/32x32/Font.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Map Font</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionShowGrid">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Grid.png</normaloff>:/icons/32x32/Grid.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show Grid</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+G</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupGrid">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/GridSetup.png</normaloff>:/icons/32x32/GridSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Grid</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Alt+G</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionFlipMouseWheel">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/MouseWheel.png</normaloff>:/icons/32x32/MouseWheel.png</iconset>
+   </property>
+   <property name="text">
+    <string>Flip Mouse Wheel</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupMapPaths">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/FolderMap.png</normaloff>:/icons/32x32/FolderMap.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Map Paths</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup Map Paths</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionPOIText">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/POIText.png</normaloff>:/icons/32x32/POIText.png</iconset>
+   </property>
+   <property name="text">
+    <string>POI Text</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionNightDay">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/NightDay.png</normaloff>:/icons/32x32/NightDay.png</iconset>
+   </property>
+   <property name="text">
+    <string>Night / Day</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionMapToolTip">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/ToolTip.png</normaloff>:/icons/32x32/ToolTip.png</iconset>
+   </property>
+   <property name="text">
+    <string>Map Tool Tip</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+I</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupDEMPaths">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/FolderDEM.png</normaloff>:/icons/32x32/FolderDEM.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup DEM Paths</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionAbout">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Info.png</normaloff>:/icons/32x32/Info.png</iconset>
+   </property>
+   <property name="text">
+    <string>About</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::AboutRole</enum>
+   </property>
+  </action>
+  <action name="actionHelp">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
+   </property>
+   <property name="text">
+    <string>Help</string>
+   </property>
+   <property name="shortcut">
+    <string>F1</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupMapView">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SetupMapWorkspace.png</normaloff>:/icons/32x32/SetupMapWorkspace.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Map View</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup Map View</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionLoadGISData">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/LoadGIS.png</normaloff>:/icons/32x32/LoadGIS.png</iconset>
+   </property>
+   <property name="text">
+    <string>Load GIS Data</string>
+   </property>
+   <property name="toolTip">
+    <string>Load projects from file</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+L</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSaveGISData">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SaveAllGIS.png</normaloff>:/icons/32x32/SaveAllGIS.png</iconset>
+   </property>
+   <property name="text">
+    <string>Save All GIS Data</string>
+   </property>
+   <property name="toolTip">
+    <string>Save all projects in the workspace</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+S</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupTimeZone">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/TimeZoneSetup.png</normaloff>:/icons/32x32/TimeZoneSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Time Zone</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionAddEmptyProject">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/AddProject.png</normaloff>:/icons/32x32/AddProject.png</iconset>
+   </property>
+   <property name="text">
+    <string>Add empty project</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSearchGoogle">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SearchGoogle.png</normaloff>:/icons/32x32/SearchGoogle.png</iconset>
+   </property>
+   <property name="text">
+    <string>Search Google</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionCloseAllProjects">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Close.png</normaloff>:/icons/32x32/Close.png</iconset>
+   </property>
+   <property name="text">
+    <string>Close all projects</string>
+   </property>
+   <property name="shortcut">
+    <string>F8</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupUnits">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/UnitSetup.png</normaloff>:/icons/32x32/UnitSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Units</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupWorkspace">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/DatabaseSetup.png</normaloff>:/icons/32x32/DatabaseSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Workspace</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup save on exit.</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionImportDatabase">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/DatabaseConvert.png</normaloff>:/icons/32x32/DatabaseConvert.png</iconset>
+   </property>
+   <property name="text">
+    <string>Import Database from QLandkarte</string>
+   </property>
+   <property name="toolTip">
+    <string>Import QLandkarte GT database</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionVrtBuilder">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/VrtBuilder.png</normaloff>:/icons/32x32/VrtBuilder.png</iconset>
+   </property>
+   <property name="text">
+    <string>VRT Builder</string>
+   </property>
+   <property name="toolTip">
+    <string>GUI front end to gdalbuildvrt</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionStoreView">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SaveView.png</normaloff>:/icons/32x32/SaveView.png</iconset>
+   </property>
+   <property name="text">
+    <string>Store Map View</string>
+   </property>
+   <property name="toolTip">
+    <string>Write current active map and DEM list including the properties to a file</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionLoadView">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/LoadView.png</normaloff>:/icons/32x32/LoadView.png</iconset>
+   </property>
+   <property name="text">
+    <string>Load Map View</string>
+   </property>
+   <property name="toolTip">
+    <string>Restore view with active map and DEM list including the properties from a file</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </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>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionClose">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Off.png</normaloff>:/icons/32x32/Off.png</iconset>
+   </property>
+   <property name="text">
+    <string>Close</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Q</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::QuitRole</enum>
+   </property>
+  </action>
+  <action name="actionCloneMapView">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/CloneMapWorkspace.png</normaloff>:/icons/32x32/CloneMapWorkspace.png</iconset>
+   </property>
+   <property name="text">
+    <string>Clone Map View</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+Shift+T</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionCreateRoutinoDatabase">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/RouteSetup.png</normaloff>:/icons/32x32/RouteSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Create Routino Database</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionPrintMap">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/PrintSave.png</normaloff>:/icons/32x32/PrintSave.png</iconset>
+   </property>
+   <property name="text">
+    <string>Save(Print) Map Screenshot</string>
+   </property>
+   <property name="toolTip">
+    <string>Print a selected area of the map</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+P</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupCoordFormat">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SetupCoordFormat.png</normaloff>:/icons/32x32/SetupCoordFormat.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Coord. Format</string>
+   </property>
+   <property name="toolTip">
+    <string>Change the format coordinates are displayed</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupMapBackground">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Map Background</string>
+   </property>
+   <property name="menuRole">
+    <enum>QAction::NoRole</enum>
+   </property>
+  </action>
+  <action name="actionSetupWaypointIcons">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SetupWptSym.png</normaloff>:/icons/32x32/SetupWptSym.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Waypoint Icons</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup path to custom icons</string>
+   </property>
+  </action>
+  <action name="actionCloseTab">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Close.png</normaloff>:/icons/32x32/Close.png</iconset>
+   </property>
+   <property name="text">
+    <string>Close Tab</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+W</string>
+   </property>
+  </action>
+  <action name="actionQuickstart">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
+   </property>
+   <property name="text">
+    <string>Quickstart Help</string>
+   </property>
+  </action>
+  <action name="actionSetupToolbar">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/ToolBarSetup.png</normaloff>:/icons/32x32/ToolBarSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Toolbar</string>
+   </property>
+  </action>
+  <action name="actionToggleDocks">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/ToggleDocks.png</normaloff>:/icons/32x32/ToggleDocks.png</iconset>
+   </property>
+   <property name="text">
+    <string>Toggle Docks</string>
+   </property>
+   <property name="toolTip">
+    <string>Toggle visibility of dockable windows</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+D</string>
+   </property>
+  </action>
+  <action name="actionFullScreen">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/FullScreen.png</normaloff>:/icons/32x32/FullScreen.png</iconset>
+   </property>
+   <property name="text">
+    <string>Full Screen</string>
+   </property>
+   <property name="shortcut">
+    <string>F11</string>
+   </property>
+  </action>
+  <action name="actionMinMaxTrackValues">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/TrackMinMax.png</normaloff>:/icons/32x32/TrackMinMax.png</iconset>
+   </property>
+   <property name="text">
+    <string>Min./Max. Track Values</string>
+   </property>
+   <property name="toolTip">
+    <string>Show the minimum and maximum values of the track properties along the track in the map view.</string>
+   </property>
+   <property name="shortcut">
+    <string>Ctrl+N</string>
+   </property>
+  </action>
+  <action name="actionStartQMapTool">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/QMapTool.png</normaloff>:/icons/32x32/QMapTool.png</iconset>
+   </property>
+   <property name="text">
+    <string>Start QMapTool</string>
+   </property>
+  </action>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CRouterSetup</class>
+   <extends>QWidget</extends>
+   <header>gis/rte/router/CRouterSetup.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/canvas/CCanvas.cpp b/src/qmapshack/canvas/CCanvas.cpp
new file mode 100644
index 0000000..d1329ef
--- /dev/null
+++ b/src/qmapshack/canvas/CCanvas.cpp
@@ -0,0 +1,1055 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "canvas/CCanvasSetup.h"
+#include "dem/CDemDraw.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/IGisLine.h"
+#include "gis/Poi.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "grid/CGrid.h"
+#include "grid/CGridSetup.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "map/CMapDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseEditArea.h"
+#include "mouse/CMouseEditRte.h"
+#include "mouse/CMouseEditTrk.h"
+#include "mouse/CMouseMoveWpt.h"
+#include "mouse/CMouseNormal.h"
+#include "mouse/CMousePrint.h"
+#include "mouse/CMouseRadiusWpt.h"
+#include "mouse/CMouseRangeTrk.h"
+#include "mouse/CMouseSelect.h"
+#include "mouse/CMouseWptBubble.h"
+#include "plot/CPlotProfile.h"
+#include "realtime/CRtDraw.h"
+#include "units/IUnit.h"
+#include "widgets/CColorLegend.h"
+
+#include <QtWidgets>
+
+qreal CCanvas::gisLayerOpacity = 1.0;
+
+CCanvas::CCanvas(QWidget *parent, const QString &name)
+    : QWidget(parent)
+{
+    setFocusPolicy(Qt::WheelFocus);
+
+    if(name.isEmpty())
+    {
+        for(int count = 1;; ++count)
+        {
+            QString name = tr("View %1").arg(count);
+            if(nullptr == CMainWindow::self().findChild<CCanvas*>(name))
+            {
+                setObjectName(name);
+                break;
+            }
+        }
+    }
+    else
+    {
+        setObjectName(name);
+    }
+
+    setMouseTracking(true);
+
+    grabGesture(Qt::PinchGesture);
+
+    map     = new CMapDraw(this);
+    grid    = new CGrid(map);
+    dem     = new CDemDraw(this);
+    gis     = new CGisDraw(this);
+    rt      = new CRtDraw(this);
+
+    // map has to be first!
+    allDrawContext << map << dem << gis << rt;
+
+    mouse = new CMouseAdapter(this);
+    mouse->setDelegate(new CMouseNormal(gis, this, mouse));
+
+    connect(map, &CMapDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
+    connect(dem, &CDemDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
+    connect(gis, &CGisDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
+    connect(rt,  &CRtDraw::sigCanvasUpdate, this, &CCanvas::slotTriggerCompleteUpdate);
+
+    timerToolTip = new QTimer(this);
+    timerToolTip->setSingleShot(true);
+    connect(timerToolTip, &QTimer::timeout, this, &CCanvas::slotToolTip);
+
+    loadIndicator1 = new QMovie("://animation/loader.gif", QByteArray(), this);
+    mapLoadIndicator = new QLabel(this);
+    mapLoadIndicator->setMovie(loadIndicator1);
+    loadIndicator1->start();
+    mapLoadIndicator->show();
+
+    loadIndicator2 = new QMovie("://animation/loader2.gif", QByteArray(), this);
+    demLoadIndicator = new QLabel(this);
+    demLoadIndicator->setMovie(loadIndicator2);
+    loadIndicator2->start();
+    demLoadIndicator->show();
+
+    labelStatusMessages = new QLabel(this);
+    labelStatusMessages->setWordWrap(true);
+    labelStatusMessages->setMinimumWidth(300);
+    labelStatusMessages->hide();
+
+    labelTrackStatistic = new QLabel(this);
+    labelTrackStatistic->setWordWrap(true);
+    labelTrackStatistic->setMinimumWidth(300);
+    labelTrackStatistic->hide();
+
+    connect(map, &CMapDraw::sigStartThread, mapLoadIndicator, &QLabel::show);
+    connect(map, &CMapDraw::sigStopThread,  mapLoadIndicator, &QLabel::hide);
+
+    connect(dem, &CDemDraw::sigStartThread, demLoadIndicator, &QLabel::show);
+    connect(dem, &CDemDraw::sigStopThread,  demLoadIndicator, &QLabel::hide);
+
+    timerTrackOnFocus = new QTimer(this);
+    timerTrackOnFocus->setSingleShot(false);
+    timerTrackOnFocus->start(1000);
+
+    connect(timerTrackOnFocus, &QTimer::timeout, this, &CCanvas::slotCheckTrackOnFocus);
+}
+
+CCanvas::~CCanvas()
+{
+    /* stop running drawing-threads and don't destroy unless they have finished*/
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->quit();
+    }
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->wait();
+    }
+
+    /*
+        Some mouse objects call methods from their canvas on destruction.
+        So they are better deleted now explicitly before any other object
+        in CCanvas is destroyed.
+     */
+    delete mouse;
+    saveSizeTrackProfile();
+}
+
+void CCanvas::setOverrideCursor(const QCursor &cursor, const QString&)
+{
+//    qDebug() << "setOverrideCursor" << src;
+    QApplication::setOverrideCursor(cursor);
+}
+
+void CCanvas::restoreOverrideCursor(const QString& src)
+{
+//    qDebug() << "restoreOverrideCursor" << src;
+    QApplication::restoreOverrideCursor();
+}
+
+void CCanvas::changeOverrideCursor(const QCursor& cursor, const QString &src)
+{
+//    qDebug() << "changeOverrideCursor" << src;
+    QApplication::changeOverrideCursor(cursor);
+}
+
+void CCanvas::triggerCompleteUpdate(CCanvas::redraw_e flags)
+{
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->slotTriggerCompleteUpdate(flags);
+    }
+}
+
+void CCanvas::saveConfig(QSettings& cfg)
+{
+    map->saveConfig(cfg);
+    dem->saveConfig(cfg);
+    grid->saveConfig(cfg);
+    cfg.setValue("posFocus",  posFocus);
+    cfg.setValue("proj",      map->getProjection());
+    cfg.setValue("scales",    map->getScalesType());
+    cfg.setValue("backColor", backColor.name());
+}
+
+void CCanvas::loadConfig(QSettings& cfg)
+{
+    posFocus = cfg.value("posFocus", posFocus).toPointF();
+    setProjection(cfg.value("proj", map->getProjection()).toString());
+    setScales((CCanvas::scales_type_e)cfg.value("scales",  map->getScalesType()).toInt());
+
+    const QString &backColorStr = cfg.value("backColor", "#FFFFBF").toString();
+    backColor = QColor(backColorStr);
+
+    map->loadConfig(cfg);
+    dem->loadConfig(cfg);
+    grid->loadConfig(cfg);
+
+    for(IDrawContext * context : allDrawContext.mid(1))
+    {
+        context->zoom(map->zoom());
+    }
+}
+
+void CCanvas::resetMouse()
+{
+    mouse->setDelegate(new CMouseNormal(gis, this, mouse));
+    if(underMouse())
+    {
+        while(QApplication::overrideCursor())
+        {
+            CCanvas::restoreOverrideCursor("resetMouse");
+        }
+        CCanvas::setOverrideCursor(*mouse, "resetMouse");
+    }
+}
+
+void CCanvas::mouseTrackingLost()
+{
+    mouseLost = true;
+}
+
+void CCanvas::setMouseMoveWpt(CGisItemWpt& wpt)
+{
+    mouse->setDelegate(new CMouseMoveWpt(wpt, gis, this, mouse));
+}
+
+void CCanvas::setMouseRadiusWpt(CGisItemWpt& wpt)
+{
+    mouse->setDelegate(new CMouseRadiusWpt(wpt, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditTrk(const QPointF &pt)
+{
+    mouse->setDelegate(new CMouseEditTrk(pt, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditRte(const QPointF &pt)
+{
+    mouse->setDelegate(new CMouseEditRte(pt, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditTrk(CGisItemTrk& trk)
+{
+    mouse->setDelegate(new CMouseEditTrk(trk, gis, this, mouse));
+}
+
+void CCanvas::setMouseRangeTrk(CGisItemTrk& trk)
+{
+    mouse->setDelegate(new CMouseRangeTrk(trk, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditArea(const QPointF& pt)
+{
+    mouse->setDelegate(new CMouseEditArea(pt, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditArea(CGisItemOvlArea& area)
+{
+    mouse->setDelegate(new CMouseEditArea(area, gis, this, mouse));
+}
+
+void CCanvas::setMouseEditRte(CGisItemRte& rte)
+{
+    mouse->setDelegate(new CMouseEditRte(rte, gis, this, mouse));
+}
+
+void CCanvas::setMouseWptBubble(const IGisItem::key_t& key)
+{
+    mouse->setDelegate(new CMouseWptBubble(key, gis, this, mouse));
+}
+
+void CCanvas::setMousePrint()
+{
+    mouse->setDelegate(new CMousePrint(gis, this, mouse));
+}
+
+void CCanvas::setMouseSelect()
+{
+    mouse->setDelegate(new CMouseSelect(gis, this, mouse));
+}
+
+void CCanvas::reportStatus(const QString& key, const QString& msg)
+{
+    if(msg.isEmpty())
+    {
+        statusMessages.remove(key);
+    }
+    else
+    {
+        statusMessages[key] = msg;
+    }
+
+    QString report;
+    QStringList keys = statusMessages.keys();
+    keys.sort();
+    for(const QString &key : keys)
+    {
+        report += statusMessages[key] + "\n";
+    }
+
+    if(report.isEmpty())
+    {
+        labelStatusMessages->hide();
+    }
+    else
+    {
+        labelStatusMessages->show();
+        labelStatusMessages->setText(report);
+        labelStatusMessages->adjustSize();
+    }
+    update();
+}
+
+void CCanvas::resizeEvent(QResizeEvent * e)
+{
+    needsRedraw = eRedrawAll;
+
+    setDrawContextSize(e->size());
+    QWidget::resizeEvent(e);
+
+    const QRect& r = rect();
+
+    // move map loading indicator to new center of canvas
+    QPoint p1(mapLoadIndicator->width()>>1, mapLoadIndicator->height()>>1);
+    mapLoadIndicator->move(r.center() - p1);
+
+    QPoint p2(demLoadIndicator->width()>>1, demLoadIndicator->height()>>1);
+    demLoadIndicator->move(r.center() - p2);
+
+    labelStatusMessages->move(20,50);
+
+    slotUpdateTrackStatistic(CMainWindow::self().isMinMaxTrackValues());
+    setSizeTrackProfile();
+}
+
+void CCanvas::paintEvent(QPaintEvent*)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    QPainter p;
+    p.begin(this);
+    USE_ANTI_ALIASING(p,true);
+
+    // fill the background with default pattern
+    p.fillRect(rect(), backColor);
+
+    // ----- start to draw thread based content -----
+    // move coordinate system to center of the screen
+    p.translate(width() >> 1, height() >> 1);
+
+    map->draw(p, needsRedraw, posFocus);
+    dem->draw(p, needsRedraw, posFocus);
+    p.setOpacity(gisLayerOpacity);
+    gis->draw(p, needsRedraw, posFocus);
+    rt->draw(p, needsRedraw, posFocus);
+    p.setOpacity(1.0);
+
+    // restore coordinate system to default
+    p.resetTransform();
+    // ----- start to draw fast content -----
+
+    grid->draw(p, rect());
+    if(map->isFinished() && dem->isFinished())
+    {
+        if(gis->isFinished())
+        {
+            gis->draw(p, rect());
+        }
+        if(rt->isFinished())
+        {
+            rt->draw(p, rect());
+        }
+    }
+    mouse->draw(p, needsRedraw, rect());
+
+
+    drawStatusMessages(p);
+    drawTrackStatistic(p);
+    drawScale(p);
+
+    p.end();
+    needsRedraw = eRedrawNone;
+}
+
+void CCanvas::mousePressEvent(QMouseEvent * e)
+{
+    if(!mousePressMutex.tryLock())
+    {
+        return;
+    }
+
+    mouse->mousePressEvent(e);
+    QWidget::mousePressEvent(e);
+    e->accept();
+
+    mousePressMutex.unlock();
+}
+
+void CCanvas::mouseMoveEvent(QMouseEvent * e)
+{
+    QPointF pos = e->pos();
+    map->convertPx2Rad(pos);
+    qreal ele = dem->getElevationAt(pos);
+    qreal slope = dem->getSlopeAt(pos);
+    emit sigMousePosition(pos * RAD_TO_DEG, ele, slope);
+
+    mouse->mouseMoveEvent(e);
+    QWidget::mouseMoveEvent(e);
+    e->accept();
+}
+
+void CCanvas::mouseReleaseEvent(QMouseEvent *e)
+{
+    mouse->mouseReleaseEvent(e);
+    QWidget::mouseReleaseEvent(e);
+    e->accept();
+}
+
+void CCanvas::mouseDoubleClickEvent(QMouseEvent * e)
+{
+    mouse->mouseDoubleClickEvent(e);
+    QWidget::mouseDoubleClickEvent(e);
+}
+
+void CCanvas::wheelEvent(QWheelEvent * e)
+{
+    mouse->wheelEvent(e);
+
+    // angleDelta() returns the eighths of a degree
+    // of the mousewheel
+    // -> zoom in/out every 15 degrees = every 120 eights
+    const int EIGHTS_ZOOM = 15 * 8;
+    zoomAngleDelta += e->angleDelta().y();
+    if(abs(zoomAngleDelta) < EIGHTS_ZOOM)
+    {
+        return;
+    }
+
+    zoomAngleDelta = 0;
+
+    QPointF pos = e->posF();
+    QPointF pt1 = pos;
+
+    map->convertPx2Rad(pt1);
+    setZoom(CMainWindow::self().flipMouseWheel() ? (e->delta() < 0) : (e->delta() > 0), needsRedraw);
+    map->convertRad2Px(pt1);
+
+    map->convertRad2Px(posFocus);
+    posFocus -= (pos - pt1);
+    map->convertPx2Rad(posFocus);
+
+    update();
+}
+
+
+void CCanvas::enterEvent(QEvent * e)
+{
+    Q_UNUSED(e);
+    CCanvas::setOverrideCursor(*mouse, "enterEvent");
+
+    setMouseTracking(true);
+}
+
+
+void CCanvas::leaveEvent(QEvent *)
+{
+    // bad hack to stop bad number of override cursors.
+    while(QApplication::overrideCursor())
+    {
+        CCanvas::restoreOverrideCursor("leaveEvent");
+    }
+
+    setMouseTracking(false);
+}
+
+void CCanvas::keyPressEvent(QKeyEvent * e)
+{
+    qDebug() << hex << e->key();
+    bool doUpdate = true;
+
+    switch(e->key())
+    {
+    case Qt::Key_Plus:
+        setZoom(true, needsRedraw);
+        break;
+
+    case Qt::Key_Minus:
+        setZoom(false, needsRedraw);
+        break;
+
+    /* move the map with keys up, down, left and right */
+    case Qt::Key_Up:
+        moveMap(QPointF(0,  height()/4));
+        break;
+
+    case Qt::Key_Down:
+        moveMap(QPointF(0, -height()/4));
+        break;
+
+    case Qt::Key_Left:
+        moveMap(QPointF( width()/4, 0));
+        break;
+
+    case Qt::Key_Right:
+        moveMap(QPointF(-width()/4, 0));
+        break;
+
+    case Qt::Key_Escape:
+    {
+        break;
+    }
+
+    default:
+        doUpdate = false;
+    }
+
+    if(doUpdate)
+    {
+        mouse->keyPressEvent(e);
+        e->accept();
+        update();
+    }
+    else
+    {
+        QWidget::keyPressEvent(e);
+    }
+}
+
+void CCanvas::drawStatusMessages(QPainter& p)
+{
+    if(labelStatusMessages->isVisible())
+    {
+        QRect r = labelStatusMessages->frameGeometry();
+        r.adjust(-5, -5, 5, 5);
+        p.setPen(CDraw::penBorderGray);
+        p.setBrush(CDraw::brushBackWhite);
+        p.drawRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
+    }
+}
+
+void CCanvas::drawTrackStatistic(QPainter& p)
+{
+    if(labelTrackStatistic->isVisible())
+    {
+        QRect r = labelTrackStatistic->frameGeometry();
+        r.adjust(-5, -5, 5, 5);
+        p.setPen(CDraw::penBorderGray);
+        p.setBrush(CDraw::brushBackWhite);
+        p.drawRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
+    }
+}
+
+void CCanvas::drawScale(QPainter& p)
+{
+    if(!CMainWindow::self().isScaleVisible())
+    {
+        return;
+    }
+
+    // step I: get the approximate distance for 200px in the bottom right corner
+    QPointF brc(rect().bottomRight() - QPoint(50,30));
+    QPointF pt1 = brc;
+    QPointF pt2 = brc - QPoint(-200,0);
+
+    map->convertPx2Rad(pt1);
+    map->convertPx2Rad(pt2);
+
+    qreal d = GPS_Math_Distance(pt1.x(), pt1.y(), pt2.x(), pt2.y());
+
+    // step II: derive the actual scale length in [m]
+    qreal a = (int)log10(d);
+    qreal b = log10(d) - a;
+
+    if(0 <= b && b < log10(3.0f))
+    {
+        d = 1 * qPow(10,a);
+    }
+    else if(log10(3.0f) < b && b < log10(5.0f))
+    {
+        d = 3 * qPow(10,a);
+    }
+    else
+    {
+        d = 5 * qPow(10,a);
+    }
+
+    // step III: convert the scale length from [m] into [px]
+    pt1 = brc;
+    map->convertPx2Rad(pt1);
+    pt2 = GPS_Math_Wpt_Projection(pt1, d, -90 * DEG_TO_RAD);
+
+    map->convertRad2Px(pt1);
+    map->convertRad2Px(pt2);
+
+    p.setPen(QPen(Qt::white, 9));
+    p.drawLine(pt1, pt2 + QPoint(9,0));
+    p.setPen(QPen(Qt::black, 7));
+    p.drawLine(pt1, pt2 + QPoint(9,0));
+    p.setPen(QPen(Qt::white, 5));
+    p.drawLine(pt1, pt2 + QPoint(9,0));
+
+    QVector<qreal> pattern;
+    pattern << 2 << 4;
+    QPen pen(Qt::black, 5, Qt::CustomDashLine);
+    pen.setDashPattern(pattern);
+    p.setPen(pen);
+    p.drawLine(pt1, pt2 + QPoint(9,0));
+
+
+    QPoint pt3(pt2.x() + (pt1.x() - pt2.x())/2, pt2.y());
+
+    QString val, unit;
+    IUnit::self().meter2distance(d,val,unit);
+    CDraw::text(QString("%1 %2").arg(val).arg(unit), p, pt3, Qt::black);
+}
+
+void CCanvas::slotTriggerCompleteUpdate(CCanvas::redraw_e flags)
+{
+    needsRedraw = (redraw_e)(needsRedraw | flags);
+    update();
+}
+
+
+void CCanvas::slotToolTip()
+{
+    QString str;
+    map->getToolTip(posToolTip, str);
+    if(str.isEmpty())
+    {
+        return;
+    }
+    QPoint p = mapToGlobal(posToolTip + QPoint(32,0));
+    QToolTip::showText(p,str);
+}
+
+void CCanvas::slotCheckTrackOnFocus()
+{
+    const IGisItem::key_t& key = CGisItemTrk::getKeyUserFocus();
+
+    // any changes?
+    if(key != keyTrackOnFocus)
+    {
+        saveSizeTrackProfile();
+        // get access to current track object
+        delete plotTrackProfile;
+        delete colorLegend;
+        keyTrackOnFocus.clear();
+        labelTrackStatistic->clear();
+        labelTrackStatistic->hide();
+
+        // get access to next track object
+        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(nullptr == trk2)
+        {
+            return;
+        }
+
+        // create new profile plot, the plot will register itself at the track
+        plotTrackProfile = new CPlotProfile(trk2, trk2->limitsGraph1, CMainWindow::self().profileIsWindow() ? IPlot::eModeWindow : IPlot::eModeIcon, this);
+        setSizeTrackProfile();
+        if(isVisible())
+        {
+            plotTrackProfile->show();
+        }
+
+        colorLegend = new CColorLegend(this, trk2);
+        colorLegend->setGeometry(20, 20, 40, 300);
+
+        // finally store the new key as track on focus
+        keyTrackOnFocus = key;
+
+        slotUpdateTrackStatistic(CMainWindow::self().isMinMaxTrackValues());
+    }
+}
+
+void CCanvas::slotUpdateTrackStatistic(bool show)
+{
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(keyTrackOnFocus));
+
+    if(show && trk)
+    {
+        QString text = trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity);
+        text += trk->getInfoLimits();
+
+        labelTrackStatistic->setMinimumWidth((trk->getActivities().getActivityCount() > 1) ? 450 : 350);
+        labelTrackStatistic->setText(text);
+        labelTrackStatistic->adjustSize();
+
+        labelTrackStatistic->move(rect().width() - labelTrackStatistic->width() - 20, rect().height() - labelTrackStatistic->height() - 60);
+        labelTrackStatistic->show();
+        update();
+    }
+    else
+    {
+        labelTrackStatistic->clear();
+        labelTrackStatistic->hide();
+    }
+}
+
+void CCanvas::moveMap(const QPointF& delta)
+{
+    map->convertRad2Px(posFocus);
+    posFocus -= delta;
+    map->convertPx2Rad(posFocus);
+
+    emit sigMove();
+
+    slotTriggerCompleteUpdate(eRedrawAll);
+}
+
+void CCanvas::zoomTo(const QRectF& rect)
+{
+    posFocus = rect.center();
+    map->zoom(rect);
+    for(IDrawContext * context : allDrawContext.mid(1))
+    {
+        context->zoom(map->zoom());
+    }
+
+    slotTriggerCompleteUpdate(eRedrawAll);
+}
+
+void CCanvas::setupGrid()
+{
+    CGridSetup dlg(grid, map);
+    dlg.exec();
+    update();
+}
+
+void CCanvas::setupBackgroundColor()
+{
+    QColorDialog::setCustomColor(0, "#FFFFBF");
+    const QColor &selected = QColorDialog::getColor(backColor, this, tr("Setup Map Background"));
+
+    if(selected.isValid())
+    {
+        backColor = selected;
+        update();
+    }
+}
+
+void CCanvas::convertGridPos2Str(const QPointF& pos, QString& str, bool simple)
+{
+    grid->convertPos2Str(pos, str, simple);
+}
+
+void CCanvas::convertRad2Px(QPointF& pos) const
+{
+    map->convertRad2Px(pos);
+}
+
+void CCanvas::convertPx2Rad(QPointF& pos) const
+{
+    map->convertPx2Rad(pos);
+}
+
+void CCanvas::displayInfo(const QPoint& px)
+{
+    if(CMainWindow::self().isMapToolTip())
+    {
+        posToolTip = px;
+
+        timerToolTip->stop();
+        timerToolTip->start(500);
+    }
+    QToolTip::hideText();
+}
+
+poi_t CCanvas::findPOICloseBy(const QPoint& px) const
+{
+    return map->findPOICloseBy(px);
+}
+
+void CCanvas::setup()
+{
+    CCanvasSetup dlg(this);
+    dlg.exec();
+}
+
+QString CCanvas::getProjection()
+{
+    return map->getProjection();
+}
+
+void CCanvas::setProjection(const QString& proj)
+{
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->setProjection(proj);
+    }
+}
+
+void CCanvas::setScales(const scales_type_e type)
+{
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->setScales(type);
+    }
+}
+
+CCanvas::scales_type_e CCanvas::getScalesType()
+{
+    return map->getScalesType();
+}
+
+
+qreal CCanvas::getElevationAt(const QPointF& pos) const
+{
+    return dem->getElevationAt(pos);
+}
+
+void CCanvas::getElevationAt(const QPolygonF& pos, QPolygonF& ele) const
+{
+    return dem->getElevationAt(pos, ele);
+}
+
+qreal CCanvas::getSlopeAt(const QPointF& pos) const
+{
+    return dem->getSlopeAt(pos);
+}
+
+void CCanvas::getSlopeAt(const QPolygonF& pos, QPolygonF& slope) const
+{
+    return dem->getSlopeAt(pos, slope);
+}
+
+void CCanvas::getElevationAt(SGisLine& line) const
+{
+    return dem->getElevationAt(line);
+}
+
+void CCanvas::setZoom(bool in, redraw_e& needsRedraw)
+{
+    map->zoom(in, needsRedraw);
+
+    for(IDrawContext * context : allDrawContext.mid(1))
+    {
+        context->zoom(map->zoom());
+    }
+
+    emit sigZoom();
+}
+
+bool CCanvas::findPolylineCloseBy(const QPointF& pt1, const QPointF& pt2, qint32 threshold, QPolygonF& polyline)
+{
+    return map->findPolylineCloseBy(pt1, pt2, threshold, polyline);
+}
+
+void CCanvas::saveSizeTrackProfile()
+{
+    if(plotTrackProfile.isNull())
+    {
+        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.isNull())
+    {
+        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();
+
+        CGisWorkspace::self().focusTrkByKey(true, key);
+    }
+}
+
+void CCanvas::showProfile(bool yes)
+{
+    if(nullptr != plotTrackProfile)
+    {
+        plotTrackProfile->setVisible(yes);
+    }
+}
+
+void CCanvas::setDrawContextSize(const QSize& s)
+{
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->resize(s);
+    }
+}
+
+void CCanvas::print(QPainter& p, const QRectF& area, const QPointF& focus)
+{
+    const QSize oldSize = size();
+    const QSize newSize(area.size().toSize());
+
+    setDrawContextSize(newSize);
+
+    // ----- start to draw thread based content -----
+    // move coordinate system to center of the screen
+    p.translate(newSize.width() >> 1, newSize.height() >> 1);
+
+    redraw_e redraw = eRedrawAll;
+
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->draw(p, redraw, focus);
+    }
+
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->wait();
+    }
+
+    for(IDrawContext * context : allDrawContext)
+    {
+        context->draw(p, redraw, focus);
+    }
+
+    // restore coordinate system to default
+    p.resetTransform();
+    // ----- start to draw fast content -----
+
+    QRect r(QPoint(0,0), area.size().toSize());
+
+    grid->draw(p, r);
+    gis->draw(p, r);
+    rt->draw(p, r);
+
+    setDrawContextSize(oldSize);
+}
+
+bool CCanvas::event(QEvent *event)
+{
+    if (event->type() == QEvent::Gesture)
+    {
+        return gestureEvent(static_cast<QGestureEvent*>(event));
+    }
+    else if (mouseLost)
+    {
+        QMouseEvent * me = dynamic_cast<QMouseEvent*>(event);
+        if (me != nullptr)
+        {
+            // notify IMouse that the upcomming QMouseEvent needs special treatment
+            // as some mouse-events may have been lost
+            mouse->afterMouseLostEvent(me);
+            mouseLost = false;
+        }
+    }
+    return QWidget::event(event);
+}
+
+bool CCanvas::gestureEvent(QGestureEvent* e)
+{
+    if (QPinchGesture *pinch = dynamic_cast<QPinchGesture *>(e->gesture(Qt::PinchGesture)))
+    {
+        if (pinch->changeFlags() & QPinchGesture::CenterPointChanged)
+        {
+            const QPointF & move = pinch->centerPoint() - pinch->lastCenterPoint();
+            if (!move.isNull())
+            {
+                moveMap(move);
+            }
+        }
+        if (pinch->changeFlags() & QPinchGesture::ScaleFactorChanged)
+        {
+            qreal pscale = pinch->totalScaleFactor();
+            if (pscale < 0.8f || pscale > 1.25f)
+            {
+                const QPointF & center = pinch->centerPoint();
+                const QPointF & pos = mapFromGlobal(QPoint(center.x(),center.y()));
+                QPointF pt1 = pos;
+                map->convertPx2Rad(pt1);
+                setZoom(pscale > 1.0f, needsRedraw);
+                map->convertRad2Px(pt1);
+                const QPointF & move = pos - pt1;
+                if (!move.isNull())
+                {
+                    moveMap(move);
+                }
+                pinch->setTotalScaleFactor(1.0f);
+                slotTriggerCompleteUpdate(needsRedraw);
+            }
+        }
+        mouseLost = true;
+        mouse->pinchGestureEvent(pinch);
+    }
+    return true;
+}
diff --git a/src/qmapshack/canvas/CCanvas.h b/src/qmapshack/canvas/CCanvas.h
new file mode 100644
index 0000000..f1c8b4f
--- /dev/null
+++ b/src/qmapshack/canvas/CCanvas.h
@@ -0,0 +1,251 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CCANVAS_H
+#define CCANVAS_H
+
+#include <QMap>
+#include <QPainter>
+#include <QPointer>
+#include <QWidget>
+#include <proj_api.h>
+
+#include "gis/IGisItem.h"
+
+class IDrawContext;
+class CMapDraw;
+class CGrid;
+class CDemDraw;
+class QGestureEvent;
+class CGisDraw;
+class CRtDraw;
+class CGisItemWpt;
+class CGisItemTrk;
+class CGisItemRte;
+class CGisItemOvlArea;
+class CColorLegend;
+class CMouseAdapter;
+class QSettings;
+class QPointF;
+class IMouse;
+class QTimer;
+class QMovie;
+class QLabel;
+class IPlot;
+struct SGisLine;
+struct poi_t;
+
+class CCanvas : public QWidget
+{
+    Q_OBJECT
+public:
+    CCanvas(QWidget * parent, const QString& name);
+    virtual ~CCanvas();
+
+    static void setOverrideCursor(const QCursor &cursor, const QString&);
+    static void restoreOverrideCursor(const QString &src);
+    static void changeOverrideCursor(const QCursor& cursor, const QString &src);
+
+
+    void saveConfig(QSettings& cfg);
+    void loadConfig(QSettings& cfg);
+
+    void setupGrid();
+    void convertGridPos2Str(const QPointF& pos, QString& str, bool simple);
+    void convertRad2Px(QPointF &pos) const;
+    void convertPx2Rad(QPointF& pos) const;
+
+    void setupBackgroundColor();
+
+    void setup();
+    QString getProjection();
+    void  setProjection(const QString& proj);
+
+    enum scales_type_e
+    {
+        eScalesDefault
+        , eScalesSquare
+    };
+
+    void  setScales(const scales_type_e type);
+    scales_type_e getScalesType();
+
+    qreal getElevationAt(const QPointF &pos) const;
+    void  getElevationAt(const QPolygonF& pos, QPolygonF &ele) const;
+    void  getElevationAt(SGisLine &line) const;
+
+    qreal getSlopeAt(const QPointF &pos) const;
+    void getSlopeAt(const QPolygonF& pos, QPolygonF& slope) const;
+
+    void moveMap(const QPointF &delta);
+    void zoomTo(const QRectF& rect);
+    void displayInfo(const QPoint& px);
+    poi_t findPOICloseBy(const QPoint& px) const;
+
+    enum redraw_e
+    {
+        eRedrawNone = 0
+        , eRedrawMap = 0x01
+        , eRedrawDem = 0x02
+        , eRedrawGis = 0x04
+        , eRedrawMouse = 0x08
+        , eRedrawRt = 0x10
+        , eRedrawAll = 0xFFFFFFFF
+    };
+
+    static void triggerCompleteUpdate(CCanvas::redraw_e flags);
+
+    void resetMouse();
+    void mouseTrackingLost();
+    void setMouseMoveWpt(CGisItemWpt& wpt);
+    void setMouseRadiusWpt(CGisItemWpt& wpt);
+    void setMouseEditTrk(CGisItemTrk& trk);
+    void setMouseRangeTrk(CGisItemTrk& trk);
+    void setMouseEditTrk(const QPointF& pt);
+    void setMouseEditRte(const QPointF& pt);
+    void setMouseEditRte(CGisItemRte& rte);
+    void setMouseEditArea(CGisItemOvlArea& area);
+    void setMouseEditArea(const QPointF& pt);
+    void setMouseWptBubble(const IGisItem::key_t& key);
+    void setMousePrint();
+    void setMouseSelect();
+
+    void showProfileAsWindow(bool yes);
+    void showProfile(bool yes);
+
+    /**
+       @brief Add a message by key to be reported on the canvas
+
+       Messages from various sources will be collected in a list and displayed in the top left corner
+       of the widget.
+
+       @note The object reporting has to take care to remove the message by reporting an empty string.
+
+       @param key   the key to identify the reporting object
+       @param msg   the message to report
+     */
+    void reportStatus(const QString& key, const QString& msg);
+
+    /**
+       @brief Find a matching street polyline
+
+       The polyline must be close enough in terms of pixel to point 1 and 2. "Close enough" is defined by
+       the threshold. The returned polyline uses lon/lat as coordinates.
+
+       @param pt1           first point in [rad]
+       @param pt2           second point in [rad]
+       @param threshold     the "close enough" threshold in [pixel]
+       @param polyline      the resulting polyline, if any, in [rad]
+       @return              Return true if a line has been found.
+     */
+    bool findPolylineCloseBy(const QPointF& pt1, const QPointF& pt2, qint32 threshold, QPolygonF& polyline);
+
+    void print(QPainter &p, const QRectF& area, const QPointF &focus);
+
+    static qreal gisLayerOpacity;
+signals:
+    void sigMousePosition(const QPointF& pos, qreal ele, qreal slope);
+    void sigZoom();
+    void sigMove();
+
+public slots:
+    void slotTriggerCompleteUpdate(CCanvas::redraw_e flags);
+    void slotUpdateTrackStatistic(bool show);
+
+protected:
+    bool event(QEvent *) override;
+    bool gestureEvent(QGestureEvent *e);
+    void resizeEvent(QResizeEvent *e) override;
+    void paintEvent(QPaintEvent  *e) override;
+    void mousePressEvent(QMouseEvent  *e) override;
+    void mouseMoveEvent(QMouseEvent  *e) override;
+    void mouseReleaseEvent(QMouseEvent  *e) override;
+    void mouseDoubleClickEvent(QMouseEvent  *e) override;
+    void wheelEvent(QWheelEvent  *e) override;
+    void enterEvent(QEvent       *e) override;
+    void leaveEvent(QEvent       *e) override;
+    void keyPressEvent(QKeyEvent    *e) override;
+
+
+private slots:
+    void slotToolTip();
+    void slotCheckTrackOnFocus();
+
+
+private:
+    void drawStatusMessages(QPainter& p);
+    void drawTrackStatistic(QPainter& p);
+    void drawScale(QPainter& p);
+    void setZoom(bool in, redraw_e &needsRedraw);
+    void setSizeTrackProfile();
+    void saveSizeTrackProfile();
+    void setDrawContextSize(const QSize& s);
+
+    QColor backColor = "#FFFFBF";       //< the background color used in case of missing map tiles
+    redraw_e needsRedraw = eRedrawAll;  //< set true to initiate a complete redraw of the screen content
+    CMapDraw * map;                     //< the map object attached to this canvas
+    CDemDraw * dem;                     //< the elevation data layer attached to this canvas
+    CGisDraw * gis;                     //< the GIS data layer attached to this canvas
+    CRtDraw * rt;                       //< the real time data layer attached to this canvas
+    CGrid * grid;                       //< the grid attached to this canvas
+
+    QList<IDrawContext*> allDrawContext;
+
+    /// the current point of focus (usually the canvas center)
+    QPointF posFocus {12.00 * DEG_TO_RAD, 49.00 * DEG_TO_RAD};
+
+    /// the mouse handler
+    CMouseAdapter * mouse;
+
+    /// tool tip timer for vector map tool tips
+    QTimer * timerToolTip;
+    /// the position of the tool tip
+    QPoint posToolTip;
+
+    /// load indicator for maps
+    QMovie * loadIndicator1;
+    QLabel * mapLoadIndicator;
+
+    /// load indicator for DEM
+    QMovie * loadIndicator2;
+    QLabel * demLoadIndicator;
+
+    QPointer<CColorLegend> colorLegend;
+
+    /// current accumulated angleDelta, used/required for zooming on trackpads
+    int zoomAngleDelta = 0;
+
+    /// timer to poll for track gaining/loosing focus
+    QTimer * timerTrackOnFocus;
+    /// the key of the currently focused track
+    IGisItem::key_t keyTrackOnFocus;
+    /// the track profile plot
+    QPointer<IPlot>  plotTrackProfile;
+    /// a label with a track
+    QLabel * labelTrackStatistic;
+
+    QLabel * labelStatusMessages;
+    QMap<QString, QString> statusMessages;
+
+    QMutex mousePressMutex;
+    bool mouseLost = false;
+};
+
+#endif //CCANVAS_H
+
diff --git a/src/qmapshack/canvas/CCanvasSetup.cpp b/src/qmapshack/canvas/CCanvasSetup.cpp
new file mode 100644
index 0000000..7346a98
--- /dev/null
+++ b/src/qmapshack/canvas/CCanvasSetup.cpp
@@ -0,0 +1,74 @@
+/**********************************************************************************************
+    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 "canvas/CCanvas.h"
+#include "canvas/CCanvasSetup.h"
+#include "grid/CProjWizard.h"
+
+CCanvasSetup::CCanvasSetup(CCanvas * canvas)
+    : QDialog(canvas)
+    , canvas(canvas)
+{
+    setupUi(this);
+
+    lineProjection->setText(canvas->getProjection());
+    lineProjection->setCursorPosition(0);
+
+    switch(canvas->getScalesType())
+    {
+    case CCanvas::eScalesDefault:
+        radioScalesDefault->setChecked(true);
+        break;
+
+    case CCanvas::eScalesSquare:
+        radioScalesSquare->setChecked(true);
+        break;
+    }
+
+    connect(toolWizard, &QToolButton::clicked, this, &CCanvasSetup::slotProjWizard);
+}
+
+CCanvasSetup::~CCanvasSetup()
+{
+}
+
+void CCanvasSetup::slotProjWizard()
+{
+    CProjWizard dlg(*lineProjection);
+    dlg.exec();
+}
+
+
+void CCanvasSetup::accept()
+{
+    if(!CProjWizard::validProjStr(lineProjection->text(), false))
+    {
+        return;
+    }
+    canvas->setProjection(lineProjection->text());
+    if(radioScalesDefault->isChecked())
+    {
+        canvas->setScales(CCanvas::eScalesDefault);
+    }
+    else if(radioScalesSquare->isChecked())
+    {
+        canvas->setScales(CCanvas::eScalesSquare);
+    }
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+    QDialog::accept();
+}
diff --git a/src/canvas/CCanvasSetup.h b/src/qmapshack/canvas/CCanvasSetup.h
similarity index 100%
rename from src/canvas/CCanvasSetup.h
rename to src/qmapshack/canvas/CCanvasSetup.h
diff --git a/src/qmapshack/canvas/ICanvasSetup.ui b/src/qmapshack/canvas/ICanvasSetup.ui
new file mode 100644
index 0000000..a346a1d
--- /dev/null
+++ b/src/qmapshack/canvas/ICanvasSetup.ui
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ICanvasSetup</class>
+ <widget class="QDialog" name="ICanvasSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>446</width>
+    <height>196</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup Map View...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Projection & Datum</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="lineProjection"/>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolWizard">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/GridWizard.png</normaloff>:/icons/32x32/GridWizard.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <widget class="QGroupBox" name="groupBox">
+       <property name="title">
+        <string>Scales</string>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <item>
+         <widget class="QRadioButton" name="radioScalesDefault">
+          <property name="text">
+           <string>Logarithmic</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QRadioButton" name="radioScalesSquare">
+          <property name="text">
+           <string>Square (optimized for TMS and WMTS tiles)</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>9</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <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>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ICanvasSetup</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>ICanvasSetup</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/canvas/IDrawContext.cpp b/src/qmapshack/canvas/IDrawContext.cpp
similarity index 100%
rename from src/canvas/IDrawContext.cpp
rename to src/qmapshack/canvas/IDrawContext.cpp
diff --git a/src/canvas/IDrawContext.h b/src/qmapshack/canvas/IDrawContext.h
similarity index 100%
rename from src/canvas/IDrawContext.h
rename to src/qmapshack/canvas/IDrawContext.h
diff --git a/src/canvas/IDrawObject.cpp b/src/qmapshack/canvas/IDrawObject.cpp
similarity index 100%
rename from src/canvas/IDrawObject.cpp
rename to src/qmapshack/canvas/IDrawObject.cpp
diff --git a/src/canvas/IDrawObject.h b/src/qmapshack/canvas/IDrawObject.h
similarity index 100%
rename from src/canvas/IDrawObject.h
rename to src/qmapshack/canvas/IDrawObject.h
diff --git a/src/dem/CDemDraw.cpp b/src/qmapshack/dem/CDemDraw.cpp
similarity index 100%
rename from src/dem/CDemDraw.cpp
rename to src/qmapshack/dem/CDemDraw.cpp
diff --git a/src/dem/CDemDraw.h b/src/qmapshack/dem/CDemDraw.h
similarity index 100%
rename from src/dem/CDemDraw.h
rename to src/qmapshack/dem/CDemDraw.h
diff --git a/src/dem/CDemItem.cpp b/src/qmapshack/dem/CDemItem.cpp
similarity index 100%
rename from src/dem/CDemItem.cpp
rename to src/qmapshack/dem/CDemItem.cpp
diff --git a/src/dem/CDemItem.h b/src/qmapshack/dem/CDemItem.h
similarity index 100%
rename from src/dem/CDemItem.h
rename to src/qmapshack/dem/CDemItem.h
diff --git a/src/dem/CDemList.cpp b/src/qmapshack/dem/CDemList.cpp
similarity index 100%
rename from src/dem/CDemList.cpp
rename to src/qmapshack/dem/CDemList.cpp
diff --git a/src/dem/CDemList.h b/src/qmapshack/dem/CDemList.h
similarity index 100%
rename from src/dem/CDemList.h
rename to src/qmapshack/dem/CDemList.h
diff --git a/src/dem/CDemPathSetup.cpp b/src/qmapshack/dem/CDemPathSetup.cpp
similarity index 100%
rename from src/dem/CDemPathSetup.cpp
rename to src/qmapshack/dem/CDemPathSetup.cpp
diff --git a/src/dem/CDemPathSetup.h b/src/qmapshack/dem/CDemPathSetup.h
similarity index 100%
rename from src/dem/CDemPathSetup.h
rename to src/qmapshack/dem/CDemPathSetup.h
diff --git a/src/dem/CDemPropSetup.cpp b/src/qmapshack/dem/CDemPropSetup.cpp
similarity index 100%
rename from src/dem/CDemPropSetup.cpp
rename to src/qmapshack/dem/CDemPropSetup.cpp
diff --git a/src/dem/CDemPropSetup.h b/src/qmapshack/dem/CDemPropSetup.h
similarity index 100%
rename from src/dem/CDemPropSetup.h
rename to src/qmapshack/dem/CDemPropSetup.h
diff --git a/src/dem/CDemVRT.cpp b/src/qmapshack/dem/CDemVRT.cpp
similarity index 100%
rename from src/dem/CDemVRT.cpp
rename to src/qmapshack/dem/CDemVRT.cpp
diff --git a/src/dem/CDemVRT.h b/src/qmapshack/dem/CDemVRT.h
similarity index 100%
rename from src/dem/CDemVRT.h
rename to src/qmapshack/dem/CDemVRT.h
diff --git a/src/dem/IDem.cpp b/src/qmapshack/dem/IDem.cpp
similarity index 100%
rename from src/dem/IDem.cpp
rename to src/qmapshack/dem/IDem.cpp
diff --git a/src/dem/IDem.h b/src/qmapshack/dem/IDem.h
similarity index 100%
rename from src/dem/IDem.h
rename to src/qmapshack/dem/IDem.h
diff --git a/src/dem/IDemList.ui b/src/qmapshack/dem/IDemList.ui
similarity index 100%
rename from src/dem/IDemList.ui
rename to src/qmapshack/dem/IDemList.ui
diff --git a/src/dem/IDemPathSetup.ui b/src/qmapshack/dem/IDemPathSetup.ui
similarity index 100%
rename from src/dem/IDemPathSetup.ui
rename to src/qmapshack/dem/IDemPathSetup.ui
diff --git a/src/dem/IDemProp.cpp b/src/qmapshack/dem/IDemProp.cpp
similarity index 100%
rename from src/dem/IDemProp.cpp
rename to src/qmapshack/dem/IDemProp.cpp
diff --git a/src/dem/IDemProp.h b/src/qmapshack/dem/IDemProp.h
similarity index 100%
rename from src/dem/IDemProp.h
rename to src/qmapshack/dem/IDemProp.h
diff --git a/src/dem/IDemPropSetup.ui b/src/qmapshack/dem/IDemPropSetup.ui
similarity index 100%
rename from src/dem/IDemPropSetup.ui
rename to src/qmapshack/dem/IDemPropSetup.ui
diff --git a/src/device/CDeviceGarmin.cpp b/src/qmapshack/device/CDeviceGarmin.cpp
similarity index 100%
rename from src/device/CDeviceGarmin.cpp
rename to src/qmapshack/device/CDeviceGarmin.cpp
diff --git a/src/device/CDeviceGarmin.h b/src/qmapshack/device/CDeviceGarmin.h
similarity index 100%
rename from src/device/CDeviceGarmin.h
rename to src/qmapshack/device/CDeviceGarmin.h
diff --git a/src/device/CDeviceGarminArchive.cpp b/src/qmapshack/device/CDeviceGarminArchive.cpp
similarity index 100%
rename from src/device/CDeviceGarminArchive.cpp
rename to src/qmapshack/device/CDeviceGarminArchive.cpp
diff --git a/src/device/CDeviceGarminArchive.h b/src/qmapshack/device/CDeviceGarminArchive.h
similarity index 100%
rename from src/device/CDeviceGarminArchive.h
rename to src/qmapshack/device/CDeviceGarminArchive.h
diff --git a/src/device/CDeviceTwoNav.cpp b/src/qmapshack/device/CDeviceTwoNav.cpp
similarity index 100%
rename from src/device/CDeviceTwoNav.cpp
rename to src/qmapshack/device/CDeviceTwoNav.cpp
diff --git a/src/device/CDeviceTwoNav.h b/src/qmapshack/device/CDeviceTwoNav.h
similarity index 100%
rename from src/device/CDeviceTwoNav.h
rename to src/qmapshack/device/CDeviceTwoNav.h
diff --git a/src/device/CDeviceWatcherLinux.cpp b/src/qmapshack/device/CDeviceWatcherLinux.cpp
similarity index 100%
rename from src/device/CDeviceWatcherLinux.cpp
rename to src/qmapshack/device/CDeviceWatcherLinux.cpp
diff --git a/src/device/CDeviceWatcherLinux.h b/src/qmapshack/device/CDeviceWatcherLinux.h
similarity index 100%
rename from src/device/CDeviceWatcherLinux.h
rename to src/qmapshack/device/CDeviceWatcherLinux.h
diff --git a/src/device/CDeviceWatcherMac.cpp b/src/qmapshack/device/CDeviceWatcherMac.cpp
similarity index 100%
rename from src/device/CDeviceWatcherMac.cpp
rename to src/qmapshack/device/CDeviceWatcherMac.cpp
diff --git a/src/device/CDeviceWatcherMac.h b/src/qmapshack/device/CDeviceWatcherMac.h
similarity index 100%
rename from src/device/CDeviceWatcherMac.h
rename to src/qmapshack/device/CDeviceWatcherMac.h
diff --git a/src/device/CDeviceWatcherWindows.cpp b/src/qmapshack/device/CDeviceWatcherWindows.cpp
similarity index 100%
rename from src/device/CDeviceWatcherWindows.cpp
rename to src/qmapshack/device/CDeviceWatcherWindows.cpp
diff --git a/src/device/CDeviceWatcherWindows.h b/src/qmapshack/device/CDeviceWatcherWindows.h
similarity index 100%
rename from src/device/CDeviceWatcherWindows.h
rename to src/qmapshack/device/CDeviceWatcherWindows.h
diff --git a/src/qmapshack/device/IDevice.cpp b/src/qmapshack/device/IDevice.cpp
new file mode 100644
index 0000000..6337d09
--- /dev/null
+++ b/src/qmapshack/device/IDevice.cpp
@@ -0,0 +1,404 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "device/CDeviceGarmin.h"
+#include "device/IDevice.h"
+#include "gis/CGisListWks.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/rte/router/IRouter.h"
+#include "helpers/CSelectCopyAction.h"
+
+#ifdef HAVE_DBUS
+#include <QtDBus>
+#endif
+
+int IDevice::cnt = 0;
+
+IDevice::IDevice(const QString &path, type_e type, const QString &key, QTreeWidget *parent)
+    : QTreeWidgetItem(parent, type)
+    , dir(path)
+    , key(key)
+{
+    setIcon(CGisListWks::eColumnIcon, QIcon("://icons/32x32/Device.png"));
+    cnt++;
+}
+
+IDevice::IDevice(const QString &path, type_e type, const QString &key, CDeviceGarmin *parent)
+    : QTreeWidgetItem(parent, type)
+    , dir(path)
+    , key(key)
+{
+    setIcon(CGisListWks::eColumnIcon, QIcon("://icons/32x32/PathGreen.png"));
+}
+
+IDevice::~IDevice()
+{
+    cnt--;
+}
+
+void IDevice::mount(const QString& path)
+{
+#ifdef HAVE_DBUS
+    QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",path,"org.freedesktop.UDisks2.Filesystem","Mount");
+    QVariantMap args;
+    args.insert("options", "sync");
+    message << args;
+#if defined(Q_OS_FREEBSD)
+    // XXX Hunc sint race conditions - call bsdisks (UDisks2) too fast,
+    // get a malformed reply, crash.
+    QThread::sleep(1);
+#endif
+    QDBusConnection::systemBus().call(message);
+#endif
+}
+
+void IDevice::umount(const QString &path)
+{
+#ifdef HAVE_DBUS
+    QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.UDisks2",path,"org.freedesktop.UDisks2.Filesystem","Unmount");
+    QVariantMap args;
+    message << args;
+    QDBusConnection::systemBus().call(message);
+#endif
+}
+
+
+QString IDevice::getName() const
+{
+    return text(CGisListWks::eColumnName);
+}
+
+void IDevice::getItemsByPos(const QPointF& pos, QList<IGisItem *> &items)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->getItemsByPos(pos, items);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->getItemsByPos(pos, items);
+        }
+    }
+}
+
+void IDevice::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->getItemsByArea(area, flags, items);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->getItemsByArea(area, flags, items);
+        }
+    }
+}
+
+void IDevice::getNogoAreas(QList<IGisItem*> &nogos)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->getNogoAreas(nogos);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->getNogoAreas(nogos);
+        }
+    }
+}
+
+IGisItem * IDevice::getItemByKey(const IGisItem::key_t& key)
+{
+    IGisItem * item = nullptr;
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            if(project->getKey() != key.project)
+            {
+                continue;
+            }
+
+            item = project->getItemByKey(key);
+            if(item != nullptr)
+            {
+                break;
+            }
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            item = device->getItemByKey(key);
+            if(item != nullptr)
+            {
+                break;
+            }
+        }
+    }
+    return item;
+}
+
+void IDevice::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->getItemsByKeys(keys, items);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->getItemsByKeys(keys, items);
+        }
+    }
+}
+
+IGisProject * IDevice::getProjectByKey(const QString& key)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            if(project->getKey() != key)
+            {
+                continue;
+            }
+
+            return project;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            project = device->getProjectByKey(key);
+            if(project != nullptr)
+            {
+                return project;
+            }
+        }
+    }
+    return nullptr;
+}
+
+void IDevice::editItemByKey(const IGisItem::key_t& key)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->editItemByKey(key);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->editItemByKey(key);
+        }
+    }
+}
+
+
+void IDevice::insertCopyOfProject(IGisProject * project, int& lastResult)
+{
+    IGisProject * project2 = getProjectByKey(project->getKey());
+    if(project2)
+    {
+        int result = lastResult;
+        if(lastResult == CSelectCopyAction::eResultNone)
+        {
+            CSelectCopyAction dlg(project, project2, CMainWindow::getBestWidgetForParent());
+            dlg.exec();
+            result = dlg.getResult();
+            if(dlg.allOthersToo())
+            {
+                lastResult = result;
+            }
+        }
+
+        if(result == CSelectCopyAction::eResultSkip)
+        {
+            return;
+        }
+        if(result == CSelectCopyAction::eResultNone)
+        {
+            return;
+        }
+
+        if(project2->remove())
+        {
+            delete project2;
+        }
+        else
+        {
+            return;
+        }
+    }
+
+    insertCopyOfProject(project);
+}
+
+void IDevice::updateProject(IGisProject * project)
+{
+    IGisProject * project2 = getProjectByKey(project->getKey());
+    if(project2)
+    {
+        if(project2->remove())
+        {
+            delete project2;
+        }
+        else
+        {
+            return;
+        }
+    }
+
+    project->blockUpdateItems(true);
+    insertCopyOfProject(project);
+    project->blockUpdateItems(false);
+}
+
+bool IDevice::testForExternalProject(const QString& filename)
+{
+    if(QDir(filename).exists() || QFile::exists(filename))
+    {
+        QString msg = tr("There is another project with the same name. If you press 'ok' it will be removed and replaced.");
+        int res = QMessageBox::warning(CMainWindow::getBestWidgetForParent(), getName(), msg, QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+        if(res != QMessageBox::Ok)
+        {
+            return true;
+        }
+
+        if(QDir(filename).exists())
+        {
+            QDir(filename).removeRecursively();
+        }
+        else if(QFile::exists(filename))
+        {
+            QFile(filename).remove();
+        }
+
+        QFileInfo fi(filename);
+
+        const int N = childCount();
+        for(int n = 0; n < N; n++)
+        {
+            QTreeWidgetItem * item = child(n);
+            if(item->text(CGisListWks::eColumnName) == fi.fileName())
+            {
+                delete item;
+                break;
+            }
+        }
+    }
+    return false;
+}
+
+void IDevice::drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->drawItem(p, viewport, blockedAreas, gis);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->drawItem(p, viewport, blockedAreas, gis);
+        }
+    }
+}
+
+void IDevice::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->drawLabel(p, viewport, blockedAreas, fm, gis);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->drawLabel(p, viewport, blockedAreas, fm, gis);
+        }
+    }
+}
+
+void IDevice::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+{
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(child(n));
+        if(project != nullptr)
+        {
+            project->drawItem(p, viewport, gis);
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(child(n));
+        if(device != nullptr)
+        {
+            device->drawItem(p, viewport, gis);
+        }
+    }
+}
diff --git a/src/qmapshack/device/IDevice.h b/src/qmapshack/device/IDevice.h
new file mode 100644
index 0000000..f4ba055
--- /dev/null
+++ b/src/qmapshack/device/IDevice.h
@@ -0,0 +1,120 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef IDEVICE_H
+#define IDEVICE_H
+
+#include <QDir>
+#include <QTreeWidgetItem>
+
+#include "gis/IGisItem.h"
+#include "gis/rte/router/IRouter.h"
+class CGisDraw;
+class CGisItemWpt;
+class CDeviceGarmin;
+
+class IDevice : public QTreeWidgetItem
+{
+    Q_DECLARE_TR_FUNCTIONS(IDevice)
+public:
+    enum type_e
+    {
+        eTypeNone       = 0
+        ,eTypeGarmin    = 1
+        ,eTypeTwoNav    = 2
+    };
+
+    IDevice(const QString& path, type_e type, const QString& key, QTreeWidget * parent);
+    IDevice(const QString &path, type_e type, const QString &key, CDeviceGarmin *parent);
+    virtual ~IDevice();
+
+
+    static void mount(const QString& path);
+    static void umount(const QString &path);
+    static int count()
+    {
+        return cnt;
+    }
+
+    void mount()
+    {
+        mount(key);
+    }
+    void umount()
+    {
+        umount(key);
+    }
+
+    const QString& getKey() const
+    {
+        return key;
+    }
+
+    QString getName() const;
+
+    void getItemsByPos(const QPointF& pos, QList<IGisItem *> &items);
+    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
+    void getNogoAreas(QList<IGisItem *> &nogos);
+    IGisItem * getItemByKey(const IGisItem::key_t& key);
+    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
+    void editItemByKey(const IGisItem::key_t& key);
+
+    void drawItem(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, CGisDraw * gis);
+    void drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis);
+    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis);
+
+    void insertCopyOfProject(IGisProject * project, int& lastResult);
+    void updateProject(IGisProject * project);
+
+    virtual void startSavingProject(IGisProject * project)
+    {
+    }
+    virtual void saveImages(CGisItemWpt& wpt)
+    {
+    }
+    virtual void loadImages(CGisItemWpt& wpt)
+    {
+    }
+    virtual void aboutToRemoveProject(IGisProject * project)
+    {
+    }
+
+    IGisProject * getProjectByKey(const QString& key);
+
+protected:
+    virtual void insertCopyOfProject(IGisProject * project) = 0;
+    /**
+       @brief Test if a project's filename/path is already used
+
+       This can happen if there is already a project with the same name
+       but different or no key.
+
+       @param filename
+       @return If the current operation should be aborted return true.
+     */
+    bool testForExternalProject(const QString& filename);
+
+    static int cnt;
+
+    QDir dir;
+    QString key;
+};
+
+#endif //IDEVICE_H
+
diff --git a/src/device/IDeviceWatcher.cpp b/src/qmapshack/device/IDeviceWatcher.cpp
similarity index 100%
rename from src/device/IDeviceWatcher.cpp
rename to src/qmapshack/device/IDeviceWatcher.cpp
diff --git a/src/device/IDeviceWatcher.h b/src/qmapshack/device/IDeviceWatcher.h
similarity index 100%
rename from src/device/IDeviceWatcher.h
rename to src/qmapshack/device/IDeviceWatcher.h
diff --git a/src/qmapshack/gis/CGisDatabase.cpp b/src/qmapshack/gis/CGisDatabase.cpp
new file mode 100644
index 0000000..d0b60ae
--- /dev/null
+++ b/src/qmapshack/gis/CGisDatabase.cpp
@@ -0,0 +1,71 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "gis/CGisDatabase.h"
+#include "gis/db/IDBFolderSql.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CGisDatabase * CGisDatabase::pSelf = nullptr;
+
+CGisDatabase::CGisDatabase(QWidget *parent)
+    : QWidget(parent)
+{
+    pSelf = this;
+    setupUi(this);
+
+    SETTINGS;
+    treeDB->header()->restoreState(cfg.value("Database/treeDB/state", treeDB->header()->saveState()).toByteArray());
+
+    connect(treeDB,  &CGisListDB::sigChanged,  this, &CGisDatabase::slotHelpText);
+    connect(actionShowSummaryDropZones, &QAction::toggled, widgetSummary, &CGisSummary::setVisible);
+
+    QList<QAction*> actions;
+    actions << actionShowSummaryDropZones;
+    treeDB->addGlobalActions(actions);
+
+    actionShowSummaryDropZones->setChecked(cfg.value("Database/isSummaryVisible", true).toBool());
+
+    QTimer::singleShot(1, this, SLOT(slotHelpText()));
+}
+
+CGisDatabase::~CGisDatabase()
+{
+    SETTINGS;
+    cfg.setValue("Database/treeDB/state", treeDB->header()->saveState());
+    cfg.setValue("Database/isSummaryVisible", actionShowSummaryDropZones->isChecked());
+}
+
+void CGisDatabase::slotHelpText()
+{
+    bool databaseAvailable = treeDB->topLevelItemCount() != 0;
+    frameHelp->setVisible(!databaseAvailable);
+    widgetSummary->setVisible(actionShowSummaryDropZones->isChecked());
+}
+
+void CGisDatabase::postEventForDb(QEvent * event)
+{
+    QCoreApplication::postEvent(treeDB, event);
+}
+
+void CGisDatabase::sendEventForDb(QEvent * event)
+{
+    QCoreApplication::sendEvent(treeDB, event);
+}
+
diff --git a/src/qmapshack/gis/CGisDatabase.h b/src/qmapshack/gis/CGisDatabase.h
new file mode 100644
index 0000000..61ee2c3
--- /dev/null
+++ b/src/qmapshack/gis/CGisDatabase.h
@@ -0,0 +1,51 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISDATABASE_H
+#define CGISDATABASE_H
+
+#include "ui_IGisDatabase.h"
+
+class IDBFolder;
+
+class CGisDatabase : public QWidget, private Ui::IGisDatabase
+{
+    Q_OBJECT
+public:
+    static CGisDatabase& self()
+    {
+        return *pSelf;
+    }
+
+    virtual ~CGisDatabase();
+
+    void postEventForDb(QEvent * event);
+    void sendEventForDb(QEvent * event);
+
+private slots:
+    void slotHelpText();
+
+private:
+    friend class CMainWindow;
+    CGisDatabase(QWidget * parent);
+
+    static CGisDatabase * pSelf;
+};
+
+#endif //CGISDATABASE_H
+
diff --git a/src/qmapshack/gis/CGisDraw.cpp b/src/qmapshack/gis/CGisDraw.cpp
new file mode 100644
index 0000000..b7ac9d5
--- /dev/null
+++ b/src/qmapshack/gis/CGisDraw.cpp
@@ -0,0 +1,64 @@
+/**********************************************************************************************
+    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 "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "helpers/CDraw.h"
+
+#include <QtWidgets>
+
+CGisDraw::CGisDraw(CCanvas *parent)
+    : IDrawContext("gis", CCanvas::eRedrawGis, parent)
+{
+    connect(&CGisWorkspace::self(), &CGisWorkspace::sigChanged, this, &CGisDraw::emitSigCanvasUpdate);
+}
+
+
+void CGisDraw::draw(QPainter& p, const QRect& rect)
+{
+    CGisWorkspace::self().fastDraw(p, rect, this);
+}
+
+void CGisDraw::drawt(buffer_t& currentBuffer)
+{
+    QPointF pt1 = currentBuffer.ref1;
+    QPointF pt2 = currentBuffer.ref2;
+    QPointF pt3 = currentBuffer.ref3;
+    QPointF pt4 = currentBuffer.ref4;
+
+    qreal left, right, top, bottom;
+    left     = (pt1.x() < pt4.x() ? pt1.x() : pt4.x());
+    right    = (pt2.x() > pt3.x() ? pt2.x() : pt3.x());
+    top      = (pt1.y() < pt2.y() ? pt1.y() : pt2.y());
+    bottom   = (pt4.y() > pt3.y() ? pt4.y() : pt3.y());
+
+    QPointF pp = currentBuffer.ref1;
+    convertRad2Px(pp);
+
+
+    QRectF rect(QPointF(left,top), QPointF(right, bottom));
+
+    QPolygonF viewport;
+    viewport << pt1 << pt2 << pt3 << pt4;
+
+    QPainter p(&currentBuffer.image);
+    USE_ANTI_ALIASING(p,true);
+    p.translate(-pp);
+
+    CGisWorkspace::self().draw(p,viewport, this);
+}
diff --git a/src/qmapshack/gis/CGisDraw.h b/src/qmapshack/gis/CGisDraw.h
new file mode 100644
index 0000000..c1cc7f3
--- /dev/null
+++ b/src/qmapshack/gis/CGisDraw.h
@@ -0,0 +1,40 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISDRAW_H
+#define CGISDRAW_H
+
+#include "canvas/IDrawContext.h"
+
+class CCanvas;
+
+class CGisDraw : public IDrawContext
+{
+public:
+    CGisDraw(CCanvas *parent);
+    virtual ~CGisDraw() = default;
+
+    using IDrawContext::draw;
+    void draw(QPainter& p, const QRect& rect);
+
+protected:
+    void drawt(buffer_t& currentBuffer) override;
+};
+
+#endif //CGISDRAW_H
+
diff --git a/src/qmapshack/gis/CGisListDB.cpp b/src/qmapshack/gis/CGisListDB.cpp
new file mode 100644
index 0000000..2c2f973
--- /dev/null
+++ b/src/qmapshack/gis/CGisListDB.cpp
@@ -0,0 +1,1100 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "config.h"
+#include "gis/CGisListDB.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/db/CDBFolderLostFound.h"
+#include "gis/db/CDBFolderMysql.h"
+#include "gis/db/CDBFolderSqlite.h"
+#include "gis/db/CDBItem.h"
+#include "gis/db/CDBProject.h"
+#include "gis/db/CSearchDatabase.h"
+#include "gis/db/CSelectDBFolder.h"
+#include "gis/db/CSetupDatabase.h"
+#include "gis/db/CSetupFolder.h"
+#include "gis/db/macros.h"
+#include "helpers/CSettings.h"
+
+#include <QtNetwork>
+#include <QtSql>
+#include <QtWidgets>
+
+class CGisListDBEditLock
+{
+public:
+    CGisListDBEditLock(bool waitCursor, CGisListDB * widget, const QString& src) : widget(widget), waitCursor(waitCursor), src(src)
+    {
+        if(waitCursor)
+        {
+            CCanvas::setOverrideCursor(Qt::WaitCursor, "CGisListDBEditLock: " + src);
+        }
+        widget->isInternalEdit++;
+    }
+    ~CGisListDBEditLock()
+    {
+        if(waitCursor)
+        {
+            CCanvas::restoreOverrideCursor("~CGisListDBEditLock: " + src);
+        }
+        widget->isInternalEdit--;
+    }
+private:
+    CGisListDB * widget;
+    bool waitCursor;
+    QString src;
+};
+
+
+CGisListDB::CGisListDB(QWidget *parent)
+    : QTreeWidget(parent)
+    , socket(nullptr)
+{
+    setProperty("showItems", true);
+    setProperty("showCheckBoxes", true);
+    setProperty("showLostFound", true);
+
+    SETTINGS;
+    cfg.beginGroup("Database");
+    QString path = cfg.value("lastDatabasePath", QDir::homePath()).toString();
+    QStringList names = cfg.value("names").toStringList();
+    cfg.beginGroup("Entries");
+    for(const QString &name : names)
+    {
+        cfg.beginGroup(name);
+        QString type = cfg.value("type", "SQLite").toString();
+        if(type == "SQLite")
+        {
+            QString filename = cfg.value("filename","").toString();
+            if(filename.isEmpty())
+            {
+                QMessageBox::information(this, name, tr("Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.").arg(name), QMessageBox::Ok);
+                filename = QFileDialog::getOpenFileName(this, tr("Select database file."), path, "QMapShack Database (*.db)");
+                if(filename.isEmpty())
+                {
+                    cfg.endGroup(); // name;
+                    continue;
+                }
+            }
+            new CDBFolderSqlite(filename, name, this);
+        }
+        if(type == "MySQL")
+        {
+            QString server  = cfg.value("server",   "").toString();
+            QString port    = cfg.value("port",     "").toString();
+            QString user    = cfg.value("user",     "").toString();
+            QString passwd  = cfg.value("passwd",   "").toString();
+            bool noPasswd   = cfg.value("noPasswd", false).toBool();
+
+            if(server.isEmpty() || user.isEmpty())
+            {
+                cfg.endGroup(); // name
+                continue;
+            }
+            new CDBFolderMysql(server, port, user, passwd, noPasswd, name, this);
+        }
+        cfg.endGroup(); // name
+    }
+    cfg.endGroup(); // Entries
+    cfg.endGroup(); // Database
+
+
+    menuNone            = new QMenu(this);
+    actionAddDatabase   = menuNone->addAction(QIcon("://icons/32x32/Add.png"), tr("Add Database"), this, SLOT(slotAddDatabase()));
+
+    menuFolder          = new QMenu(this);
+    actionAddFolder     = menuFolder->addAction(QIcon("://icons/32x32/Add.png"), tr("Add Folder"), this, SLOT(slotAddFolder()));
+    actionRenameFolder  = menuFolder->addAction(QIcon("://icons/32x32/A.png"), tr("Rename Folder"), this, SLOT(slotRenameFolder()));
+    actionCopyFolder    = menuFolder->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy Folder"), this, SLOT(slotCopyFolder()));
+    actionMoveFolder    = menuFolder->addAction(QIcon("://icons/32x32/Move.png"), tr("Move Folder"), this, SLOT(slotMoveFolder()));
+    actionDelFolder     = menuFolder->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Folder"), this, SLOT(slotDelFolder()));
+    menuFolder->addSeparator();
+    actionImport        = menuFolder->addAction(QIcon("://icons/32x32/LoadGIS.png"), tr("Import from Files..."), this, SLOT(slotImport()));
+    actionExportToGpx   = menuFolder->addAction(QIcon("://icons/32x32/SaveGIS.png"), tr("Export to GPX..."), this, SLOT(slotExportToGpx()));
+
+    menuItem            = new QMenu(this);
+    actionDelItem       = menuItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelItem()));
+
+    menuDatabase        = new QMenu(this);
+    menuDatabase->addAction(actionAddFolder);
+    actionSearch        = menuDatabase->addAction(QIcon("://icons/32x32/Zoom.png"), tr("Search Database"), this, SLOT(slotSearchDatabase()));
+    actionUpdate        = menuDatabase->addAction(QIcon("://icons/32x32/DatabaseSync.png"), tr("Sync. with Database"), this, SLOT(slotUpdateDatabase()));
+    actionDelDatabase   = menuDatabase->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Remove Database"), this, SLOT(slotDelDatabase()));
+    menuDatabase->addSeparator();
+    menuDatabase->addAction(actionImport);
+    menuDatabase->addAction(actionExportToGpx);
+
+
+    menuLostFound       = new QMenu(this);
+    actionDelLostFound  = menuLostFound->addAction(QIcon("://icons/32x32/Empty.png"), tr("Empty"), this, SLOT(slotDelLostFound()));
+
+    menuLostFoundItem       = new QMenu(this);
+    actionDelLostFoundItem  = menuLostFoundItem->addAction(QIcon("://icons/32x32/DeleteOne.png"), tr("Delete Item"), this, SLOT(slotDelLostFoundItem()));
+
+    connect(this, &CGisListDB::customContextMenuRequested, this, &CGisListDB::slotContextMenu);
+    connect(this, &CGisListDB::itemExpanded,               this, &CGisListDB::slotItemExpanded);
+    connect(this, &CGisListDB::itemChanged,                this, &CGisListDB::slotItemChanged);
+
+    bool enabled = cfg.value("Database/listenUpdate", false).toBool();
+    if(enabled)
+    {
+        quint16 port = cfg.value("Database/port", UDP_PORT).toUInt();
+
+        socket = new QUdpSocket(this);
+        if(!socket->bind(QHostAddress::Any, port, QUdpSocket::ShareAddress))
+        {
+            qDebug() << socket->errorString();
+        }
+        connect(socket, &QUdpSocket::readyRead, this, &CGisListDB::slotReadyRead);
+    }
+}
+
+CGisListDB::~CGisListDB()
+{
+    saveDatabaseConfiguration();
+}
+
+void CGisListDB::addGlobalActions(const QList<QAction*> actions)
+{
+    menuNone->addSeparator();
+    menuNone->addActions(actions);
+    menuFolder->addSeparator();
+    menuFolder->addActions(actions);
+    menuDatabase->addSeparator();
+    menuDatabase->addActions(actions);
+    menuItem->addSeparator();
+    menuItem->addActions(actions);
+    menuItem->addSeparator();
+    menuItem->addActions(actions);
+    menuItem->addSeparator();
+    menuItem->addActions(actions);
+}
+
+void CGisListDB::saveDatabaseConfiguration()
+{
+    QStringList names;
+
+    SETTINGS;
+    cfg.beginGroup("Database");
+
+    cfg.beginGroup("Entries");
+    cfg.remove("");
+
+    const int N = topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        CDBFolderSqlite * sqlite = dynamic_cast<CDBFolderSqlite*>(topLevelItem(n));
+        if(sqlite)
+        {
+            QString name = sqlite->text(CGisListDB::eColumnName);
+            names << name;
+
+            cfg.beginGroup(name);
+            cfg.setValue("type", "SQLite");
+            cfg.setValue("filename", sqlite->getFilename());
+            cfg.endGroup(); // name
+        }
+        CDBFolderMysql * mysql = dynamic_cast<CDBFolderMysql*>(topLevelItem(n));
+        if(mysql)
+        {
+            QString name = mysql->text(CGisListDB::eColumnName);
+            names << name;
+
+            cfg.beginGroup(name);
+            cfg.setValue("type", "MySQL");
+            cfg.setValue("server", mysql->getServer());
+            cfg.setValue("port", mysql->getPort());
+            cfg.setValue("user", mysql->getUser());
+            cfg.setValue("passwd", mysql->getPasswd());
+            cfg.setValue("noPasswd",mysql->hasNoPasswd());
+            cfg.endGroup(); // name
+        }
+    }
+
+    cfg.endGroup(); // Entries
+    cfg.setValue("names", names);
+    cfg.endGroup(); // Database
+}
+
+IDBFolderSql * CGisListDB::getDataBase(const QString& name, const QString &host)
+{
+    CGisListDBEditLock lock(true, this, "getDataBase");
+    const int N = topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IDBFolderSql * database = dynamic_cast<IDBFolderSql*>(topLevelItem(n));
+        if(database && (database->getDBName() == name))
+        {
+            if(!host.isEmpty())
+            {
+                if(database->getDBHost() != host)
+                {
+                    continue;
+                }
+            }
+
+            return database;
+        }
+    }
+    return nullptr;
+}
+
+bool CGisListDB::hasDatabase(const QString& name)
+{
+    CGisListDBEditLock lock(true, this, "hasDatabase");
+    const int N = topLevelItemCount();
+    for(int i = 0; i < N; i++)
+    {
+        IDBFolderSql * folder = dynamic_cast<IDBFolderSql*>(topLevelItem(i));
+        if(folder && (folder->text(CGisListDB::eColumnName) == name))
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+
+bool CGisListDB::event(QEvent * e)
+{
+    if(!dlgSearch.isNull())
+    {
+        dlgSearch->event(e);
+    }
+
+    switch(e->type())
+    {
+    case eEvtW2DAckInfo:
+    {
+        CGisListDBEditLock lock(true, this, "event");
+        CEvtW2DAckInfo * evt    = (CEvtW2DAckInfo*)e;
+        IDBFolderSql * folder   = getDataBase(evt->db, evt->host);
+        if(folder)
+        {
+            folder->update(evt);
+            if(evt->updateLostFound)
+            {
+                folder->updateLostFound();
+                folder->announceChange();
+            }
+        }
+        e->accept();
+        return true;
+    }
+
+    case eEvtW2DCreate:
+    {
+        CGisListDBEditLock lock(true, this, "event");
+        CEvtW2DCreate * evt = (CEvtW2DCreate*)e;
+        IDBFolderSql * db   = getDataBase(evt->db, evt->host);
+        if(db)
+        {
+            quint64 idChild = 0;
+            IDBFolder * folder = db->getFolder(evt->idParent);
+            if(folder)
+            {
+                idChild = folder->addFolder(evt->type, evt->name);
+            }
+            else
+            {
+                idChild = IDBFolder::addFolderToDb(evt->type, evt->name, evt->idParent, db->getDb());
+            }
+
+            if(idChild)
+            {
+                if(folder)
+                {
+                    folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+                }
+
+                evt->idChild = idChild;
+                CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(idChild, evt->db);
+                CGisWorkspace::self().postEventForWks(evt1);
+            }
+
+            db->announceChange();
+        }
+        e->accept();
+        return true;
+    }
+    }
+
+    return QTreeWidget::event(e);
+}
+
+void CGisListDB::slotContextMenu(const QPoint& point)
+{
+    QPoint p = mapToGlobal(point);
+
+    if(selectedItems().isEmpty())
+    {
+        menuNone->exec(p);
+        return;
+    }
+
+    bool isSingleSelection  = selectedItems().count() == 1;
+
+    actionUpdate->setEnabled(true);
+    actionAddFolder->setEnabled(isSingleSelection);
+    actionExportToGpx->setEnabled(isSingleSelection);
+    actionImport->setEnabled(isSingleSelection);
+
+    IDBFolderSql * database = dynamic_cast<IDBFolderSql*>(currentItem());
+    if(database)
+    {
+        bool enabled = database->getDb().isOpen();
+        actionUpdate->setEnabled(enabled);
+        actionAddFolder->setEnabled(enabled);
+        actionSearch->setEnabled(enabled);
+
+        menuDatabase->exec(p);
+
+        return;
+    }
+
+    CDBFolderLostFound * lostFound = dynamic_cast<CDBFolderLostFound*>(currentItem());
+    if(lostFound)
+    {
+        menuLostFound->exec(p);
+        return;
+    }
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder)
+    {
+        bool isGroupFolder      = folder->type() == IDBFolder::eTypeGroup;
+        actionRenameFolder->setVisible(isGroupFolder);
+        menuFolder->exec(p);
+        return;
+    }
+
+    CDBItem * item = dynamic_cast<CDBItem*>(currentItem());
+    if(item)
+    {
+        CDBFolderLostFound * lostFound = dynamic_cast<CDBFolderLostFound*>(item->parent());
+        if(lostFound)
+        {
+            menuLostFoundItem->exec(p);
+        }
+        else
+        {
+            menuItem->exec(p);
+        }
+
+        return;
+    }
+}
+
+void CGisListDB::slotAddDatabase()
+{
+    CSetupDatabase dlg(*this);
+    if(dlg.exec() != QDialog::Accepted)
+    {
+        return;
+    }
+
+    QString name = dlg.getName();
+
+    IDBFolder * folder = nullptr;
+    bool isUsable = true;
+
+    if(dlg.isSqlite())
+    {
+        QString filename = dlg.getFilename();
+        CDBFolderSqlite *sfolder = new CDBFolderSqlite(filename, name, this);
+        sfolder->setToolTip(eColumnName, sfolder->getDBInfo());
+        isUsable = sfolder->isUsable();
+        folder = sfolder;
+    }
+    else if(dlg.isMysql())
+    {
+        QString server  = dlg.getServer();
+        QString port    = dlg.getPort();
+        QString user    = dlg.getUser();
+        QString passwd  = dlg.getPasswd();
+        bool noPasswd   = dlg.noPasswd();
+
+        CDBFolderMysql *mfolder = new CDBFolderMysql(server, port, user, passwd, noPasswd, name, this);
+        mfolder->setToolTip(eColumnName, mfolder->getDBInfo());
+        isUsable = mfolder->isUsable();
+        folder = mfolder;
+    }
+    else
+    {
+        return;
+    }
+
+    if(isUsable)
+    {
+        folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+    }
+
+    emit sigChanged();
+
+    saveDatabaseConfiguration();
+}
+
+void CGisListDB::slotDelDatabase()
+{
+    IDBFolderSql *folder = dynamic_cast<IDBFolderSql*>(currentItem());
+    if(nullptr == folder)
+    {
+        return;
+    }
+
+    int res = QMessageBox::question(this, tr("Remove database..."), tr("Do you really want to remove '%1' from the list?").arg(folder->text(CGisListDB::eColumnName)), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    delete folder;
+
+    emit sigChanged();
+
+    saveDatabaseConfiguration();
+}
+
+void CGisListDB::slotAddFolder()
+{
+    CGisListDBEditLock lock(false, this, "slotAddFolder");
+
+    IDBFolder *folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(nullptr == folder)
+    {
+        return;
+    }
+
+    IDBFolder::type_e type = IDBFolder::eTypeProject;
+    QString name;
+    CSetupFolder dlg(type, name, true, this);
+    if(dlg.exec() != QDialog::Accepted)
+    {
+        return;
+    }
+
+    if(folder->addFolder(type, name) == 0)
+    {
+        return;
+    }
+
+    if(!folder->isExpanded())
+    {
+        folder->setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+        folder->setExpanded(true);
+    }
+
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder)
+    {
+        dbfolder->announceChange();
+    }
+}
+
+void CGisListDB::slotDelFolder()
+{
+    CGisListDBEditLock lock(false, this, "slotDelFolder");
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder == nullptr)
+    {
+        return;
+    }
+
+    int res = QMessageBox::question(this, tr("Delete database folder..."), tr("Are you sure you want to delete selected folders and all subfolders from the database?"), QMessageBox::Ok|QMessageBox::No);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    QList<QTreeWidgetItem*> itemsToDelete;
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        // only pick the project/other folders to copy
+        folder = dynamic_cast<IDBFolder*>(item);
+        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
+        {
+            continue;
+        }
+
+
+        folder->remove();
+        // Because some items can be parent of other selected items
+        // it's a bad idea to delete them asap. Better collect them first.
+        itemsToDelete << folder;
+    }
+
+    // iterate over all items to be deleted.
+    for(QTreeWidgetItem * item : itemsToDelete)
+    {
+        // Test if the item's parent is also in the list.
+        // If it is skip it because it will be deleted together with its parent.
+        if(itemsToDelete.contains(item->parent()))
+        {
+            continue;
+        }
+
+        delete item;
+    }
+
+    dbfolder->updateLostFound();
+    dbfolder->announceChange();
+}
+
+void CGisListDB::slotCopyFolder()
+{
+    CGisListDBEditLock lock(false, this, "slotCopyFolder");
+
+    // no way to continue if the current item is not a folder (we need the database it is attached to)
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    // get the database the folder is attached to
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder == nullptr)
+    {
+        return;
+    }
+
+    // next we need to get the target folder
+    // NOTE: By pre-setting db and host, we limit the selection to the current database
+    quint64 idTarget    = 0;
+    QString db          = folder->getDBName();
+    QString host        = folder->getDBHost();
+
+    CSelectDBFolder dlg(idTarget, db, host, this);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+
+    // get a pointer to the parent folder for later use.
+    IDBFolder * target = dbfolder->getFolder(idTarget);
+    if(target == nullptr)
+    {
+        return;
+    }
+
+    // --- at this point we should have all data to perform the copy without interruption ---
+
+    // now iterate over all selected items
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        // only pick the project/other folders to copy
+        folder = dynamic_cast<IDBFolder*>(item);
+        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
+        {
+            continue;
+        }
+
+        IDBFolder * parent = dynamic_cast<IDBFolder*>(folder->parent());
+        if((parent == nullptr) || (parent->getId() == idTarget) || (folder->getId() == idTarget))
+        {
+            // skip operation if the current parent is the same as the traget parent
+            continue;
+        }
+
+
+        dbfolder->copyFolder(folder->getId(), idTarget);
+    }
+
+    // tell the parent folder to show all changes
+    target->update();
+    // tell other clients to show changes
+    dbfolder->announceChange();
+}
+
+void CGisListDB::slotMoveFolder()
+{
+    CGisListDBEditLock lock(false, this, "slotMoveFolder");
+
+    // no way to continue if the current item is not a folder (we need the database it is attached to)
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    // get the database the folder is attached to
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder == nullptr)
+    {
+        return;
+    }
+
+    // next we need to get the target folder
+    // NOTE: By pre-setting db and host, we limit the selection to the current database
+    quint64 idTarget    = 0;
+    QString db          = folder->getDBName();
+    QString host        = folder->getDBHost();
+
+    CSelectDBFolder dlg(idTarget, db, host, this);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+
+    // get a pointer to the parent folder for later use.
+    IDBFolder * target = dbfolder->getFolder(idTarget);
+    if(target == nullptr)
+    {
+        return;
+    }
+
+    // --- at this point we should have all data to perform the copy without interruption ---
+
+    // now iterate over all selected items
+    QList<IDBFolder*> foldersToDelete;
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        // only pick the project/other folders to copy
+        folder = dynamic_cast<IDBFolder*>(item);
+        if((folder == nullptr) || (folder->type() < IDBFolder::eTypeGroup))
+        {
+            continue;
+        }
+
+        IDBFolder * parent = dynamic_cast<IDBFolder*>(folder->parent());
+        if((parent == nullptr) || (parent->getId() == idTarget))
+        {
+            // skip operation if the current parent is the same as the target parent
+            continue;
+        }
+
+        if(target->isSiblingFrom(folder))
+        {
+            QMessageBox::warning(this, tr("Bad operation...."), tr("The target folder is a subfolder of the one to move. This will not work."), QMessageBox::Abort);
+            continue;
+        }
+
+        // copy to new location
+        dbfolder->copyFolder(folder->getId(), idTarget);
+        // Because some items can be parent of other selected items
+        // it's a bad idea to delete them asap. Better collect them first.
+        foldersToDelete << folder;
+    }
+
+    // iterate over all items to be deleted.
+    for(IDBFolder * folder : foldersToDelete)
+    {
+        // Test if the item's parent is also in the list.
+        // If it is skip it because it will be deleted together with it's parent.
+        if(foldersToDelete.contains(dynamic_cast<IDBFolder*>(folder->parent())))
+        {
+            continue;
+        }
+
+        folder->remove();
+        delete folder;
+    }
+
+    // tell the parent folder to show all changes
+    target->update();
+    // tell other clients to show changes
+    dbfolder->announceChange();
+}
+
+void CGisListDB::slotRenameFolder()
+{
+    CGisListDBEditLock lock(false, this, "slotRenameFolder");
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    // get the database the folder is attached to
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder == nullptr)
+    {
+        return;
+    }
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        folder = dynamic_cast<IDBFolder*>(item);
+        if((folder == nullptr) || (folder->type() != IDBFolder::eTypeGroup))
+        {
+            continue;
+        }
+
+
+        QString name1 = folder->getName();
+        QString name2 = QInputDialog::getText(this, tr("Folder name..."), tr("Rename folder:"), QLineEdit::Normal, name1);
+
+        if(!name2.isEmpty() && (name1 != name2))
+        {
+            folder->setName(name2);
+        }
+    }
+
+    // tell other clients to show changes
+    dbfolder->announceChange();
+}
+
+void CGisListDB::slotDelLostFound()
+{
+    CGisListDBEditLock lock(false, this, "slotDelLostFound");
+    CDBFolderLostFound * folder = dynamic_cast<CDBFolderLostFound*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    int res = QMessageBox::question(this, tr("Remove items..."), tr("Are you sure you want to delete all items from Lost&Found? This will remove them permanently."), QMessageBox::Ok|QMessageBox::No);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotDelLostFound");
+    folder->clear();
+    CCanvas::restoreOverrideCursor("slotDelLostFound");
+
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder)
+    {
+        dbfolder->announceChange();
+    }
+}
+
+void CGisListDB::slotDelLostFoundItem()
+{
+    CGisListDBEditLock lock(false, this, "slotDelLostFoundItem");
+
+    int res = QMessageBox::question(this, tr("Remove items..."), tr("Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently."), QMessageBox::Ok|QMessageBox::No);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotDelLostFoundItem");
+    QSet<CDBFolderLostFound*> folders;
+    QList<QTreeWidgetItem*> delItems;
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        CDBItem * dbItem            = dynamic_cast<CDBItem*>(item);
+        if(dbItem == nullptr)
+        {
+            continue;
+        }
+
+        CDBFolderLostFound * folder = dynamic_cast<CDBFolderLostFound*>(dbItem->parent());
+        if(folder == nullptr)
+        {
+            continue;
+        }
+
+        if(folder->delItem(dbItem))
+        {
+            delItems << dbItem;
+            folders << folder;
+        }
+    }
+
+    qDeleteAll(delItems);
+    for(CDBFolderLostFound* folder : folders)
+    {
+        folder->update();
+
+        IDBFolderSql * dbfolder = folder->getDBFolder();
+        if(dbfolder)
+        {
+            dbfolder->announceChange();
+        }
+    }
+    CCanvas::restoreOverrideCursor("slotDelLostFoundItem");
+}
+
+
+void CGisListDB::slotItemExpanded(QTreeWidgetItem * item)
+{
+    CGisListDBEditLock lock(true, this, "slotItemExpanded");
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    folder->expanding();
+}
+
+void CGisListDB::slotDelItem()
+{
+    CGisListDBEditLock lock(false, this, "slotDelItem");
+
+    int last = QMessageBox::NoButton;
+
+    QSet<IDBFolder*>        folders;
+    QList<QTreeWidgetItem*> dbItems;
+    QSet<IDBFolderSql*>     dbFolders;
+
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
+        if(dbItem == nullptr)
+        {
+            continue;
+        }
+
+        IDBFolder * folder = dynamic_cast<IDBFolder*>(dbItem->parent());
+        if(folder == nullptr)
+        {
+            continue;
+        }
+
+        if(last != QMessageBox::YesToAll)
+        {
+            QString msg = tr("Are you sure you want to delete '%1' from folder '%2'?").arg(dbItem->text(CGisListDB::eColumnName)).arg(folder->text(CGisListDB::eColumnName));
+            last = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
+        }
+        if(last == QMessageBox::No)
+        {
+            continue;
+        }
+        if(last == QMessageBox::Cancel)
+        {
+            return;
+        }
+
+        dbItem->remove();
+
+        folders << folder;
+        dbItems << dbItem;
+        dbFolders << folder->getDBFolder();
+    }
+
+    qDeleteAll(dbItems);
+    for(IDBFolderSql * dbFolder : dbFolders)
+    {
+        dbFolder->updateLostFound();
+        dbFolder->announceChange();
+    }
+
+    // tell all folders to update their statistics and waypoint/track correlations
+    for(IDBFolder * folder : folders)
+    {
+        folder->updateItemsOnWks();
+    }
+}
+
+void CGisListDB::slotItemChanged(QTreeWidgetItem * item, int column)
+{
+    if(isInternalEdit)
+    {
+        return;
+    }
+    CGisListDBEditLock lock(true, this, "slotItemChanged");
+
+    if(column == CGisListDB::eColumnCheckbox)
+    {
+        IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
+        if(folder != nullptr)
+        {
+            folder->toggle();
+
+            // tell folder to update its statistics and waypoint/track correlations
+            folder->updateItemsOnWks();
+            return;
+        }
+
+        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
+        if(dbItem != nullptr)
+        {
+            dbItem->toggle();
+
+            // tell folder to update its statistics and waypoint/track correlations
+            folder = dynamic_cast<IDBFolder*>(dbItem->parent());
+            if(folder)
+            {
+                folder->updateItemsOnWks();
+            }
+            return;
+        }
+    }
+}
+
+void CGisListDB::slotUpdateDatabase()
+{
+    CGisListDBEditLock lock(true, this, "slotUpdateDatabase");
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem* item : items)
+    {
+        IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
+        if(folder == nullptr)
+        {
+            continue;
+        }
+
+        if(folder->type() == IDBFolder::eTypeDatabase)
+        {
+            folder->update();
+
+            CEvtD2WReload * evt = new CEvtD2WReload(folder->getDBName());
+            CGisWorkspace::self().postEventForWks(evt);
+        }
+    }
+}
+
+void CGisListDB::slotSearchDatabase()
+{
+    CGisListDBEditLock lock(false, this, "slotSearchDatabase");
+
+    IDBFolder * db = dynamic_cast<IDBFolder*>(currentItem());
+    if(db == nullptr)
+    {
+        return;
+    }
+
+    isInternalEdit--;
+    dlgSearch = new CSearchDatabase(*db,this);
+    connect(dlgSearch.data(), &CSearchDatabase::sigItemChanged, this, &CGisListDB::slotItemChanged);
+    dlgSearch->exec();
+    delete dlgSearch;
+    isInternalEdit++;
+}
+
+
+void CGisListDB::slotReadyRead()
+{
+    CGisListDBEditLock lock(true, this, "slotReadyRead");
+
+    while(socket->hasPendingDatagrams())
+    {
+        QByteArray datagram;
+        datagram.resize(socket->pendingDatagramSize());
+        QHostAddress sender;
+        quint16 senderPort;
+
+        socket->readDatagram(datagram.data(), datagram.size(), &sender, &senderPort);
+
+        QDataStream stream(&datagram, QIODevice::ReadOnly);
+        stream.setByteOrder(QDataStream::LittleEndian);
+        stream.setVersion(QDataStream::Qt_5_2);
+
+        quint32 msgId;
+        quint32 tan;
+        qint32 id;
+        QString driver;
+        QString dbName;
+        QString dbHost;
+
+        stream >> msgId >> tan >> id >> driver >> dbName >> dbHost;
+
+        if((lastTan == tan) || (msgId != 0))
+        {
+            continue;
+        }
+
+        lastTan = tan;
+
+        // check for our own message
+        if(id == CMainWindow::self().id)
+        {
+            continue;
+        }
+
+        qDebug() << "Receive database update from:" << sender << senderPort;
+        qDebug() << "with" << "tan:" << lastTan << "app ID:" << id << "driver:" << driver << "DB name:" << dbName << "DB host:" << dbHost;
+
+        IDBFolderSql * folder = getDataBase(dbName, dbHost);
+        if(folder)
+        {
+            folder->update();
+
+            CEvtD2WReload * evt = new CEvtD2WReload(folder->getDBName());
+            CGisWorkspace::self().postEventForWks(evt);
+        }
+    }
+}
+
+void CGisListDB::slotExportToGpx()
+{
+    CGisListDBEditLock lock(false, this, "slotExportToGpx");
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    folder->exportToGpx();
+}
+
+void CGisListDB::slotImport()
+{
+    CGisListDBEditLock lock(false, this, "slotImport");
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(currentItem());
+    if(folder == nullptr)
+    {
+        return;
+    }
+
+    SETTINGS;
+    QString path   = cfg.value("Paths/lastGisPath",   QDir::homePath()).toString();
+    QString filter = cfg.value("Paths/lastGisFilter", IGisProject::filedialogAllSupported).toString();
+
+    QStringList filenames = QFileDialog::getOpenFileNames(this, tr("Import GIS Data..."), path, IGisProject::filedialogLoadFilters, &filter);
+
+    if(filenames.isEmpty())
+    {
+        return;
+    }
+
+    for(const QString& filename : filenames)
+    {
+        CDBProject * prjDb = new CDBProject(filename, folder, nullptr);
+        if(prjDb->isValid())
+        {
+            prjDb->save();
+        }
+
+        delete prjDb;
+    }
+
+    IDBFolderSql * dbfolder = folder->getDBFolder();
+    if(dbfolder)
+    {
+        dbfolder->announceChange();
+    }
+
+    path = QFileInfo(filenames.first()).absolutePath();
+    cfg.setValue("Paths/lastGisPath",   path);
+    cfg.setValue("Paths/lastGisFilter", filter);
+}
diff --git a/src/qmapshack/gis/CGisListDB.h b/src/qmapshack/gis/CGisListDB.h
new file mode 100644
index 0000000..9b8c3ba
--- /dev/null
+++ b/src/qmapshack/gis/CGisListDB.h
@@ -0,0 +1,117 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISLISTDB_H
+#define CGISLISTDB_H
+
+#include <QPointer>
+#include <QSqlDatabase>
+#include <QTreeWidget>
+
+struct action_t;
+class QMenu;
+class IDBFolderSql;
+class QUdpSocket;
+class CSearchDatabase;
+
+class CGisListDB : public QTreeWidget
+{
+    Q_OBJECT
+public:
+    CGisListDB(QWidget * parent);
+    virtual ~CGisListDB();
+
+    enum column_e
+    {
+        eColumnCheckbox = 0
+        ,eColumnName = 1
+        ,eColumnTime = 2
+    };
+
+    bool hasDatabase(const QString& name);
+    bool event(QEvent * e) override;
+
+    void addGlobalActions(const QList<QAction*> actions);
+
+signals:
+    void sigChanged();
+
+private slots:
+    void slotContextMenu(const QPoint& point);
+    void slotAddFolder();
+    void slotDelFolder();
+    void slotDelLostFound();
+    void slotDelLostFoundItem();
+    void slotItemExpanded(QTreeWidgetItem * item);
+    void slotItemChanged(QTreeWidgetItem * item, int column);
+    void slotAddDatabase();
+    void slotDelDatabase();
+    void slotDelItem();
+    void slotUpdateDatabase();
+    void slotSearchDatabase();
+    void slotRenameFolder();
+    void slotCopyFolder();
+    void slotMoveFolder();
+    void slotReadyRead();
+    void slotExportToGpx();
+    void slotImport();
+
+private:
+    friend class CGisListDBEditLock;
+
+    IDBFolderSql *getDataBase(const QString& name, const QString& host);
+    void saveDatabaseConfiguration();
+
+    int isInternalEdit = 0;
+
+    QMenu * menuNone;
+    QAction * actionAddDatabase;
+
+    QMenu * menuFolder;
+    QAction * actionAddFolder;
+    QAction * actionRenameFolder;
+    QAction * actionCopyFolder;
+    QAction * actionMoveFolder;
+    QAction * actionDelFolder;
+    QAction * actionExportToGpx;
+    QAction * actionImport;
+
+    QMenu * menuDatabase;
+    QAction * actionDelDatabase;
+    QAction * actionUpdate;
+    QAction * actionSearch;
+
+
+    QMenu * menuItem;
+    QAction * actionDelItem;
+
+    QMenu * menuLostFound;
+    QAction * actionDelLostFound;
+
+    QMenu * menuLostFoundItem;
+    QAction * actionDelLostFoundItem;
+
+    QUdpSocket * socket;
+
+    quint32 lastTan;
+
+    QPointer<CSearchDatabase> dlgSearch;
+};
+
+#endif //CGISLISTDB_H
+
diff --git a/src/qmapshack/gis/CGisListWks.cpp b/src/qmapshack/gis/CGisListWks.cpp
new file mode 100644
index 0000000..09f672b
--- /dev/null
+++ b/src/qmapshack/gis/CGisListWks.cpp
@@ -0,0 +1,2159 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
+#include "device/CDeviceWatcherLinux.h"
+#endif
+#ifdef Q_OS_WIN
+#include "device/CDeviceWatcherWindows.h"
+#endif
+#ifdef Q_OS_MAC
+#include "device/CDeviceWatcherMac.h"
+#endif
+#include "device/IDevice.h"
+#include "gis/CGisDatabase.h"
+#include "gis/CGisListWks.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/CSelDevices.h"
+#include "gis/IGisItem.h"
+#include "gis/db/CDBProject.h"
+#include "gis/db/CLostFoundProject.h"
+#include "gis/db/CSelectDBFolder.h"
+#include "gis/db/CSetupFolder.h"
+#include "gis/db/macros.h"
+#include "gis/fit/CFitProject.h"
+#include "gis/gpx/CGpxProject.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/qlb/CQlbProject.h"
+#include "gis/qms/CQmsProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/search/CSearchGoogle.h"
+#include "gis/slf/CSlfProject.h"
+#include "gis/suunto/CLogProject.h"
+#include "gis/suunto/CSmlProject.h"
+#include "gis/tcx/CTcxProject.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSelectCopyAction.h"
+#include "helpers/CSelectProjectDialog.h"
+#include "helpers/CSettings.h"
+#include "helpers/CWptIconDialog.h"
+#include "setup/IAppSetup.h"
+#include "widgets/CColorChooser.h"
+
+#include <QApplication>
+#include <QtSql>
+#include <QtWidgets>
+
+using std::bind;
+
+#undef  DB_VERSION
+#define DB_VERSION 3
+
+class CGisListWksEditLock
+{
+public:
+    CGisListWksEditLock(bool waitCursor, QMutex& mutex) : mutex(mutex), waitCursor(waitCursor)
+    {
+        if(waitCursor)
+        {
+            CCanvas::setOverrideCursor(Qt::WaitCursor, "CGisListWksEditLock");
+        }
+        mutex.lock();
+    }
+    ~CGisListWksEditLock()
+    {
+        if(waitCursor)
+        {
+            CCanvas::restoreOverrideCursor("~CGisListWksEditLock");
+        }
+        mutex.unlock();
+    }
+private:
+    QMutex& mutex;
+    bool waitCursor;
+};
+
+CGisListWks::CGisListWks(QWidget *parent)
+    : QTreeWidget(parent)
+{
+    db = QSqlDatabase::addDatabase("QSQLITE","Workspace1");
+    QString config = QDir(IAppSetup::getPlatformInstance()->userDataPath()).filePath("workspace.db");
+    db.setDatabaseName(config);
+    db.open();
+    configDB();
+
+    menuProjectWks   = new QMenu(this);
+    actionEditPrj    = menuProjectWks->addAction(QIcon("://icons/32x32/EditDetails.png"), tr("Edit.."         ), this, SLOT(slotEditPrj()));
+    actionCopyPrj    = menuProjectWks->addAction(QIcon("://icons/32x32/Copy.png"       ), tr("Copy to..."     ), this, SLOT(slotCopyProject()));
+    actionShowOnMap  = menuProjectWks->addAction(QIcon("://icons/32x32/ShowAll.png"    ), tr("Show on Map"    ), this, SLOT(slotShowOnMap()));
+    actionHideFrMap  = menuProjectWks->addAction(QIcon("://icons/32x32/ShowNone.png"   ), tr("Hide from Map"  ), this, SLOT(slotHideFrMap()));
+
+    menuProjectWks->addSeparator();
+    actionGroup = new QActionGroup(menuProjectWks);
+    actionGroup->setExclusive(true);
+    actionSortByTime = addSortAction(menuProjectWks, actionGroup, "://icons/32x32/Time.png", tr("Sort by Time"), IGisProject::eSortFolderTime);
+    actionSortByName = addSortAction(menuProjectWks, actionGroup, "://icons/32x32/SortName.png", tr("Sort by Name"), IGisProject::eSortFolderName);
+
+    menuProjectWks->addSeparator();
+    actionAutoSave   = menuProjectWks->addAction(QIcon("://icons/32x32/AutoSave.png"), tr("Autom. Save"));
+    actionAutoSave->setCheckable(true);
+
+    menuProjectWks->addSeparator();
+    actionSave       = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGIS.png"    ), tr("Save"           ), this, SLOT(slotSaveProject()));
+    actionSaveAs     = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGISAs.png"  ), tr("Save as..."     ), this, SLOT(slotSaveAsProject()));
+    actionSaveAsStrict = menuProjectWks->addAction(QIcon("://icons/32x32/SaveGISAsGpx11.png"), tr("Save as GPX 1.1 w/o ext..."), this, SLOT(slotSaveAsStrictGpx11Project()));
+
+    menuProjectWks->addSeparator();
+    actionSyncWksDev = menuProjectWks->addAction(QIcon("://icons/32x32/Device.png"     ), tr("Send to Devices"), this, SLOT(slotSyncWksDev()));
+    actionSyncDB     = menuProjectWks->addAction(QIcon("://icons/32x32/DatabaseSync.png"      ), tr("Sync. with Database"), this, SLOT(slotSyncDB()));
+
+    menuProjectWks->addSeparator();
+    actionCloseProj = menuProjectWks->addAction(QIcon("://icons/32x32/Close.png"       ), tr("Close"          ), this, SLOT(slotCloseProject()));
+
+    menuProjectDev  = new QMenu(this);
+    menuProjectDev->addAction(actionEditPrj);
+    menuProjectDev->addAction(actionCopyPrj);
+    menuProjectDev->addAction(actionShowOnMap);
+    menuProjectDev->addAction(actionHideFrMap);
+    menuProjectDev->addSeparator();
+    menuProjectDev->addSeparator();
+    actionSyncDevWks= menuProjectDev->addAction(QIcon("://icons/32x32/Device.png"),tr("Update Project on Device"), this, SLOT(slotSyncDevWks()));
+    menuProjectDev->addSeparator();
+    actionDelProj   = menuProjectDev->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"),                this, SLOT(slotDeleteProject()));
+
+    menuProjectTrash= new QMenu(this);
+    menuProjectTrash->addAction(actionSaveAs);
+    menuProjectTrash->addAction(actionSaveAsStrict);
+    menuProjectTrash->addAction(actionCloseProj);
+
+    connect(this, &CGisListWks::customContextMenuRequested, this, &CGisListWks::slotContextMenu);
+    connect(this, &CGisListWks::itemDoubleClicked,          this, &CGisListWks::slotItemDoubleClicked);
+    connect(this, &CGisListWks::itemChanged,                this, &CGisListWks::slotItemChanged);
+
+    menuItemTrk      = new QMenu(this);
+    actionEditDetails = menuItemTrk->addAction(QIcon("://icons/32x32/EditDetails.png"),tr("Edit..."), this, SLOT(slotEditItem()));
+    actionCopyItem    = menuItemTrk->addAction(QIcon("://icons/32x32/Copy.png"),tr("Copy to..."),     this, SLOT(slotCopyItem()));
+    menuItemTrk->addSeparator();
+    actionFocusTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/TrkProfile.png"),tr("Track Profile"));
+    actionFocusTrk->setCheckable(true);
+    actionRangeTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/SelectRange.png"), tr("Select Range"           ), this, SLOT(slotRangeTrk()));
+    actionEditTrk    = menuItemTrk->addAction(QIcon("://icons/32x32/LineMove.png"),    tr("Edit Track Points"      ), this, SLOT(slotEditTrk()));
+    actionReverseTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Reverse.png"),     tr("Reverse Track"          ), this, SLOT(slotReverseTrk()));
+    actionCombineTrk = menuItemTrk->addAction(QIcon("://icons/32x32/Combine.png"),     tr("Combine Tracks"         ), this, SLOT(slotCombineTrk()));
+    actionActivityTrk= menuItemTrk->addAction(QIcon("://icons/32x32/Activity.png"), tr("Set Track Activity"), this, SLOT(slotActivityTrk()));
+    actionColorTrk   = menuItemTrk->addAction(QIcon("://icons/32x32/SelectColor.png"), tr("Set Track Color"), this, SLOT(slotColorTrk()));
+    actionCopyTrkWithWpt = menuItemTrk->addAction(QIcon("://icons/32x32/CopyTrkWithWpt.png"), tr("Copy Track with Waypoints"), this, SLOT(slotCopyTrkWithWpt()));
+    actionNogoTrk    = menuItemTrk->addAction(QIcon("://icons/32x32/NoGo.png"),   tr("Toggle Nogo-Line"       ), this, SLOT(slotNogoItem()));
+    actionNogoTrk->setCheckable(true);
+    menuItemTrk->addSeparator();
+    actionDelete    = menuItemTrk->addAction(QIcon("://icons/32x32/DeleteOne.png"),tr("Delete"), this, SLOT(slotDeleteItem()));
+    connect(menuItemTrk, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
+
+    menuItemWpt     = new QMenu(this);
+    menuItemWpt->addAction(actionEditDetails);
+    menuItemWpt->addAction(actionCopyItem);
+    menuItemWpt->addSeparator();
+    actionBubbleWpt = menuItemWpt->addAction(QIcon("://icons/32x32/Bubble.png"),  tr("Show Bubble"),       this, SLOT(slotBubbleWpt()));
+    actionBubbleWpt->setCheckable(true);
+    actionMoveWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptMove.png"), tr("Move Waypoint"),     this, SLOT(slotMoveWpt()));
+    actionProjWpt   = menuItemWpt->addAction(QIcon("://icons/32x32/WptProj.png"), tr("Proj. Waypoint..."), this, SLOT(slotProjWpt()));
+    actionEditRadiusWpt = menuItemWpt->addAction(QIcon("://icons/32x32/WptEditProx.png"), tr("Change Radius"), this, SLOT(slotEditRadiusWpt()));
+    actionDelRadiusWpt = menuItemWpt->addAction(QIcon("://icons/32x32/WptDelProx.png"), tr("Delete Radius"), this, SLOT(slotDelRadiusWpt()));
+    actionNogoWpt = menuItemWpt->addAction(QIcon("://icons/32x32/NoGo.png"),  tr("Toggle Nogo-Area"),  this, SLOT(slotNogoItem()));
+    actionNogoWpt->setCheckable(true);
+    menuItemWpt->addSeparator();
+    menuItemWpt->addAction(actionDelete);
+    connect(menuItemWpt, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
+
+    menuItemRte     = new QMenu(this);
+    menuItemRte->addAction(actionEditDetails);
+    menuItemRte->addAction(actionCopyItem);
+    menuItemRte->addSeparator();
+    actionFocusRte   = menuItemRte->addAction(QIcon("://icons/32x32/RteInstr.png"), tr("Route Instructions"));
+    actionFocusRte->setCheckable(true);
+    actionCalcRte    = menuItemRte->addAction(QIcon("://icons/32x32/Apply.png"),    tr("Calculate Route"), this, SLOT(slotCalcRte()));
+    actionResetRte   = menuItemRte->addAction(QIcon("://icons/32x32/Reset.png"),    tr("Reset Route"),     this, SLOT(slotResetRte()));
+    actionEditRte    = menuItemRte->addAction(QIcon("://icons/32x32/LineMove.png"), tr("Edit Route"),      this, SLOT(slotEditRte()));
+    actionReverseRte = menuItemRte->addAction(QIcon("://icons/32x32/Reverse.png"),  tr("Reverse Route"),   this, SLOT(slotReverseRte()));
+    actionRte2Trk    = menuItemRte->addAction(QIcon("://icons/32x32/Track.png"),    tr("Convert to Track"),this, SLOT(slotRte2Trk()));
+    actionNogoRte    = menuItemRte->addAction(QIcon("://icons/32x32/NoGo.png"),tr("Toggle Nogo-Line"),this, SLOT(slotNogoItem()));
+    actionNogoRte->setCheckable(true);
+    menuItemRte->addSeparator();
+    menuItemRte->addAction(actionDelete);
+    connect(menuItemRte, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
+
+    menuItemOvl     = new QMenu(this);
+    menuItemOvl->addAction(actionEditDetails);
+    menuItemOvl->addAction(actionCopyItem);
+    menuItemOvl->addSeparator();
+    actionEditArea  = menuItemOvl->addAction(QIcon("://icons/32x32/AreaMove.png"),tr("Edit Area Points"), this, SLOT(slotEditArea()));
+    actionNogoArea  = menuItemOvl->addAction(QIcon("://icons/32x32/NoGo.png"),tr("Toggle Nogo-Area"), this, SLOT(slotNogoItem()));
+    actionNogoArea->setCheckable(true);
+    menuItemOvl->addSeparator();
+    menuItemOvl->addAction(actionDelete);
+    connect(menuItemOvl, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
+
+    menuItem        = new QMenu(this);
+    menuItem->addAction(actionCopyItem);
+    actionRteFromWpt = menuItem->addAction(QIcon("://icons/32x32/Route.png"), tr("Create Route"), this, SLOT(slotRteFromWpt()));
+    actionSymWpt    = menuItem->addAction(QIcon("://icons/waypoints/32x32/PinBlue.png"), tr("Change Icon (sel. waypt. only)"), this, SLOT(slotSymWpt()));
+    menuItem->addAction(actionCombineTrk);
+    menuItem->addAction(actionActivityTrk);    
+    menuItem->addAction(actionColorTrk);
+    menuItem->addAction(actionDelete);
+    connect(menuItem, &QMenu::triggered, &CGisWorkspace::self(), &CGisWorkspace::slotWksItemSelectionReset);
+
+    connect(actionFocusTrk, &QAction::triggered, this, &CGisListWks::slotFocusTrk);
+    connect(actionFocusRte, &QAction::triggered, this, &CGisListWks::slotFocusRte);
+    connect(actionAutoSave, &QAction::triggered, this, &CGisListWks::slotAutoSaveProject);
+    connect(qApp, &QApplication::aboutToQuit, this, &CGisListWks::slotSaveWorkspace);
+
+    SETTINGS;
+    saveOnExit  = cfg.value("Database/saveOnExit", saveOnExit).toBool();
+    saveEvery   = cfg.value("Database/saveEvery",  saveEvery).toInt();
+
+    if(saveOnExit && (saveEvery > 0))
+    {
+        QTimer::singleShot(saveEvery * 60000, this, SLOT(slotSaveWorkspace()));
+    }
+
+#ifdef Q_OS_MAC
+    deviceWatcher = new CDeviceWatcherMac(this);
+    connect(deviceWatcher, &CDeviceWatcherMac::sigChanged, this, &CGisListWks::sigChanged);
+#else
+    #ifdef Q_OS_WIN
+    deviceWatcher = new CDeviceWatcherWindows(this);
+    connect(deviceWatcher, &CDeviceWatcherWindows::sigChanged, this, &CGisListWks::sigChanged);
+    #else
+        #ifdef HAVE_DBUS
+    deviceWatcher = new CDeviceWatcherLinux(this);
+    connect(deviceWatcher, &CDeviceWatcherLinux::sigChanged, this, &CGisListWks::sigChanged);
+        #endif // HAVE_DBUS
+    #endif // Q_OS_WIN
+#endif // Q_OS_MAC
+}
+
+CGisListWks::~CGisListWks()
+{
+}
+
+void CGisListWks::configDB()
+{
+    QSqlQuery query(db);
+
+    QUERY_RUN("PRAGMA locking_mode=EXCLUSIVE", return )
+    QUERY_RUN("PRAGMA synchronous=OFF",        return )
+    QUERY_RUN("PRAGMA temp_store=MEMORY",      return )
+    QUERY_RUN("PRAGMA default_cache_size=50",  return )
+    QUERY_RUN("PRAGMA page_size=8192",         return )
+
+    // When migrating the database these tables are used.
+    // Due to caching they can't be dropped right after the
+    // migration. That is why we look for them on startup.
+    // And delete them as a second chance.
+    if(query.exec("select * from tmp_workspace"))
+    {
+        QUERY_RUN("DROP TABLE tmp_workspace;", return );
+    }
+
+
+    if(!query.exec("SELECT version FROM versioninfo"))
+    {
+        initDB();
+    }
+    else if(query.next())
+    {
+        int version = query.value(0).toInt();
+        if(version != DB_VERSION)
+        {
+            migrateDB(version);
+        }
+    }
+    else
+    {
+        initDB();
+    }
+}
+
+void CGisListWks::initDB()
+{
+    QSqlQuery query(db);
+
+    if(query.exec( "CREATE TABLE versioninfo ( version TEXT )"))
+    {
+        query.prepare( "INSERT INTO versioninfo (version) VALUES(:version)");
+        query.bindValue(":version", DB_VERSION);
+        QUERY_EXEC();
+    }
+
+    QUERY_RUN("CREATE TABLE workspace ("
+              "id             INTEGER PRIMARY KEY AUTOINCREMENT,"
+              "type           INTEGER NOT NULL,"
+              "name           TEXT NOT NULL,"
+              "keyqms         TEXT NOT NULL,"
+              "changed        BOOLEAN DEFAULT FALSE,"
+              "visible        BOOLEAN DEFAULT TRUE,"
+              "data           BLOB NOT NULL"
+              ")", NO_CMD)
+}
+
+void CGisListWks::migrateDB(int version)
+{
+    qDebug() << "workspace.db has version " << version << ", migration to version " << DB_VERSION << " required";
+
+    // try to migrate between the database versions step by step (as soon as applicable)
+    if(version < 2)
+    {
+        migrateDB1to2();
+    }
+    if(version < 3)
+    {
+        migrateDB2to3();
+    }
+
+    // save the new version to the database
+    QSqlQuery query(db);
+    query.prepare( "UPDATE versioninfo set version=:version");
+    query.bindValue(":version", DB_VERSION);
+    QUERY_EXEC();
+}
+
+void CGisListWks::migrateDB1to2()
+{
+    qDebug() << "migrating workspace.db from version 1 to version 2";
+    // add a new column `visible` to the database
+    // the default value is `true`, as - by default in older versions of QMS - all saved projects
+    // have been loaded and shown on the map directly after starting
+    QSqlQuery query(db);
+    QUERY_RUN("ALTER TABLE workspace ADD COLUMN visible BOOLEAN DEFAULT TRUE;", NO_CMD)
+}
+
+void CGisListWks::migrateDB2to3()
+{
+    QSqlQuery query(db);
+
+    QUERY_RUN("BEGIN TRANSACTION;",                             return )
+    QUERY_RUN("ALTER TABLE workspace RENAME TO tmp_workspace;", return )
+    QUERY_RUN("CREATE TABLE workspace ("
+              "id             INTEGER PRIMARY KEY AUTOINCREMENT,"
+              "type           INTEGER NOT NULL,"
+              "name           TEXT NOT NULL,"
+              "keyqms         TEXT NOT NULL,"
+              "changed        BOOLEAN DEFAULT FALSE,"
+              "visible        BOOLEAN DEFAULT TRUE,"
+              "data           BLOB NOT NULL"
+              ")", return );
+    QUERY_RUN("INSERT INTO workspace(id,type,name,keyqms,changed,visible,data) SELECT * FROM tmp_workspace;", return )
+    QUERY_RUN("COMMIT;",                                                                                      return )
+    QUERY_RUN("DROP TABLE tmp_workspace;",                                                                    return )
+}
+
+void CGisListWks::setExternalMenu(QMenu * project)
+{
+    menuNone = project;
+    connect(CMainWindow::self().findChild<QAction*>("actionAddEmptyProject"),  &QAction::triggered, this, &CGisListWks::slotAddEmptyProject);
+    connect(CMainWindow::self().findChild<QAction*>("actionCloseAllProjects"), &QAction::triggered, this, &CGisListWks::slotCloseAllProjects);
+    connect(CMainWindow::self().findChild<QAction*>("actionSearchGoogle"),     &QAction::triggered, this, &CGisListWks::slotSearchGoogle);
+}
+
+QAction * CGisListWks::addSortAction(QMenu * menu, QActionGroup * actionGroup, const QString& icon, const QString& text, IGisProject::sorting_folder_e mode)
+{
+    QAction * action = menu->addAction(QIcon(icon), text);
+    action->setCheckable(true);
+
+    auto func = std::bind(&CGisListWks::slotSetSortMode, this, mode, std::placeholders::_1);
+    connect(action, &QAction::toggled, this, func);
+
+    actionGroup->addAction(action);
+
+    return action;
+}
+
+void CGisListWks::dragMoveEvent(QDragMoveEvent  * e )
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QTreeWidgetItem * item1 = currentItem();
+    QTreeWidgetItem * item2 = itemAt(e->pos());
+
+    // changing the item order is only valid for single selected items
+    if(selectedItems().count() == 1)
+    {
+        /*
+            What's happening here?
+
+            1) Cast current item and item under cursor to GIS item type
+            2) If type matches for both test for common parent
+            2.1) common parent->  move
+            2.1) different parent -> copy
+            3) go on with dragMoveEvent();
+
+         */
+        CGisItemTrk * trk1 = dynamic_cast<CGisItemTrk*>(item1);
+        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(item2);
+
+        if(trk1 && trk2)
+        {
+            e->setDropAction( trk1->parent() == trk2->parent() ? Qt::MoveAction : Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+
+        CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(item1);
+        CGisItemWpt * wpt2 = dynamic_cast<CGisItemWpt*>(item2);
+
+        if(wpt1 && wpt2)
+        {
+            e->setDropAction( wpt1->parent() == wpt2->parent() ? Qt::MoveAction : Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+
+        CGisItemRte * rte1 = dynamic_cast<CGisItemRte*>(item1);
+        CGisItemRte * rte2 = dynamic_cast<CGisItemRte*>(item2);
+
+        if(rte1 && rte2)
+        {
+            e->setDropAction( rte1->parent() == rte2->parent() ? Qt::MoveAction : Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+
+        CGisItemOvlArea * area1 = dynamic_cast<CGisItemOvlArea*>(item1);
+        CGisItemOvlArea * area2 = dynamic_cast<CGisItemOvlArea*>(item2);
+
+        if(area1 && area2)
+        {
+            e->setDropAction( area1->parent() == area2->parent() ? Qt::MoveAction : Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+
+        /*
+            Never move/copy projects on devices. Data has to be removed or changed
+            to store a project and it's items on a device. Moving it back to the
+            workspace would conflict with the original project. To much hassle to
+            resolve this properly.
+         */
+        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
+        if(proj1 && proj1->isOnDevice())
+        {
+            e->setDropAction(Qt::IgnoreAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+    }
+
+    /*
+        Test for other project, to change project order. But if other project
+        is on a device block the request. A project has to be copied to the
+        device via it's device item.
+     */
+    IGisProject * proj2 = dynamic_cast<IGisProject*>(item2);
+    if(proj2)
+    {
+        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
+        if(proj1)
+        {
+            e->setDropAction(proj2->isOnDevice() ? Qt::IgnoreAction : Qt::MoveAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+
+        IGisItem * gisItem1 = dynamic_cast<IGisItem*>(item1);
+        if(gisItem1)
+        {
+            e->setDropAction(Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+    }
+
+    /*
+        Test for device as drop target. A device will copy the project into
+        it's own supported format.
+     */
+    IDevice * device = dynamic_cast<IDevice*>(item2);
+    if(device)
+    {
+        IGisProject * proj1 = dynamic_cast<IGisProject*>(item1);
+        if(proj1 && !proj1->isOnDevice())
+        {
+            e->setDropAction(Qt::CopyAction);
+            QTreeWidget::dragMoveEvent(e);
+            return;
+        }
+    }
+
+    e->setDropAction(Qt::IgnoreAction);
+    QTreeWidget::dragMoveEvent(e);
+}
+
+void CGisListWks::dropEvent( QDropEvent  * e )
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items   = selectedItems();
+    if(items.isEmpty())
+    {
+        return;
+    }
+
+    int lastResult = CSelectCopyAction::eResultNone;
+
+    // go on with item insertion
+    /*
+        What's happening here?
+
+        for single selected items do:
+        1) Test if item will be inserted above ore below item under cursor.
+        2) Cast current item and item under cursor to GIS item type
+        3) If type matches for both test for common parent
+        3.1) common parent-> go on with default drop event
+        3.1) different parent -> create a copy and insert it index
+        4) signal change of project
+
+        for single and multiple selected items, do:
+        5) Test if item under cursor is a project
+        6) If project and project is not item's project create a copy
+
+     */
+    if(items.size() == 1)
+    {
+        // calc. index offset (below/above item)
+        QRect r = visualItemRect(itemAt(e->pos()));
+        int y1 = r.top() + r.height()/2;
+        int y2 = e->pos().y();
+        int off = y2 > y1 ? 1 : 0;
+
+        IGisProject * prj1 = dynamic_cast<IGisProject*>(currentItem());
+        IGisProject * prj2 = dynamic_cast<IGisProject*>(itemAt(e->pos()));
+        if(prj1 && prj2)
+        {
+            prj2->setFlags(prj2->flags() & ~Qt::ItemIsDropEnabled);
+            QTreeWidget::dropEvent(e);
+            prj2->setFlags(prj2->flags() |  Qt::ItemIsDropEnabled);
+            emit sigChanged();
+            return;
+        }
+
+        CGisItemWpt * wpt1 = dynamic_cast<CGisItemWpt*>(currentItem());
+        CGisItemWpt * wpt2 = dynamic_cast<CGisItemWpt*>(itemAt(e->pos()));
+
+        if(wpt1 && wpt2)
+        {
+            if(wpt1->parent() == wpt2->parent())
+            {
+                QTreeWidget::dropEvent(e);
+            }
+            else
+            {
+                IGisProject * project = dynamic_cast<IGisProject*>(wpt2->parent());
+                if(project)
+                {
+                    project->insertCopyOfItem(wpt1, off, lastResult);
+                }
+            }
+            emit sigChanged();
+            return;
+        }
+
+        CGisItemTrk * trk1 = dynamic_cast<CGisItemTrk*>(currentItem());
+        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(itemAt(e->pos()));
+
+        if(trk1 && trk2)
+        {
+            if(trk1->parent() == trk2->parent())
+            {
+                QTreeWidget::dropEvent(e);
+            }
+            else
+            {
+                IGisProject * project = dynamic_cast<IGisProject*>(trk2->parent());
+                if(project)
+                {
+                    project->insertCopyOfItem(trk1, off, lastResult);
+                }
+            }
+            emit sigChanged();
+            return;
+        }
+
+        CGisItemRte * rte1 = dynamic_cast<CGisItemRte*>(currentItem());
+        CGisItemRte * rte2 = dynamic_cast<CGisItemRte*>(itemAt(e->pos()));
+
+        if(rte1 && rte2)
+        {
+            if(rte1->parent() == rte2->parent())
+            {
+                QTreeWidget::dropEvent(e);
+            }
+            else
+            {
+                IGisProject * project = dynamic_cast<IGisProject*>(rte2->parent());
+                if(project)
+                {
+                    project->insertCopyOfItem(rte1, off, lastResult);
+                }
+            }
+            emit sigChanged();
+            return;
+        }
+
+        CGisItemOvlArea * area1 = dynamic_cast<CGisItemOvlArea*>(currentItem());
+        CGisItemOvlArea * area2 = dynamic_cast<CGisItemOvlArea*>(itemAt(e->pos()));
+
+        if(area1 && area2)
+        {
+            if(area1->parent() == area2->parent())
+            {
+                QTreeWidget::dropEvent(e);
+            }
+            else
+            {
+                IGisProject * project = dynamic_cast<IGisProject*>(area2->parent());
+                if(project)
+                {
+                    project->insertCopyOfItem(area1, off, lastResult);
+                }
+            }
+            emit sigChanged();
+            return;
+        }
+    }
+
+    // check if item at position is a project and insert a copy of all selected items
+    IGisProject * project = dynamic_cast<IGisProject*>(itemAt(e->pos()));
+    if(project)
+    {
+        project->blockUpdateItems(true);
+
+        int cnt = 1;
+        int N   = items.size();
+        PROGRESS_SETUP(tr("Drop items..."), 0, N, this);
+
+        for(QTreeWidgetItem * item : items)
+        {
+            PROGRESS(cnt++, break);
+
+            IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+            if(gisItem)
+            {
+                project->insertCopyOfItem(gisItem, NOIDX, lastResult);
+            }
+        }
+
+        project->blockUpdateItems(false);
+    }
+
+    IDevice * device = dynamic_cast<IDevice*>(itemAt(e->pos()));
+    if(device)
+    {
+        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", "");
+            }
+        }
+    }
+
+    emit sigChanged();
+}
+
+void CGisListWks::addProject(IGisProject *proj)
+{
+    if(!proj->isValid())
+    {
+        return;
+    }
+
+    addTopLevelItem(proj);
+
+    // move project up the list until there a re only projects, no devices
+    int newIdx      = NOIDX;
+    const int myIdx = topLevelItemCount() - 1;
+    for(int i = myIdx - 1; i >= 0; i--)
+    {
+        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(i));
+        if(nullptr == device)
+        {
+            break;
+        }
+
+        newIdx = i;
+    }
+
+    if(newIdx != NOIDX)
+    {
+        takeTopLevelItem(myIdx);
+        insertTopLevelItem(newIdx, proj);
+    }
+}
+
+void CGisListWks::removeDevice(const QString& key)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    for(int i = 0; i < topLevelItemCount(); i++)
+    {
+        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(i));
+        if(device && device->getKey() == key)
+        {
+            delete device;
+            emit sigChanged();
+            return;
+        }
+    }
+}
+
+bool CGisListWks::hasProject(IGisProject * project)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QString key = project->getKey();
+
+    for(int i = 0; i < topLevelItemCount(); i++)
+    {
+        IGisProject * item = dynamic_cast<IGisProject*>(topLevelItem(i));
+        if(item && item->getKey() == key && item != project)
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+IGisProject * CGisListWks::getProjectByKey(const QString& key)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    for(int i = 0; i < topLevelItemCount(); i++)
+    {
+        IGisProject * item = dynamic_cast<IGisProject*>(topLevelItem(i));
+        if(item && item->getKey() == key)
+        {
+            return item;
+        }
+    }
+    return nullptr;
+}
+
+CDBProject * CGisListWks::getProjectById(quint64 id, const QString& db)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    for(int i = 0; i < topLevelItemCount(); i++)
+    {
+        CDBProject * item = dynamic_cast<CDBProject*>(topLevelItem(i));
+        if(item && item->getId() == id && item->getDBName() == db)
+        {
+            return item;
+        }
+    }
+    return nullptr;
+}
+
+void CGisListWks::slotSaveWorkspace()
+{
+    CGisListWksEditLock lock(true,IGisItem::mutexItems);
+
+    if(!saveOnExit)
+    {
+        return;
+    }
+
+    QSqlQuery query(db);
+    QUERY_RUN("DELETE FROM workspace", return )
+
+    qDebug() << "slotSaveWorkspace()";
+
+    const int total = topLevelItemCount();
+    PROGRESS_SETUP(tr("Saving workspace. Please wait."), 0, total, this);
+
+    for(int i = 0; i < total; i++)
+    {
+        PROGRESS(i, return );
+
+        IGisProject * project = dynamic_cast<IGisProject*>(topLevelItem(i));
+        if(nullptr == project)
+        {
+            continue;
+        }
+
+        QByteArray data;
+        QDataStream stream(&data, QIODevice::WriteOnly);
+        stream.setVersion(QDataStream::Qt_5_2);
+        stream.setByteOrder(QDataStream::LittleEndian);
+
+        project->IGisProject::operator>>(stream);
+
+        query.prepare("INSERT INTO workspace (type, keyqms, name, changed, visible, data) VALUES (:type, :keyqms, :name, :changed, :visible, :data)");
+        query.bindValue(":type",    project->getType());
+        query.bindValue(":keyqms",  project->getKey());
+        query.bindValue(":name",    project->getName());
+        query.bindValue(":changed", project->isChanged());
+
+        bool visible = (project->checkState(CGisListDB::eColumnCheckbox) == Qt::Checked);
+        query.bindValue(":visible", visible);
+        query.bindValue(":data",    data);
+        QUERY_EXEC(continue);
+    }
+
+    if(saveEvery)
+    {
+        QTimer::singleShot(saveEvery * 60000, this, SLOT(slotSaveWorkspace()));
+    }
+}
+
+void CGisListWks::slotLoadWorkspace()
+{
+    CGisListWksEditLock lock(true,IGisItem::mutexItems);
+
+    QSqlQuery query(db);
+
+    QUERY_RUN("SELECT type, keyqms, name, changed, visible, data FROM workspace", return )
+
+    const int total = query.size();
+    PROGRESS_SETUP(tr("Loading workspace. Please wait."), 0, total, this);
+    quint32 progCnt = 0;
+
+    while(query.next())
+    {
+        PROGRESS(progCnt++, return );
+
+        int type               = query.value(0).toInt();
+        QString name           = query.value(2).toString();
+        bool changed           = query.value(3).toBool();
+        Qt::CheckState visible = query.value(4).toBool() ? Qt::Checked : Qt::Unchecked;
+        QByteArray data        = query.value(5).toByteArray();
+
+        QDataStream stream(&data, QIODevice::ReadOnly);
+        stream.setVersion(QDataStream::Qt_5_2);
+        stream.setByteOrder(QDataStream::LittleEndian);
+
+        IGisProject *project = nullptr;
+        switch(type)
+        {
+        case IGisProject::eTypeQms:
+        {
+            project = new CQmsProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1a)
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeQlb:
+        {
+            project = new CQlbProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1a)
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeGpx:
+        {
+            project = new CGpxProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1b)
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeDb:
+        {
+            CDBProject * dbProject;
+            project = dbProject = new CDBProject(this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1c)
+
+            project->IGisProject::operator<<(stream);
+            dbProject->restoreDBLink();
+
+            if(!project->isValid())
+            {
+                delete project;
+                project = nullptr;
+            }
+            else
+            {
+                dbProject->postStatus(false);
+            }
+            break;
+        }
+
+        case IGisProject::eTypeSlf:
+        {
+            project = new CSlfProject(name, false);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible); // (1d)
+            *project << stream;
+
+            // the CSlfProject does not - as the other C*Project - register itself in the list
+            // of currently opened projects. This is done manually here.
+            addProject(project);
+            break;
+        }
+
+        case IGisProject::eTypeFit:
+        {
+            project = new CFitProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeTcx:
+        {
+            project = new CTcxProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeSml:
+        {
+            project = new CSmlProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
+            *project << stream;
+            break;
+        }
+
+        case IGisProject::eTypeLog:
+        {
+            project = new CSmlProject(name, this);
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible);
+            *project << stream;
+            break;
+        }
+        }
+
+        if(nullptr != project)
+        {
+            // Hiding the individual projects from the map (1a, 1b, 1c) could be done here within a single statement,
+            // but this results in a visible `the checkbox is being unchecked`, especially in case the project
+            // is large and takes some time to load.
+            // When done directly after construction there is no `blinking` of the check mark
+
+            project->setToolTip(eColumnName,project->getInfo());
+            if(changed)
+            {
+                project->setChanged();
+            }
+        }
+    }
+
+    emit sigChanged();
+}
+
+void CGisListWks::slotContextMenu(const QPoint& point)
+{
+    QPoint p = mapToGlobal(point);
+    if(selectedItems().isEmpty() && menuNone)
+    {
+        menuNone->exec(p);
+        return;
+    }
+
+    // check whether all projects are checked or unchecked...
+    bool allChecked   = true;
+    bool allUnchecked = true;
+    bool allCantSave  = true;
+
+    for(QTreeWidgetItem *item : selectedItems())
+    {
+        IGisProject *project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            // as soon as we find an unchecked element, not all elements are checked (and vice versa)
+            if(project->checkState(CGisListDB::eColumnCheckbox) == Qt::Unchecked)
+            {
+                allChecked = false;
+            }
+            else
+            {
+                allUnchecked = false;
+            }
+
+            if(project->canSave())
+            {
+                allCantSave = false;
+            }
+        }
+    }
+
+    // ...and disable entries without any effect
+    actionShowOnMap->setEnabled(!allChecked);
+    actionHideFrMap->setEnabled(!allUnchecked);
+    actionSave->setEnabled(!allCantSave);
+
+    if(selectedItems().count() > 1)
+    {
+        IGisProject *project = dynamic_cast<IGisProject*>(currentItem());
+        if(nullptr != project)
+        {
+            if(project->isOnDevice())
+            {
+                menuProjectDev->exec(p);
+            }
+            else
+            {
+                actionGroup->setEnabled(false);
+                actionSyncWksDev->setEnabled(IDevice::count());
+                actionSyncDB->setEnabled(project->getType() == IGisProject::eTypeDb);
+                actionAutoSave->setVisible(false);
+                menuProjectWks->exec(p);
+            }
+            return;
+        }
+
+        IGisItem *gisItem = dynamic_cast<IGisItem*>(currentItem());
+        if(nullptr != gisItem)
+        {
+            bool hasWpts  = false;
+            bool onlyWpts = true;
+            bool onlyTrks = true;
+            for(QTreeWidgetItem *item : selectedItems())
+            {
+                if(item->type() != IGisItem::eTypeWpt)
+                {
+                    onlyWpts = false;
+                }
+                else
+                {
+                    hasWpts = true;
+                }
+
+                if(item->type() != IGisItem::eTypeTrk)
+                {
+                    onlyTrks = false;
+                }
+
+                if(!onlyTrks && !onlyWpts)
+                {
+                    break;
+                }
+            }
+
+            actionRteFromWpt->setEnabled(onlyWpts);
+            actionCombineTrk->setEnabled(onlyTrks);
+            actionActivityTrk->setEnabled(onlyTrks);
+            actionColorTrk->setEnabled(onlyTrks);
+            actionSymWpt->setEnabled(hasWpts);
+
+            menuItem->exec(p);
+            return;
+        }
+        return;
+    }
+
+    if(selectedItems().count() == 1)
+    {
+        IGisProject *project = dynamic_cast<IGisProject*>(currentItem());
+        if(nullptr != project)
+        {
+            if(project->getType() == IGisProject::eTypeLostFound)
+            {
+                menuProjectTrash->exec(p);
+            }
+            else
+            {
+                if(project->isOnDevice())
+                {
+                    menuProjectDev->exec(p);
+                }
+                else
+                {
+                    actionGroup->setEnabled(true);
+                    actionSyncWksDev->setEnabled(IDevice::count());
+                    actionSyncDB->setEnabled(project->getType() == IGisProject::eTypeDb);
+
+                    blockSorting = true;
+                    switch(project->getSortingFolder())
+                    {
+                    case IGisProject::eSortFolderName:
+                        actionSortByName->setChecked(true);
+                        break;
+
+                    case IGisProject::eSortFolderTime:
+                        actionSortByTime->setChecked(true);
+                        break;
+                    }
+
+                    blockSorting = false;
+
+                    actionAutoSave->setVisible(true);
+                    actionAutoSave->setEnabled(project->canSave());
+                    actionAutoSave->setChecked(project->isAutoSave());
+
+                    menuProjectWks->exec(p);
+                }
+            }
+            return;
+        }
+
+        IGisItem *gisItem = dynamic_cast<IGisItem*>(currentItem());
+        if(nullptr != gisItem)
+        {
+            bool isOnDevice = gisItem->isOnDevice();
+            IGisProject * project = gisItem->getParentProject();
+            bool isProjectVisible = project == nullptr ? false : project->isVisible();
+
+            switch(gisItem->type())
+            {
+            case IGisItem::eTypeTrk:
+            {
+                CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gisItem);
+                if(project != nullptr)
+                {
+                    actionCombineTrk->setEnabled(project->getItemCountByType(IGisItem::eTypeTrk) > 1);
+                }
+                else
+                {
+                    actionCombineTrk->setEnabled(false);
+                }
+                actionRangeTrk->setEnabled(isProjectVisible && !isOnDevice);
+                actionReverseTrk->setDisabled(isOnDevice);
+                actionEditTrk->setEnabled(isProjectVisible && !isOnDevice);
+                actionNogoTrk->setEnabled(isProjectVisible);
+                actionNogoTrk->setChecked(gisItem->isNogo());
+                actionCopyTrkWithWpt->setEnabled(trk->getNumberOfAttachedWpt() != 0);
+                actionFocusTrk->setChecked(gisItem->hasUserFocus());
+                actionFocusTrk->setEnabled(isProjectVisible);
+                menuItemTrk->exec(p);
+                break;
+            }
+
+            case IGisItem::eTypeWpt:
+            {
+                CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(gisItem);
+                actionBubbleWpt->setChecked(wpt->hasBubble());
+                actionBubbleWpt->setEnabled(isProjectVisible);
+                actionEditRadiusWpt->setEnabled(isProjectVisible);
+                bool radius = wpt->hasRadius();
+                actionDelRadiusWpt->setEnabled(isProjectVisible && radius);
+                actionNogoWpt->setEnabled(isProjectVisible && radius);
+                actionNogoWpt->setChecked(radius && wpt->isNogo());
+                actionMoveWpt->setEnabled(isProjectVisible && !isOnDevice);
+                actionProjWpt->setDisabled(isOnDevice);
+                menuItemWpt->exec(p);
+                break;
+            }
+
+            case IGisItem::eTypeRte:
+                actionFocusRte->setChecked(gisItem->hasUserFocus());
+                actionFocusRte->setEnabled(isProjectVisible);
+                actionCalcRte->setEnabled(isProjectVisible);
+                actionEditRte->setEnabled(isProjectVisible);
+                actionNogoRte->setEnabled(isProjectVisible);
+                actionNogoRte->setChecked(gisItem->isNogo());
+                actionResetRte->setEnabled(isProjectVisible);
+                menuItemRte->exec(p);
+                break;
+
+            case IGisItem::eTypeOvl:
+                actionEditArea->setEnabled(isProjectVisible && !isOnDevice);
+                actionNogoArea->setEnabled(isProjectVisible);
+                actionNogoArea->setChecked(gisItem->isNogo());
+                menuItemOvl->exec(p);
+                break;
+            }
+
+            return;
+        }
+    }
+}
+
+void CGisListWks::setVisibilityOnMap(bool visible)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem *item : items)
+    {
+        IGisProject *project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->setCheckState(CGisListDB::eColumnCheckbox, visible ? Qt::Checked : Qt::Unchecked);
+        }
+    }
+    emit sigChanged();
+}
+
+void CGisListWks::slotShowOnMap()
+{
+    setVisibilityOnMap(true);
+}
+
+void CGisListWks::slotHideFrMap()
+{
+    setVisibilityOnMap(false);
+}
+
+static void closeProjects(const QList<QTreeWidgetItem*> &items)
+{
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisProject *project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            if(project->askBeforClose())
+            {
+                break;
+            }
+
+            if(IGisProject::eTypeGoogle == project->getType())
+            {
+                CMainWindow::self().findChild<QAction*>("actionSearchGoogle")->setChecked(false);
+            }
+            delete project;
+        }
+    }
+}
+
+void CGisListWks::slotCloseProject()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    closeProjects(selectedItems());
+    emit sigChanged();
+}
+
+void CGisListWks::slotCloseAllProjects()
+{
+    int res = QMessageBox::question(this, tr("Close all projects..."), tr("This will remove all projects from the workspace."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+    if(res != QMessageBox::Ok)
+    {
+        return;
+    }
+
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+    closeProjects(findItems("*", Qt::MatchWildcard));
+
+    CGisWorkspace::self().slotWksItemSelectionReset();
+
+    emit sigChanged();
+}
+
+
+void CGisListWks::slotDeleteProject()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            CCanvas::setOverrideCursor(Qt::ArrowCursor, "slotDeleteProject");
+            int res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete project..."), tr("Do you really want to delete %1?").arg(project->getFilename()), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok);
+            CCanvas::restoreOverrideCursor("slotDeleteProject");
+            if(res != QMessageBox::Ok)
+            {
+                continue;
+            }
+
+
+            if(project->remove())
+            {
+                delete project;
+            }
+        }
+    }
+    emit sigChanged();
+}
+
+void CGisListWks::slotSaveProject()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            if(project->canSave())
+            {
+                project->save();
+            }
+            else
+            {
+                project->saveAs();
+            }
+        }
+    }
+}
+
+void CGisListWks::slotSaveAsProject()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->saveAs();
+        }
+    }
+}
+
+void CGisListWks::slotSaveAsStrictGpx11Project()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->saveAsStrictGpx11();
+        }
+    }
+}
+
+void CGisListWks::slotAutoSaveProject(bool on)
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
+    if(project != nullptr)
+    {
+        project->setAutoSave(on);
+    }
+}
+
+void CGisListWks::slotEditPrj()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
+    if(project != nullptr)
+    {
+        project->edit();
+    }
+}
+
+void CGisListWks::slotItemDoubleClicked(QTreeWidgetItem * item, int )
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().slotWksItemSelectionReset();
+        IGisProject * project = gisItem->getParentProject();
+        if (project != nullptr && project->isVisible())
+        {
+            CMainWindow::self().zoomCanvasTo(gisItem->getBoundingRect());
+            CGisWorkspace::self().focusTrkByKey(true, gisItem->getKey());
+        }
+    }
+}
+
+void CGisListWks::slotItemChanged(QTreeWidgetItem * item, int column)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    if(column == eColumnCheckBox)
+    {
+        CGisWorkspace::self().slotWksItemSelectionReset();
+        emit sigChanged();
+    }
+}
+
+void CGisListWks::slotEditItem()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().editItemByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotDeleteItem()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QList<QTreeWidgetItem*> items       = selectedItems();
+    QList<IGisItem::key_t>  keys;
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+        if(gisItem != nullptr)
+        {
+            keys << gisItem->getKey();
+        }
+    }
+
+    CGisWorkspace::self().delItemsByKey(keys);
+}
+
+void CGisListWks::slotCopyItem()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    /*
+     * Item selection is reset when the target project is a new database
+     * project. Additionally the list of selected items pointers seems
+     * to get invalid, causing a segfault when used.
+     *
+     * As a fix the keys of the selected items are stored temporarily and
+     * later used to retrieve the item on the workspace via CGisWorkspace::getItemByKey()
+     * again. This is always safe.
+     */
+    QList<QTreeWidgetItem*> items = selectedItems();
+    QList<IGisItem::key_t>  keys;
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+        if(gisItem != nullptr)
+        {
+            keys << gisItem->getKey();
+        }
+    }
+
+    CGisWorkspace::self().copyItemsByKey(keys);
+}
+
+void CGisListWks::slotProjWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().projWptByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotBubbleWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().toggleWptBubble(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotNogoItem()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    IGisItem * gisItem = dynamic_cast<IGisItem*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().toggleNogoItem(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotDelRadiusWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().deleteWptRadius(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotEditRadiusWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().editWptRadius(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotMoveWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemWpt * gisItem = dynamic_cast<CGisItemWpt*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().moveWptByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotFocusTrk(bool on)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().focusTrkByKey(on, gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotEditTrk()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().editTrkByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotReverseTrk()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().reverseTrkByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotCombineTrk()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QList<IGisItem::key_t>  keys;
+    QList<QTreeWidgetItem*> items = selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(item);
+        if(gisItem)
+        {
+            keys << gisItem->getKey();
+        }
+    }
+
+    if(!keys.isEmpty())
+    {
+        if(keys.size() == 1)
+        {
+            CGisWorkspace::self().combineTrkByKey(keys.first());
+        }
+        else
+        {
+            CGisWorkspace::self().combineTrkByKey(keys, keys);
+        }
+    }
+}
+
+void CGisListWks::slotActivityTrk()
+{
+    quint32 flags = CActivityTrk::selectActivity(this);
+    if(0xFFFFFFFF != flags)
+    {
+        CGisListWksEditLock lock(true, IGisItem::mutexItems);
+        QList<QTreeWidgetItem*> items = selectedItems();
+        for(QTreeWidgetItem * item : items)
+        {
+            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+            if(trk)
+            {
+                trk->setActivity(flags);
+            }
+        }
+    }
+}
+
+void CGisListWks::slotColorTrk()
+{
+    qint32 colorIdx = CColorChooser::selectColor(this);
+    if(colorIdx != NOIDX)
+    {
+        CGisListWksEditLock lock(true, IGisItem::mutexItems);
+        QList<QTreeWidgetItem*> items = selectedItems();
+        for(QTreeWidgetItem * item : items)
+        {
+            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+            if(trk)
+            {
+                trk->setColor(colorIdx);
+            }
+        }
+    }
+}
+
+
+void CGisListWks::slotRangeTrk()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().rangeTrkByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotCopyTrkWithWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemTrk * gisItem = dynamic_cast<CGisItemTrk*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().copyTrkWithWptByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotFocusRte(bool on)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().focusRteByKey(on, gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotCalcRte()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().calcRteByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotResetRte()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().resetRteByKey(gisItem->getKey());
+    }
+}
+
+
+void CGisListWks::slotEditRte()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().editRteByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotReverseRte()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().reverseRteByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotRte2Trk()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemRte * gisItem = dynamic_cast<CGisItemRte*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().convertRouteToTrack(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotEditArea()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    CGisItemOvlArea * gisItem = dynamic_cast<CGisItemOvlArea*>(currentItem());
+    if(gisItem != nullptr)
+    {
+        CGisWorkspace::self().editAreaByKey(gisItem->getKey());
+    }
+}
+
+void CGisListWks::slotAddEmptyProject()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QString key, name;
+    IGisProject::type_e type;
+    CSelectProjectDialog dlg(key, name, type, nullptr);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+    if(name.isEmpty() && (type != IGisProject::eTypeDb))
+    {
+        return;
+    }
+
+    if(type == IGisProject::eTypeGpx)
+    {
+        new CGpxProject(name, this);
+    }
+    else if(type == IGisProject::eTypeQms)
+    {
+        new CQmsProject(name, this);
+    }
+    else if(type == IGisProject::eTypeDb)
+    {
+        quint64 idParent;
+        QString db;
+        QString host;
+        IDBFolder::type_e type;
+
+        CSelectDBFolder dlg1(idParent, db, host, this);
+        if(dlg1.exec() == QDialog::Rejected)
+        {
+            return;
+        }
+
+        CSetupFolder dlg2(type, name, false, this);
+        if(dlg2.exec() == QDialog::Rejected)
+        {
+            return;
+        }
+
+        CEvtW2DCreate * evt = new CEvtW2DCreate(name, type, idParent, db, host);
+        CGisDatabase::self().postEventForDb(evt);
+    }
+}
+
+void CGisListWks::slotSearchGoogle(bool on)
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    delete searchGoogle;
+    if(on)
+    {
+        searchGoogle = new CSearchGoogle(this);
+    }
+
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CGisListWks::slotSyncWksDev()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    if(IDevice::count() == 0)
+    {
+        return;
+    }
+
+    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    const int N = topLevelItemCount();
+    QSet<QString> keys;
+    if(IDevice::count() > 1)
+    {
+        CSelDevices dlg(project, this);
+        if(dlg.exec() != QDialog::Accepted)
+        {
+            return;
+        }
+        dlg.getSlectedDevices(keys);
+    }
+    else
+    {
+        for(int n = 0; n < N; n++)
+        {
+            IDevice *device = dynamic_cast<IDevice*>(topLevelItem(n));
+            if(nullptr != device)
+            {
+                keys << device->getKey();
+                break;
+            }
+        }
+    }
+
+    CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
+    for(int n = 0; n < N; n++)
+    {
+        IDevice * device = dynamic_cast<IDevice*>(topLevelItem(n));
+        if(nullptr == device || keys.isEmpty() || !keys.contains(device->getKey()))
+        {
+            continue;
+        }
+        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);
+        }
+
+        device->updateProject(project);
+    }
+    if(canvas)
+    {
+        canvas->reportStatus("device", "");
+    }
+    emit sigChanged();
+}
+
+void CGisListWks::slotSyncDevWks()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    IDevice * device = dynamic_cast<IDevice*>(project->parent());
+    if(nullptr == device)
+    {
+        return;
+    }
+
+    QString key = project->getKey();
+
+    project = getProjectByKey(key);
+    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);
+        }
+
+        device->updateProject(project);
+
+        if(canvas)
+        {
+            canvas->reportStatus("device", "");
+        }
+        emit sigChanged();
+    }
+}
+
+
+bool CGisListWks::event(QEvent * e)
+{
+    if(e->type() > QEvent::User)
+    {
+        const bool doWaitCursoer = (eEvtA2WCutTrk != event_types_e(e->type()));
+        CGisListWksEditLock lock(doWaitCursoer, IGisItem::mutexItems);
+
+        switch(e->type())
+        {
+        case eEvtD2WReqInfo:
+        {
+            CEvtD2WReqInfo * evt = (CEvtD2WReqInfo*)e;
+            CDBProject * project =  getProjectById(evt->id, evt->db);
+            if(nullptr != project)
+            {
+                project->postStatus(false);
+            }
+            e->accept();
+            emit sigChanged();
+            return true;
+        }
+
+        case eEvtD2WShowFolder:
+        {
+            CEvtD2WShowFolder * evt = (CEvtD2WShowFolder*)e;
+            CDBProject * project =  getProjectById(evt->id, evt->db);
+            if(nullptr == project)
+            {
+                if(evt->id == 0)
+                {
+                    project = new CLostFoundProject(evt->db, this);
+                }
+                else
+                {
+                    project = new CDBProject(evt->db, evt->id, this);
+                }
+                if(!project->isValid())
+                {
+                    delete project;
+                }
+            }
+            e->accept();
+            emit sigChanged();
+            return true;
+        }
+
+        case eEvtD2WHideFolder:
+        {
+            CEvtD2WHideFolder * evt = (CEvtD2WHideFolder*)e;
+            CDBProject * project =  getProjectById(evt->id, evt->db);
+            if(project && project->askBeforClose())
+            {
+                /*
+                    Tell the DB view that we aborted to hide the folder by posting it's
+                    current status.
+                 */
+                project->postStatus(false);
+                return false;
+            }
+            delete project;
+
+            e->accept();
+            emit sigChanged();
+            emit sigItemDeleted();
+            return true;
+        }
+
+        case eEvtD2WShowItems:
+        {
+            CEvtD2WShowItems * evt = (CEvtD2WShowItems*)e;
+            CDBProject * project =  getProjectById(evt->id, evt->db);
+            if(project)
+            {
+                project->showItems(evt);
+            }
+            e->accept();
+            emit sigChanged();
+            return true;
+        }
+
+        case eEvtD2WHideItems:
+        {
+            CEvtD2WHideItems * evt = (CEvtD2WHideItems*)e;
+            CDBProject * project =  getProjectById(evt->id, evt->db);
+            if(project)
+            {
+                project->hideItems(evt);
+            }
+            e->accept();
+            emit sigChanged();
+            emit sigItemDeleted();
+            return true;
+        }
+
+        case eEvtD2WUpdateLnF:
+        {
+            CEvtD2WUpdateLnF * evt = (CEvtD2WUpdateLnF*)e;
+            CLostFoundProject * project = dynamic_cast<CLostFoundProject*>(getProjectById(evt->id, evt->db));
+            if(project)
+            {
+                project->updateFromDb();
+            }
+            e->accept();
+            emit sigChanged();
+            return true;
+        }
+
+        case eEvtD2WUpdateItems:
+        {
+            CEvtD2WUpdateItems * evt = (CEvtD2WUpdateItems*)e;
+            IGisProject * project = dynamic_cast<IGisProject*>(getProjectById(evt->id, evt->db));
+            if(project)
+            {
+                project->blockUpdateItems(false);
+            }
+            e->accept();
+            emit sigChanged();
+            return true;
+        }
+
+        case eEvtD2WReload:
+        {
+            CEvtD2WReload * evt = (CEvtD2WReload*)e;
+            QList<CDBProject*> projects;
+
+            const int N = topLevelItemCount();
+            for(int i = 0; i < N; i++)
+            {
+                CDBProject * project = dynamic_cast<CDBProject*>(topLevelItem(i));
+
+                if(project && (project->getDBName() == evt->db))
+                {
+                    project->update();
+                    projects << project;
+                }
+            }
+
+            for(CDBProject * project : projects)
+            {
+                project->blockUpdateItems(false);
+            }
+            e->accept();
+            return true;
+        }
+
+        case eEvtA2WCutTrk:
+        {
+            CEvtA2WCutTrk * evt = (CEvtA2WCutTrk*)e;
+            CGisWorkspace::self().cutTrkByKey(evt->key);
+            e->accept();
+            return true;
+        }
+
+        case eEvtA2WSave:
+        {
+            CEvtA2WSave * evt = (CEvtA2WSave*)e;
+
+            IGisProject * project = getProjectByKey(evt->key);
+            if(project)
+            {
+                project->save();
+                project->confirmPendingAutoSave();
+            }
+            e->accept();
+            return true;
+        }
+        }
+    }
+    return QTreeWidget::event(e);
+}
+
+
+
+void CGisListWks::slotRteFromWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+
+    QList<IGisItem::key_t> keys;
+    for(QTreeWidgetItem * item : selectedItems())
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(nullptr != wpt)
+        {
+            keys << wpt->getKey();
+        }
+    }
+
+    if(!keys.isEmpty())
+    {
+        CGisWorkspace::self().makeRteFromWpt(keys);
+    }
+}
+
+void CGisListWks::slotSyncDB()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    for(QTreeWidgetItem * item : selectedItems())
+    {
+        CDBProject * project = dynamic_cast<CDBProject*>(item);
+        if(project == nullptr)
+        {
+            continue;
+        }
+
+        project->update();
+    }
+}
+
+void CGisListWks::slotSetSortMode(IGisProject::sorting_folder_e mode, bool checked)
+{
+    if(!checked || blockSorting)
+    {
+        return;
+    }
+
+
+    IGisProject * project = dynamic_cast<IGisProject*>(currentItem());
+    if(project != nullptr)
+    {
+        project->setSortingFolder(mode);
+    }
+}
+
+
+void CGisListWks::slotCopyProject()
+{
+    CGisListWksEditLock lock(true, IGisItem::mutexItems);
+
+    QList<IGisItem::key_t>  keys;
+
+    for(QTreeWidgetItem * item : selectedItems())
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project == nullptr)
+        {
+            continue;
+        }
+
+        const int N = project->childCount();
+        for(int i = 0; i < N; i++)
+        {
+            IGisItem * item = dynamic_cast<IGisItem*>(project->child(i));
+            if(item != nullptr)
+            {
+                keys << item->getKey();
+            }
+        }
+    }
+
+    CGisWorkspace::self().copyItemsByKey(keys);
+}
+
+
+void CGisListWks::slotSymWpt()
+{
+    CGisListWksEditLock lock(false, IGisItem::mutexItems);
+    QToolButton tb;
+    CWptIconDialog dlg(&tb);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+
+    QList<IGisItem::key_t> keys;
+    for(QTreeWidgetItem * item : selectedItems())
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(wpt == nullptr)
+        {
+            continue;
+        }
+
+        keys << wpt->getKey();
+    }
+
+    CGisWorkspace::self().changeWptSymByKey(keys, tb.objectName());
+}
diff --git a/src/qmapshack/gis/CGisListWks.h b/src/qmapshack/gis/CGisListWks.h
new file mode 100644
index 0000000..59ee269
--- /dev/null
+++ b/src/qmapshack/gis/CGisListWks.h
@@ -0,0 +1,210 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISLISTWKS_H
+#define CGISLISTWKS_H
+
+#include "gis/prj/IGisProject.h"
+
+#include <QPointer>
+#include <QSqlDatabase>
+#include <QTreeWidget>
+
+struct action_t;
+class QAction;
+class CSearchGoogle;
+class IGisProject;
+class CDBProject;
+class IDeviceWatcher;
+class QActionGroup;
+
+class CGisListWks : public QTreeWidget
+{
+    Q_OBJECT
+public:
+    CGisListWks(QWidget * parent);
+    virtual ~CGisListWks();
+
+    enum column_e
+    {
+        eColumnIcon = 0
+        ,eColumnCheckBox = eColumnIcon
+        ,eColumnDecoration = eColumnIcon
+        ,eColumnName = 1
+    };
+
+
+    void setExternalMenu(QMenu * project);
+    bool hasProject(IGisProject *project);
+
+    IGisProject * getProjectByKey(const QString& key);
+    CDBProject * getProjectById(quint64 id, const QString& db);
+
+    bool event(QEvent * e) override;
+
+    void addProject(IGisProject *proj);
+
+    void removeDevice(const QString& key);
+
+public slots:
+    void slotLoadWorkspace();
+
+signals:
+    void sigChanged();
+    void sigItemDeleted();
+
+protected:
+    void dragMoveEvent(QDragMoveEvent *e) override;
+    void dropEvent(QDropEvent     *e) override;
+
+private slots:
+    void slotSaveWorkspace();
+    void slotContextMenu(const QPoint& point);
+    void slotSaveProject();
+    void slotSaveAsProject();
+    void slotSaveAsStrictGpx11Project();
+    void slotEditPrj();
+    void slotCloseProject();
+    void slotDeleteProject();
+    void slotShowOnMap();
+    void slotHideFrMap();
+    void slotItemDoubleClicked(QTreeWidgetItem * item, int);
+    void slotItemChanged(QTreeWidgetItem * item, int column);
+    void slotEditItem();
+    void slotDeleteItem();
+    void slotBubbleWpt();
+    void slotNogoItem();
+    void slotDelRadiusWpt();
+    void slotEditRadiusWpt();
+    void slotProjWpt();
+    void slotMoveWpt();
+    void slotFocusTrk(bool on);
+    void slotEditTrk();
+    void slotReverseTrk();
+    void slotCombineTrk();
+    void slotRangeTrk();
+    void slotActivityTrk();
+    void slotColorTrk();
+    void slotCopyTrkWithWpt();
+    void slotFocusRte(bool on);
+    void slotCalcRte();
+    void slotResetRte();
+    void slotEditRte();
+    void slotReverseRte();
+    void slotRte2Trk();
+    void slotEditArea();
+    void slotAddEmptyProject();
+    void slotCloseAllProjects();
+    void slotSearchGoogle(bool on);
+    void slotCopyItem();
+    void slotSyncWksDev();
+    void slotSyncDevWks();
+    void slotRteFromWpt();
+    void slotSyncDB();
+    void slotSetSortMode(IGisProject::sorting_folder_e mode, bool checked);
+    void slotCopyProject();
+    void slotSymWpt();
+    void slotAutoSaveProject(bool on);
+
+
+private:
+    void configDB();
+    void initDB();
+    void migrateDB(int version);
+    void migrateDB1to2();
+    void migrateDB2to3();
+    void setVisibilityOnMap(bool visible);
+    QAction * addSortAction(QMenu * menu, QActionGroup *actionGroup, const QString& icon, const QString& text, IGisProject::sorting_folder_e mode);
+
+    QSqlDatabase db;
+
+    QMenu * menuProjectWks;
+    QAction  * actionSave;
+    QAction  * actionSaveAs;
+    QAction  * actionSaveAsStrict;
+    QAction  * actionAutoSave;
+    QAction  * actionCopyPrj;
+    QAction  * actionEditPrj;
+    QAction  * actionCloseProj;
+    QAction  * actionShowOnMap;
+    QAction  * actionHideFrMap;
+    QAction  * actionSyncWksDev;
+    QAction  * actionSyncDB;
+    QAction  * actionSortByTime;
+    QAction  * actionSortByName;
+
+
+
+    QActionGroup * actionGroup;
+
+    QMenu * menuProjectDev;
+    QAction  * actionDelProj;
+    QAction  * actionSyncDevWks;
+
+    QMenu * menuProjectTrash;
+
+    QMenu * menuItem;
+    QMenu * menuItemTrk;
+    QMenu * menuItemWpt;
+    QMenu * menuItemRte;
+    QMenu * menuItemOvl;
+    QAction * actionEditDetails;
+    QAction * actionCopyItem;
+    QAction * actionDelete;
+    QAction * actionBubbleWpt;
+    QAction * actionDelRadiusWpt;
+    QAction * actionNogoWpt;
+    QAction * actionEditRadiusWpt;
+    QAction * actionProjWpt;
+    QAction * actionMoveWpt;
+    QAction * actionFocusTrk;
+    QAction * actionEditTrk;
+    QAction * actionReverseTrk;
+    QAction * actionCombineTrk;
+    QAction * actionRangeTrk;
+    QAction * actionActivityTrk;
+    QAction * actionColorTrk;
+    QAction * actionNogoTrk;
+    QAction * actionCopyTrkWithWpt;
+    QAction * actionFocusRte;
+    QAction * actionCalcRte;
+    QAction * actionResetRte;
+    QAction * actionEditRte;
+    QAction * actionNogoRte;
+    QAction * actionReverseRte;
+    QAction * actionRte2Trk;
+    QAction * actionEditArea;
+    QAction * actionNogoArea;
+    QAction * actionRteFromWpt;
+    QAction * actionSymWpt;
+
+    QMenu * menuNone = nullptr;
+
+    QPointer<CSearchGoogle> searchGoogle;
+
+    bool saveOnExit = true;
+    qint32 saveEvery = 5;
+
+    IDeviceWatcher * deviceWatcher = nullptr;
+
+    bool blockSorting = false;
+};
+
+#endif //CGISLISTWKS_H
+
diff --git a/src/qmapshack/gis/CGisWorkspace.cpp b/src/qmapshack/gis/CGisWorkspace.cpp
new file mode 100644
index 0000000..815be5c
--- /dev/null
+++ b/src/qmapshack/gis/CGisWorkspace.cpp
@@ -0,0 +1,1170 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "device/IDevice.h"
+#include "gis/CGisDatabase.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/CSetupFilter.h"
+#include "gis/IGisItem.h"
+#include "gis/db/CDBProject.h"
+#include "gis/db/CSelectDBFolder.h"
+#include "gis/db/CSetupFolder.h"
+#include "gis/gpx/CGpxProject.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/qms/CQmsProject.h"
+#include "gis/rte/CCreateRouteFromWpt.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/router/IRouter.h"
+#include "gis/trk/CCombineTrk.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/wpt/CProjWpt.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSelectCopyAction.h"
+#include "helpers/CSelectProjectDialog.h"
+#include "helpers/CSettings.h"
+#include "widgets/CColorChooser.h"
+
+#include <QtWidgets>
+#include <QtXml>
+
+CGisWorkspace * CGisWorkspace::pSelf = nullptr;
+
+CGisWorkspace::CGisWorkspace(QMenu *menuProject, QWidget *parent)
+    : QWidget(parent)
+{
+    pSelf = this;
+    setupUi(this);
+
+    lineFilter->addAction(actionClearFilter,QLineEdit::TrailingPosition);
+    lineFilter->addAction(actionSetupFilter, QLineEdit::LeadingPosition);
+
+    treeWks->setExternalMenu(menuProject);
+
+    SETTINGS;
+    treeWks->header()->restoreState(cfg.value("Workspace/treeWks/state", treeWks->header()->saveState()).toByteArray());
+    IGisProject::filterMode = IGisProject::filter_mode_e(cfg.value("Workspace/projects/filterMode", IGisProject::filterMode).toInt());
+
+    connect(treeWks, &CGisListWks::sigChanged, this, &CGisWorkspace::sigChanged);
+    connect(sliderOpacity, &QSlider::valueChanged, this, &CGisWorkspace::slotSetGisLayerOpacity);
+    connect(lineFilter, &QLineEdit::textChanged, this, &CGisWorkspace::slotFilter);
+    connect(actionSetupFilter, &QAction::triggered, this, &CGisWorkspace::slotSetupFilter);
+    connect(treeWks, &CGisListWks::itemPressed, this, &CGisWorkspace::slotWksItemPressed);
+    connect(treeWks, &CGisListWks::itemSelectionChanged, this, &CGisWorkspace::slotWksItemSelectionChanged);
+    connect(treeWks, &CGisListWks::sigItemDeleted, this, &CGisWorkspace::slotWksItemSelectionChanged);
+
+    // [Issue #265] Delay the loading of the workspace to make sure the complete IUnit system
+    //              is up and running.
+    QTimer::singleShot(500, treeWks, SLOT(slotLoadWorkspace()));
+}
+
+CGisWorkspace::~CGisWorkspace()
+{
+    SETTINGS;
+    cfg.setValue("Workspace/treeWks/state", treeWks->header()->saveState());
+    cfg.setValue("Workspace/projects/filterMode", IGisProject::filterMode);
+    /*
+        Explicitly delete workspace here, as database projects use
+        CGisWorkspace upon destruction to signal the database their destruction.
+
+     */
+    delete treeWks;
+}
+
+void CGisWorkspace::setOpacity(qreal val)
+{
+    sliderOpacity->setValue(val * 100);
+}
+
+void CGisWorkspace::postEventForWks(QEvent * event)
+{
+    QCoreApplication::postEvent(treeWks, event);
+}
+
+void CGisWorkspace::loadGisProject(const QString& filename)
+{
+    // add project to workspace
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "loadGisProject");
+    treeWks->blockSignals(true);
+
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    IGisProject * item = IGisProject::create(filename, treeWks);
+    // skip if project is already loaded
+    if(item && treeWks->hasProject(item))
+    {
+        QMessageBox::information(this, tr("Load project..."), tr("The project \"%1\" is already in the workspace.").arg(item->getName()), QMessageBox::Abort);
+
+        delete item;
+        item = nullptr;
+    }
+
+    treeWks->blockSignals(false);
+    CCanvas::restoreOverrideCursor("loadGisProject");
+
+    emit sigChanged();
+}
+
+
+void CGisWorkspace::slotSetGisLayerOpacity(int val)
+{
+    CCanvas::gisLayerOpacity = qreal(val)/100;
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas != nullptr)
+    {
+        canvas->update();
+    }
+}
+
+void CGisWorkspace::applyFilter()
+{
+    slotFilter(lineFilter->text());
+}
+
+void CGisWorkspace::slotFilter(const QString& str)
+{
+    actionClearFilter->setIcon(str.isEmpty() ? QIcon("://icons/32x32/Filter.png") : QIcon("://icons/32x32/Cancel.png"));
+
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotFilter");
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    const int N = treeWks->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisProject * item = dynamic_cast<IGisProject*>(treeWks->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        item->filter(str.toUpper());
+        item->setExpanded(!str.isEmpty());
+    }
+
+    CCanvas::restoreOverrideCursor("slotFilter");
+
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CGisWorkspace::slotSetupFilter()
+{
+    CSetupFilter * setupFilter = new CSetupFilter(this);
+    setupFilter->adjustSize();
+    setupFilter->move(lineFilter->geometry().topLeft());
+    setupFilter->show();
+}
+
+void CGisWorkspace::slotSaveAll()
+{
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "slotSaveAll");
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        IGisProject * item = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+        if(item->canSave())
+        {
+            item->save();
+        }
+        else
+        {
+            item->saveAs();
+        }
+    }
+
+    CCanvas::restoreOverrideCursor("slotSaveAll");
+}
+
+
+void CGisWorkspace::slotWksItemSelectionChanged()
+{
+    slotWksItemPressed(treeWks->currentItem());
+}
+
+void CGisWorkspace::slotWksItemPressed(QTreeWidgetItem * i)
+{
+    IGisItem * item     = dynamic_cast<IGisItem*>(i);
+    if(item != nullptr)
+    {
+        IGisProject * project = item->getParentProject();
+        if (project != nullptr && project->isVisible())
+        {
+            keyWksSelection = item->getKey();
+            for(CCanvas * canvas : CMainWindow::self().getCanvas())
+            {
+                canvas->reportStatus("WksSelection", tr("<b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior."));
+            }
+        }
+    }
+    else
+    {
+        slotWksItemSelectionReset();
+    }
+}
+
+void CGisWorkspace::slotWksItemSelectionReset()
+{
+    keyWksSelection.clear();
+    for(CCanvas * canvas : CMainWindow::self().getCanvas())
+    {
+        canvas->reportStatus("WksSelection", "");
+    }
+}
+
+
+IGisProject * CGisWorkspace::selectProject()
+{
+    QString key, name;
+    IGisProject::type_e type = IGisProject::eTypeQms;
+
+    CSelectProjectDialog dlg(key, name, type, treeWks);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return nullptr;
+    }
+
+    IGisProject *project = nullptr;
+    if(!key.isEmpty())
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+        {
+            project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
+            if(nullptr == project)
+            {
+                continue;
+            }
+            if(key == project->getKey())
+            {
+                break;
+            }
+        }
+    }
+    else if(type == IGisProject::eTypeDb)
+    {
+        quint64 idParent;
+        QString db;
+        QString host;
+        IDBFolder::type_e type;
+
+        CSelectDBFolder dlg1(idParent, db, host, this);
+        if(dlg1.exec() == QDialog::Rejected)
+        {
+            return nullptr;
+        }
+
+        CSetupFolder dlg2(type, name, false, this);
+        if(dlg2.exec() == QDialog::Rejected)
+        {
+            return nullptr;
+        }
+
+        QMutexLocker lock(&IGisItem::mutexItems);
+        CEvtW2DCreate evt(name, type, idParent, db, host);
+        CGisDatabase::self().sendEventForDb(&evt);
+
+        if(evt.idChild)
+        {
+            CDBProject * p = nullptr;
+            while(nullptr == p)
+            {
+                QApplication::processEvents(QEventLoop::WaitForMoreEvents|QEventLoop::ExcludeUserInputEvents, 100);
+                p = dynamic_cast<CDBProject*>(treeWks->getProjectById(evt.idChild, db));
+            }
+            /*
+               Creating a project usually does initiate an info request. However as the project isn't in the workspace
+               the moment we create it, the request will fail. That is why we send the info now.
+             */
+            p->postStatus(false);
+            project = p;
+        }
+    }
+    else if(!name.isEmpty())
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        if(type == IGisProject::eTypeGpx)
+        {
+            project = new CGpxProject(name, treeWks);
+        }
+        else if (type == IGisProject::eTypeQms)
+        {
+            project = new CQmsProject(name, treeWks);
+        }
+    }
+
+    return project;
+}
+
+void CGisWorkspace::getItemsByPos(const QPointF& pos, QList<IGisItem*>& items)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project)
+        {
+            project->getItemsByPos(pos, items);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(device)
+        {
+            device->getItemsByPos(pos, items);
+            continue;
+        }
+    }
+
+    /*
+        If there is an item selected by the workspace limit
+        the list of items to this item. But only if the item
+        is part of the items close to position.
+     */
+    if(!keyWksSelection.item.isEmpty() && !items.isEmpty())
+    {
+        IGisItem * item = getItemByKey(keyWksSelection);
+        if(item && items.contains(item))
+        {
+            items.clear();
+            items << item;
+        }
+        else
+        {
+            items.clear();
+        }
+    }
+}
+
+void CGisWorkspace::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project)
+        {
+            project->getItemsByKeys(keys, items);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(device)
+        {
+            device->getItemsByKeys(keys, items);
+            continue;
+        }
+    }
+}
+
+void CGisWorkspace::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project)
+        {
+            project->getItemsByArea(area, flags, items);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(device)
+        {
+            device->getItemsByArea(area, flags, items);
+            continue;
+        }
+    }
+}
+
+void CGisWorkspace::getNogoAreas(QList<IGisItem*> &nogos)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project)
+        {
+            project->getNogoAreas(nogos);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(device)
+        {
+            device->getNogoAreas(nogos);
+            continue;
+        }
+    }
+}
+
+void CGisWorkspace::mouseMove(const QPointF& pos)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(project)
+        {
+            project->mouseMove(pos);
+            continue;
+        }
+    }
+}
+
+IGisItem * CGisWorkspace::getItemByKey(const IGisItem::key_t& key)
+{
+    IGisItem *item = nullptr;
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item1 = treeWks->topLevelItem(i);
+        IGisProject * project = dynamic_cast<IGisProject*>(item1);
+        if(project)
+        {
+            if(project->getKey() != key.project)
+            {
+                continue;
+            }
+
+            item = project->getItemByKey(key);
+            if(nullptr != item)
+            {
+                break;
+            }
+
+            continue;
+        }
+
+        IDevice * device = dynamic_cast<IDevice*>(item1);
+        if(device)
+        {
+            if(device->getKey() != key.device)
+            {
+                continue;
+            }
+
+            item = device->getItemByKey(key);
+            if(nullptr != item)
+            {
+                break;
+            }
+        }
+    }
+
+    return item;
+}
+
+void CGisWorkspace::delItemByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    QMessageBox::StandardButtons last = QMessageBox::NoButton;
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        IGisProject * project = dynamic_cast<IGisProject*>(treeWks->topLevelItem(i));
+        if(nullptr == project)
+        {
+            continue;
+        }
+
+        if(project->delItemByKey(key, last))
+        {
+            // update database tree if that is a database project
+            CDBProject * dbp = dynamic_cast<CDBProject*>(project);
+            if(dbp)
+            {
+                dbp->postStatus(true);
+            }
+        }
+
+        if(last == QMessageBox::Cancel)
+        {
+            break;
+        }
+    }
+
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::delItemsByKey(const QList<IGisItem::key_t> &keys)
+{
+    QMessageBox::StandardButtons last   = QMessageBox::NoButton;
+
+    QSet<CDBProject*>   projects;
+    QSet<IGisProject*>  projectsAll;
+
+    for(const IGisItem::key_t key : keys)
+    {
+        IGisItem * gisItem = getItemByKey(key);
+        if(nullptr != gisItem)
+        {
+            bool yes = false;
+            IGisProject *project = dynamic_cast<IGisProject*>(gisItem->parent());
+            if(nullptr != project)
+            {
+                project->blockUpdateItems(true);
+                yes = project->delItemByKey(gisItem->getKey(), last);
+
+
+                /*
+                    collect database projects to update their counterpart in
+                    the database view, after all operations are done.
+                 */
+                if(yes && project->getType() == IGisProject::eTypeDb)
+                {
+                    projects << dynamic_cast<CDBProject*>(project);
+                }
+
+                /*
+                    Collect all projects to unblock update later on.
+                 */
+                projectsAll << project;
+            }
+
+            if(last == QMessageBox::Cancel)
+            {
+                break;
+            }
+        }
+    }
+
+    // make all database projects that are changed to post their new status
+    // this will update the database view.
+    for(CDBProject * project : projects)
+    {
+        project->postStatus(true);
+    }
+    // unblock update for all projects seen
+    for(IGisProject * project : projectsAll)
+    {
+        project->blockUpdateItems(false);
+    }
+
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CGisWorkspace::editItemByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem *item = treeWks->topLevelItem(i);
+        IGisProject *project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->editItemByKey(key);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(nullptr != device)
+        {
+            device->editItemByKey(key);
+            continue;
+        }
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::copyItemByKey(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    IGisItem *item = getItemByKey(key);
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    IGisProject *project = selectProject();
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    int lastResult = CSelectCopyAction::eResultNone;
+    project->insertCopyOfItem(item, NOIDX, lastResult);
+
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::copyItemsByKey(const QList<IGisItem::key_t> &keys)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    IGisProject * project = selectProject();
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    int lastResult = CSelectCopyAction::eResultNone;
+
+    project->blockUpdateItems(true);
+    int cnt = 1;
+    PROGRESS_SETUP(tr("Copy items..."), 0, keys.count(), this);
+    for(const IGisItem::key_t& key : keys)
+    {
+        PROGRESS(cnt++, break);
+        IGisItem * gisItem = getItemByKey(key);
+        if(nullptr != gisItem)
+        {
+            project->insertCopyOfItem(gisItem, NOIDX, lastResult);
+        }
+    }
+    project->blockUpdateItems(false);
+
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CGisWorkspace::changeWptSymByKey(const QList<IGisItem::key_t>& keys, const QString& sym)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    PROGRESS_SETUP(tr("Change waypoint symbols."), 0, keys.count(), this);
+    int cnt = 0;
+    for(const IGisItem::key_t& key : keys)
+    {
+        PROGRESS(cnt++, break);
+        CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
+        if(nullptr != wpt)
+        {
+            wpt->setIcon(sym);
+        }
+    }
+
+    emit sigChanged();
+}
+
+
+void CGisWorkspace::projWptByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
+    if(nullptr != wpt)
+    {
+        CProjWpt dlg(*wpt, 0);
+        dlg.exec();
+    }
+
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::moveWptByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
+    if(nullptr != wpt)
+    {
+        if(!wpt->setReadOnlyMode(false))
+        {
+            return;
+        }
+
+        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
+        if(nullptr != canvas)
+        {
+            canvas->setMouseMoveWpt(*wpt);
+        }
+    }
+}
+
+void CGisWorkspace::toggleWptBubble(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
+    if(nullptr != wpt)
+    {
+        wpt->toggleBubble();
+    }
+}
+
+void CGisWorkspace::deleteWptRadius(const IGisItem::key_t &key)
+{
+    IGisItem * item = getItemByKey(key);
+    if(nullptr != item)
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt *>(item);
+        wpt->setProximity(NOFLOAT);
+    }
+}
+
+void CGisWorkspace::toggleNogoItem(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    IGisItem * item = getItemByKey(key);
+    if(nullptr != item)
+    {
+        item->setNogo(!item->isNogo());
+    }
+}
+
+void CGisWorkspace::editWptRadius(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(getItemByKey(key));
+    if(nullptr != wpt)
+    {
+        if(!wpt->setReadOnlyMode(false))
+        {
+            return;
+        }
+
+        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
+        if(nullptr != canvas)
+        {
+            canvas->setMouseRadiusWpt(*wpt);
+        }
+    }
+}
+
+void CGisWorkspace::addWptByPos(QPointF pt, const QString& label, const QString& desc) const
+{
+    QString name = label;
+    QString icon;
+    if(!CGisItemWpt::getNewWptData(pt, icon, name))
+    {
+        return;
+    }
+
+    IGisProject * project = CGisWorkspace::self().selectProject();
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    QMutexLocker lock(&IGisItem::mutexItems);
+    CGisItemWpt * wpt = new CGisItemWpt(pt, name, icon, project);
+    if(!desc.isEmpty())
+    {
+        wpt->setDescription(desc);
+    }
+    wpt->edit();
+}
+
+void CGisWorkspace::focusTrkByKey(bool yes, const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+    if(nullptr != trk)
+    {
+        trk->gainUserFocus(yes);
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::focusRteByKey(bool yes, const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(nullptr != rte)
+    {
+        rte->gainUserFocus(yes);
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::convertRouteToTrack(const IGisItem::key_t &key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(nullptr != rte)
+    {
+        rte->toTrack();
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::cutTrkByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+    if(nullptr != trk && trk->cut())
+    {
+        int res = QMessageBox::question(this, tr("Cut Track..."), tr("Do you want to delete the original track?"), QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
+        if(res == QMessageBox::Ok)
+        {
+            delete trk;
+        }
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::reverseTrkByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+    if(nullptr != trk)
+    {
+        trk->reverse();
+    }
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::combineTrkByKey(const IGisItem::key_t& keyTrk)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    QList<IGisItem::key_t> keys;
+    IGisItem * item = dynamic_cast<IGisItem*>(getItemByKey(keyTrk));
+    if(item == nullptr)
+    {
+        return;
+    }
+
+    keys << keyTrk;
+
+    IGisProject * project = dynamic_cast<IGisProject*>(item->parent());
+    if(project == nullptr)
+    {
+        return;
+    }
+
+    const int N = project->childCount();
+    for(int i = 0; i < N; i++)
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(project->child(i));
+        if(trk != nullptr)
+        {
+            const IGisItem::key_t& key = trk->getKey();
+            if(key != keyTrk)
+            {
+                keys << key;
+            }
+        }
+    }
+
+    combineTrkByKey(keys, {keyTrk});
+}
+
+void CGisWorkspace::combineTrkByKey(const QList<IGisItem::key_t>& keys, const QList<IGisItem::key_t>& keysPreSel)
+{
+    if(keys.isEmpty())
+    {
+        return;
+    }
+
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CCombineTrk dlg(keys, keysPreSel, this);
+    dlg.exec();
+
+    emit sigChanged();
+}
+
+void CGisWorkspace::activityTrkByKey(const QList<IGisItem::key_t>& keys)
+{
+    if(keys.isEmpty())
+    {
+        return;
+    }
+
+    quint32 flags = CActivityTrk::selectActivity(this);
+    if(0xFFFFFFFF != flags)
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        for(const IGisItem::key_t& key : keys)
+        {
+            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+            if(trk != nullptr)
+            {
+                trk->setActivity(flags);
+            }
+        }
+    }
+}
+
+void CGisWorkspace::colorTrkByKey(const QList<IGisItem::key_t>& keys)
+{
+    if(keys.isEmpty())
+    {
+        return;
+    }
+
+    qint32 colorIdx = CColorChooser::selectColor(this);
+    if(colorIdx != NOIDX)
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        for(const IGisItem::key_t& key : keys)
+        {
+            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+            if(trk != nullptr)
+            {
+                trk->setColor(colorIdx);
+            }
+        }
+    }
+}
+
+void CGisWorkspace::editTrkByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+    if(nullptr != trk)
+    {
+        if(!trk->setReadOnlyMode(false))
+        {
+            return;
+        }
+
+        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+        if(nullptr != canvas)
+        {
+            canvas->setMouseEditTrk(*trk);
+        }
+    }
+}
+
+void CGisWorkspace::rangeTrkByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(getItemByKey(key));
+    if(nullptr != trk)
+    {
+        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+        if(nullptr != canvas)
+        {
+            canvas->setMouseRangeTrk(*trk);
+        }
+    }
+}
+
+void CGisWorkspace::copyTrkWithWptByKey(const IGisItem::key_t &key)
+{
+    QList<IGisItem::key_t> keys;
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(nullptr != trk)
+    {
+        keys << key;
+
+        const CTrackData& t = trk->getTrackData();
+        for(const CTrackData::trkpt_t& trkpt : t)
+        {
+            if(trkpt.isHidden() || trkpt.keyWpt.item.isEmpty())
+            {
+                continue;
+            }
+
+            keys << trkpt.keyWpt;
+        }
+
+        copyItemsByKey(keys);
+    }
+}
+
+void CGisWorkspace::editRteByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(nullptr != rte)
+    {
+        if(!rte->setReadOnlyMode(false))
+        {
+            return;
+        }
+
+        CCanvas *canvas = CMainWindow::self().getVisibleCanvas();
+        if(nullptr != canvas)
+        {
+            canvas->setMouseEditRte(*rte);
+        }
+    }
+}
+
+void CGisWorkspace::reverseRteByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(nullptr != rte)
+    {
+        rte->reverse();
+    }
+}
+
+void CGisWorkspace::calcRteByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(nullptr != rte)
+    {
+        rte->calc();
+    }
+}
+
+void CGisWorkspace::resetRteByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(getItemByKey(key));
+    if(rte != nullptr)
+    {
+        rte->reset();
+    }
+}
+
+
+void CGisWorkspace::editAreaByKey(const IGisItem::key_t& key)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(getItemByKey(key));
+    if(area != nullptr)
+    {
+        if(!area->setReadOnlyMode(false))
+        {
+            return;
+        }
+
+        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+        if(canvas != nullptr)
+        {
+            canvas->setMouseEditArea(*area);
+        }
+    }
+}
+
+void CGisWorkspace::makeRteFromWpt(const QList<IGisItem::key_t>& keys)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CCreateRouteFromWpt dlg(keys, this);
+    dlg.exec();
+}
+
+
+void CGisWorkspace::draw(QPainter& p, const QPolygonF& viewport, CGisDraw * gis)
+{
+    QFontMetricsF fm(CMainWindow::self().getMapFont());
+    QList<QRectF> blockedAreas;
+
+    QMutexLocker lock(&IGisItem::mutexItems);
+    // draw mandatory stuff first
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        if(gis->needsRedraw())
+        {
+            break;
+        }
+
+        QTreeWidgetItem *item = treeWks->topLevelItem(i);
+
+        IGisProject *project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->drawItem(p, viewport, blockedAreas, gis);
+            continue;
+        }
+        IDevice *device = dynamic_cast<IDevice*>(item);
+        if(nullptr != device)
+        {
+            device->drawItem(p, viewport, blockedAreas, gis);
+            continue;
+        }
+    }
+
+    // draw optional labels second
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        if(gis->needsRedraw())
+        {
+            break;
+        }
+
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->drawLabel(p, viewport, blockedAreas, fm, gis);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(nullptr != device)
+        {
+            device->drawLabel(p, viewport, blockedAreas, fm, gis);
+            continue;
+        }
+    }
+}
+
+void CGisWorkspace::fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis)
+{
+    /*
+        Mutex locking will make map moving very slow if there are many GIS items
+        visible. Remove it for now. But I am not sure if that is a good idea.
+     */
+    //QMutexLocker lock(&IGisItem::mutexItems);
+    for(int i = 0; i < treeWks->topLevelItemCount(); i++)
+    {
+        QTreeWidgetItem * item = treeWks->topLevelItem(i);
+
+        IGisProject * project = dynamic_cast<IGisProject*>(item);
+        if(nullptr != project)
+        {
+            project->drawItem(p, viewport, gis);
+            continue;
+        }
+        IDevice * device = dynamic_cast<IDevice*>(item);
+        if(nullptr != device)
+        {
+            device->drawItem(p, viewport, gis);
+            continue;
+        }
+    }
+
+
+    IGisItem * item = getItemByKey(keyWksSelection);
+    if(item != nullptr)
+    {
+        IGisProject * project = item->getParentProject();
+        if (project != nullptr && project->isVisible())
+        {
+            item->drawHighlight(p);
+        }
+    }
+}
+
+
diff --git a/src/qmapshack/gis/CGisWorkspace.h b/src/qmapshack/gis/CGisWorkspace.h
new file mode 100644
index 0000000..96f5468
--- /dev/null
+++ b/src/qmapshack/gis/CGisWorkspace.h
@@ -0,0 +1,452 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISWORKSPACE_H
+#define CGISWORKSPACE_H
+
+#include "ui_IGisWorkspace.h"
+#include <QEvent>
+#include <QSqlDatabase>
+#include <QWidget>
+
+#include "db/IDBFolder.h"
+#include "gis/IGisItem.h"
+#include "gis/rte/router/IRouter.h"
+
+class CGisDraw;
+class IGisProject;
+
+enum event_types_e
+{
+    eEvtD2WReqInfo     = QEvent::User + 1
+    ,eEvtD2WShowFolder  = QEvent::User + 2
+    ,eEvtD2WHideFolder  = QEvent::User + 3
+    ,eEvtD2WShowItems   = QEvent::User + 4
+    ,eEvtD2WHideItems   = QEvent::User + 5
+    ,eEvtD2WUpdateLnF   = QEvent::User + 6
+    ,eEvtD2WUpdateItems = QEvent::User + 7
+    ,eEvtD2WReload      = QEvent::User + 8
+
+    ,eEvtW2DAckInfo     = QEvent::User + 100
+    ,eEvtW2DCreate      = QEvent::User + 101
+
+    ,eEvtA2WCutTrk      = QEvent::User + 200
+    ,eEvtA2WSave        = QEvent::User + 201
+};
+
+struct evt_item_t
+{
+    evt_item_t(quint64 id, quint32 type) : id(id), type(type)
+    {
+    }
+    quint64 id;
+    quint32 type;
+};
+
+class CEvtD2WReqInfo : public QEvent
+{
+public:
+    CEvtD2WReqInfo(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WReqInfo)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+};
+
+class CEvtD2WShowFolder : public QEvent
+{
+public:
+    CEvtD2WShowFolder(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WShowFolder)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+};
+
+class CEvtD2WHideFolder : public QEvent
+{
+public:
+    CEvtD2WHideFolder(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WHideFolder)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+};
+
+class CEvtD2WShowItems : public QEvent
+{
+public:
+    CEvtD2WShowItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WShowItems)), id(id), db(db)
+    {
+    }
+
+    /// if true only the items in the list are loaded. Any other item loaded but not part of the list will be removed.
+    bool addItemsExclusively = false;
+    quint64 id;
+    QString db;
+    QList<evt_item_t> items;
+};
+
+class CEvtD2WHideItems : public QEvent
+{
+public:
+    CEvtD2WHideItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WHideItems)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+    QSet<QString> keys;
+};
+
+class CEvtW2DAckInfo : public QEvent
+{
+public:
+    CEvtW2DAckInfo(Qt::CheckState checkState, quint64 id, const QString& db, const QString& host)
+        : QEvent(QEvent::Type(eEvtW2DAckInfo))
+        , checkState(checkState)
+        , id(id)
+        , db(db)
+        , host(host)
+    {
+    }
+
+    CEvtW2DAckInfo(quint64 id, const QString& db, const QString& host)
+        : QEvent(QEvent::Type(eEvtW2DAckInfo))
+        , id(id)
+        , db(db)
+        , host(host)
+    {
+    }
+
+    Qt::CheckState checkState = Qt::Unchecked;
+    bool updateLostFound = false;
+    quint64 id;
+    QString db;
+    QString host;
+    QSet<QString> keysChildren;
+};
+
+class CEvtD2WUpdateLnF : public QEvent
+{
+public:
+    CEvtD2WUpdateLnF(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WUpdateLnF)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+};
+
+class CEvtW2DCreate : public QEvent
+{
+public:
+    CEvtW2DCreate(const QString& name, IDBFolder::type_e type, quint64 id, const QString& db, const QString& host)
+        : QEvent(QEvent::Type(eEvtW2DCreate))
+        , name(name)
+        , type(type)
+        , idParent(id)
+        , db(db)
+        , host(host)
+    {
+    }
+
+    QString name;
+    IDBFolder::type_e type;
+    quint64 idParent;
+    quint64 idChild = 0;
+    QString db;
+    QString host;
+};
+
+class CEvtD2WUpdateItems : public QEvent
+{
+public:
+    CEvtD2WUpdateItems(quint64 id, const QString& db) : QEvent(QEvent::Type(eEvtD2WUpdateItems)), id(id), db(db)
+    {
+    }
+
+    quint64 id;
+    QString db;
+};
+
+class CEvtD2WReload : public QEvent
+{
+public:
+    CEvtD2WReload(const QString& db) : QEvent(QEvent::Type(eEvtD2WReload)), db(db)
+    {
+    }
+
+    QString db;
+};
+
+
+class CEvtA2WCutTrk : public QEvent
+{
+public:
+    CEvtA2WCutTrk(const IGisItem::key_t& key) : QEvent(QEvent::Type(eEvtA2WCutTrk)), key(key)
+    {
+    }
+
+    const IGisItem::key_t key;
+};
+
+class CEvtA2WSave : public QEvent
+{
+public:
+    CEvtA2WSave(const QString& key) : QEvent(QEvent::Type(eEvtA2WSave)), key(key)
+    {
+    }
+
+    const QString key;
+};
+
+
+class CGisWorkspace : public QWidget, private Ui::IGisWorkspace
+{
+    Q_OBJECT
+public:
+    static CGisWorkspace& self()
+    {
+        return *pSelf;
+    }
+    virtual ~CGisWorkspace();
+
+    void loadGisProject(const QString& filename);
+    /**
+       @brief Draw all loaded data in the workspace that is visible
+
+       This method is called from The CGisDraw thread. The thread has to make sure
+       that everything is thread safe.
+
+       @param p         the painter to be used
+       @param viewport  the viewport in units of rad
+       @param gis       the draw context to be used
+     */
+    void draw(QPainter& p, const QPolygonF &viewport, CGisDraw *gis);
+
+    /**
+       @brief Receive the current mouse position
+
+       Iterate over all projects and pass the position
+
+       @param pos   the mouse position on the screen in pixel
+     */
+    void mouseMove(const QPointF& pos);
+    /**
+       @brief Draw all data that is time variant and can't wait for a full update
+
+       This method is called directly from the main thread's paintEvent() method.
+
+       @param p         the painter to be used
+       @param viewport  the viewport in units of rad
+       @param gis       the draw context to be used
+     */
+    void fastDraw(QPainter& p, const QRectF& viewport, CGisDraw *gis);
+
+    /**
+       @brief Get items close to the given point
+
+       Note: Do not store the pointers of items permanently as they can become invalid
+       once you reach the main event loop again. Store the key instead.
+
+       @param pos       the position in pixel
+       @param items     an empty item list that will get filled with temporary pointers
+     */
+    void getItemsByPos(const QPointF& pos, QList<IGisItem *> &items);
+
+    /**
+       @brief Get items matching the given area
+
+       @param area      a rectangle in screen pixel coordinates
+       @param flags     flag field with IGisItem::selection_e flags set
+       @param items     a list to receive the temporary pointers to the found items
+     */
+    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
+
+    /**
+       @brief Find first item with matching key
+       @param key       the item's key as it is returned from IGisItem::getKey()
+       @return If no item is found 0 is returned.
+     */
+    IGisItem * getItemByKey(const IGisItem::key_t &key);
+
+    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
+
+    void getNogoAreas(QList<IGisItem *> &nogos);
+    /**
+       @brief Delete all items with matching key from workspace
+
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void delItemByKey(const IGisItem::key_t &key);
+
+    void delItemsByKey(const QList<IGisItem::key_t> &keys);
+
+    /**
+       @brief Edit / view item details
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void editItemByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Select a project and add a copy of the item to the project
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void copyItemByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Select a project and add a copy of all items in the list
+       @param keys      a list of item keys to copy
+     */
+    void copyItemsByKey(const QList<IGisItem::key_t> &keys);
+
+    /**
+       @brief Clone waypoint and move clone
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void projWptByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Move waypoint via mouse
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void moveWptByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Add a new waypoint by Position
+       @param pt    the position in [?]
+     */
+    void addWptByPos(QPointF pt, const QString& label = QString::Null(), const QString& desc = QString::Null()) const;
+
+    void toggleWptBubble(const IGisItem::key_t &key);
+
+    void deleteWptRadius(const IGisItem::key_t &key);
+
+    void toggleNogoItem(const IGisItem::key_t &key);
+
+    void editWptRadius(const IGisItem::key_t &key);
+
+    /**
+       @brief Set user focus to track
+       @param yes       true if focus is set
+       @param key       the item's key as it is returned from IGisItem::getKey()
+     */
+    void focusTrkByKey(bool yes, const IGisItem::key_t &key);
+
+    void focusRteByKey(bool yes, const IGisItem::key_t &key);
+
+    void convertRouteToTrack(const IGisItem::key_t &key);
+
+
+    void cutTrkByKey(const IGisItem::key_t &key);
+
+    void editTrkByKey(const IGisItem::key_t &key);
+
+    void reverseTrkByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Combine all tracks in a given track's project
+
+       This will collect all tracks in a project and pass them
+       to the track combine dialog.
+
+       @param keyTrk    the key of the first track
+     */
+    void combineTrkByKey(const IGisItem::key_t &keyTrk);
+
+    /**
+       @brief Combine al tracks in the given list of keys.
+
+       @param keys  a list of GIS item keys
+     */
+    void combineTrkByKey(const QList<IGisItem::key_t>& keys, const QList<IGisItem::key_t> &keysPreSel);
+
+    void activityTrkByKey(const QList<IGisItem::key_t>& keys);
+
+    void colorTrkByKey(const QList<IGisItem::key_t>& keys);
+
+    void rangeTrkByKey(const IGisItem::key_t &key);
+
+    void copyTrkWithWptByKey(const IGisItem::key_t &key);
+
+    void editRteByKey(const IGisItem::key_t& key);
+
+    void reverseRteByKey(const IGisItem::key_t& key);
+
+    void calcRteByKey(const IGisItem::key_t& key);
+
+    void resetRteByKey(const IGisItem::key_t& key);
+
+    void editAreaByKey(const IGisItem::key_t &key);
+
+    void makeRteFromWpt(const QList<IGisItem::key_t>& keys);
+
+    void changeWptSymByKey(const QList<IGisItem::key_t>& keys, const QString& sym);
+    /**
+       @brief Select a project via dialog
+
+       If a new project name is entered a new project is created. Else the pointer
+       to an existing project is passed back.
+
+       @return 0 if no project was selected.
+     */
+    IGisProject * selectProject();
+
+    void postEventForWks(QEvent * event);
+
+    void setOpacity(qreal val);
+
+    void applyFilter();
+
+signals:
+    void sigChanged();
+
+public slots:
+    void slotSaveAll();
+    void slotWksItemSelectionReset();
+
+private slots:
+    void slotSetGisLayerOpacity(int val);
+    void slotFilter(const QString& str);
+    void slotSetupFilter();
+
+    void slotWksItemSelectionChanged();
+    void slotWksItemPressed(QTreeWidgetItem * item);
+
+
+private:
+    friend class CMainWindow;
+    CGisWorkspace(QMenu * menuProject, QWidget * parent);
+
+    static CGisWorkspace * pSelf;
+
+    /**
+        The item key of last item pressed in the workspace list.
+        The key will be reset by getItemsByPos() which is used by
+        the mouse object to find items close by for highlight.
+     */
+    IGisItem::key_t keyWksSelection;
+};
+
+#endif //CGISWORKSPACE_H
+
diff --git a/src/gis/CSelDevices.cpp b/src/qmapshack/gis/CSelDevices.cpp
similarity index 100%
rename from src/gis/CSelDevices.cpp
rename to src/qmapshack/gis/CSelDevices.cpp
diff --git a/src/gis/CSelDevices.h b/src/qmapshack/gis/CSelDevices.h
similarity index 100%
rename from src/gis/CSelDevices.h
rename to src/qmapshack/gis/CSelDevices.h
diff --git a/src/gis/CSetupFilter.cpp b/src/qmapshack/gis/CSetupFilter.cpp
similarity index 100%
rename from src/gis/CSetupFilter.cpp
rename to src/qmapshack/gis/CSetupFilter.cpp
diff --git a/src/gis/CSetupFilter.h b/src/qmapshack/gis/CSetupFilter.h
similarity index 100%
rename from src/gis/CSetupFilter.h
rename to src/qmapshack/gis/CSetupFilter.h
diff --git a/src/qmapshack/gis/IGisDatabase.ui b/src/qmapshack/gis/IGisDatabase.ui
new file mode 100644
index 0000000..1c4ec9f
--- /dev/null
+++ b/src/qmapshack/gis/IGisDatabase.ui
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGisDatabase</class>
+ <widget class="QWidget" name="IGisDatabase">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>345</width>
+    <height>297</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="CGisSummary" name="widgetSummary" native="true"/>
+   </item>
+   <item>
+    <widget class="CGisListDB" name="treeDB">
+     <property name="contextMenuPolicy">
+      <enum>Qt::CustomContextMenu</enum>
+     </property>
+     <property name="selectionMode">
+      <enum>QAbstractItemView::ExtendedSelection</enum>
+     </property>
+     <property name="selectionBehavior">
+      <enum>QAbstractItemView::SelectRows</enum>
+     </property>
+     <property name="iconSize">
+      <size>
+       <width>20</width>
+       <height>20</height>
+      </size>
+     </property>
+     <property name="indentation">
+      <number>10</number>
+     </property>
+     <column>
+      <property name="text">
+       <string notr="true">-</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>Name</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>Age</string>
+      </property>
+     </column>
+    </widget>
+   </item>
+   <item>
+    <widget class="QFrame" name="frameHelp">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <property name="leftMargin">
+       <number>3</number>
+      </property>
+      <property name="topMargin">
+       <number>3</number>
+      </property>
+      <property name="rightMargin">
+       <number>3</number>
+      </property>
+      <property name="bottomMargin">
+       <number>3</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="labelHelp1">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+        <property name="pixmap">
+         <pixmap resource="../resources.qrc">:/icons/48x48/Help.png</pixmap>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="labelHelp2">
+        <property name="text">
+         <string>To add a database do a right click on the database list above.</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+  <action name="actionShowSummaryDropZones">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/ShowSummary.png</normaloff>:/icons/32x32/ShowSummary.png</iconset>
+   </property>
+   <property name="text">
+    <string>Show Summary Drop Zones</string>
+   </property>
+  </action>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CGisSummary</class>
+   <extends>QWidget</extends>
+   <header>gis/summary/CGisSummary.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CGisListDB</class>
+   <extends>QTreeWidget</extends>
+   <header>gis/CGisListDB.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/IGisItem.cpp b/src/qmapshack/gis/IGisItem.cpp
new file mode 100644
index 0000000..319f487
--- /dev/null
+++ b/src/qmapshack/gis/IGisItem.cpp
@@ -0,0 +1,982 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "device/IDevice.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/IGisItem.h"
+#include "gis/db/macros.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "units/IUnit.h"
+
+#include <QtSql>
+#include <QtWidgets>
+#include <QtXml>
+
+QMutex IGisItem::mutexItems(QMutex::Recursive);
+
+const QString IGisItem::noKey;
+
+const QString IGisItem::noName = IGisItem::tr("[no name]");
+
+const IGisItem::color_t IGisItem::colorMap[] =
+{
+    {"Black",        QColor(Qt::black),       QString("://icons/8x8/bullet_black.png")}
+    ,{"DarkRed",     QColor(Qt::darkRed),     QString("://icons/8x8/bullet_dark_red.png")}
+    ,{"DarkGreen",   QColor(Qt::darkGreen),   QString("://icons/8x8/bullet_dark_green.png")}
+    ,{"DarkYellow",  QColor(Qt::darkYellow),  QString("://icons/8x8/bullet_dark_yellow.png")}
+    ,{"DarkBlue",    QColor(Qt::darkBlue),    QString("://icons/8x8/bullet_dark_blue.png")}
+    ,{"DarkMagenta", QColor(Qt::darkMagenta), QString("://icons/8x8/bullet_dark_magenta.png")}
+    ,{"DarkCyan",    QColor(Qt::darkCyan),    QString("://icons/8x8/bullet_dark_cyan.png")}
+    ,{"LightGray",   QColor(Qt::lightGray),   QString("://icons/8x8/bullet_gray.png")}
+    ,{"DarkGray",    QColor(Qt::darkGray),    QString("://icons/8x8/bullet_dark_gray.png")}
+    ,{"Red",         QColor(Qt::red),         QString("://icons/8x8/bullet_red.png")}
+    ,{"Green",       QColor(Qt::green),       QString("://icons/8x8/bullet_green.png")}
+    ,{"Yellow",      QColor(Qt::yellow),      QString("://icons/8x8/bullet_yellow.png")}
+    ,{"Blue",        QColor(Qt::blue),        QString("://icons/8x8/bullet_blue.png")}
+    ,{"Magenta",     QColor(Qt::magenta),     QString("://icons/8x8/bullet_magenta.png")}
+    ,{"Cyan",        QColor(Qt::cyan),        QString("://icons/8x8/bullet_cyan.png")}
+    ,{"White",       QColor(Qt::white),       QString("://icons/8x8/bullet_white.png")}
+    ,{"Transparent", QColor(Qt::transparent), QString()}
+};
+
+const size_t IGisItem::colorMapSize = sizeof(colorMap) / sizeof(color_t);
+
+IGisItem::IGisItem(IGisProject *parent, type_e typ, int idx)
+    : QTreeWidgetItem(parent, typ)
+{
+    int n = -1;
+    setFlags(QTreeWidgetItem::flags() & ~Qt::ItemIsDropEnabled);
+
+    if(nullptr == parent)
+    {
+        return;
+    }
+
+    key.project = parent->getKey();
+    key.device  = parent->getDeviceKey();
+
+    if(idx >= 0)
+    {
+        parent->removeChild(this);
+        parent->insertChild(idx, this);
+    }
+    else
+    {
+        if(type() == eTypeTrk)
+        {
+            for(n = parent->childCount() - 2; n >= 0; n--)
+            {
+                /** @note   The order of item types to test is given by the order items read from
+                            the GPX file in the CGpxProject constructor.  */
+
+                int childType = parent->child(n)->type();
+                if(childType == eTypeTrk)
+                {
+                    parent->removeChild(this);
+                    parent->insertChild(n+1, this);
+                    break;
+                }
+            }
+        }
+        else if(type() == eTypeRte)
+        {
+            for(n = parent->childCount() - 2; n >= 0; n--)
+            {
+                /** @note   The order of item types to test is given by the order items read from
+                            the GPX file in the CGpxProject constructor.  */
+
+                int childType = parent->child(n)->type();
+                if( childType == eTypeRte || childType == eTypeTrk)
+                {
+                    parent->removeChild(this);
+                    parent->insertChild(n+1, this);
+                    break;
+                }
+            }
+        }
+        else if(type() == eTypeWpt)
+        {
+            for(n = parent->childCount() - 2; n >= 0; n--)
+            {
+                /** @note   The order of item types to test is given by the order items read from
+                            the GPX file in the CGpxProject constructor.  */
+
+                int childType = parent->child(n)->type();
+                if(childType == eTypeWpt || childType == eTypeRte || childType == eTypeTrk)
+                {
+                    parent->removeChild(this);
+                    parent->insertChild(n+1, this);
+                    break;
+                }
+            }
+        }
+        else if(type() == eTypeOvl)
+        {
+            for(n = parent->childCount() - 2; n >= 0; n--)
+            {
+                /** @note   The order of item types to test is given by the order items read from
+                            the GPX file in the CGpxProject constructor.  */
+
+                int childType = parent->child(n)->type();
+                if(childType == eTypeOvl || childType == eTypeWpt || childType == eTypeRte || childType == eTypeTrk)
+                {
+                    parent->removeChild(this);
+                    parent->insertChild(n+1, this);
+                    break;
+                }
+            }
+        }
+
+        if(n < 0)
+        {
+            parent->removeChild(this);
+            parent->insertChild(0, this);
+        }
+    }
+}
+
+IGisItem::~IGisItem()
+{
+}
+
+IGisProject * IGisItem::getParentProject() const
+{
+    return dynamic_cast<IGisProject*>(parent());
+}
+
+void IGisItem::genKey() const
+{
+    if(key.item.isEmpty())
+    {
+        QByteArray buffer;
+        QDataStream stream(&buffer, QIODevice::WriteOnly);
+        stream.setByteOrder(QDataStream::LittleEndian);
+        stream.setVersion(QDataStream::Qt_5_2);
+
+        *this >> stream;
+
+        QCryptographicHash md5(QCryptographicHash::Md5);
+        md5.addData(buffer);
+        key.item = md5.result().toHex();
+    }
+    if(key.project.isEmpty())
+    {
+        IGisProject * project = getParentProject();
+        if(project)
+        {
+            key.project = project->getKey();
+        }
+    }
+}
+
+void IGisItem::loadFromDb(quint64 id, QSqlDatabase& db)
+{
+    QSqlQuery query(db);
+    query.prepare("SELECT data, keyqms, hash FROM items WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+    if(query.next())
+    {
+        QByteArray data(query.value(0).toByteArray());
+        QDataStream in(&data, QIODevice::ReadOnly);
+        in.setByteOrder(QDataStream::LittleEndian);
+        in.setVersion(QDataStream::Qt_5_2);
+        in >> history;
+        loadHistory(history.histIdxCurrent);
+
+        if(key.item.isEmpty())
+        {
+            QString keyFromDB = query.value(1).toString();
+            /*[Issue #72] Database/Workspace inconsistency in QMS 1.4.0
+
+               The root cause is a missing key in the serialized data. This is fixed by calling getKey() in setupHistory().
+
+               As the database has a valid key the complete history data has to be fixed with that key.
+             */
+            const int N = history.events.size();
+            for(int i = 0; i < N; i++)
+            {
+                loadHistory(i);
+                key.item = keyFromDB;
+                updateHistory();
+            }
+        }
+
+        lastDatabaseHash = query.value(2).toString();
+    }
+}
+
+void IGisItem::updateFromDB(quint64 id, QSqlDatabase& db)
+{
+    QSqlQuery query(db);
+
+    query.prepare("SELECT hash FROM items WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+
+    /*
+        Test on the hash stored in the database. If the hash is
+        equal to the one stored in this item the item is up-to-date
+     */
+
+    if(query.next())
+    {
+        if(query.value(0).toString() == lastDatabaseHash)
+        {
+            return;
+        }
+    }
+    else
+    {
+        // no hash? better leave...
+        return;
+    }
+
+    // reset history and load item again
+    history.reset();
+    loadFromDb(id, db);
+}
+
+QString IGisItem::getNameEx() const
+{
+    QString str = getName();
+    IGisProject * project = getParentProject();
+    if(project)
+    {
+        str += " @ " + project->getName();
+    }
+    IDevice * device = dynamic_cast<IDevice*>(parent()->parent());
+    if(device)
+    {
+        str += " @ " + device->getName();
+    }
+
+    return str;
+}
+
+
+void IGisItem::updateDecoration(quint32 enable, quint32 disable)
+{
+    // update text and icon
+    setToolTip(CGisListWks::eColumnName,getInfo(IGisItem::eFeatureShowName));
+    setText(CGisListWks::eColumnName, getName());
+    setSymbol();
+
+    // update project if necessary
+    IGisProject * project = getParentProject();
+    if(project && (enable & (eMarkChanged|eMarkNotPart|eMarkNotInDB)))
+    {
+        project->setChanged();
+    }
+
+    // test for lost & found folder
+    if(project && project->getType() == IGisProject::eTypeLostFound)
+    {
+        setText(CGisListWks::eColumnDecoration, QString());
+        setToolTip(CGisListWks::eColumnDecoration, QString());
+        return;
+    }
+
+    // set marks in column 1
+    quint32 mask = data(1,Qt::UserRole).toUInt();
+    mask |=  enable;
+    mask &= ~disable;
+    setData(1, Qt::UserRole, mask);
+
+    QString tt;
+    QString str;
+    if(mask & eMarkNotPart)
+    {
+        tt  += tt.isEmpty() ? "" : "\n";
+        tt  += tr("The item is not part of the project in the database.");
+        tt  += tr("\nIt is either a new item or it has been deleted in the database by someone else.");
+        str += "?";
+    }
+    if(mask & eMarkNotInDB)
+    {
+        tt  += tt.isEmpty() ? "" : "\n";
+        tt  += tr("The item is not in the database.");
+        str += "X";
+    }
+    if(mask & eMarkChanged)
+    {
+        tt  += tt.isEmpty() ? "" : "\n";
+        tt  += tr("The item might need to be saved");
+        str += "*";
+    }
+    setText(CGisListWks::eColumnDecoration, str);
+    setToolTip(CGisListWks::eColumnDecoration, tt);
+}
+
+
+void IGisItem::changed(const QString &what, const QString &icon)
+{
+    /*
+        If item gets changed but if it's origin is not QMapShack
+        then it is assumed to be tainted, as imported data should
+        never be changed without notice.
+     */
+    if(!(flags & eFlagCreatedInQms))
+    {
+        flags |= eFlagTainted;
+    }
+
+    // forget all history entries after the current entry
+    for(int i = history.events.size() - 1; i > history.histIdxCurrent; i--)
+    {
+        history.events.pop_back();
+    }
+
+    // append history by new entry
+    history.events << history_event_t();
+    history_event_t& event = history.events.last();
+    event.time      = QDateTime::currentDateTimeUtc();
+    event.comment   = what;
+    event.icon      = icon;
+    event.who       = CMainWindow::getUser();
+
+    QDataStream stream(&event.data, QIODevice::WriteOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_2);
+
+    *this >> stream;
+
+    QCryptographicHash md5(QCryptographicHash::Md5);
+    md5.addData(event.data);
+    event.hash = md5.result().toHex();
+
+    history.histIdxCurrent = history.events.size() - 1;
+
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void IGisItem::updateHistory()
+{
+    if(history.histIdxCurrent == NOIDX)
+    {
+        return;
+    }
+
+    history_event_t& event = history.events[history.histIdxCurrent];
+    event.data.clear();
+
+    QDataStream stream(&event.data, QIODevice::WriteOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_2);
+
+    *this >> stream;
+
+    QCryptographicHash md5(QCryptographicHash::Md5);
+    md5.addData(event.data);
+    event.hash = md5.result().toHex();
+
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void IGisItem::setupHistory()
+{
+    getKey();
+    history.histIdxInitial = NOIDX;
+    history.histIdxCurrent = NOIDX;
+
+    // if history is empty setup an initial item
+    if(history.events.isEmpty())
+    {
+        history.events << history_event_t();
+        history_event_t& event = history.events.last();
+        event.time      = QDateTime::currentDateTimeUtc();
+        event.comment   = tr("Initial version.");
+        event.icon      = "://icons/48x48/Start.png";
+    }
+
+    // search for the first item with data
+    for(int i = 0; i < history.events.size(); i++)
+    {
+        if(!history.events[i].data.isEmpty())
+        {
+            history.histIdxInitial = i;
+            break;
+        }
+    }
+
+    // if no initial item can be found fill the last item with data
+    // and make it the initial item
+    if(history.histIdxInitial == NOIDX)
+    {
+        history_event_t& event = history.events.last();
+
+        QDataStream stream(&event.data, QIODevice::WriteOnly);
+        stream.setByteOrder(QDataStream::LittleEndian);
+        stream.setVersion(QDataStream::Qt_5_2);
+        *this >> stream;
+
+        QCryptographicHash md5(QCryptographicHash::Md5);
+        md5.addData(event.data);
+        event.hash = md5.result().toHex();
+
+        history.histIdxInitial = history.events.size() - 1;
+    }
+
+    history.histIdxCurrent = history.events.size() - 1;
+}
+
+void IGisItem::loadHistory(int idx)
+{
+    // test for bad index
+    if((idx >= history.events.size()) || (idx < 0))
+    {
+        return;
+    }
+
+    history_event_t& event = history.events[idx];
+
+    // test for no data
+    if(event.data.isEmpty())
+    {
+        return;
+    }
+
+    // restore item from history entry
+    QDataStream stream(&event.data, QIODevice::ReadOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_2);
+    *this << stream;
+
+    history.histIdxCurrent = idx;
+}
+
+void IGisItem::cutHistoryAfter()
+{
+    while(history.events.size() > (history.histIdxCurrent + 1))
+    {
+        history.events.pop_back();
+    }
+}
+
+void IGisItem::cutHistoryBefore()
+{
+    for (int i = 0; i < history.histIdxCurrent; i++)
+    {
+        history.events[i].data.clear();
+    }
+}
+
+bool IGisItem::isReadOnly() const
+{
+    return !(flags & eFlagWriteAllowed) || isOnDevice();
+}
+
+bool IGisItem::isTainted() const
+{
+    return flags & eFlagTainted;
+}
+
+qint32 IGisItem::isOnDevice() const
+{
+    IGisProject * project = getParentProject();
+    if(nullptr == project)
+    {
+        return false;
+    }
+    return project->isOnDevice();
+}
+
+bool IGisItem::setReadOnlyMode(bool readOnly)
+{
+    // if the item is on a device no change is allowed
+    if(isOnDevice())
+    {
+        return false;
+    }
+
+    // test if it is a change at all
+    if(isReadOnly() == readOnly)
+    {
+        return true;
+    }
+
+    // warn if item is external and read only
+    if(!(flags & (eFlagCreatedInQms|eFlagTainted)))
+    {
+        SETTINGS;
+        bool doNotAsk = cfg.value("Dialog/Items/ReadOnly/doNotAsk", false).toBool();
+
+        if(isReadOnly() && !readOnly && !doNotAsk)
+        {
+            CCanvas::setOverrideCursor(Qt::ArrowCursor, "setReadOnlyMode");
+
+            QCheckBox * checkBox = new QCheckBox(tr("Never ask again."), 0);
+            QString msg = tr("<h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.").arg(getName());
+            QMessageBox box(QMessageBox::Warning, tr("Read Only Mode..."), msg, QMessageBox::Ok|QMessageBox::Abort, CMainWindow::getBestWidgetForParent());
+            box.setDefaultButton(QMessageBox::Ok);
+            box.setCheckBox(checkBox);
+            int res = box.exec();
+
+            CCanvas::restoreOverrideCursor("setReadOnlyMode");
+
+            if(res != QMessageBox::Ok)
+            {
+                return false;
+            }
+
+            cfg.setValue("Dialog/Items/ReadOnly/doNotAsk", checkBox->isChecked());
+        }
+    }
+
+    // finally change flag
+    if(readOnly)
+    {
+        flags &= ~eFlagWriteAllowed;
+    }
+    else
+    {
+        flags |= eFlagWriteAllowed;
+    }
+
+    updateHistory();
+    return true;
+}
+
+
+const IGisItem::key_t &IGisItem::getKey() const
+{
+    if(key.item.isEmpty() || key.project.isEmpty())
+    {
+        genKey();
+    }
+    return key;
+}
+
+const QString& IGisItem::getHash()
+{
+    if(history.histIdxCurrent == NOIDX)
+    {
+        return noKey;
+    }
+    return history.events[history.histIdxCurrent].hash;
+}
+
+
+const QString& IGisItem::getLastDatabaseHash()
+{
+    if(lastDatabaseHash.isEmpty())
+    {
+        lastDatabaseHash = getHash();
+    }
+
+    return lastDatabaseHash;
+}
+
+void IGisItem::setLastDatabaseHash(quint64 id, QSqlDatabase& db)
+{
+    lastDatabaseHash = getHash();
+}
+
+void IGisItem::setIcon(const QPixmap &icon)
+{
+    this->icon = icon;
+    showIcon();
+}
+
+void IGisItem::showIcon()
+{
+    if (isNogo())
+    {
+        const int & width = icon.width();
+        const int & height = icon.height();
+        displayIcon = QPixmap(width,height);
+        displayIcon.fill(Qt::transparent);
+        QPainter painter(&displayIcon);
+        painter.drawPixmap(0,0,icon);
+        painter.drawPixmap(width*0.4,height*0.4,QPixmap("://icons/48x48/NoGo.png").scaled(width*0.6,height*0.6,Qt::KeepAspectRatio, Qt::SmoothTransformation));
+    }
+    else
+    {
+        displayIcon = icon;
+    }
+    QTreeWidgetItem::setIcon(CGisListWks::eColumnIcon,displayIcon);
+}
+
+
+QColor IGisItem::str2color(const QString& name)
+{
+    for(size_t i = 0; i < colorMapSize; i++)
+    {
+        if(QString(colorMap[i].name).toUpper() == name.toUpper())
+        {
+            return colorMap[i].color;
+        }
+    }
+
+    return QColor(name);
+}
+
+QString IGisItem::color2str(const QColor& color)
+{
+    for(size_t i = 0; i < colorMapSize; i++)
+    {
+        if(colorMap[i].color == color)
+        {
+            return colorMap[i].name;
+        }
+    }
+
+    return "";
+}
+
+void IGisItem::splitLineToViewport(const QPolygonF& line, const QRectF& extViewport, QList<QPolygonF>& lines)
+{
+    if(line.isEmpty())
+    {
+        return;
+    }
+
+    QPointF ptt;
+    QPointF pt = line[0];
+
+    QPolygonF subline;
+    subline << pt;
+
+    const int size = line.size();
+    for(int i = 1; i < size; i++)
+    {
+        QPointF pt1 = line[i];
+
+        if(!GPS_Math_LineCrossesRect(pt, pt1, extViewport))
+        {
+            pt = pt1;
+            if(subline.size() > 1)
+            {
+                lines << subline;
+            }
+            subline.clear();
+            subline << pt;
+            continue;
+        }
+
+        ptt = pt1 - pt;
+        if(ptt.manhattanLength() >= 5)
+        {
+            subline << pt1;
+            pt = pt1;
+        }
+    }
+
+    if(subline.size() > 1)
+    {
+        lines << subline;
+    }
+}
+
+QString IGisItem::removeHtml(const QString &str)
+{
+    QTextDocument html;
+    html.setHtml(str);
+    return html.toPlainText();
+}
+
+QString IGisItem::html2Dev(const QString& str, bool strictGpx11)
+{
+    // device or not, an empty text should never be enclosed in HTML tags
+    if(removeHtml(str).simplified().isEmpty())
+    {
+        return "";
+    }
+
+    return (isOnDevice() == IDevice::eTypeGarmin) || strictGpx11 ? removeHtml(str) : str;
+}
+
+QString IGisItem::toLink(bool isReadOnly, const QString& href, const QString& str, const QString &key)
+{
+    if(isReadOnly)
+    {
+        return QString("%1").arg(str);
+    }
+    if(key.isEmpty())
+    {
+        return QString("<a href='%1'>%2</a>").arg(href).arg(str);
+    }
+    else
+    {
+        return QString("<a href='%1?key=%3'>%2</a>").arg(href).arg(str).arg(key);
+    }
+}
+
+QString IGisItem::createText(bool isReadOnly, const QString& cmt, const QString& desc, const QList<link_t>& links, const QString &key)
+{
+    QString str;
+    bool isEmpty;
+
+    isEmpty = removeHtml(desc).simplified().isEmpty();
+    if(!isReadOnly || !isEmpty)
+    {
+        str += toLink(isReadOnly, "description", tr("<h4>Description:</h4>"), key);
+        if(removeHtml(desc).simplified().isEmpty())
+        {
+            str += tr("<p>--- no description ---</p>");
+        }
+        else
+        {
+            str += desc;
+        }
+    }
+
+    isEmpty = removeHtml(cmt).simplified().isEmpty();
+    if(!isReadOnly || !isEmpty)
+    {
+        str += toLink(isReadOnly, "comment", tr("<h4>Comment:</h4>"), key);
+        if(isEmpty)
+        {
+            str += tr("<p>--- no comment ---</p>");
+        }
+        else
+        {
+            str += cmt;
+        }
+    }
+
+    isEmpty = links.isEmpty();
+    if(!isReadOnly || !isEmpty)
+    {
+        str += toLink(isReadOnly, "links", tr("<h4>Links:</h4>"), key);
+        if(isEmpty)
+        {
+            str += tr("<p>--- no links ---</p>");
+        }
+        else
+        {
+            for(const link_t &link : links)
+            {
+                str += QString("<p><a href='%1'>%2</a></p>").arg(link.uri.toString())
+                       .arg(link.text.isEmpty() ? link.uri.toString() : link.text);
+            }
+        }
+    }
+    return str;
+}
+
+QString IGisItem::createText(bool isReadOnly, const QString& desc, const QList<link_t>& links, const QString& key)
+{
+    QString str;
+    bool isEmpty;
+
+    isEmpty = removeHtml(desc).simplified().isEmpty();
+    if(!isReadOnly || !isEmpty)
+    {
+        str += toLink(isReadOnly, "description", tr("<h4>Description:</h4>"), key);
+        if(removeHtml(desc).simplified().isEmpty())
+        {
+            str += tr("<p>--- no description ---</p>");
+        }
+        else
+        {
+            str += desc;
+        }
+    }
+
+    isEmpty = links.isEmpty();
+    if(!isReadOnly || !isEmpty)
+    {
+        str += toLink(isReadOnly, "links", tr("<h4>Links:</h4>"), key);
+        if(isEmpty)
+        {
+            str += tr("<p>--- no links ---</p>");
+        }
+        else
+        {
+            for(const link_t &link : links)
+            {
+                str += QString("<p><a href='%1'>%2</a></p>").arg(link.uri.toString())
+                       .arg(link.text.isEmpty() ? link.uri.toString() : link.text);
+            }
+        }
+    }
+    return str;
+}
+
+bool IGisItem::isVisible(const QRectF &rect, const QPolygonF& viewport, CGisDraw *gis)
+{
+    QPolygonF tmp1;
+    tmp1 << rect.topLeft();
+    tmp1 << rect.topRight();
+    tmp1 << rect.bottomRight();
+    tmp1 << rect.bottomLeft();
+
+    gis->convertRad2Px(tmp1);
+
+    QPolygonF tmp2 = viewport;
+    gis->convertRad2Px(tmp2);
+
+    return tmp2.boundingRect().intersects(tmp1.boundingRect());
+}
+
+bool IGisItem::isVisible(const QPointF& point, const QPolygonF& viewport, CGisDraw * gis)
+{
+    QPolygonF tmp2 = viewport;
+    gis->convertRad2Px(tmp2);
+
+    QPointF pt = point;
+    gis->convertRad2Px(pt);
+
+    return tmp2.boundingRect().contains(pt);
+}
+
+bool IGisItem::isChanged() const
+{
+    return text(CGisListWks::eColumnDecoration).contains('*');
+}
+
+bool IGisItem::isWithin(const QRectF& area, selflags_t flags, const QPolygonF& points)
+{
+    if(points.isEmpty())
+    {
+        return false;
+    }
+
+    if(flags & eSelectionExact)
+    {
+        for(const QPointF &point : points)
+        {
+            if(!area.contains(point))
+            {
+                return false;
+            }
+        }
+        return true;
+    }
+    else if(flags & eSelectionIntersect)
+    {
+        for(const QPointF &point : points)
+        {
+            if(area.contains(point))
+            {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    return false;
+}
+
+void IGisItem::setNogo(bool yes)
+{
+    bool changed = false;
+    if(yes)
+    {
+        if(!isNogo())
+        {
+            setNogoFlag(true);
+            changed = true;
+        }
+    }
+    else
+    {
+        if(isNogo())
+        {
+            setNogoFlag(false);
+            changed = true;
+        }
+    }
+    if (changed)
+    {
+        showIcon();
+        updateHistory();
+    }
+}
+
+void IGisItem::setNogoFlag(bool yes)
+{
+    if (yes)
+    {
+        flags |= eFlagNogo;
+    }
+    else
+    {
+        flags &= ~eFlagNogo;
+    }
+}
+
+const QBrush& IGisItem::getNogoTextureBrush()
+{
+    static QBrush texture = []() -> QBrush {
+                                QPixmap texture(40,40);
+                                QColor color = QColor(255,0,0,77);
+                                texture.fill(color);
+                                QPainter painter(&texture);
+                                QPixmap nogo = QPixmap("://icons/48x48/NoGo.png").scaled(14,14,Qt::KeepAspectRatio, Qt::SmoothTransformation);
+                                painter.setOpacity(0.5);
+                                painter.drawPixmap(0,0,nogo);
+                                painter.drawPixmap(20,20,nogo);
+                                return QBrush(texture);
+                            } ();
+    return texture;
+}
+
+bool IGisItem::getNameAndProject(QString &name, IGisProject *&project, const QString& itemtype)
+{
+    name = QInputDialog::getText(CMainWindow::getBestWidgetForParent(), tr("Edit name..."), tr("Enter new %1 name.").arg(itemtype), QLineEdit::Normal, name);
+    if(name.isEmpty())
+    {
+        return false;
+    }
+
+    project = CGisWorkspace::self().selectProject();
+    return nullptr != project;
+}
+
+IGisItem * IGisItem::newGisItem(quint32 type, quint64 id, QSqlDatabase& db, IGisProject * project)
+{
+    IGisItem *item = nullptr;
+
+    // load item from database
+    switch(type)
+    {
+    case IGisItem::eTypeWpt:
+        item = new CGisItemWpt(id, db, project);
+        break;
+
+    case IGisItem::eTypeTrk:
+        item = new CGisItemTrk(id, db, project);
+        break;
+
+    case IGisItem::eTypeRte:
+        item = new CGisItemRte(id, db, project);
+        break;
+
+    case IGisItem::eTypeOvl:
+        item = new CGisItemOvlArea(id, db, project);
+        break;
+
+    default:
+        ;
+    }
+
+    return item;
+}
diff --git a/src/qmapshack/gis/IGisItem.h b/src/qmapshack/gis/IGisItem.h
new file mode 100644
index 0000000..0f24808
--- /dev/null
+++ b/src/qmapshack/gis/IGisItem.h
@@ -0,0 +1,619 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef IGISITEM_H
+#define IGISITEM_H
+
+#include <QTreeWidgetItem>
+
+#include <QColor>
+#include <QCoreApplication>
+#include <QDateTime>
+#include <QDomNode>
+#include <QMap>
+#include <QMutex>
+#include <QPainter>
+#include <QString>
+#include <QStringList>
+#include <QUrl>
+#include <QVariant>
+
+#include "units/IUnit.h"
+
+class CGisDraw;
+class IScrOpt;
+class IMouse;
+class QSqlDatabase;
+class IGisProject;
+
+
+class IGisItem : public QTreeWidgetItem
+{
+    Q_DECLARE_TR_FUNCTIONS(IGisItem)
+public:
+    struct history_event_t
+    {
+        QDateTime time;
+        QString hash;
+        QString who = "QMapShack";
+        QString icon;
+        QString comment;
+        QByteArray data;
+    };
+
+    struct history_t
+    {
+        history_t() : histIdxInitial(NOIDX), histIdxCurrent(NOIDX)
+        {
+        }
+
+        void reset()
+        {
+            histIdxInitial = NOIDX;
+            histIdxCurrent = NOIDX;
+            events.clear();
+        }
+
+        qint32 histIdxInitial;
+        qint32 histIdxCurrent;
+        QList<history_event_t> events;
+    };
+
+
+    struct link_t
+    {
+        QUrl uri;
+        QString text;
+        QString type;
+    };
+
+    struct wpt_t
+    {
+        wpt_t() :
+            lat(NOFLOAT),
+            lon(NOFLOAT),
+            ele(NOINT),
+            magvar(NOINT),
+            geoidheight(NOINT),
+            sat(NOINT),
+            hdop(NOINT),
+            vdop(NOINT),
+            pdop(NOINT),
+            ageofdgpsdata(NOINT),
+            dgpsid(NOINT)
+        {
+        }
+        // -- all gpx tags - start
+        qreal lat;
+        qreal lon;
+        qint32 ele;
+        QDateTime time;
+        qint32 magvar;
+        qint32 geoidheight;
+        QString name;
+        QString cmt;
+        QString desc;
+        QString src;
+        QList<link_t> links;
+        QString sym;
+        QString type;
+        QString fix;
+        qint32 sat;
+        qint32 hdop;
+        qint32 vdop;
+        qint32 pdop;
+        qint32 ageofdgpsdata;
+        qint32 dgpsid;
+        // -- all gpx tags - stop
+        QMap<QString, QVariant> extensions;
+    };
+
+    /// never ever change these numbers. it will break binary data files
+    enum type_e
+    {
+        eTypeWpt = 1
+        , eTypeTrk = 2
+        , eTypeRte = 3
+        , eTypeOvl = 4
+        , eTypeMax = 5
+    };
+
+    enum mark_e
+    {
+        eMarkNone      = 0
+        ,eMarkChanged   = 0x00000001
+        ,eMarkNotPart   = 0x00000002
+        ,eMarkNotInDB   = 0x00000004
+    };
+
+    enum selection_e
+    {
+        eSelectionNone          = 0
+        , eSelectionExact       = 0x00000001
+        , eSelectionIntersect   = 0x00000002
+        , eSelectionTrk         = 0x80000000
+        , eSelectionWpt         = 0x40000000
+        , eSelectionRte         = 0x20000000
+        , eSelectionOvl         = 0x10000000
+    };
+
+    using selflags_t = quint32;
+
+    struct key_t
+    {
+        bool operator==(const key_t& k) const
+        {
+            return (item == k.item) && (project == k.project) && (device == k.device);
+        }
+        bool operator!=(const key_t& k) const
+        {
+            return (item != k.item) || (project != k.project) || (device != k.device);
+        }
+        void clear()
+        {
+            item.clear();
+            project.clear();
+            device.clear();
+        }
+        QString item;
+        QString project;
+        QString device;
+    };
+
+    IGisItem(IGisProject *parent, type_e typ, int idx);
+    virtual ~IGisItem();
+
+    /// this mutex has to be locked when ever the item list is accessed.
+    static QMutex mutexItems;
+
+    /**
+       @brief If the item is part of a database project it will update itself with the database content
+     */
+    virtual void updateFromDB(quint64 id, QSqlDatabase& db);
+
+    /**
+       @brief Update the visual representation of the QTreeWidgetItem
+       @param enable
+       @param disable
+     */
+    virtual void updateDecoration(quint32 enable, quint32 disable);
+
+    /**
+       @brief Save the item's data into a GPX structure
+       @param gpx       the files <gpx> tag to attach the data to
+     */
+    virtual void save(QDomNode& gpx, bool strictGpx11) = 0;
+
+    /**
+       @brief Get key string to identify object
+       @return
+     */
+    const key_t& getKey() const;
+
+    /**
+       @brief Get a hash over the items data.
+
+       Every entry in the history has a hash over the item's serialized data. If the
+       data changes a new history entry is created and a new hash calculated. Thus the
+       has can be used to detect if an item has been changed between the last time the
+       hash was read.
+
+       @return The hash as a string reference.
+     */
+    const QString& getHash();
+
+    /**
+       @brief Get the hash stored in the database when the item was loaded
+
+       @return The hash as a string
+     */
+    const QString& getLastDatabaseHash();
+
+    /**
+       @brief Read the hash stored in the database
+     */
+    void setLastDatabaseHash(quint64 id, QSqlDatabase& db);
+
+    /**
+       @brief Get the icon attached to object
+       @return
+     */
+    void setIcon(const QPixmap & icon);
+
+    const QPixmap& getIcon() const
+    {
+        return icon;
+    }
+
+    const QPixmap& getDisplayIcon() const
+    {
+        return displayIcon;
+    }
+    /**
+       @brief Get name of this item.
+       @return A reference to the internal string object
+     */
+    virtual const QString& getName() const = 0;
+
+    /**
+       @brief Get name of this item extended by the project name
+       @return A string object.
+     */
+    virtual QString getNameEx() const;
+
+
+    enum features_e
+    {
+        eFeatureNone            = 0
+        , eFeatureShowName      = 0x00000001
+        , eFeatureShowFullText  = 0x00000002
+        , eFeatureShowActivity  = 0x00000004
+        , eFeatureShowDateTime  = 0x00000008
+    };
+
+    /**
+       @brief Get a short string with the items properties to be displayed in tool tips or similar
+
+       @param showName          set true if the first line should be the item's name
+       @param features          a combination of features_e types
+
+       @return A string object.
+     */
+    virtual QString getInfo(quint32 features) const = 0;
+
+    virtual const QString& getComment() const = 0;
+    virtual const QString& getDescription() const = 0;
+    virtual const QList<link_t>& getLinks() const = 0;
+    virtual QDateTime getTimestamp() const = 0;
+
+
+    virtual void setComment(const QString& str) = 0;
+    virtual void setDescription(const QString& str) = 0;
+    virtual void setLinks(const QList<link_t>& links) = 0;
+
+    /**
+        @brief Edit content of item.
+
+        This is quite dependent on the item. The default implementation does nothing. It has to be
+        overwritten and the item has to generate what ever is needed to edit/view it's details.
+
+     */
+    virtual void edit()
+    {
+    }
+
+    /**
+       @brief Get the dimension of the item
+
+       All coordinates are in Rad. Items with no
+
+       @return
+     */
+    virtual const QRectF& getBoundingRect() const
+    {
+        return boundingRect;
+    }
+
+    /**
+       @brief Get screen option object to display and handle actions for this item.
+       @param mouse     a pointer to the mouse object initiating the action
+       @return A null pointer is returned if no screen option are available
+     */
+    virtual IScrOpt* getScreenOptions(const QPoint& origin, IMouse * mouse)
+    {
+        return nullptr;
+    }
+
+    /**
+       @brief Get a point of the item that is close by the given screen pixel coordinate
+       @param point     a point in screen pixels
+       @return If no point is found NOPOINTF is returned.
+     */
+    virtual QPointF getPointCloseBy(const QPoint& point)
+    {
+        return NOPOINTF;
+    }
+
+    /**
+       @brief Test if the item is close to a given pixel coordinate of the screen
+
+       @param pos       the coordinate on the screen in pixel
+       @return If no point can be found NOPOINTF is returned.
+     */
+    virtual bool isCloseTo(const QPointF& pos) = 0;
+
+    virtual bool isWithin(const QRectF& area, selflags_t mode) = 0;
+
+    /**
+       @brief Receive the current mouse position
+
+       The default does nothing. Override if needed.
+
+       @param pos   the mouse position on the screen in pixel
+     */
+    virtual void mouseMove(const QPointF& pos)
+    {
+        Q_UNUSED(pos);
+    }
+
+    /**
+       @brief Query if this item is read only
+       @return True if it is read only.
+     */
+    bool isReadOnly() const;
+
+    /**
+       @brief Query if the item is imported and was changed
+       @return True if content was changed.
+     */
+    bool isTainted() const;
+
+    /**
+       @brief Check if item is on a GPS device
+       @return The device type (IDevice::type_e). IDevice::eTypeNone if the item is not stored on a device.
+     */
+    qint32 isOnDevice() const;
+
+    /**
+       @brief Check if there are any pending unsaved changes
+       @return True if the are changes to be saved
+     */
+    bool isChanged() const;
+
+    /**
+       @brief Set the read only mode.
+
+       This is quite dependent on the item. The default implementation will display a
+       message box with a warning and ask the user to confirm.
+
+       @param readOnly      set true to make item read only
+
+       @return Return true if the mode change has been accepted.
+     */
+    virtual bool setReadOnlyMode(bool readOnly);
+
+    virtual void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) = 0;
+    virtual void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+    {
+    }
+    virtual void drawLabel(QPainter& p, const QPolygonF& viewport,QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) = 0;
+    virtual void drawHighlight(QPainter& p) = 0;
+
+    virtual void gainUserFocus(bool yes) = 0;
+
+    /**
+       @brief Check for user focus
+
+       @return True if the item has user focus. The default implementation is always false.
+     */
+    virtual bool hasUserFocus() const
+    {
+        return false;
+    }
+
+
+    /**
+       @brief Serialize object out of a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    virtual QDataStream& operator<<(QDataStream& stream) = 0;
+    /**
+       @brief Serialize object into a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    virtual QDataStream& operator>>(QDataStream& stream) const = 0;
+
+    /**
+       @brief Get read access to history of changes
+
+       @return A reference to the history structure.
+     */
+    const history_t& getHistory() const
+    {
+        return history;
+    }
+
+    /**
+       @brief Load a given state of change from the history
+       @param idx
+     */
+    void loadHistory(int idx);
+
+    /**
+       @brief Remove all history entries younger than the current selected one.
+     */
+    void cutHistoryAfter();
+
+    /**
+       @brief Remove all history entries older than the current selected one.
+     */
+    void cutHistoryBefore();
+
+    /**
+       @brief Create a clone of itself and pass back the pointer
+
+       Add the cloned item to the project with the same index as the original
+
+       @return The pointer of the cloned item
+     */
+    virtual IGisItem * createClone() = 0;
+
+    void setNogo(bool yes);
+    bool isNogo() const
+    {
+        return bool(flags & eFlagNogo);
+    }
+
+    static const QBrush& getNogoTextureBrush();
+
+    IGisProject * getParentProject() const;
+
+    /**
+       @brief Remove all HTML tags from a string
+       @param str the string
+       @return A string without HTML tags
+     */
+    static QString removeHtml(const QString &str);
+    /**
+       @brief Create a HTML formatted text with comment, description and link section.
+
+       Depending on the isReadOnly flag the section headers are links to trigger a function
+
+       @param isReadOnly    true if the text should have no active links
+       @param cmt           the comment string
+       @param desc          the description string
+       @param links         a list of links
+       @param key           some key to be sent with the header links
+       @return The formatted text ready to be used.
+     */
+    static QString createText(bool isReadOnly, const QString& cmt, const QString& desc, const QList<link_t>& links, const QString& key = "");
+    /**
+       @brief Create a HTML formatted text with description and link section.
+
+       Depending on the isReadOnly flag the section headers are links to trigger a function
+
+       @param isReadOnly    true if the text should have no active links
+       @param desc          the description string
+       @param links         a list of links
+       @param key           some key to be sent with the header links
+       @return The formatted text ready to be used.
+     */
+    static QString createText(bool isReadOnly, const QString& desc, const QList<link_t>& links, const QString& key = "");
+    /**
+       @brief Create a HTML formatted text with a link.
+
+       Depending on the isReadOnly flag the section headers are links to trigger a function
+
+       @param isReadOnly    true if the text should have no active links
+       @param href          the link address
+       @param str           the link's string
+       @param key           some key to be sent with the link
+       @return The formated text ready to be used.
+     */
+    static QString toLink(bool isReadOnly, const QString& href, const QString& str, const QString& key);
+
+    /**
+       @brief Unified handler to get a new item name and a pointer to the traget project
+
+       @param name      a reference to a string object with the default name and to receive the name
+       @param project   a reference to a IGisProject pointer. On success it will point to the project instance
+       @param itemtype  a string to be used for the item type in the dialogs
+
+
+       @return Returns true on success. Otherwise false.
+     */
+    static bool getNameAndProject(QString &name, IGisProject *&project, const QString &itemtype);
+
+
+    static IGisItem * newGisItem(quint32 type, quint64 id, QSqlDatabase& db, IGisProject * project);
+
+
+    /// a no key value that can be used to nullify references.
+    const static QString noKey;
+
+    const static QString noName;
+
+    struct color_t
+    {
+        const char   *name;
+        const QColor color;
+        const QString bullet;
+    };
+
+    static const color_t colorMap[];
+    static const size_t colorMapSize;
+
+protected:
+    /// set icon of QTreeWidgetItem
+    virtual void setSymbol() = 0;
+    /// read waypoint data from an XML snippet
+    void readWpt(const QDomNode& xml, wpt_t &wpt);
+    /// write waypoint data to an XML snippet
+    void writeWpt(QDomElement &xml, const wpt_t &wpt, bool strictGpx11);
+    /// generate a unique key from item's data
+    virtual void genKey() const;
+    /// setup the history structure right after the creation of the item
+    void setupHistory();
+    /// update current history entry (e.g. to save the flags)
+    virtual void updateHistory();
+    /// convert a color string from GPX to a QT color
+    QColor str2color(const QString& name);
+    /// convert a QT color to a string to be used in a GPX file
+    QString color2str(const QColor &color);
+    /// to optimize drawing of large polylines split the line into sections that are visible
+    void splitLineToViewport(const QPolygonF& line, const QRectF& extViewport, QList<QPolygonF>& lines);
+    /// call when ever you make a change to the item's data
+    virtual void changed(const QString& what, const QString& icon);
+
+    void loadFromDb(quint64 id, QSqlDatabase& db);
+    bool isVisible(const QRectF& rect, const QPolygonF& viewport, CGisDraw * gis);
+    bool isVisible(const QPointF& point, const QPolygonF& viewport, CGisDraw * gis);
+    bool isWithin(const QRectF& area, selflags_t flags, const QPolygonF& points);
+    void setNogoFlag(bool yes);
+
+    /**
+       @brief Converts a string with HTML tags to a string without HTML depending on the device
+
+       Some devices e.g. Garmin can not handle HTML.
+
+       @param str   a string
+       @return A string with HTML removed depending on the device
+     */
+    QString html2Dev(const QString& str, bool strictGpx11);
+
+    /// see flags_e for possible flags
+    quint32 flags = 0;
+    /// the item's unique key
+    mutable key_t key;
+    /// each item has an icon for the tree widget
+    QPixmap icon;
+    QPixmap displayIcon;
+    /// the dimensions of the item
+    QRectF boundingRect;
+    /// that's where the real data is. An item is completely defined by it's history
+    history_t history;
+    /// the hash in the database when the item was loaded/saved
+    QString lastDatabaseHash;
+
+    enum flags_e
+    {
+        eFlagCreatedInQms   = 0x00000001
+        ,eFlagWriteAllowed  = 0x00000002
+        ,eFlagTainted       = 0x00000004
+        ,eFlagWptBubble     = 0x00000100
+        ,eFlagNogo          = 0x00000200
+    };
+
+private:
+
+    void showIcon();
+};
+
+QDataStream& operator>>(QDataStream& stream, IGisItem::history_t& h);
+QDataStream& operator<<(QDataStream& stream, const IGisItem::history_t& h);
+
+#endif //IGISITEM_H
+
diff --git a/src/gis/IGisLine.cpp b/src/qmapshack/gis/IGisLine.cpp
similarity index 100%
rename from src/gis/IGisLine.cpp
rename to src/qmapshack/gis/IGisLine.cpp
diff --git a/src/qmapshack/gis/IGisLine.h b/src/qmapshack/gis/IGisLine.h
new file mode 100644
index 0000000..7e625d5
--- /dev/null
+++ b/src/qmapshack/gis/IGisLine.h
@@ -0,0 +1,70 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef IGISLINE_H
+#define IGISLINE_H
+
+#include "units/IUnit.h"
+#include <QPointF>
+#include <QVector>
+
+class QPolygonF;
+class CGisDraw;
+class CDemDraw;
+struct SGisLine;
+
+class IGisLine
+{
+public:
+    IGisLine() = default;
+    virtual ~IGisLine() = default;
+
+    struct subpt_t
+    {
+        subpt_t() = default;
+        subpt_t(const QPointF& pt) : coord(pt) {}
+        subpt_t(const QPointF& pt, const QString &name) : coord(pt), name(name) {}
+        QPointF coord;
+        QPointF pixel;
+        QString name;
+        qint32 ele = NOINT;
+    };
+
+    struct point_t : public subpt_t
+    {
+        point_t() = default;
+        point_t(const QPointF &pt) : subpt_t(pt) {}
+        point_t(const QPointF &pt, const QString &name) : subpt_t(pt, name) {}
+        void resetElevation();
+        QVector<subpt_t> subpts;
+    };
+
+    virtual void setDataFromPolyline(const SGisLine& line) = 0;
+    virtual void getPolylineFromData(SGisLine& line) const = 0;
+    virtual void getPolylineDegFromData(QPolygonF& polygon) const = 0;
+};
+
+struct SGisLine : public QVector<IGisLine::point_t>
+{
+    void updateElevation(CDemDraw * dem);
+    void updatePixel(CGisDraw * gis);
+};
+
+
+#endif //IGISLINE_H
+
diff --git a/src/qmapshack/gis/IGisWorkspace.ui b/src/qmapshack/gis/IGisWorkspace.ui
new file mode 100644
index 0000000..7b98b45
--- /dev/null
+++ b/src/qmapshack/gis/IGisWorkspace.ui
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGisWorkspace</class>
+ <widget class="QWidget" name="IGisWorkspace">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>402</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QFormLayout" name="formLayout">
+     <property name="horizontalSpacing">
+      <number>3</number>
+     </property>
+     <property name="verticalSpacing">
+      <number>3</number>
+     </property>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Opacity</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QSlider" name="sliderOpacity">
+       <property name="toolTip">
+        <string>Change the opacity of all GIS Items on the map.</string>
+       </property>
+       <property name="maximum">
+        <number>100</number>
+       </property>
+       <property name="singleStep">
+        <number>10</number>
+       </property>
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Filter</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="lineFilter">
+       <property name="clearButtonEnabled">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="CGisListWks" name="treeWks">
+     <property name="contextMenuPolicy">
+      <enum>Qt::CustomContextMenu</enum>
+     </property>
+     <property name="dragEnabled">
+      <bool>true</bool>
+     </property>
+     <property name="dragDropMode">
+      <enum>QAbstractItemView::InternalMove</enum>
+     </property>
+     <property name="defaultDropAction">
+      <enum>Qt::CopyAction</enum>
+     </property>
+     <property name="selectionMode">
+      <enum>QAbstractItemView::ExtendedSelection</enum>
+     </property>
+     <property name="iconSize">
+      <size>
+       <width>20</width>
+       <height>20</height>
+      </size>
+     </property>
+     <property name="indentation">
+      <number>14</number>
+     </property>
+     <attribute name="headerDefaultSectionSize">
+      <number>100</number>
+     </attribute>
+     <column>
+      <property name="text">
+       <string notr="true"/>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>Name</string>
+      </property>
+     </column>
+    </widget>
+   </item>
+  </layout>
+  <action name="actionClearFilter">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/Filter.png</normaloff>:/icons/32x32/Filter.png</iconset>
+   </property>
+   <property name="text">
+    <string>Clear Filter</string>
+   </property>
+  </action>
+  <action name="actionSetupFilter">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Filter</string>
+   </property>
+  </action>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CGisListWks</class>
+   <extends>QTreeWidget</extends>
+   <header>gis/CGisListWks.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>actionClearFilter</sender>
+   <signal>triggered()</signal>
+   <receiver>lineFilter</receiver>
+   <slot>clear()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>-1</x>
+     <y>-1</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>228</x>
+     <y>34</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
diff --git a/src/gis/ISelDevices.ui b/src/qmapshack/gis/ISelDevices.ui
similarity index 100%
rename from src/gis/ISelDevices.ui
rename to src/qmapshack/gis/ISelDevices.ui
diff --git a/src/gis/ISetupFilter.ui b/src/qmapshack/gis/ISetupFilter.ui
similarity index 100%
rename from src/gis/ISetupFilter.ui
rename to src/qmapshack/gis/ISetupFilter.ui
diff --git a/src/gis/Poi.h b/src/qmapshack/gis/Poi.h
similarity index 100%
rename from src/gis/Poi.h
rename to src/qmapshack/gis/Poi.h
diff --git a/src/gis/WptIcons.cpp b/src/qmapshack/gis/WptIcons.cpp
similarity index 100%
rename from src/gis/WptIcons.cpp
rename to src/qmapshack/gis/WptIcons.cpp
diff --git a/src/gis/WptIcons.h b/src/qmapshack/gis/WptIcons.h
similarity index 100%
rename from src/gis/WptIcons.h
rename to src/qmapshack/gis/WptIcons.h
diff --git a/src/gis/db/CDBFolderGroup.cpp b/src/qmapshack/gis/db/CDBFolderGroup.cpp
similarity index 100%
rename from src/gis/db/CDBFolderGroup.cpp
rename to src/qmapshack/gis/db/CDBFolderGroup.cpp
diff --git a/src/gis/db/CDBFolderGroup.h b/src/qmapshack/gis/db/CDBFolderGroup.h
similarity index 100%
rename from src/gis/db/CDBFolderGroup.h
rename to src/qmapshack/gis/db/CDBFolderGroup.h
diff --git a/src/gis/db/CDBFolderLostFound.cpp b/src/qmapshack/gis/db/CDBFolderLostFound.cpp
similarity index 100%
rename from src/gis/db/CDBFolderLostFound.cpp
rename to src/qmapshack/gis/db/CDBFolderLostFound.cpp
diff --git a/src/gis/db/CDBFolderLostFound.h b/src/qmapshack/gis/db/CDBFolderLostFound.h
similarity index 100%
rename from src/gis/db/CDBFolderLostFound.h
rename to src/qmapshack/gis/db/CDBFolderLostFound.h
diff --git a/src/qmapshack/gis/db/CDBFolderMysql.cpp b/src/qmapshack/gis/db/CDBFolderMysql.cpp
new file mode 100644
index 0000000..b688320
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBFolderMysql.cpp
@@ -0,0 +1,101 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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 "gis/CGisListDB.h"
+#include "gis/db/CDBFolderMysql.h"
+#include "gis/db/macros.h"
+
+#include <QtSql>
+
+CDBFolderMysql::CDBFolderMysql(const QString &server, const QString &port, const QString &user, const QString & passwd, bool noPasswd, const QString &name, QTreeWidget *parent)
+    : IDBFolderSql(IDB::db, parent)
+    , server(server)
+    , port(port)
+    , user(user)
+    , passwd(passwd)
+    , noPasswd(noPasswd)
+    , name(name)
+{
+    setText(CGisListDB::eColumnName, name);
+    QTimer::singleShot(200, this, SLOT(slotDelayedSetup()));
+}
+
+void CDBFolderMysql::slotDelayedSetup()
+{
+    if(setupDB(server, port, user, passwd, noPasswd, name, name))
+    {
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/MySQL.png"));
+
+        setupFromDB();
+
+        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+    }
+    else
+    {
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/MySQLNoConn.png"));
+    }
+
+    setToolTip(CGisListDB::eColumnName, getDBInfo());
+}
+
+QString CDBFolderMysql::getDBInfo() const
+{
+    QString str = "<div style='font-weight: bold;'>" + IDB::db.connectionName() + "</div><br />";
+    str += tr("MySQL Database") + "<br />";
+    if(!port.isEmpty())
+    {
+        str += tr("Server: ") + QString("<i>%1:%2</i>").arg(server).arg(port);
+    }
+    else
+    {
+        str += tr("Server: ") + QString("<i>%1</i>").arg(server);
+    }
+
+    if(noPasswd)
+    {
+        str += tr(" (No PW)");
+    }
+
+    if(!isUsable())
+    {
+        const QString &dbError = IDB::db.lastError().databaseText();
+        const QString &drError = IDB::db.lastError().driverText();
+
+        str += "<br />" + tr("Error: ") + QString("<span style=\"color:#f00; font-weight:bold;\">%1</span>").arg(dbError.isEmpty() ? drError : dbError);
+    }
+
+    return str;
+}
+
+bool CDBFolderMysql::search(const QString& str, QSqlQuery &query)
+{
+    query.prepare("SELECT id FROM items WHERE MATCH(comment) AGAINST (:str IN BOOLEAN MODE)");
+    query.bindValue(":str", str);
+    QUERY_EXEC(return false);
+
+    return true;
+}
+
+void CDBFolderMysql::copyFolder(quint64 child, quint64 parent) //override;
+{
+    QSqlQuery query(IDB::db);
+    query.prepare("INSERT INTO folder2folder (parent, child) SELECT :parent, :child FROM DUAL WHERE NOT EXISTS (SELECT id FROM folder2folder WHERE parent=:parent AND child=:child)");
+    query.bindValue(":parent", parent);
+    query.bindValue(":child", child);
+    QUERY_EXEC(return );
+}
diff --git a/src/qmapshack/gis/db/CDBFolderMysql.h b/src/qmapshack/gis/db/CDBFolderMysql.h
new file mode 100644
index 0000000..ae0360e
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBFolderMysql.h
@@ -0,0 +1,61 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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/>.
+
+**********************************************************************************************/
+
+#ifndef CDBFOLDERMYSQL_H
+#define CDBFOLDERMYSQL_H
+
+#include "gis/db/IDBFolderSql.h"
+#include "gis/db/IDBMysql.h"
+
+
+class CDBFolderMysql : public IDBFolderSql, public IDBMysql
+{
+    Q_OBJECT
+public:
+    CDBFolderMysql(const QString &server, const QString &port, const QString &user, const QString &passwd, bool noPasswd, const QString &name, QTreeWidget *parent);
+    virtual ~CDBFolderMysql() = default;
+
+    const QString& getServer() const {return server; }
+    const QString& getPort() const {return port; }
+    const QString& getUser() const {return user; }
+    const QString& getPasswd() const {return passwd; }
+    bool hasNoPasswd() const
+    {
+        return noPasswd;
+    }
+
+    QString getDBInfo() const;
+
+    bool search(const QString& str, QSqlQuery& query) override;
+
+    void copyFolder(quint64 child, quint64 parent) override;
+
+private slots:
+    void slotDelayedSetup();
+
+private:
+    const QString server;
+    const QString port;
+    const QString user;
+    const QString passwd;
+    const bool noPasswd;
+    const QString name;
+};
+
+#endif //CDBFOLDERMYSQL_H
+
diff --git a/src/gis/db/CDBFolderOther.cpp b/src/qmapshack/gis/db/CDBFolderOther.cpp
similarity index 100%
rename from src/gis/db/CDBFolderOther.cpp
rename to src/qmapshack/gis/db/CDBFolderOther.cpp
diff --git a/src/gis/db/CDBFolderOther.h b/src/qmapshack/gis/db/CDBFolderOther.h
similarity index 100%
rename from src/gis/db/CDBFolderOther.h
rename to src/qmapshack/gis/db/CDBFolderOther.h
diff --git a/src/gis/db/CDBFolderProject.cpp b/src/qmapshack/gis/db/CDBFolderProject.cpp
similarity index 100%
rename from src/gis/db/CDBFolderProject.cpp
rename to src/qmapshack/gis/db/CDBFolderProject.cpp
diff --git a/src/gis/db/CDBFolderProject.h b/src/qmapshack/gis/db/CDBFolderProject.h
similarity index 100%
rename from src/gis/db/CDBFolderProject.h
rename to src/qmapshack/gis/db/CDBFolderProject.h
diff --git a/src/qmapshack/gis/db/CDBFolderSqlite.cpp b/src/qmapshack/gis/db/CDBFolderSqlite.cpp
new file mode 100644
index 0000000..5b17228
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBFolderSqlite.cpp
@@ -0,0 +1,88 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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 "gis/CGisListDB.h"
+#include "gis/db/CDBFolderSqlite.h"
+#include "gis/db/macros.h"
+
+#include <QtSql>
+#include <QtWidgets>
+
+CDBFolderSqlite::CDBFolderSqlite(const QString& filename, const QString& name, QTreeWidget *parent)
+    : IDBFolderSql(IDB::db, parent)
+    , filename(filename)
+{
+    setText(CGisListDB::eColumnName, name);
+    if(setupDB(filename, name, error))
+    {
+        setupFromDB();
+
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/SQLite.png"));
+        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+    }
+    else
+    {
+        IDB::db.close();
+
+        setIcon(CGisListDB::eColumnCheckbox, QIcon("://icons/32x32/SQLiteNoConn.png"));
+    }
+
+    setToolTip(CGisListDB::eColumnName, getDBInfo());
+}
+
+QString CDBFolderSqlite::getDBInfo() const
+{
+    QString str = "<div style='font-weight: bold;'>" + IDB::db.connectionName() + "</div><br />";
+    str += tr("SQLite Database") + "<br />";
+
+    QString path = IDB::db.databaseName();
+    #ifndef Q_OS_WIN
+    if(path.startsWith(QDir::homePath()))
+    {
+        path = "~" + path.remove(0, QDir::homePath().length());
+    }
+    #endif
+
+    str += tr("File: ") + QString("<i>%1</i>").arg(path);
+
+    if(!isUsable())
+    {
+        str += "<br />" + tr("Error: ") + QString("<span style=\"color:#f00; font-weight:bold;\">%1</span>").arg(error);
+    }
+
+    return str;
+}
+
+
+bool CDBFolderSqlite::search(const QString& str, QSqlQuery& query)
+{
+    query.prepare("SELECT id FROM searchindex WHERE comment MATCH :str");
+    query.bindValue(":str", str);
+    QUERY_EXEC(return false);
+
+    return true;
+}
+
+void CDBFolderSqlite::copyFolder(quint64 child, quint64 parent) //override;
+{
+    QSqlQuery query(IDB::db);
+    query.prepare("INSERT INTO folder2folder (parent, child) SELECT :parent, :child WHERE NOT EXISTS (SELECT parent, child FROM folder2folder WHERE parent=:parent AND child=:child)");
+    query.bindValue(":parent", parent);
+    query.bindValue(":child", child);
+    QUERY_EXEC(return );
+}
diff --git a/src/qmapshack/gis/db/CDBFolderSqlite.h b/src/qmapshack/gis/db/CDBFolderSqlite.h
new file mode 100644
index 0000000..d317bf5
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBFolderSqlite.h
@@ -0,0 +1,48 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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/>.
+
+**********************************************************************************************/
+
+#ifndef CDBFOLDERSQLITE_H
+#define CDBFOLDERSQLITE_H
+
+#include "gis/db/IDBFolderSql.h"
+#include "gis/db/IDBSqlite.h"
+
+
+class CDBFolderSqlite : public IDBFolderSql, public IDBSqlite
+{
+    Q_OBJECT
+public:
+    CDBFolderSqlite(const QString &filename, const QString &name, QTreeWidget *parent);
+    virtual ~CDBFolderSqlite() {}
+
+    const QString& getFilename()
+    {
+        return filename;
+    }
+
+    QString getDBInfo() const;
+
+    bool search(const QString& str, QSqlQuery &query) override;
+
+    void copyFolder(quint64 child, quint64 parent) override;
+private:
+    QString filename;
+    QString error;
+};
+#endif //CDBFOLDERSQLITE_H
+
diff --git a/src/gis/db/CDBItem.cpp b/src/qmapshack/gis/db/CDBItem.cpp
similarity index 100%
rename from src/gis/db/CDBItem.cpp
rename to src/qmapshack/gis/db/CDBItem.cpp
diff --git a/src/gis/db/CDBItem.h b/src/qmapshack/gis/db/CDBItem.h
similarity index 100%
rename from src/gis/db/CDBItem.h
rename to src/qmapshack/gis/db/CDBItem.h
diff --git a/src/qmapshack/gis/db/CDBProject.cpp b/src/qmapshack/gis/db/CDBProject.cpp
new file mode 100644
index 0000000..60ec1e7
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBProject.cpp
@@ -0,0 +1,894 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/CGisDatabase.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/db/CDBProject.h"
+#include "gis/db/CSelectSaveAction.h"
+#include "gis/db/IDB.h"
+#include "gis/db/macros.h"
+#include "gis/gpx/CGpxProject.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/CDetailsPrj.h"
+#include "gis/qms/CQmsProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSettings.h"
+
+
+
+#include <QtSql>
+#include <QtWidgets>
+CDBProject::CDBProject(CGisListWks * parent)
+    : IGisProject(eTypeDb, "", parent)
+    , id(0)
+{
+    setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/DBProject.png"));
+}
+
+CDBProject::CDBProject(const QString& dbName, quint64 id, CGisListWks *parent)
+    : IGisProject(eTypeDb, dbName, parent)
+    , id(id)
+{
+    setIcon(CGisListWks::eColumnIcon,QIcon("://icons/32x32/DBProject.png"));
+    db = QSqlDatabase::database(dbName);
+
+    QSqlQuery query(db);
+    query.prepare("SELECT date, name, data FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+    query.next();
+
+    QString date    = query.value(0).toString();
+    QString name    = query.value(1).toString();
+    QByteArray data = query.value(2).toByteArray();
+
+    if(data.isEmpty())
+    {
+        // Make sure the key is reset
+        key.clear();
+        metadata.name = name;
+
+        // The time format can differ by database type
+        if(date.contains('T'))
+        {
+            metadata.time = QDateTime::fromString(date,"yyyy-MM-ddThh:mm:ss");
+        }
+        else
+        {
+            metadata.time = QDateTime::fromString(date,"yyyy-MM-dd hh:mm:ss");
+        }
+
+        // Still no valid date? Bad as we need it to produce an unique key.
+        if(!metadata.time.isValid())
+        {
+            metadata.time = QDateTime::currentDateTimeUtc();
+        }
+
+        query.prepare("UPDATE folders SET keyqms=:keyqms WHERE id=:id");
+        query.bindValue(":keyqms", getKey());
+        query.bindValue(":id", id);
+        QUERY_EXEC(return );
+    }
+    else
+    {
+        QDataStream in(&data, QIODevice::ReadOnly);
+        in.setByteOrder(QDataStream::LittleEndian);
+        in.setVersion(QDataStream::Qt_5_2);
+        *this << in;
+        filename = dbName;
+    }
+
+    setupName(name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
+    updateItems();
+
+    valid = true;
+}
+
+CDBProject::CDBProject(const QString& filename, IDBFolder * parentFolder, CGisListWks *parent)
+    : IGisProject(eTypeDb, parentFolder->getDBName(), parent)
+    , db(parentFolder->getDb())
+{
+    IGisProject * prjIn = IGisProject::create(filename, nullptr);
+    if(prjIn == nullptr)
+    {
+        QMessageBox::information(CMainWindow::self().getBestWidgetForParent(), tr("Failed to load..."),
+                                 tr("Can't load file \"%1\" . It will be skipped.").arg(QFileInfo(filename).completeBaseName()),
+                                 QMessageBox::Ok);
+        return;
+    }
+
+
+    // test if the project has been imported already
+    QSqlQuery query(db);
+    query.prepare("SELECT id FROM folders WHERE keyqms=:keyqms");
+    query.bindValue(":keyqms", prjIn->getKey());
+    QUERY_EXEC(return );
+    if(query.next())
+    {
+        QMessageBox::information(CMainWindow::self().getBestWidgetForParent(), tr("Project already in database..."),
+                                 tr("The project \"%1\" has already been imported into the database. It will be skipped.").arg(prjIn->getName()),
+                                 QMessageBox::Ok);
+        return;
+    }
+
+    // create a new folder in the database
+    id = parentFolder->addFolder(IDBFolder::eTypeProject, prjIn->getName());
+    query.prepare("UPDATE folders SET keyqms=:keyqms WHERE id=:id");
+    query.bindValue(":keyqms", prjIn->getKey());
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+
+
+    // copy data
+    key         = prjIn->getKey();
+    metadata    = prjIn->getMetadata();
+
+    QList<QTreeWidgetItem*> items = prjIn->takeChildren();
+    addChildren(items);
+
+    // set change indication else the item will not be saved
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+        if(gisItem)
+        {
+            gisItem->updateDecoration(IGisItem::eMarkChanged, IGisItem::eMarkNone);
+        }
+    }
+
+    valid = true;
+}
+
+CDBProject::~CDBProject()
+{
+    CEvtW2DAckInfo * evt = new CEvtW2DAckInfo(Qt::Unchecked, getId(), getDBName(), getDBHost());
+    CGisDatabase::self().postEventForDb(evt);
+
+    /*
+        The project is not connected to the workspace tree widget. This is because it's a
+        temporary project to manipulate the database outside the workspace. In this case
+        we have to tell the workspace tree to update the databse tree with it's status.
+
+        Thus the first event will remove all check marks. And this event will post a status
+        to set the check marks according to what ever is loaded in the workspace.
+     */
+    if(treeWidget() == nullptr)
+    {
+        CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
+        CGisWorkspace::self().postEventForWks(evt);
+    }
+}
+
+void CDBProject::restoreDBLink()
+{
+    db = QSqlDatabase::database(filename);
+
+    QSqlQuery query(db);
+    query.prepare("SELECT id FROM folders WHERE keyqms=:keyqms");
+    query.bindValue(":keyqms", getKey());
+    QUERY_EXEC(return );
+    if(query.next())
+    {
+        id = query.value(0).toULongLong();
+        setupName("----");
+        valid = true;
+    }
+}
+
+void CDBProject::setupName(const QString &defaultName)
+{
+    IGisProject::setupName(defaultName);
+
+    // look for a parent folder's name to be used as suffix
+    QSqlQuery query(db);
+    query.prepare("SELECT t1.name FROM folders AS t1 WHERE id=(SELECT parent FROM folder2folder WHERE child=:id) AND (t1.type=:type1 OR t1.type=:type2)");
+    query.bindValue(":id", id);
+    query.bindValue(":type1", IDBFolder::eTypeGroup);
+    query.bindValue(":type2", IDBFolder::eTypeProject);
+    QUERY_EXEC();
+    if(query.next())
+    {
+        nameSuffix   = query.value(0).toString();
+    }
+    setText(CGisListWks::eColumnName, getNameEx());
+}
+
+
+void CDBProject::postStatus(bool updateLostFound)
+{
+    // collect the keys of all child items and post them to the database view
+    CEvtW2DAckInfo * info = new CEvtW2DAckInfo(getId(), getDBName(), getDBHost());
+
+    bool changedItems   = false;
+    const int N         = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(n));
+        if(item)
+        {
+            info->keysChildren << item->getKey().item;
+            changedItems |= item->isChanged();
+        }
+    }
+
+    // check if all items are loaded
+    if(type != eTypeLostFound)
+    {
+        QSqlQuery query(db);
+        query.prepare("SELECT COUNT(*) FROM folder2item WHERE parent=:parent");
+        query.bindValue(":parent", getId());
+        QUERY_EXEC();
+        query.next();
+
+        const int nChildrenAttached = query.value(0).toInt();
+
+        if((nChildrenAttached != 0) && (nChildrenAttached != info->keysChildren.count()))
+        {
+            checkState = Qt::PartiallyChecked;
+        }
+        else
+        {
+            checkState = Qt::Checked;
+        }
+    }
+    else
+    {
+        checkState = Qt::Checked;
+    }
+    info->checkState        = checkState;
+    info->updateLostFound   = updateLostFound;
+
+    // update item counters and track/waypoint correlation
+    // updateItems(); <--- don't! this is causing a crash
+    if(!changedItems)
+    {
+        setText(CGisListWks::eColumnDecoration,autoSave ? "A" : "");
+    }
+
+    CGisDatabase::self().postEventForDb(info);
+}
+
+
+int CDBProject::checkForAction2(IGisItem * item, quint64 &itemId, QString& hashItem, QSqlQuery &query)
+{
+    int action = eActionNone;
+
+    query.prepare("SELECT hash, last_user, last_change FROM items WHERE id=:id");
+    query.bindValue(":id", itemId);
+    QUERY_EXEC(throw eReasonQueryFail);
+
+    if(query.next())
+    {
+        QString hash    = query.value(0).toString();
+        QString user    = query.value(1).toString();
+        QString date    = query.value(2).toString();
+
+        if(hash == hashItem)
+        {
+            // there seems to be no difference
+            return action;
+        }
+
+        hashItem = hash;
+
+        QString msg = tr(
+            "The item %1 has been changed by %2 (%3). \n\n"
+            "To solve this conflict you can create and save a clone, force your version or drop "
+            "your version and take the one from the database"
+            ).arg(item->getNameEx()).arg(user).arg(date);
+
+        QMessageBox msgBox(QMessageBox::Question, tr("Conflict with database..."), msg, QMessageBox::NoButton, CMainWindow::self().getBestWidgetForParent());
+        QAbstractButton* pButClone  = msgBox.addButton(tr("Clone && Save"), QMessageBox::YesRole);
+        QAbstractButton* pButForce  = msgBox.addButton(tr("Force Save"),    QMessageBox::ApplyRole);
+        QAbstractButton* pButUpdate = msgBox.addButton(tr("Take remote"),   QMessageBox::DestructiveRole);
+        msgBox.addButton(QMessageBox::Abort);
+
+        CProgressDialog::setAllVisible(false);
+        msgBox.exec();
+        CProgressDialog::setAllVisible(true);
+
+        if(msgBox.clickedButton() == pButClone)
+        {
+            action = eActionClone;
+        }
+        else if(msgBox.clickedButton() == pButForce)
+        {
+            action = eActionUpdate;
+        }
+        else if(msgBox.clickedButton() == pButUpdate)
+        {
+            action = eActionReload;
+        }
+    }
+    else
+    {
+        // item has been removed. By throwing eReasonConflict
+        // the save procedure is restarted for the item and
+        // the item should be inserted into the database.
+        throw eReasonConflict;
+    }
+
+
+    return action;
+}
+
+void CDBProject::updateItem(IGisItem *&item, quint64 idItem, QSqlQuery &query)
+{
+    // serialize complete history of item
+    QByteArray data;
+    QDataStream in(&data, QIODevice::WriteOnly);
+    in.setByteOrder(QDataStream::LittleEndian);
+    in.setVersion(QDataStream::Qt_5_2);
+    in << item->getHistory();
+
+    // prepare icon to be saved
+    QBuffer buffer;
+    buffer.open(QIODevice::ReadWrite);
+    QPixmap pixmap = item->getDisplayIcon();
+    pixmap.save(&buffer, "PNG");
+    buffer.seek(0);
+
+    QString hashInDb = item->getLastDatabaseHash();
+
+    query.prepare("UPDATE items SET type=:type, keyqms=:keyqms, icon=:icon, name=:name, date=:date, comment=:comment, data=:data, hash=:hash WHERE id=:id AND hash=:oldhash");
+    query.bindValue(":type",    item->type());
+    query.bindValue(":keyqms",  item->getKey().item);
+    query.bindValue(":icon",    buffer.data());
+    query.bindValue(":name",    item->getName());
+    query.bindValue(":date",    item->getTimestamp());
+    query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
+    query.bindValue(":data",    data);
+    query.bindValue(":hash",    item->getHash());
+    query.bindValue(":id",      idItem);
+    query.bindValue(":oldhash", hashInDb);
+    QUERY_EXEC(throw eReasonQueryFail);
+
+    if(query.numRowsAffected())
+    {
+        // the update has been successful.
+        // set current hash as database hash.
+        item->setLastDatabaseHash(idItem, db);
+    }
+    else
+    {
+        // there are two reasons why an update does not affect a row
+        // 1) the hash is different because another user changed the item
+        // 2) the id was not found because another user removed the item
+        // 3) the items was completely identical, therefore no row was affected.
+        int action = checkForAction2(item, idItem, hashInDb, query);
+
+        switch(action)
+        {
+        case eActionClone:
+        {
+            IGisItem * item2    = item->createClone();
+            quint64 idItem      = insertItem(item2, query);
+
+            delete item;
+            item = item2;
+
+            query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
+            query.bindValue(":parent", id);
+            query.bindValue(":child", idItem);
+            QUERY_EXEC(throw eReasonQueryFail);
+            break;
+        }
+
+        case eActionUpdate:
+        {
+            // hashInDb has been updated by checkForAction2() by the one stored in the database
+            // therefore the update should succeed now.
+            query.prepare("UPDATE items SET type=:type, keyqms=:keyqms, icon=:icon, name=:name, date=:date, comment=:comment, data=:data, hash=:hash WHERE id=:id AND hash=:oldhash");
+            query.bindValue(":type",    item->type());
+            query.bindValue(":keyqms",  item->getKey().item);
+            query.bindValue(":icon",    buffer.data());
+            query.bindValue(":name",    item->getName());
+            query.bindValue(":date",    item->getTimestamp());
+            query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
+            query.bindValue(":data",    data);
+            query.bindValue(":hash",    item->getHash());
+            query.bindValue(":id",      idItem);
+            query.bindValue(":oldhash", hashInDb);
+            QUERY_EXEC(throw eReasonQueryFail);
+
+            if(query.numRowsAffected())
+            {
+                item->setLastDatabaseHash(idItem, db);
+            }
+            else
+            {
+                // in the case someone updated the item between calling
+                // checkForAction2() and this update our update fails.
+                // In this case we throw eReasonConflict to restart the
+                // save procedure for this item.
+                throw eReasonConflict;
+            }
+            break;
+        }
+
+        case eActionReload:
+            item->updateFromDB(idItem, db);
+            break;
+        }
+    }
+}
+
+quint64 CDBProject::insertItem(IGisItem * item, QSqlQuery &query)
+{
+    quint64 idItem = 0;
+
+    // serialize complete history of item
+    QByteArray data;
+    QDataStream in(&data, QIODevice::WriteOnly);
+    in.setByteOrder(QDataStream::LittleEndian);
+    in.setVersion(QDataStream::Qt_5_2);
+    in << item->getHistory();
+
+    // prepare icon to be saved
+    QBuffer buffer;
+    buffer.open(QIODevice::ReadWrite);
+    QPixmap pixmap = item->getDisplayIcon();
+    pixmap.save(&buffer, "PNG");
+    buffer.seek(0);
+
+    query.prepare("INSERT INTO items (type, keyqms, icon, name, date, comment, data, hash) VALUES (:type, :keyqms, :icon, :name, :date, :comment, :data, :hash)");
+    query.bindValue(":type",    item->type());
+    query.bindValue(":keyqms",  item->getKey().item);
+    query.bindValue(":icon",    buffer.data());
+    query.bindValue(":name",    item->getName());
+    query.bindValue(":date",    item->getTimestamp());
+    query.bindValue(":comment", item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
+    query.bindValue(":data",    data);
+    query.bindValue(":hash",    item->getHash());
+    QUERY_EXEC(throw eReasonQueryFail);
+
+    if(query.numRowsAffected())
+    {
+        idItem = IDB::getLastInsertID(db, "items");
+        if(idItem == 0)
+        {
+            qDebug() << "childId equals 0. bad.";
+            throw eReasonUnexpected;
+        }
+        item->setLastDatabaseHash(idItem, db);
+    }
+    else
+    {
+        throw eReasonConflict;
+    }
+
+    return idItem;
+}
+
+int CDBProject::checkForAction1(IGisItem * item, quint64& itemId, int& lastResult, QSqlQuery &query)
+{
+    int action = eActionNone;
+
+    // test if item exists in database
+    quint32 itemType = 0;
+    query.prepare("SELECT id, type FROM items WHERE keyqms=:keyqms");
+    query.bindValue(":keyqms", item->getKey().item);
+    QUERY_EXEC(throw eReasonQueryFail);
+
+
+    if(query.next())
+    {
+        itemId      = query.value(0).toULongLong();
+        itemType    = query.value(1).toUInt();
+
+        // check if relation already exists.
+        query.prepare("SELECT id FROM folder2item WHERE parent=:parent AND child=:child");
+        query.bindValue(":parent", id);
+        query.bindValue(":child", itemId);
+        QUERY_EXEC(throw eReasonQueryFail);
+
+        if(!query.next())
+        {
+            // item is already in database but folder relation does not exit
+            int result  = lastResult;
+
+            if(lastResult == CSelectSaveAction::eResultNone)
+            {
+                // Build the dialog to ask for user action
+                IGisItem * item1 = IGisItem::newGisItem(itemType, itemId, db, nullptr);
+
+                if(nullptr == item1)
+                {
+                    qDebug() << "no item to compare!?.";
+                    throw eReasonUnexpected;
+                }
+
+                CSelectSaveAction dlg(item, item1, CMainWindow::self().getBestWidgetForParent());
+                dlg.exec();
+
+                result = dlg.getResult();
+                if(dlg.allOthersToo())
+                {
+                    lastResult = result;
+                }
+            }
+
+            if(result == CSelectSaveAction::eResultNone)
+            {
+                // no decision by user, cancel operation.
+                // this is different to a skip as a skip will
+                // just skip saving the data, but the item to folder
+                // link will be still processed.
+                return eActionNone;
+            }
+
+            // the item is in the database and has no relation to the folder -> update only if the user confirms.
+            action = eActionLink;
+
+            switch(result)
+            {
+            case CSelectSaveAction::eResultSave:
+                action |= eActionUpdate;
+                break;
+
+            case CSelectSaveAction::eResultSkip:
+                action |= eActionReload;
+                break;
+
+            case CSelectSaveAction::eResultClone:
+                action |= eActionClone;
+                break;
+            }
+        }
+        else
+        {
+            // the item is in the database and has a relation to the folder -> simply update item
+            action = eActionUpdate;
+        }
+    }
+    else
+    {
+        action = eActionInsert|eActionLink;
+    }
+
+    return action;
+}
+
+bool CDBProject::save()
+{
+    return save(CSelectSaveAction::eResultNone);
+}
+
+bool CDBProject::save(int lastResult)
+{
+    QSqlQuery query(db);
+    bool stop       = false;
+    bool success    = true;
+
+    // check if project is still part of the database
+    query.prepare("SELECT keyqms FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return false);
+    if(!query.next())
+    {
+        QMessageBox::critical(CMainWindow::self().getBestWidgetForParent()
+                              , tr("Missing folder...")
+                              , tr("Failed to save project. The folder has been deleted in the database.")
+                              , QMessageBox::Abort
+                              );
+        return false;
+    }
+
+    int N = childCount();
+    PROGRESS_SETUP(tr("Save ..."), 0, N, CMainWindow::getBestWidgetForParent());
+
+    for(int i = 0; (i < N) && !stop; i++)
+    {
+        try
+        {
+            PROGRESS(i, throw eReasonCancel);
+
+            IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+            if(nullptr == item)
+            {
+                continue;
+            }
+
+            // skip unchanged items
+            if(!item->isChanged())
+            {
+                continue;
+            }
+
+            quint64 idItem = 0;
+
+            int action = checkForAction1(item, idItem, lastResult, query);
+
+            if(action & eActionInsert)
+            {
+                idItem = insertItem(item, query);
+            }
+
+            if(action & eActionUpdate)
+            {
+                updateItem(item, idItem, query);
+            }
+
+            if(action & eActionReload)
+            {
+                item->updateFromDB(idItem, db);
+            }
+
+
+            if(action & eActionClone)
+            {
+                IGisItem * item2 = item->createClone();
+                idItem = insertItem(item2, query);
+
+                delete item;
+                item = item2;
+            }
+
+            if((action & eActionLink) && (idItem != 0))
+            {
+                query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
+                query.bindValue(":parent", id);
+                query.bindValue(":child", idItem);
+                QUERY_EXEC(throw eReasonQueryFail);
+            }
+            item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged|IGisItem::eMarkNotPart|IGisItem::eMarkNotInDB);
+        }
+        catch(reasons_e reason)
+        {
+            CProgressDialog::setAllVisible(false);
+            switch(reason)
+            {
+            case eReasonQueryFail:
+                QMessageBox::critical(&progress, tr("Error"), tr("There was an unexpected database error:\n\n%1").arg(query.lastError().text()), QMessageBox::Abort);
+
+            case eReasonCancel:
+            case eReasonUnexpected:
+                stop    = true;
+                success = false;
+                break;
+
+            case eReasonConflict:
+                i--;
+                break;
+            }
+
+            CProgressDialog::setAllVisible(true);
+        }
+    }
+
+    // serialize metadata of project
+    QByteArray data;
+    QDataStream in(&data, QIODevice::WriteOnly);
+    in.setByteOrder(QDataStream::LittleEndian);
+    in.setVersion(QDataStream::Qt_5_2);
+    *this >> in;
+
+    // update folder entry in database
+    query.prepare("UPDATE folders SET name=:name, comment=:comment, data=:data, sortmode=:sortmode WHERE id=:id");
+    query.bindValue(":name", getName());
+    query.bindValue(":comment", getInfo());
+    query.bindValue(":data", data);
+    query.bindValue(":sortmode", getSortingFolder());
+    query.bindValue(":id", getId());
+    QUERY_EXEC(return false);
+
+    postStatus(true);
+    // update change flag
+    updateDecoration();
+    return success;
+}
+
+
+void CDBProject::showItems(CEvtD2WShowItems * evt)
+{
+    bool restoreDlgDetails = false;
+    if(evt->addItemsExclusively)
+    {
+        restoreDlgDetails = !dlgDetails.isNull();
+        delete dlgDetails;
+
+        qDeleteAll(takeChildren());
+    }
+
+    for(const evt_item_t &item : evt->items)
+    {
+        IGisItem * gisItem = IGisItem::newGisItem(item.type, item.id, db, this);
+
+        /* [Issue #72] Database/Workspace inconsistency in QMS 1.4.0
+
+           When an item with no key is loaded it is "healed". The healing
+           will mark it as changed. To avoid this save all items that are
+           marked as changed right after loading from the database.
+
+         */
+        if(gisItem && gisItem->isChanged())
+        {
+            bool success = true;
+            try
+            {
+                QSqlQuery query(db);
+                updateItem(gisItem, item.id, query);
+            }
+            catch(int)
+            {
+                success = false;
+            }
+
+            if(success)
+            {
+                gisItem->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
+            }
+        }
+    }
+
+    sortItems();
+    postStatus(false);
+    setToolTip(CGisListWks::eColumnName, getInfo());
+
+    if(restoreDlgDetails)
+    {
+        edit();
+    }
+}
+
+void CDBProject::hideItems(CEvtD2WHideItems * evt)
+{
+    IGisItem::key_t key;
+    key.project = getKey();
+
+    QMessageBox::StandardButtons last = QMessageBox::YesToAll;
+
+    for(const QString &k : evt->keys)
+    {
+        key.item = k;
+        delItemByKey(key, last);
+    }
+
+    postStatus(false);
+    setToolTip(CGisListWks::eColumnName, getInfo());
+}
+
+
+void CDBProject::update()
+{
+    Qt::CheckState state = checkState;
+
+    if(isChanged())
+    {
+        QString msg = tr("The project '%1' is about to update itself from the database. However there are changes not saved.").arg(getName());
+        int res = QMessageBox::question(CMainWindow::self().getBestWidgetForParent(), tr("Save changes?"), msg, QMessageBox::Save|QMessageBox::Ignore|QMessageBox::Abort, QMessageBox::Save);
+
+        if(res == QMessageBox::Abort)
+        {
+            return;
+        }
+        if(res == QMessageBox::Save)
+        {
+            if(!save())
+            {
+                return;
+            }
+        }
+    }
+
+    // read project properties
+    QSqlQuery query(db);
+    query.prepare("SELECT date, name, data FROM folders WHERE id=:id");
+    query.bindValue(":id", getId());
+    QUERY_EXEC(return );
+    query.next();
+
+    QString name    = query.value(1).toString();
+    QByteArray data = query.value(2).toByteArray();
+
+    if(!data.isEmpty())
+    {
+        QDataStream in(&data, QIODevice::ReadOnly);
+        in.setByteOrder(QDataStream::LittleEndian);
+        in.setVersion(QDataStream::Qt_5_2);
+        *this << in;
+        filename = getDBName();
+    }
+
+    setupName(name);
+    setToolTip(CGisListWks::eColumnName, getInfo());
+
+    /*
+        The further proceeding depends on the check state of the project. If the project
+        is partially loaded we simply update all items. If it is completely loaded we
+        reload it.
+     */
+
+    if(state == Qt::Checked)
+    {
+        // get keys of all children attached to the project in the database
+        query.prepare("SELECT id, type FROM items WHERE id IN (SELECT child FROM folder2item WHERE parent=:parent)");
+        query.bindValue(":parent", getId());
+        QUERY_EXEC(return );
+
+        CEvtD2WShowItems * evt = new CEvtD2WShowItems(getId(), getDBName());
+        evt->addItemsExclusively = true;
+
+        while(query.next())
+        {
+            evt->items << evt_item_t(query.value(0).toULongLong(), query.value(1).toUInt());
+        }
+
+        CGisWorkspace::self().postEventForWks(evt);
+    }
+    else
+    {
+        // Iterate over all children and update
+        const int N = childCount();
+        for(int i = 0; i < N; i++)
+        {
+            IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+            if(item == nullptr)
+            {
+                continue;
+            }
+
+            const IGisItem::key_t& key = item->getKey();
+            // update item from database
+            query.prepare("SELECT id FROM items WHERE keyqms=:keyqms");
+            query.bindValue(":keyqms", key.item);
+            QUERY_EXEC(return );
+
+            if(query.next())
+            {
+                // item is in the database
+                quint64 idItem = query.value(0).toULongLong();
+
+                QSqlQuery query2(db);
+                query2.prepare("SELECT id FROM folder2item WHERE parent=:parent AND child=:child");
+                query2.bindValue(":parent", getId());
+                query2.bindValue(":child", idItem);
+                query2.exec();
+
+                if(query2.next())
+                {
+                    // item is connected to this project
+                    item->updateFromDB(idItem, db);
+                    item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
+                }
+                else
+                {
+                    // item is not connected to this project
+                    item->updateFromDB(idItem, db);
+                    item->updateDecoration(IGisItem::eMarkNotPart|IGisItem::eMarkChanged, IGisItem::eMarkNone);
+                }
+            }
+            else
+            {
+                // item is not in the database at all.
+                item->updateDecoration(IGisItem::eMarkNotInDB|IGisItem::eMarkChanged, IGisItem::eMarkNone);
+            }
+        }
+
+        postStatus(false);
+    }
+
+
+    updateDecoration();
+}
+
diff --git a/src/qmapshack/gis/db/CDBProject.h b/src/qmapshack/gis/db/CDBProject.h
new file mode 100644
index 0000000..015bd5d
--- /dev/null
+++ b/src/qmapshack/gis/db/CDBProject.h
@@ -0,0 +1,165 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CDBPROJECT_H
+#define CDBPROJECT_H
+
+#include "gis/prj/IGisProject.h"
+#include <QSqlDatabase>
+
+class CEvtD2WShowItems;
+class CEvtD2WHideItems;
+class CQlgtFolder;
+class IDBFolder;
+
+class CDBProject : public IGisProject
+{
+    Q_DECLARE_TR_FUNCTIONS(CDBProject)
+public:
+    CDBProject(CGisListWks * parent);
+    CDBProject(const QString &dbName, quint64 id, CGisListWks * parent);
+    CDBProject(const QString &filename, IDBFolder *parentFolder, CGisListWks *parent);
+    CDBProject(CQlgtFolder& folder);
+    virtual ~CDBProject();
+
+    /**
+       @brief Restore database link after the project has been restored from binary storage.
+
+       Typically this is done after the project has been restored in the workspace on application's startup.
+
+     */
+    void restoreDBLink();
+
+    bool canSave() const override
+    {
+        return true;
+    }
+
+    bool save(int lastResult);
+
+    bool save() override;
+
+    quint64 getId() const
+    {
+        return id;
+    }
+    QString getDBName() const
+    {
+        return db.connectionName();
+    }
+    QString getDBHost() const
+    {
+        return db.hostName();
+    }
+
+    /**
+       @brief Serialize object out of a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    QDataStream& operator<<(QDataStream& stream) override;
+
+    /**
+       @brief Serialize object into a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    QDataStream& operator>>(QDataStream& stream) const override;
+
+    /**
+       @brief Send a CEvtW2DAckInfo event to the database view
+     */
+    void postStatus(bool updateLostFound);
+
+    /**
+       @brief Load items from the database into the project
+
+       @param evt   the event sent by the database view
+     */
+    void showItems(CEvtD2WShowItems * evt);
+    /**
+       @brief Remove items from the project
+
+       Note: This is not the same as for the other projects. The relation in the database
+       is still valid. The item is just not selected to be shown.
+
+       @param evt   the event sent by the database view
+     */
+    void hideItems(CEvtD2WHideItems * evt);
+
+    void update();
+
+protected:
+    /**
+       @brief Setup the items text with the name and suffix
+
+       @param defaultName
+     */
+    void setupName(const QString &defaultName) override;
+
+    /**
+     * @brief Save item's data into an existing database entry
+     *
+     * @param item      the item itself
+     * @param idItem    the 64bit database key
+     */
+    void updateItem(IGisItem *&item, quint64 idItem, QSqlQuery& query);
+
+
+    int checkForAction1(IGisItem * item, quint64 &itemId, int &lastResult, QSqlQuery& query);
+    int checkForAction2(IGisItem * item, quint64 &itemId, QString &hashItem, QSqlQuery& query);
+
+    /**
+     * @brief Add item to database
+     * @param item      the item itself
+     * @return The new 64bit database key
+     */
+    quint64 insertItem(IGisItem * item, QSqlQuery& query);
+
+    QSqlDatabase db;
+    quint64 id = 0;
+
+    enum reasons_e
+    {
+        eReasonCancel     = 0
+        , eReasonQueryFail  = -1
+        , eReasonUnexpected = -2
+        , eReasonConflict   = -3
+    };
+
+    enum action_e
+    {
+        eActionNone = 0x00
+        , eActionLink = 0x01
+        , eActionUpdate = 0x02
+        , eActionInsert = 0x04
+        , eActionClone  = 0x08
+        , eActionReload = 0x10
+    };
+
+    Qt::CheckState checkState = Qt::Unchecked;
+};
+
+#endif //CDBPROJECT_H
+
diff --git a/src/gis/db/CExportDatabase.cpp b/src/qmapshack/gis/db/CExportDatabase.cpp
similarity index 100%
rename from src/gis/db/CExportDatabase.cpp
rename to src/qmapshack/gis/db/CExportDatabase.cpp
diff --git a/src/gis/db/CExportDatabase.h b/src/qmapshack/gis/db/CExportDatabase.h
similarity index 100%
rename from src/gis/db/CExportDatabase.h
rename to src/qmapshack/gis/db/CExportDatabase.h
diff --git a/src/gis/db/CExportDatabaseThread.cpp b/src/qmapshack/gis/db/CExportDatabaseThread.cpp
similarity index 100%
rename from src/gis/db/CExportDatabaseThread.cpp
rename to src/qmapshack/gis/db/CExportDatabaseThread.cpp
diff --git a/src/gis/db/CExportDatabaseThread.h b/src/qmapshack/gis/db/CExportDatabaseThread.h
similarity index 100%
rename from src/gis/db/CExportDatabaseThread.h
rename to src/qmapshack/gis/db/CExportDatabaseThread.h
diff --git a/src/gis/db/CLostFoundProject.cpp b/src/qmapshack/gis/db/CLostFoundProject.cpp
similarity index 100%
rename from src/gis/db/CLostFoundProject.cpp
rename to src/qmapshack/gis/db/CLostFoundProject.cpp
diff --git a/src/gis/db/CLostFoundProject.h b/src/qmapshack/gis/db/CLostFoundProject.h
similarity index 100%
rename from src/gis/db/CLostFoundProject.h
rename to src/qmapshack/gis/db/CLostFoundProject.h
diff --git a/src/gis/db/CSearchDatabase.cpp b/src/qmapshack/gis/db/CSearchDatabase.cpp
similarity index 100%
rename from src/gis/db/CSearchDatabase.cpp
rename to src/qmapshack/gis/db/CSearchDatabase.cpp
diff --git a/src/gis/db/CSearchDatabase.h b/src/qmapshack/gis/db/CSearchDatabase.h
similarity index 100%
rename from src/gis/db/CSearchDatabase.h
rename to src/qmapshack/gis/db/CSearchDatabase.h
diff --git a/src/qmapshack/gis/db/CSelectDBFolder.cpp b/src/qmapshack/gis/db/CSelectDBFolder.cpp
new file mode 100644
index 0000000..3b790b3
--- /dev/null
+++ b/src/qmapshack/gis/db/CSelectDBFolder.cpp
@@ -0,0 +1,123 @@
+/**********************************************************************************************
+    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 "canvas/CCanvas.h"
+#include "gis/db/CDBFolderMysql.h"
+#include "gis/db/CDBFolderSqlite.h"
+#include "gis/db/CSelectDBFolder.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CSelectDBFolder::CSelectDBFolder(quint64 &id, QString &db, QString &host, QWidget *parent)
+    : QDialog(parent)
+    , id(id)
+    , db(db)
+    , host(host)
+{
+    setupUi(this);
+    treeWidget->setProperty("showItems", false);
+    treeWidget->setProperty("showCheckBoxes", false);
+    setProperty("showLostFound", false);
+
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+
+    SETTINGS;
+    cfg.beginGroup("Database");
+    QStringList names = cfg.value("names").toStringList();
+    cfg.beginGroup("Entries");
+    for(const QString &name : names)
+    {
+        if(!db.isEmpty() && (db != name))
+        {
+            continue;
+        }
+
+        cfg.beginGroup(name);
+        QString type = cfg.value("type", "SQLite").toString();
+        if(type == "SQLite")
+        {
+            QString filename = cfg.value("filename","").toString();
+            new CDBFolderSqlite(filename, name, treeWidget);
+        }
+
+        if(type == "MySQL")
+        {
+            QString server  = cfg.value("server","").toString();
+            QString port    = cfg.value("port","").toString();
+            QString user    = cfg.value("user","").toString();
+            QString passwd  = cfg.value("passwd","").toString();
+            bool noPasswd   = cfg.value("noPasswd",false).toBool();
+            new CDBFolderMysql(server, port, user, passwd, noPasswd, name, treeWidget);
+        }
+        cfg.endGroup(); // name
+    }
+    cfg.endGroup(); // Database
+
+    connect(treeWidget, &QTreeWidget::itemExpanded,         this, &CSelectDBFolder::slotItemExpanded);
+    connect(treeWidget, &QTreeWidget::itemSelectionChanged, this, &CSelectDBFolder::slotItemSelectionChanged);
+
+    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectDBFolder");
+}
+
+CSelectDBFolder::~CSelectDBFolder()
+{
+    CCanvas::restoreOverrideCursor("~CSelectDBFolder");
+}
+
+void CSelectDBFolder::slotItemExpanded(QTreeWidgetItem * item)
+{
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(item);
+    if(nullptr != folder)
+    {
+        folder->expanding();
+    }
+}
+
+void CSelectDBFolder::slotItemSelectionChanged()
+{
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(treeWidget->currentItem());
+    if(folder)
+    {
+        if(projectsOnly && (folder->type() != IDBFolder::eTypeProject) && (folder->type() != IDBFolder::eTypeOther))
+        {
+            id = -1;
+            db.clear();
+            buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+            return;
+        }
+
+        id      = folder->getId();
+        db      = folder->getDBName();
+        host    = folder->getDBHost();
+
+        IDBFolder * folder1 = dynamic_cast<IDBFolder*>(folder->parent());
+        while(folder1 != nullptr)
+        {
+            folder1 = dynamic_cast<IDBFolder*>(folder1->parent());
+        }
+
+        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
+    }
+    else
+    {
+        id = -1;
+        db.clear();
+        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+    }
+}
diff --git a/src/qmapshack/gis/db/CSelectDBFolder.h b/src/qmapshack/gis/db/CSelectDBFolder.h
new file mode 100644
index 0000000..2c6390f
--- /dev/null
+++ b/src/qmapshack/gis/db/CSelectDBFolder.h
@@ -0,0 +1,51 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CSELECTDBFOLDER_H
+#define CSELECTDBFOLDER_H
+
+#include "ui_ISelectDBFolder.h"
+#include <QDialog>
+
+class CSelectDBFolder : public QDialog, private Ui::ISelectDBFolder
+{
+    Q_OBJECT
+public:
+    CSelectDBFolder(quint64& id, QString& db, QString& host, QWidget * parent);
+    virtual ~CSelectDBFolder();
+
+    void setProjectsOnly(bool yes)
+    {
+        projectsOnly = yes;
+    }
+
+private slots:
+    void slotItemExpanded(QTreeWidgetItem * item);
+    void slotItemSelectionChanged();
+
+private:
+    quint64& id;
+    QString& db;
+    QString& host;
+
+    bool projectsOnly = false;
+};
+
+#endif //CSELECTDBFOLDER_H
+
+
diff --git a/src/qmapshack/gis/db/CSelectSaveAction.cpp b/src/qmapshack/gis/db/CSelectSaveAction.cpp
new file mode 100644
index 0000000..601bcc9
--- /dev/null
+++ b/src/qmapshack/gis/db/CSelectSaveAction.cpp
@@ -0,0 +1,71 @@
+/**********************************************************************************************
+    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 "canvas/CCanvas.h"
+#include "gis/IGisItem.h"
+#include "gis/db/CSelectSaveAction.h"
+#include "helpers/CProgressDialog.h"
+
+CSelectSaveAction::CSelectSaveAction(const IGisItem *src, const IGisItem *tar, QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    labelIcon1->setPixmap(src->getDisplayIcon());
+    labelInfo1->setText(src->getInfo(IGisItem::eFeatureShowName));
+    labelIcon2->setPixmap(tar->getDisplayIcon());
+    labelInfo2->setText(tar->getInfo(IGisItem::eFeatureShowName));
+
+    adjustSize();
+
+    connect(pushSave,  &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
+    connect(pushSkip,  &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
+    connect(pushClone, &QPushButton::clicked, this, &CSelectSaveAction::slotSelectResult);
+
+    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectSaveAction");
+    CProgressDialog::setAllVisible(false);
+}
+
+CSelectSaveAction::~CSelectSaveAction()
+{
+    CCanvas::restoreOverrideCursor("~CSelectSaveAction");
+    CProgressDialog::setAllVisible(true);
+}
+
+bool CSelectSaveAction::allOthersToo()
+{
+    return checkAllOtherToo->isChecked();
+}
+
+void CSelectSaveAction::slotSelectResult()
+{
+    if(sender() == pushSave)
+    {
+        result = eResultSave;
+    }
+    else if(sender() == pushSkip)
+    {
+        result = eResultSkip;
+    }
+    else if(sender() == pushClone)
+    {
+        result = eResultClone;
+    }
+
+    accept();
+}
diff --git a/src/gis/db/CSelectSaveAction.h b/src/qmapshack/gis/db/CSelectSaveAction.h
similarity index 100%
rename from src/gis/db/CSelectSaveAction.h
rename to src/qmapshack/gis/db/CSelectSaveAction.h
diff --git a/src/qmapshack/gis/db/CSetupDatabase.cpp b/src/qmapshack/gis/db/CSetupDatabase.cpp
new file mode 100644
index 0000000..20d812a
--- /dev/null
+++ b/src/qmapshack/gis/db/CSetupDatabase.cpp
@@ -0,0 +1,165 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/CGisListDB.h"
+#include "gis/db/CSetupDatabase.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CSetupDatabase::CSetupDatabase(CGisListDB &parent)
+    : QDialog(&parent)
+    , list(parent)
+{
+    setupUi(this);
+
+    lineUser->setText(CMainWindow::getUser());
+
+    connect(toolNewDB,   &QToolButton::clicked,   this, &CSetupDatabase::slotNewDB);
+    connect(toolAddDB,   &QToolButton::clicked,   this, &CSetupDatabase::slotOpenDB);
+    connect(lineName,    &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
+    connect(lineServer,  &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
+    connect(lineUser,    &QLineEdit::textChanged, this, &CSetupDatabase::slotUpdateButtonBox);
+    connect(radioSqlite, &QRadioButton::clicked,  this, &CSetupDatabase::slotUpdateButtonBox);
+    connect(radioMysql,  &QRadioButton::clicked,  this, &CSetupDatabase::slotUpdateButtonBox);
+    connect(checkMySQLNoPasswd, &QCheckBox::clicked, linePasswd, &QLineEdit::setDisabled);
+
+    if(!QSqlDatabase::isDriverAvailable("QMYSQL"))
+    {
+        gridLayout->removeWidget(frameMysql);
+
+        QString errorTitle = tr("Missing Requirement");
+        QString errorText  = tr("MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href=\"%1\">a look at the wiki</a>.").arg("https://bitbucket.org/maproom/qmapshack/wiki/DocGisDatabaseAddRemove#markdown-header-mysql-565");
+
+        QLabel *errorMissingMySQL = new QLabel(QString("<b>%1</b><br /><br />%2").arg(errorTitle).arg(errorText));
+        errorMissingMySQL->setOpenExternalLinks(true);
+        errorMissingMySQL->setWordWrap(true);
+        gridLayout->addWidget(errorMissingMySQL, 4, 1, Qt::AlignTop);
+
+        radioSqlite->setChecked(true);
+        radioMysql->setDisabled(true);
+    }
+
+    slotUpdateButtonBox();
+    adjustSize();
+}
+
+CSetupDatabase::~CSetupDatabase()
+{
+}
+
+void CSetupDatabase::slotUpdateButtonBox()
+{
+    bool enable = !lineName->text().isEmpty();
+
+    if(radioSqlite->isChecked())
+    {
+        if(labelFilename->text() == "-")
+        {
+            enable = false;
+        }
+        frameSqlite->setEnabled(true);
+        frameMysql->setEnabled(false);
+    }
+    else if(radioMysql->isChecked())
+    {
+        if(lineServer->text().isEmpty())
+        {
+            enable = false;
+        }
+        if(lineUser->text().isEmpty())
+        {
+            enable = false;
+        }
+        frameSqlite->setEnabled(false);
+        frameMysql->setEnabled(true);
+    }
+
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(enable);
+}
+
+
+void CSetupDatabase::accept()
+{
+    QString name = lineName->text();
+    if(list.hasDatabase(name))
+    {
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("There is already a database with name '%1'").arg(name), QMessageBox::Abort);
+        return;
+    }
+
+    QDialog::accept();
+}
+
+
+void CSetupDatabase::slotNewDB()
+{
+    SETTINGS;
+    QString path = cfg.value("Database/lastDatabasePath", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getSaveFileName(this, tr("New database..."), path, "QMapShack Database (*.db)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(filename);
+    if(fi.suffix().toLower() != "db")
+    {
+        filename += ".db";
+    }
+
+
+    cfg.setValue("Database/lastDatabasePath", fi.absolutePath());
+
+    labelFilename->setText(filename);
+
+    slotUpdateButtonBox();
+}
+
+void CSetupDatabase::slotOpenDB()
+{
+    SETTINGS;
+    QString path = cfg.value("Database/lastDatabasePath", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getOpenFileName(this, tr("Open database..."), path, "QMapShack Database (*.db)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(filename);
+    if(fi.suffix().toLower() != "db")
+    {
+        filename += ".db";
+    }
+
+
+    cfg.setValue("Database/lastDatabasePath", fi.absolutePath());
+
+    labelFilename->setText(filename);
+
+    slotUpdateButtonBox();
+}
+
+
+bool CSetupDatabase::noPasswd() const
+{
+    return radioMysql->isChecked() && checkMySQLNoPasswd->isChecked();
+}
diff --git a/src/gis/db/CSetupDatabase.h b/src/qmapshack/gis/db/CSetupDatabase.h
similarity index 100%
rename from src/gis/db/CSetupDatabase.h
rename to src/qmapshack/gis/db/CSetupDatabase.h
diff --git a/src/gis/db/CSetupFolder.cpp b/src/qmapshack/gis/db/CSetupFolder.cpp
similarity index 100%
rename from src/gis/db/CSetupFolder.cpp
rename to src/qmapshack/gis/db/CSetupFolder.cpp
diff --git a/src/gis/db/CSetupFolder.h b/src/qmapshack/gis/db/CSetupFolder.h
similarity index 100%
rename from src/gis/db/CSetupFolder.h
rename to src/qmapshack/gis/db/CSetupFolder.h
diff --git a/src/gis/db/CSetupWorkspace.cpp b/src/qmapshack/gis/db/CSetupWorkspace.cpp
similarity index 100%
rename from src/gis/db/CSetupWorkspace.cpp
rename to src/qmapshack/gis/db/CSetupWorkspace.cpp
diff --git a/src/gis/db/CSetupWorkspace.h b/src/qmapshack/gis/db/CSetupWorkspace.h
similarity index 100%
rename from src/gis/db/CSetupWorkspace.h
rename to src/qmapshack/gis/db/CSetupWorkspace.h
diff --git a/src/gis/db/IDB.cpp b/src/qmapshack/gis/db/IDB.cpp
similarity index 100%
rename from src/gis/db/IDB.cpp
rename to src/qmapshack/gis/db/IDB.cpp
diff --git a/src/gis/db/IDB.h b/src/qmapshack/gis/db/IDB.h
similarity index 100%
rename from src/gis/db/IDB.h
rename to src/qmapshack/gis/db/IDB.h
diff --git a/src/qmapshack/gis/db/IDBFolder.cpp b/src/qmapshack/gis/db/IDBFolder.cpp
new file mode 100644
index 0000000..f34dbdf
--- /dev/null
+++ b/src/qmapshack/gis/db/IDBFolder.cpp
@@ -0,0 +1,701 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/CGisListDB.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/IGisItem.h"
+#include "gis/db/CDBFolderGroup.h"
+#include "gis/db/CDBFolderOther.h"
+#include "gis/db/CDBFolderProject.h"
+#include "gis/db/CDBItem.h"
+#include "gis/db/CExportDatabase.h"
+#include "gis/db/IDB.h"
+#include "gis/db/IDBFolder.h"
+#include "gis/db/IDBFolderSql.h"
+#include "gis/db/macros.h"
+
+#include <QtSql>
+
+IDBFolder::IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidgetItem *parent)
+    : QTreeWidgetItem(parent, type)
+    , db(db)
+    , id(id)
+    , isLoadable(isLoadable)
+{
+}
+
+IDBFolder::IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidget * parent)
+    : QTreeWidgetItem(parent, type)
+    , db(db)
+    , id(id)
+    , isLoadable(isLoadable)
+{
+}
+
+IDBFolder::~IDBFolder()
+{
+}
+
+bool IDBFolder::operator<(const QTreeWidgetItem &other) const
+{
+    const IDBFolder * folder = dynamic_cast<const IDBFolder*>(&other);
+    if(nullptr == folder)
+    {
+        return false;
+    }
+
+
+    return text(CGisListDB::eColumnName) < folder->text(CGisListDB::eColumnName);
+}
+
+IDBFolder * IDBFolder::createFolderByType(QSqlDatabase& db, int type, quint64 id, QTreeWidgetItem * parent)
+{
+    switch(type)
+    {
+    case eTypeGroup:
+        return new CDBFolderGroup(db, id, parent);
+
+    case eTypeProject:
+        return new CDBFolderProject(db, id, parent);
+
+    case eTypeOther:
+        return new CDBFolderOther(db, id, parent);
+
+    default:
+        return nullptr;
+    }
+}
+
+QString IDBFolder::getNameEx(const QString& dbName, quint64 id)
+{
+    QString name;
+    QSqlDatabase db = QSqlDatabase::database(dbName);
+    return getNameEx(db, id, name);
+}
+
+QString IDBFolder::getNameEx(QSqlDatabase& db, quint64 id, const QString& name)
+{
+    QSqlQuery query(db);
+    query.prepare("SELECT name FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return name);
+    if(!query.next())
+    {
+        return name;
+    }
+    QString thisName = name.isEmpty() ? query.value(0).toString() : name + "@" + query.value(0).toString();
+
+    query.prepare("SELECT parent FROM folder2folder WHERE child=:child");
+    query.bindValue(":child", id);
+    QUERY_EXEC(return thisName);
+    if(!query.next())
+    {
+        return thisName;
+    }
+
+    return getNameEx(db, query.value(0).toULongLong(), thisName);
+}
+
+QString IDBFolder::getDBName() const
+{
+    return db.connectionName();
+}
+
+QString IDBFolder::getDBHost() const
+{
+    return db.hostName();
+}
+
+QString IDBFolder::getName() const
+{
+    return text(CGisListDB::eColumnName);
+}
+
+void IDBFolder::setName(const QString& name)
+{
+    QSqlQuery query(db);
+    query.prepare("UPDATE folders SET name=:name WHERE id=:id");
+    query.bindValue(":name", name);
+    query.bindValue(":id", getId());
+    QUERY_EXEC(return );
+
+    setupFromDB();
+}
+
+IDBFolderSql *IDBFolder::getDBFolder()
+{
+    if(type() == eTypeDatabase)
+    {
+        return dynamic_cast<IDBFolderSql*>(this);
+    }
+
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(parent());
+    if(nullptr != folder)
+    {
+        return folder->getDBFolder();
+    }
+    return nullptr;
+}
+
+IDBFolder * IDBFolder::getFolder(quint64 idFolder)
+{
+    if(id == idFolder)
+    {
+        return this;
+    }
+
+    const int N = childCount();
+    for(int n = 0; n < N; n++)
+    {
+        IDBFolder * folder1 = dynamic_cast<IDBFolder*>(child(n));
+        if(nullptr == folder1)
+        {
+            return nullptr;
+        }
+
+        IDBFolder * folder2 = folder1->getFolder(idFolder);
+        if(nullptr != folder2)
+        {
+            return folder2;
+        }
+    }
+
+    return nullptr;
+}
+
+quint64 IDBFolder::addFolder(type_e type, const QString& name)
+{
+    quint64 idChild = IDBFolder::addFolderToDb(type, name, id, db);
+    if(idChild != 0)
+    {
+        createFolderByType(db, type, idChild, this);
+        expanding();
+    }
+    return idChild;
+}
+
+quint64 IDBFolder::addFolderToDb(type_e type, const QString& name, quint64 idParent, QSqlDatabase& db)
+{
+    QSqlQuery query(db);
+    query.prepare("INSERT INTO folders (name, type) VALUES (:name, :type)");
+    query.bindValue(":name", name);
+    query.bindValue(":type", type);
+    QUERY_EXEC(return 0);
+
+    quint64 idChild = IDB::getLastInsertID(db, "folders");
+    if(idChild == 0)
+    {
+        qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
+        return 0;
+    }
+
+    query.prepare("INSERT INTO folder2folder (parent, child) VALUES (:parent, :child)");
+    query.bindValue(":parent", idParent);
+    query.bindValue(":child", idChild);
+    QUERY_EXEC(return 0);
+
+    return idChild;
+}
+
+void IDBFolder::expanding()
+{
+    qDeleteAll(takeChildren());
+    addChildren(QSet<QString>(), true, showItems());
+
+    CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
+    CGisWorkspace::self().postEventForWks(evt);
+}
+
+void IDBFolder::update(CEvtW2DAckInfo * info)
+{
+    if(info->id != id)
+    {
+        // forward call if not for local ID
+        for(int i = 0; i < childCount(); i++)
+        {
+            IDBFolder * folder = dynamic_cast<IDBFolder*>(child(i));
+            if(folder)
+            {
+                folder->update(info);
+            }
+        }
+        return;
+    }
+
+    setCheckState(CGisListDB::eColumnCheckbox, info->checkState);
+
+    QSqlQuery query(db);
+    // update text and tooltip
+    query.prepare("SELECT name, comment, sortmode FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+    query.next();
+
+    setText(CGisListDB::eColumnName, query.value(0).toString());
+    setToolTip(CGisListDB::eColumnName, query.value(1).toString());
+    sortMode = query.value(2).toUInt();
+
+
+    setChildIndicator();
+
+    if(isExpanded())
+    {
+        qDeleteAll(takeChildren());
+        addChildren(info->keysChildren, true, showItems());
+    }
+}
+
+bool IDBFolder::update()
+{
+    QSqlQuery query(db);
+
+    // Step 0: check if folder is still in the database
+    query.prepare("SELECT COUNT(*) FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return false);
+
+    if(!query.next() || query.value(0).toInt() == 0)
+    {
+        qDebug() << text(CGisListDB::eColumnName) << query.value(0).toInt() << id;
+        // return false to mark folder to be deleted
+        return false;
+    }
+
+    // Step 1: get basic properties like name and key
+    query.prepare("SELECT keyqms, name, comment, sortmode FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return false);
+    query.next();
+
+    // update items look on the gui.
+    key = query.value(0).toString();
+    setText(CGisListDB::eColumnName, query.value(1).toString());
+    setToolTip(CGisListDB::eColumnName, query.value(2).toString());
+    sortMode = query.value(3).toUInt();
+
+    // Step 2: Test for children.
+    setChildIndicator();
+
+    // Nothing to do for folders not expanded
+    if(!isExpanded())
+    {
+        return true;
+    }
+
+    /* Step 3: Iterate over all child items.
+     *
+     * There might be new folders to add. This is done collecting all sub-folder IDs in
+     * dbFoldersAdd. Remove every existing folder while iterating over all items. The
+     * left overs are the folders to add.
+     *
+     * Update existing folders. If the update return s false the folder was removed from
+     * the database or an error occurred. In both cases remove the folder item.
+     *
+     * Collect all items in dbItems. They will be removed and the item list is rebuilt
+     * from scratch.
+     */
+    QSet<QString>       activeChildren;
+    QList<CDBItem*>     dbItems;
+    QList<IDBFolder*>   dbFoldersDel;
+
+    // get all folder IDs attached to this folder
+    QList<quint64> dbFoldersAdd;
+    query.prepare("SELECT child FROM folder2folder WHERE parent=:parent");
+    query.bindValue(":parent", id);
+    QUERY_EXEC(return false);
+    while(query.next())
+    {
+        dbFoldersAdd << query.value(0).toULongLong();
+    }
+
+    const int N = childCount();
+    for(int i = 0; i < N; i++)
+    {
+        QTreeWidgetItem * item = child(i);
+
+        // test for folder and update folder
+        // remove the folder from the add list as it is already known
+        // if the update returns false register it for removal
+        IDBFolder * dbFolder = dynamic_cast<IDBFolder*>(item);
+        if(dbFolder != nullptr)
+        {
+            dbFoldersAdd.removeAll(dbFolder->getId());
+            if(dbFolder->update() == false)
+            {
+                dbFoldersDel << dbFolder;
+            }
+            continue;
+        }
+
+        CDBItem * dbItem = dynamic_cast<CDBItem*>(item);
+        if(dbItem != nullptr)
+        {
+            if(dbItem->checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
+            {
+                activeChildren << dbItem->getKey();
+            }
+            dbItems << dbItem;
+            continue;
+        }
+    }
+
+    // Step 4: Remove items and folders registered for removal. Add missing folders. Rebuild list of items.
+    qDeleteAll(dbFoldersDel);
+    qDeleteAll(dbItems);
+
+    // add folders
+    query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return false);
+    while(query.next())
+    {
+        quint64 idChild     = query.value(0).toULongLong();
+        quint32 typeChild   = query.value(1).toInt();
+        if(dbFoldersAdd.contains(idChild))
+        {
+            createFolderByType(db, typeChild, idChild, this);
+        }
+    }
+    sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
+
+    // add children
+    addChildren(activeChildren, false, showItems());
+    return true;
+}
+
+void IDBFolder::toggle()
+{
+    if(checkState(CGisListDB::eColumnCheckbox) == Qt::Checked)
+    {
+        CEvtD2WShowFolder * evt1 = new CEvtD2WShowFolder(getId(), getDBName());
+        CGisWorkspace::self().postEventForWks(evt1);
+
+        QSqlQuery query(db);
+        if(getId() == 0)
+        {
+            query.prepare("SELECT id, type FROM items AS t1 WHERE NOT EXISTS(SELECT * FROM folder2item WHERE child=t1.id) ORDER BY t1.type, t1.name");
+        }
+        else
+        {
+            query.prepare("SELECT t1.child, t2.type FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
+            query.bindValue(":id", getId());
+        }
+        QUERY_EXEC(return );
+
+        CEvtD2WShowItems * evt2 = new CEvtD2WShowItems(getId(), getDBName());
+        evt2->addItemsExclusively = true;
+
+        while(query.next())
+        {
+            evt2->items << evt_item_t(query.value(0).toULongLong(), query.value(1).toUInt());
+        }
+        CGisWorkspace::self().postEventForWks(evt2);
+    }
+    else
+    {
+        CEvtD2WHideFolder * evt1 = new CEvtD2WHideFolder(getId(), getDBName());
+        CGisWorkspace::self().postEventForWks(evt1);
+    }
+}
+
+void IDBFolder::remove()
+{
+    IDBFolder * folder = dynamic_cast<IDBFolder*>(parent());
+    if(nullptr == folder)
+    {
+        return;
+    }
+    remove(folder->getId(), getId());
+
+    CEvtD2WHideFolder * evt1 = new CEvtD2WHideFolder(getId(), getDBName());
+    CGisWorkspace::self().postEventForWks(evt1);
+}
+
+
+void IDBFolder::setupFromDB()
+{
+    if(id == 0)
+    {
+        return;
+    }
+
+    QSqlQuery query(db);
+
+    // get basic properties like name and key
+    query.prepare("SELECT keyqms, name, comment, sortmode FROM folders WHERE id=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+    query.next();
+
+    key = query.value(0).toString();
+    setText(CGisListDB::eColumnName, query.value(1).toString());
+    setToolTip(CGisListDB::eColumnName, query.value(2).toString());
+    sortMode = query.value(3).toUInt();
+
+    // check if folder has child folders (to set expand indicator)
+    setChildIndicator();
+
+    // If the folder is loadable the checkbox has to be displayed and
+    // an event to query the state has to be sent to the workspace.
+    if(isLoadable && showCheckBoxes())
+    {
+        setCheckState(CGisListDB::eColumnCheckbox, Qt::Unchecked);
+        CEvtD2WReqInfo * evt = new CEvtD2WReqInfo(getId(), getDBName());
+        CGisWorkspace::self().postEventForWks(evt);
+    }
+}
+
+void IDBFolder::addChildren(const QSet<QString>& activeChildren, bool showFolders, bool showItems)
+{
+    QSqlQuery query(db);
+
+    if(showFolders)
+    {
+        // folders 1st
+        query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
+        query.bindValue(":id", id);
+        QUERY_EXEC(return );
+        while(query.next())
+        {
+            quint64 idChild     = query.value(0).toULongLong();
+            quint32 typeChild   = query.value(1).toInt();
+            createFolderByType(db, typeChild, idChild, this);
+        }
+
+        sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
+    }
+
+    if(showItems)
+    {
+        QList<CDBItem*> items;
+        // tracks 2nd
+        query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
+        query.bindValue(":id", id);
+        query.bindValue(":type", IGisItem::eTypeTrk);
+        QUERY_EXEC(return );
+        while(query.next())
+        {
+            quint64 idChild = query.value(0).toULongLong();
+            CDBItem * item = new CDBItem(db, idChild, nullptr);
+            item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+            items << item;
+        }
+        addItemsSorted(items);
+
+        // routes 3rd
+        query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
+        query.bindValue(":id", id);
+        query.bindValue(":type", IGisItem::eTypeRte);
+        QUERY_EXEC(return );
+        while(query.next())
+        {
+            quint64 idChild = query.value(0).toULongLong();
+            CDBItem * item = new CDBItem(db, idChild, nullptr);
+            item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+            items << item;
+        }
+        addItemsSorted(items);
+
+        //waypoints 4th
+        query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
+        query.bindValue(":id", id);
+        query.bindValue(":type", IGisItem::eTypeWpt);
+        QUERY_EXEC(return );
+        while(query.next())
+        {
+            quint64 idChild = query.value(0).toULongLong();
+            CDBItem * item = new CDBItem(db, idChild, nullptr);
+            item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+            items << item;
+        }
+        addItemsSorted(items);
+
+        // overlays 5th
+        query.prepare("SELECT t1.child FROM folder2item AS t1, items AS t2 WHERE t1.parent = :id AND t2.id = t1.child AND t2.type=:type ORDER BY t2.id");
+        query.bindValue(":id", id);
+        query.bindValue(":type", IGisItem::eTypeOvl);
+        QUERY_EXEC(return );
+        while(query.next())
+        {
+            quint64 idChild = query.value(0).toULongLong();
+            CDBItem * item = new CDBItem(db, idChild, nullptr);
+            item->setCheckState(CGisListDB::eColumnCheckbox, activeChildren.contains(item->getKey()) ? Qt::Checked : Qt::Unchecked);
+            items << item;
+        }
+        addItemsSorted(items);
+    }
+}
+
+void IDBFolder::remove(quint64 idParent, quint64 idFolder)
+{
+    QSqlQuery query(db);
+    // delete this particular relation first
+    query.prepare("DELETE FROM folder2folder WHERE parent=:parent AND child=:child");
+    query.bindValue(":parent", idParent);
+    query.bindValue(":child", idFolder);
+    QUERY_EXEC();
+
+    query.prepare("SELECT EXISTS(SELECT 1 FROM folder2folder WHERE child=:id LIMIT 1)");
+    query.bindValue(":id", idFolder);
+    QUERY_EXEC();
+    // if there is no other relation delete the children, too.
+    if(!query.next() || (query.value(0).toInt() == 0))
+    {
+        query.prepare("SELECT child FROM folder2folder WHERE parent=:id");
+        query.bindValue(":id", idFolder);
+        QUERY_EXEC();
+        while(query.next())
+        {
+            remove(idFolder, query.value(0).toULongLong());
+        }
+
+        // remove the child items relations
+        query.prepare("DELETE FROM folder2item WHERE parent=:id");
+        query.bindValue(":id", idFolder);
+        QUERY_EXEC();
+
+        // and remove the folder
+        query.prepare("DELETE FROM folders WHERE id=:id");
+        query.bindValue(":id", idFolder);
+        QUERY_EXEC()
+    }
+}
+
+void IDBFolder::updateItemsOnWks()
+{
+    CEvtD2WUpdateItems * evt = new CEvtD2WUpdateItems(getId(), getDBName());
+    CGisWorkspace::self().postEventForWks(evt);
+}
+
+void IDBFolder::setChildIndicator()
+{
+    QSqlQuery query(db);
+
+    // count folders linked to this folder
+    query.prepare("SELECT COUNT(*) FROM folder2folder WHERE parent=:id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return );
+    query.next();
+
+    qint32 nFolders = query.value(0).toInt();
+
+    qint32 nItems = 0;
+    if(showItems())
+    {
+        // count items linked to this folder
+        query.prepare("SELECT COUNT(*) FROM folder2item WHERE parent=:id");
+        query.bindValue(":id", id);
+        QUERY_EXEC(return );
+        query.next();
+        nItems = query.value(0).toInt();
+    }
+
+    // set indicator according to items
+    if(nFolders || nItems)
+    {
+        setChildIndicatorPolicy(QTreeWidgetItem::ShowIndicator);
+    }
+    else
+    {
+        setChildIndicatorPolicy(QTreeWidgetItem::DontShowIndicator);
+    }
+}
+
+void IDBFolder::addItemsSorted(QList<CDBItem*>& items)
+{
+    sortItems(items);
+    for(CDBItem * item : items)
+    {
+        addChild(item);
+    }
+    items.clear();
+}
+
+bool sortByName(CDBItem * item1, CDBItem * item2)
+{
+    return item1->text(CGisListDB::eColumnName) < item2->text(CGisListDB::eColumnName);
+}
+
+bool sortByTime(CDBItem * item1, CDBItem * item2)
+{
+    return item1->date < item2->date;
+}
+
+void IDBFolder::sortItems(QList<CDBItem*>& items) const
+{
+    switch(sortMode)
+    {
+    case IGisProject::eSortFolderTime:
+        qSort(items.begin(), items.end(), &sortByTime);
+        break;
+
+    case IGisProject::eSortFolderName:
+        qSort(items.begin(), items.end(), &sortByName);
+        break;
+    }
+}
+
+
+bool IDBFolder::isSiblingFrom(IDBFolder * folder) const
+{
+    if(folder->getId() == getId())
+    {
+        return true;
+    }
+
+    IDBFolder * parentFolder = dynamic_cast<IDBFolder*>(parent());
+    if(parentFolder != nullptr)
+    {
+        return parentFolder->isSiblingFrom(folder);
+    }
+
+    return false;
+}
+
+void IDBFolder::exportToGpx()
+{
+    CExportDatabase dlg(getId(), getDb(), CMainWindow::self().getBestWidgetForParent());
+    dlg.exec();
+}
+
+
+bool IDBFolder::showItems() const
+{
+    return getBoolProperty("showItems", true);
+}
+
+bool IDBFolder::showCheckBoxes() const
+{
+    return getBoolProperty("showCheckBoxes", true);
+}
+
+bool IDBFolder::showLostFound() const
+{
+    return getBoolProperty("showLostFound", true);
+}
+
+bool IDBFolder::getBoolProperty(const char * name, bool defaultValue) const
+{
+    QTreeWidget * tree = treeWidget();
+    if(tree == nullptr)
+    {
+        return defaultValue;
+    }
+    return tree->property(name).toBool();
+}
diff --git a/src/qmapshack/gis/db/IDBFolder.h b/src/qmapshack/gis/db/IDBFolder.h
new file mode 100644
index 0000000..1145d71
--- /dev/null
+++ b/src/qmapshack/gis/db/IDBFolder.h
@@ -0,0 +1,232 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef IDBFOLDER_H
+#define IDBFOLDER_H
+
+#include "gis/prj/IGisProject.h"
+
+#include <QSqlDatabase>
+#include <QTreeWidgetItem>
+
+class QSqlDatabase;
+class CEvtW2DAckInfo;
+class IDBFolderSql;
+class CDBItem;
+
+/**
+ * @brief Baseclass for all folders in the database view
+ */
+class IDBFolder : public QTreeWidgetItem
+{
+public:
+    enum type_e
+    {
+        eTypeLostFound = 1
+        ,eTypeDatabase = 2
+        ,eTypeGroup    = 3
+        ,eTypeProject  = 4
+        ,eTypeOther    = 5
+    };
+
+    IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidgetItem * parent);
+    IDBFolder(bool isLoadable, QSqlDatabase& db, type_e type, quint64 id, QTreeWidget * parent);
+    virtual ~IDBFolder();
+
+    /**
+     * @brief Get the 64bit database key
+     * @return
+     */
+    quint64 getId() const
+    {
+        return id;
+    }
+    QString getDBName() const;
+    QString getDBHost() const;
+
+    QSqlDatabase& getDb(){return db; }
+
+    QString getName() const;
+    void setName(const QString& name);
+
+    /**
+     * @brief Get the database folder that folder is stored in
+     *
+     * @return On success a pointer to the item holding the database is returned.
+     */
+    IDBFolderSql * getDBFolder();
+
+    /**
+     * @brief Search and get access to a subfolder
+     * @param idFolder  the database key of the folder
+     * @return On success a pointer to the item is returned. Else 0.
+     */
+    IDBFolder * getFolder(quint64 idFolder);
+
+    /**
+     * @brief Add a new folder to the database and the treewidget.
+     *
+     * This will call addFolderToDb() and createFolderByType()
+     *
+     * @param type      the type of the new folder
+     * @param name      the name of the new folder
+     * @return The 64bit database key of the new folder. 0 on failure.
+     */
+    virtual quint64 addFolder(type_e type, const QString &name);
+    /**
+     * @brief Add children from database
+     */
+    virtual void expanding();
+    /**
+     * @brief Update item all child items from database
+     *
+     * The event has a list of active items. The item list is created from
+     * scratch and the check state is updated by that list
+     *
+     * @param info  The event object posted by the workspace
+     */
+    virtual void update(CEvtW2DAckInfo * info);
+
+    /**
+     * @brief Update from database
+     *
+     * The database might have been changed by other users. Update list of folders
+     * and update each folder expanded. Rebuild list of items.
+     */
+    virtual bool update();
+
+    /**
+     * @brief Toggle check state of project and post event to workspace.
+     */
+    virtual void toggle();
+    /**
+     * @brief Remove folder from database and post event to workspace
+     */
+    virtual void remove();
+
+    /**
+     * @brief Create a new folder entry into the database table
+     *
+     * The folder will be attached to it's parent folder
+     *
+     * @param type          the type of the new folder
+     * @param name          the name of the new folder
+     * @param idParent      the 64bit database key of the parent
+     * @param db            the database to work on
+     * @return The 64bit database key of the new folder. 0 on failure.
+     */
+    static quint64 addFolderToDb(type_e type, const QString& name, quint64 idParent, QSqlDatabase& db);
+
+    /**
+     * @brief Create a new treeWidgetItem from a folder in the database
+     *
+     * @param db        the database the item belongs to
+     * @param type      the folder type to create
+     * @param id        the database key of the folder
+     * @param parent    the items parent item
+     * @return A pointer to the new treewidgetitem.
+     */
+    static IDBFolder * createFolderByType(QSqlDatabase &db, int type, quint64 id, QTreeWidgetItem *parent);
+
+    /**
+       @brief Get name extended by parent folders and database name
+
+       @param dbName    the connection name of the database
+       @param id        the folder ID
+       @return          The name can be empty if the has been a failure
+     */
+    static QString getNameEx(const QString& dbName, quint64 id);
+
+    bool operator<(const QTreeWidgetItem &other) const override;
+
+    void updateItemsOnWks();
+
+    /**
+       @brief Do a database search.
+
+       This must be overridden by the database folder classes. As a result the query will
+       contain a list of item IDs.
+
+       @param str       The string to search for
+       @param query     The sql query item to use
+     */
+    virtual bool search(const QString& str, QSqlQuery& query)
+    {
+        return false;
+    }
+
+    bool isSiblingFrom(IDBFolder * folder) const;
+
+    void exportToGpx();
+
+protected:
+    /**
+       @brief Setup all item properties
+
+       This will read the database to setup the name, key and tooltip. Additionally it
+       will query for child elements (folders, gis items) and set the expand indicator
+       accordingly. If the folder is loadable the checkbox has to be displayed and the
+       workspace has to be queried for the folder.
+
+     */
+    virtual void setupFromDB();
+
+    /**
+       @brief Add child items like folders, tracks, routes, waypoints and overlays
+
+       The checkbox of active items will be set checked.
+
+       @param activeChildren    a set of item keys that are active on the workspace
+       @param showFolders       true to add child folders to folder
+       @param showItems         true to add child items to folder
+     */
+    virtual void addChildren(const QSet<QString> &activeChildren, bool showFolders, bool showItems);
+
+    /**
+       @brief Remove a folder to folder relation
+
+       If the folder has no other relation the folder's relation to it's children is removed, too.
+
+       @param idParent      the 64bit database key of the parent folder
+       @param idFolder      the 64bit database key of the child folder to be removed
+     */
+    virtual void remove(quint64 idParent, quint64 idFolder);
+
+    void setChildIndicator();
+
+    void addItemsSorted(QList<CDBItem *> &items);
+    void sortItems(QList<CDBItem *> &items) const;
+
+    bool showItems() const;
+    bool showCheckBoxes() const;
+    bool showLostFound() const;
+
+    bool getBoolProperty(const char * name, bool defaultValue) const;
+
+    static QString getNameEx(QSqlDatabase& db, quint64 id, const QString& name);
+
+    QSqlDatabase& db;
+
+    quint64 id;
+    QString key;
+    quint32 sortMode =  IGisProject::eSortFolderTime;
+    bool isLoadable;
+};
+
+#endif //IDBFOLDER_H
+
diff --git a/src/qmapshack/gis/db/IDBFolderSql.cpp b/src/qmapshack/gis/db/IDBFolderSql.cpp
new file mode 100644
index 0000000..d1d192c
--- /dev/null
+++ b/src/qmapshack/gis/db/IDBFolderSql.cpp
@@ -0,0 +1,157 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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 "CMainWindow.h"
+#include "gis/CGisListDB.h"
+#include "gis/db/CDBFolderLostFound.h"
+#include "gis/db/IDBFolderSql.h"
+#include "gis/db/macros.h"
+#include "helpers/CSettings.h"
+
+#include <QtNetwork>
+#include <QtSql>
+
+IDBFolderSql::IDBFolderSql(QSqlDatabase &db, QTreeWidget *parent)
+    : IDBFolder(false, db, eTypeDatabase, 1, parent)
+{
+    socket = new QUdpSocket(this);
+}
+
+void IDBFolderSql::expanding()
+{
+    IDBFolder::expanding();
+
+    if(showLostFound())
+    {
+        folderLostFound  = new CDBFolderLostFound(db, nullptr);
+        insertChild(0, folderLostFound);
+    }
+}
+
+void IDBFolderSql::updateLostFound()
+{
+    if(folderLostFound)
+    {
+        folderLostFound->update();
+    }
+}
+
+bool IDBFolderSql::update()
+{
+    QSqlQuery query(db);
+    QList<IDBFolder*> dbFoldersDel;
+
+    /* Database folders are a bit special as there are no items. But a lost & found folder.
+     *
+     * As there can be folders removed from the database and new folders this is a bit tricky.
+     *
+     * dbFoldersAdd is filled with all folders IDs attached with the database folder. Now we
+     * iterate over all existing items and remove their ID from dbFoldersAdd. Additionally
+     * the folder item is updated. If the update returns false, the folders was removed from
+     * the database or an error occurred. In both cases the item is registered for removal in
+     * dbFoldersDel.
+     *
+     * When done with the iteration all folders registered for removal are deleted and the
+     * new ones are created. Finally lost & found is updated.
+     */
+
+    // get all folder IDs attached to this folder
+    QList<quint64> dbFoldersAdd;
+    query.prepare("SELECT child FROM folder2folder WHERE parent=:parent");
+    query.bindValue(":parent", id);
+    QUERY_EXEC(return false);
+    while(query.next())
+    {
+        dbFoldersAdd << query.value(0).toULongLong();
+    }
+
+    const int N = childCount();
+    for(int i = 1; i < N; i++)
+    {
+        IDBFolder * folder = dynamic_cast<IDBFolder*>(child(i));
+        if(folder)
+        {
+            dbFoldersAdd.removeAll(folder->getId());
+            if(!folder->update())
+            {
+                dbFoldersDel << folder;
+            }
+        }
+    }
+
+    qDeleteAll(dbFoldersDel);
+
+    // add folders
+    query.prepare("SELECT t1.child, t2.type FROM folder2folder AS t1, folders AS t2 WHERE t1.parent = :id AND t2.id = t1.child ORDER BY t2.id");
+    query.bindValue(":id", id);
+    QUERY_EXEC(return false);
+    while(query.next())
+    {
+        quint64 idChild     = query.value(0).toULongLong();
+        quint32 typeChild   = query.value(1).toInt();
+        if(dbFoldersAdd.contains(idChild))
+        {
+            createFolderByType(db, typeChild, idChild, this);
+        }
+    }
+
+    takeChild(0);
+    sortChildren(CGisListDB::eColumnName, Qt::AscendingOrder);
+    insertChild(0, folderLostFound);
+
+    updateLostFound();
+    return true;
+}
+
+void IDBFolderSql::announceChange() const
+{
+    SETTINGS;
+    bool enabled = cfg.value("Database/listenUpdate", false).toBool();
+    if(!enabled)
+    {
+        return;
+    }
+    quint16 port = cfg.value("Database/port", UDP_PORT).toUInt();
+
+
+    QByteArray msg;
+    QDataStream stream(&msg, QIODevice::WriteOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_2);
+
+    quint32 tan = qrand();
+
+    stream << quint32(0);
+    stream << tan;
+    stream << CMainWindow::self().id;
+    stream << db.driverName();
+    stream << getDBName();
+    stream << getDBHost();
+
+    QList<QNetworkInterface> netdevices = QNetworkInterface::allInterfaces();
+    for(const QNetworkInterface &netdevice : netdevices)
+    {
+        QList<QNetworkAddressEntry> networks = netdevice.addressEntries();
+        for(const QNetworkAddressEntry &network : networks)
+        {
+            socket->writeDatagram(msg, network.broadcast(), port);
+            socket->writeDatagram(msg, network.broadcast(), port);
+            socket->writeDatagram(msg, network.broadcast(), port);
+        }
+    }
+}
diff --git a/src/gis/db/IDBFolderSql.h b/src/qmapshack/gis/db/IDBFolderSql.h
similarity index 100%
rename from src/gis/db/IDBFolderSql.h
rename to src/qmapshack/gis/db/IDBFolderSql.h
diff --git a/src/gis/db/IDBMysql.cpp b/src/qmapshack/gis/db/IDBMysql.cpp
similarity index 100%
rename from src/gis/db/IDBMysql.cpp
rename to src/qmapshack/gis/db/IDBMysql.cpp
diff --git a/src/gis/db/IDBMysql.h b/src/qmapshack/gis/db/IDBMysql.h
similarity index 100%
rename from src/gis/db/IDBMysql.h
rename to src/qmapshack/gis/db/IDBMysql.h
diff --git a/src/gis/db/IDBSqlite.cpp b/src/qmapshack/gis/db/IDBSqlite.cpp
similarity index 100%
rename from src/gis/db/IDBSqlite.cpp
rename to src/qmapshack/gis/db/IDBSqlite.cpp
diff --git a/src/gis/db/IDBSqlite.h b/src/qmapshack/gis/db/IDBSqlite.h
similarity index 100%
rename from src/gis/db/IDBSqlite.h
rename to src/qmapshack/gis/db/IDBSqlite.h
diff --git a/src/gis/db/IExportDatabase.ui b/src/qmapshack/gis/db/IExportDatabase.ui
similarity index 100%
rename from src/gis/db/IExportDatabase.ui
rename to src/qmapshack/gis/db/IExportDatabase.ui
diff --git a/src/gis/db/ISearchDatabase.ui b/src/qmapshack/gis/db/ISearchDatabase.ui
similarity index 100%
rename from src/gis/db/ISearchDatabase.ui
rename to src/qmapshack/gis/db/ISearchDatabase.ui
diff --git a/src/gis/db/ISelectDBFolder.ui b/src/qmapshack/gis/db/ISelectDBFolder.ui
similarity index 100%
rename from src/gis/db/ISelectDBFolder.ui
rename to src/qmapshack/gis/db/ISelectDBFolder.ui
diff --git a/src/gis/db/ISelectSaveAction.ui b/src/qmapshack/gis/db/ISelectSaveAction.ui
similarity index 100%
rename from src/gis/db/ISelectSaveAction.ui
rename to src/qmapshack/gis/db/ISelectSaveAction.ui
diff --git a/src/gis/db/ISetupDatabase.ui b/src/qmapshack/gis/db/ISetupDatabase.ui
similarity index 100%
rename from src/gis/db/ISetupDatabase.ui
rename to src/qmapshack/gis/db/ISetupDatabase.ui
diff --git a/src/gis/db/ISetupFolder.ui b/src/qmapshack/gis/db/ISetupFolder.ui
similarity index 100%
rename from src/gis/db/ISetupFolder.ui
rename to src/qmapshack/gis/db/ISetupFolder.ui
diff --git a/src/gis/db/ISetupWorkspace.ui b/src/qmapshack/gis/db/ISetupWorkspace.ui
similarity index 100%
rename from src/gis/db/ISetupWorkspace.ui
rename to src/qmapshack/gis/db/ISetupWorkspace.ui
diff --git a/src/gis/db/macros.h b/src/qmapshack/gis/db/macros.h
similarity index 100%
rename from src/gis/db/macros.h
rename to src/qmapshack/gis/db/macros.h
diff --git a/src/gis/fit/CFitProject.cpp b/src/qmapshack/gis/fit/CFitProject.cpp
similarity index 100%
rename from src/gis/fit/CFitProject.cpp
rename to src/qmapshack/gis/fit/CFitProject.cpp
diff --git a/src/gis/fit/CFitProject.h b/src/qmapshack/gis/fit/CFitProject.h
similarity index 100%
rename from src/gis/fit/CFitProject.h
rename to src/qmapshack/gis/fit/CFitProject.h
diff --git a/src/gis/fit/CFitStream.cpp b/src/qmapshack/gis/fit/CFitStream.cpp
similarity index 100%
rename from src/gis/fit/CFitStream.cpp
rename to src/qmapshack/gis/fit/CFitStream.cpp
diff --git a/src/gis/fit/CFitStream.h b/src/qmapshack/gis/fit/CFitStream.h
similarity index 100%
rename from src/gis/fit/CFitStream.h
rename to src/qmapshack/gis/fit/CFitStream.h
diff --git a/src/gis/fit/decoder/CFitByteDataTransformer.cpp b/src/qmapshack/gis/fit/decoder/CFitByteDataTransformer.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitByteDataTransformer.cpp
rename to src/qmapshack/gis/fit/decoder/CFitByteDataTransformer.cpp
diff --git a/src/gis/fit/decoder/CFitByteDataTransformer.h b/src/qmapshack/gis/fit/decoder/CFitByteDataTransformer.h
similarity index 100%
rename from src/gis/fit/decoder/CFitByteDataTransformer.h
rename to src/qmapshack/gis/fit/decoder/CFitByteDataTransformer.h
diff --git a/src/gis/fit/decoder/CFitCrcState.cpp b/src/qmapshack/gis/fit/decoder/CFitCrcState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitCrcState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitCrcState.cpp
diff --git a/src/gis/fit/decoder/CFitCrcState.h b/src/qmapshack/gis/fit/decoder/CFitCrcState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitCrcState.h
rename to src/qmapshack/gis/fit/decoder/CFitCrcState.h
diff --git a/src/gis/fit/decoder/CFitDecoder.cpp b/src/qmapshack/gis/fit/decoder/CFitDecoder.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitDecoder.cpp
rename to src/qmapshack/gis/fit/decoder/CFitDecoder.cpp
diff --git a/src/gis/fit/decoder/CFitDecoder.h b/src/qmapshack/gis/fit/decoder/CFitDecoder.h
similarity index 100%
rename from src/gis/fit/decoder/CFitDecoder.h
rename to src/qmapshack/gis/fit/decoder/CFitDecoder.h
diff --git a/src/gis/fit/decoder/CFitDefinitionMessage.cpp b/src/qmapshack/gis/fit/decoder/CFitDefinitionMessage.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitDefinitionMessage.cpp
rename to src/qmapshack/gis/fit/decoder/CFitDefinitionMessage.cpp
diff --git a/src/gis/fit/decoder/CFitDefinitionMessage.h b/src/qmapshack/gis/fit/decoder/CFitDefinitionMessage.h
similarity index 100%
rename from src/gis/fit/decoder/CFitDefinitionMessage.h
rename to src/qmapshack/gis/fit/decoder/CFitDefinitionMessage.h
diff --git a/src/gis/fit/decoder/CFitDevFieldDefinition.cpp b/src/qmapshack/gis/fit/decoder/CFitDevFieldDefinition.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitDevFieldDefinition.cpp
rename to src/qmapshack/gis/fit/decoder/CFitDevFieldDefinition.cpp
diff --git a/src/gis/fit/decoder/CFitDevFieldDefinition.h b/src/qmapshack/gis/fit/decoder/CFitDevFieldDefinition.h
similarity index 100%
rename from src/gis/fit/decoder/CFitDevFieldDefinition.h
rename to src/qmapshack/gis/fit/decoder/CFitDevFieldDefinition.h
diff --git a/src/gis/fit/decoder/CFitDevFieldDefinitionState.cpp b/src/qmapshack/gis/fit/decoder/CFitDevFieldDefinitionState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitDevFieldDefinitionState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitDevFieldDefinitionState.cpp
diff --git a/src/gis/fit/decoder/CFitDevFieldDefinitionState.h b/src/qmapshack/gis/fit/decoder/CFitDevFieldDefinitionState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitDevFieldDefinitionState.h
rename to src/qmapshack/gis/fit/decoder/CFitDevFieldDefinitionState.h
diff --git a/src/gis/fit/decoder/CFitField.cpp b/src/qmapshack/gis/fit/decoder/CFitField.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitField.cpp
rename to src/qmapshack/gis/fit/decoder/CFitField.cpp
diff --git a/src/gis/fit/decoder/CFitField.h b/src/qmapshack/gis/fit/decoder/CFitField.h
similarity index 100%
rename from src/gis/fit/decoder/CFitField.h
rename to src/qmapshack/gis/fit/decoder/CFitField.h
diff --git a/src/gis/fit/decoder/CFitFieldBuilder.cpp b/src/qmapshack/gis/fit/decoder/CFitFieldBuilder.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldBuilder.cpp
rename to src/qmapshack/gis/fit/decoder/CFitFieldBuilder.cpp
diff --git a/src/gis/fit/decoder/CFitFieldBuilder.h b/src/qmapshack/gis/fit/decoder/CFitFieldBuilder.h
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldBuilder.h
rename to src/qmapshack/gis/fit/decoder/CFitFieldBuilder.h
diff --git a/src/gis/fit/decoder/CFitFieldDataState.cpp b/src/qmapshack/gis/fit/decoder/CFitFieldDataState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDataState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitFieldDataState.cpp
diff --git a/src/gis/fit/decoder/CFitFieldDataState.h b/src/qmapshack/gis/fit/decoder/CFitFieldDataState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDataState.h
rename to src/qmapshack/gis/fit/decoder/CFitFieldDataState.h
diff --git a/src/gis/fit/decoder/CFitFieldDefinition.cpp b/src/qmapshack/gis/fit/decoder/CFitFieldDefinition.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDefinition.cpp
rename to src/qmapshack/gis/fit/decoder/CFitFieldDefinition.cpp
diff --git a/src/gis/fit/decoder/CFitFieldDefinition.h b/src/qmapshack/gis/fit/decoder/CFitFieldDefinition.h
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDefinition.h
rename to src/qmapshack/gis/fit/decoder/CFitFieldDefinition.h
diff --git a/src/gis/fit/decoder/CFitFieldDefinitionState.cpp b/src/qmapshack/gis/fit/decoder/CFitFieldDefinitionState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDefinitionState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitFieldDefinitionState.cpp
diff --git a/src/gis/fit/decoder/CFitFieldDefinitionState.h b/src/qmapshack/gis/fit/decoder/CFitFieldDefinitionState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitFieldDefinitionState.h
rename to src/qmapshack/gis/fit/decoder/CFitFieldDefinitionState.h
diff --git a/src/gis/fit/decoder/CFitHeaderState.cpp b/src/qmapshack/gis/fit/decoder/CFitHeaderState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitHeaderState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitHeaderState.cpp
diff --git a/src/gis/fit/decoder/CFitHeaderState.h b/src/qmapshack/gis/fit/decoder/CFitHeaderState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitHeaderState.h
rename to src/qmapshack/gis/fit/decoder/CFitHeaderState.h
diff --git a/src/gis/fit/decoder/CFitMessage.cpp b/src/qmapshack/gis/fit/decoder/CFitMessage.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitMessage.cpp
rename to src/qmapshack/gis/fit/decoder/CFitMessage.cpp
diff --git a/src/gis/fit/decoder/CFitMessage.h b/src/qmapshack/gis/fit/decoder/CFitMessage.h
similarity index 100%
rename from src/gis/fit/decoder/CFitMessage.h
rename to src/qmapshack/gis/fit/decoder/CFitMessage.h
diff --git a/src/gis/fit/decoder/CFitRecordContentState.cpp b/src/qmapshack/gis/fit/decoder/CFitRecordContentState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitRecordContentState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitRecordContentState.cpp
diff --git a/src/gis/fit/decoder/CFitRecordContentState.h b/src/qmapshack/gis/fit/decoder/CFitRecordContentState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitRecordContentState.h
rename to src/qmapshack/gis/fit/decoder/CFitRecordContentState.h
diff --git a/src/gis/fit/decoder/CFitRecordHeaderState.cpp b/src/qmapshack/gis/fit/decoder/CFitRecordHeaderState.cpp
similarity index 100%
rename from src/gis/fit/decoder/CFitRecordHeaderState.cpp
rename to src/qmapshack/gis/fit/decoder/CFitRecordHeaderState.cpp
diff --git a/src/gis/fit/decoder/CFitRecordHeaderState.h b/src/qmapshack/gis/fit/decoder/CFitRecordHeaderState.h
similarity index 100%
rename from src/gis/fit/decoder/CFitRecordHeaderState.h
rename to src/qmapshack/gis/fit/decoder/CFitRecordHeaderState.h
diff --git a/src/gis/fit/decoder/IFitDecoderState.cpp b/src/qmapshack/gis/fit/decoder/IFitDecoderState.cpp
similarity index 100%
rename from src/gis/fit/decoder/IFitDecoderState.cpp
rename to src/qmapshack/gis/fit/decoder/IFitDecoderState.cpp
diff --git a/src/gis/fit/decoder/IFitDecoderState.h b/src/qmapshack/gis/fit/decoder/IFitDecoderState.h
similarity index 100%
rename from src/gis/fit/decoder/IFitDecoderState.h
rename to src/qmapshack/gis/fit/decoder/IFitDecoderState.h
diff --git a/src/gis/fit/defs/CFitBaseType.cpp b/src/qmapshack/gis/fit/defs/CFitBaseType.cpp
similarity index 100%
rename from src/gis/fit/defs/CFitBaseType.cpp
rename to src/qmapshack/gis/fit/defs/CFitBaseType.cpp
diff --git a/src/gis/fit/defs/CFitBaseType.h b/src/qmapshack/gis/fit/defs/CFitBaseType.h
similarity index 100%
rename from src/gis/fit/defs/CFitBaseType.h
rename to src/qmapshack/gis/fit/defs/CFitBaseType.h
diff --git a/src/gis/fit/defs/CFitFieldProfile.cpp b/src/qmapshack/gis/fit/defs/CFitFieldProfile.cpp
similarity index 100%
rename from src/gis/fit/defs/CFitFieldProfile.cpp
rename to src/qmapshack/gis/fit/defs/CFitFieldProfile.cpp
diff --git a/src/gis/fit/defs/CFitFieldProfile.h b/src/qmapshack/gis/fit/defs/CFitFieldProfile.h
similarity index 100%
rename from src/gis/fit/defs/CFitFieldProfile.h
rename to src/qmapshack/gis/fit/defs/CFitFieldProfile.h
diff --git a/src/gis/fit/defs/CFitProfile.cpp b/src/qmapshack/gis/fit/defs/CFitProfile.cpp
similarity index 100%
rename from src/gis/fit/defs/CFitProfile.cpp
rename to src/qmapshack/gis/fit/defs/CFitProfile.cpp
diff --git a/src/gis/fit/defs/CFitProfile.h b/src/qmapshack/gis/fit/defs/CFitProfile.h
similarity index 100%
rename from src/gis/fit/defs/CFitProfile.h
rename to src/qmapshack/gis/fit/defs/CFitProfile.h
diff --git a/src/gis/fit/defs/CFitProfileLookup.cpp b/src/qmapshack/gis/fit/defs/CFitProfileLookup.cpp
similarity index 100%
rename from src/gis/fit/defs/CFitProfileLookup.cpp
rename to src/qmapshack/gis/fit/defs/CFitProfileLookup.cpp
diff --git a/src/gis/fit/defs/CFitProfileLookup.h b/src/qmapshack/gis/fit/defs/CFitProfileLookup.h
similarity index 100%
rename from src/gis/fit/defs/CFitProfileLookup.h
rename to src/qmapshack/gis/fit/defs/CFitProfileLookup.h
diff --git a/src/gis/fit/defs/HowToFitGenerator.txt b/src/qmapshack/gis/fit/defs/HowToFitGenerator.txt
similarity index 100%
rename from src/gis/fit/defs/HowToFitGenerator.txt
rename to src/qmapshack/gis/fit/defs/HowToFitGenerator.txt
diff --git a/src/gis/fit/defs/Profile_Messages.csv b/src/qmapshack/gis/fit/defs/Profile_Messages.csv
similarity index 100%
rename from src/gis/fit/defs/Profile_Messages.csv
rename to src/qmapshack/gis/fit/defs/Profile_Messages.csv
diff --git a/src/gis/fit/defs/Profile_Types.csv b/src/qmapshack/gis/fit/defs/Profile_Types.csv
similarity index 100%
rename from src/gis/fit/defs/Profile_Types.csv
rename to src/qmapshack/gis/fit/defs/Profile_Types.csv
diff --git a/src/gis/fit/defs/fit_const.h b/src/qmapshack/gis/fit/defs/fit_const.h
similarity index 100%
rename from src/gis/fit/defs/fit_const.h
rename to src/qmapshack/gis/fit/defs/fit_const.h
diff --git a/src/gis/fit/defs/fit_enums.h b/src/qmapshack/gis/fit/defs/fit_enums.h
similarity index 100%
rename from src/gis/fit/defs/fit_enums.h
rename to src/qmapshack/gis/fit/defs/fit_enums.h
diff --git a/src/gis/fit/defs/fit_fields.h b/src/qmapshack/gis/fit/defs/fit_fields.h
similarity index 100%
rename from src/gis/fit/defs/fit_fields.h
rename to src/qmapshack/gis/fit/defs/fit_fields.h
diff --git a/src/gis/fit/defs/profiles.py b/src/qmapshack/gis/fit/defs/profiles.py
similarity index 100%
rename from src/gis/fit/defs/profiles.py
rename to src/qmapshack/gis/fit/defs/profiles.py
diff --git a/src/gis/fit/serialization.cpp b/src/qmapshack/gis/fit/serialization.cpp
similarity index 100%
rename from src/gis/fit/serialization.cpp
rename to src/qmapshack/gis/fit/serialization.cpp
diff --git a/src/gis/gpx/CGpxProject.cpp b/src/qmapshack/gis/gpx/CGpxProject.cpp
similarity index 100%
rename from src/gis/gpx/CGpxProject.cpp
rename to src/qmapshack/gis/gpx/CGpxProject.cpp
diff --git a/src/gis/gpx/CGpxProject.h b/src/qmapshack/gis/gpx/CGpxProject.h
similarity index 100%
rename from src/gis/gpx/CGpxProject.h
rename to src/qmapshack/gis/gpx/CGpxProject.h
diff --git a/src/gis/gpx/serialization.cpp b/src/qmapshack/gis/gpx/serialization.cpp
similarity index 100%
rename from src/gis/gpx/serialization.cpp
rename to src/qmapshack/gis/gpx/serialization.cpp
diff --git a/src/qmapshack/gis/ovl/CDetailsOvlArea.cpp b/src/qmapshack/gis/ovl/CDetailsOvlArea.cpp
new file mode 100644
index 0000000..e21b983
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CDetailsOvlArea.cpp
@@ -0,0 +1,249 @@
+/**********************************************************************************************
+    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 "gis/ovl/CDetailsOvlArea.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "helpers/CLinksDialog.h"
+#include "widgets/CTextEditWidget.h"
+
+
+#include <QtWidgets>
+
+CDetailsOvlArea::CDetailsOvlArea(CGisItemOvlArea &area, QWidget * parent)
+    : QDialog(parent)
+    , area(area)
+{
+    setupUi(this);
+
+    QPixmap icon(64,24);
+    for(size_t i = 0; i < CGisItemOvlArea::colorMapSize; ++i)
+    {
+        icon.fill(CGisItemOvlArea::colorMap[i].color);
+        comboColor->addItem(icon,"", CGisItemOvlArea::colorMap[i].color);
+    }
+
+    for(int i = 0; i < OVL_N_STYLES; ++i)
+    {
+        icon.fill(Qt::white);
+        QPainter p(&icon);
+        p.setPen(Qt::black);
+        p.setBrush(CGisItemOvlArea::brushStyles[i]);
+        p.drawRect(icon.rect());
+
+        comboStyle->addItem(icon,"",(int)CGisItemOvlArea::brushStyles[i]);
+    }
+
+
+    for(int i = 0; i < OVL_N_WIDTHS; ++i)
+    {
+        comboBorderWidth->addItem(CGisItemOvlArea::lineWidths[i].string, CGisItemOvlArea::lineWidths[i].width);
+    }
+
+    setupGui();
+
+    if(area.isOnDevice())
+    {
+        toolLock->setDisabled(true);
+    }
+
+
+    connect(comboColor,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetColor);
+    connect(comboBorderWidth, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetWidth);
+    connect(comboStyle,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsOvlArea::slotSetStyle);
+
+    connect(checkOpacity,     &QCheckBox::toggled,             this, &CDetailsOvlArea::slotOpacity);
+    connect(toolLock,         &QToolButton::toggled,           this, &CDetailsOvlArea::slotChangeReadOnlyMode);
+    connect(textCmtDesc,      &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsOvlArea::*)(const QUrl&)>(&CDetailsOvlArea::slotLinkActivated));
+    connect(lineName,         &CLineEdit::textEdited,          this, &CDetailsOvlArea::slotNameChanged);
+    connect(lineName,         &CLineEdit::editingFinished,     this, &CDetailsOvlArea::slotNameChangeFinished);
+    connect(listHistory,      &CHistoryListWidget::sigChanged, this, &CDetailsOvlArea::setupGui);
+}
+
+CDetailsOvlArea::~CDetailsOvlArea()
+{
+}
+
+
+void CDetailsOvlArea::slotSetColor(int idx)
+{
+    if(area.isReadOnly() || originator)
+    {
+        return;
+    }
+
+    area.setColor(idx);
+    setupGui();
+}
+
+void CDetailsOvlArea::slotSetWidth(int idx)
+{
+    if(area.isReadOnly() || originator)
+    {
+        return;
+    }
+    area.setWidth(CGisItemOvlArea::lineWidths[idx].width);
+    setupGui();
+}
+
+void CDetailsOvlArea::slotSetStyle(int idx)
+{
+    if(area.isReadOnly() || originator)
+    {
+        return;
+    }
+
+    area.setStyle(CGisItemOvlArea::brushStyles[idx]);
+    setupGui();
+}
+
+void CDetailsOvlArea::slotOpacity(bool yes)
+{
+    if(area.isReadOnly() || originator)
+    {
+        return;
+    }
+
+    area.setOpacity(yes);
+    setupGui();
+}
+
+void CDetailsOvlArea::slotChangeReadOnlyMode(bool on)
+{
+    area.setReadOnlyMode(on);
+    setupGui();
+}
+
+void CDetailsOvlArea::slotNameChanged(const QString &name)
+{
+    const QString shownName = name.isEmpty() ? IGisItem::noName : QString(name).replace('&', "&&");
+    setWindowTitle(shownName);
+}
+
+void CDetailsOvlArea::slotNameChangeFinished()
+{
+    lineName->clearFocus();
+
+    const QString& name = lineName->text();
+    slotNameChanged(name);
+
+    if(name != area.getName())
+    {
+        area.setName(name);
+        setupGui();
+    }
+}
+
+void CDetailsOvlArea::slotLinkActivated(const QUrl& url)
+{
+    if(url.toString() == "comment")
+    {
+        CTextEditWidget dlg(area.getComment(), nullptr);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            area.setComment(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "description")
+    {
+        CTextEditWidget dlg(area.getDescription(), nullptr);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            area.setDescription(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "links")
+    {
+        QList<IGisItem::link_t> links = area.getLinks();
+        CLinksDialog dlg(links, this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            area.setLinks(links);
+        }
+        setupGui();
+    }
+    else
+    {
+        QDesktopServices::openUrl(url);
+    }
+}
+
+
+void CDetailsOvlArea::setupGui()
+{
+    if(originator)
+    {
+        return;
+    }
+    originator = true;
+
+    bool isReadOnly = area.isReadOnly();
+    bool isNogo = area.isNogo();
+    setWindowTitle(area.getName());
+
+    labelTainted->setVisible(area.isTainted());
+    lineName->setText(area.getName());
+    lineName->setReadOnly(isReadOnly);
+
+    comboColor->setCurrentIndex      (area.getColorIdx());
+    comboBorderWidth->setCurrentIndex(comboBorderWidth->findData(area.getWidth()));
+    comboStyle->setCurrentIndex      (isNogo ? Qt::NoBrush : comboStyle->findData(area.getStyle()));
+
+    comboColor->setEnabled      (!isReadOnly);
+    comboBorderWidth->setEnabled(!isReadOnly);
+    comboStyle->setEnabled      (!isReadOnly && !isNogo);
+    checkOpacity->setEnabled    (!isReadOnly && !isNogo);
+
+    checkOpacity->setChecked(area.getOpacity());
+
+    labelNogo->setVisible(isNogo);
+    labelStyle->setEnabled(!isNogo);
+
+    textCmtDesc->document()->clear();
+    textCmtDesc->append(IGisItem::createText(isReadOnly, area.getComment(), area.getDescription(), area.getLinks()));
+    textCmtDesc->moveCursor (QTextCursor::Start);
+    textCmtDesc->ensureCursorVisible();
+
+    int idx = 0;
+    QList<QTreeWidgetItem*> items;
+    const CGisItemOvlArea::area_t& a = area.getAreaData();
+    for(const CGisItemOvlArea::pt_t& pt : a.pts)
+    {
+        QTreeWidgetItem * item = new QTreeWidgetItem();
+
+        item->setText(eColNum,QString::number(idx++));
+
+        // position
+        QString str;
+        IUnit::degToStr(pt.lon, pt.lat, str);
+        item->setText(eColPosition,str);
+        items << item;
+    }
+
+    treeWidget->clear();
+    treeWidget->addTopLevelItems(items);
+    treeWidget->header()->resizeSections(QHeaderView::ResizeToContents);
+
+    toolLock->setChecked(isReadOnly);
+
+    listHistory->setupHistory(area);
+
+    originator = false;
+}
+
diff --git a/src/qmapshack/gis/ovl/CDetailsOvlArea.h b/src/qmapshack/gis/ovl/CDetailsOvlArea.h
new file mode 100644
index 0000000..af226cf
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CDetailsOvlArea.h
@@ -0,0 +1,59 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CDETAILSOVLAREA_H
+#define CDETAILSOVLAREA_H
+
+#include "ui_IDetailsOvlArea.h"
+#include <QDialog>
+
+class CGisItemOvlArea;
+
+class CDetailsOvlArea : public QDialog, private Ui::IDetailsOvlArea
+{
+    Q_OBJECT
+public:
+    CDetailsOvlArea(CGisItemOvlArea &area, QWidget * parent);
+    virtual ~CDetailsOvlArea();
+
+private slots:
+    void slotSetColor(int idx);
+    void slotNameChanged(const QString &name);
+    void slotNameChangeFinished();
+    void slotSetWidth(int idx);
+    void slotSetStyle(int idx);
+    void slotOpacity(bool yes);
+    void slotChangeReadOnlyMode(bool on);
+    void slotLinkActivated(const QUrl& url);
+    void setupGui();
+
+private:
+    enum columns_t
+    {
+        eColNum
+        ,eColPosition
+        ,eColMax
+    };
+
+    CGisItemOvlArea& area;
+
+    bool originator = false;
+};
+
+#endif //CDETAILSOVLAREA_H
+
diff --git a/src/qmapshack/gis/ovl/CGisItemOvlArea.cpp b/src/qmapshack/gis/ovl/CGisItemOvlArea.cpp
new file mode 100644
index 0000000..30fe2fd
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CGisItemOvlArea.cpp
@@ -0,0 +1,563 @@
+/**********************************************************************************************
+    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 "GeoMath.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
+#include "gis/ovl/CDetailsOvlArea.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/ovl/CScrOptOvlArea.h"
+#include "gis/prj/IGisProject.h"
+#include "helpers/CDraw.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+#define DEFAULT_COLOR       4
+#define MIN_DIST_CLOSE_TO   10
+
+const CGisItemOvlArea::width_t CGisItemOvlArea::lineWidths[OVL_N_WIDTHS] =
+{
+    {3,  tr("thin")}
+    ,{5,  tr("normal")}
+    ,{9,  tr("wide")}
+    ,{13, tr("strong")}
+};
+
+const Qt::BrushStyle CGisItemOvlArea::brushStyles[OVL_N_STYLES] =
+{
+    Qt::NoBrush
+    , Qt::HorPattern
+    , Qt::VerPattern
+    , Qt::CrossPattern
+    , Qt::BDiagPattern
+    , Qt::FDiagPattern
+    , Qt::DiagCrossPattern
+    , Qt::SolidPattern
+};
+
+
+IGisItem::key_t CGisItemOvlArea::keyUserFocus;
+
+CGisItemOvlArea::CGisItemOvlArea(const SGisLine &line, const QString &name, IGisProject * project, int idx)
+    : IGisItem(project, eTypeOvl, idx)
+{
+    area.name = name;
+    readAreaDataFromGisLine(line);
+
+    flags |=  eFlagCreatedInQms|eFlagWriteAllowed;
+
+    setColor(str2color(""));
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+CGisItemOvlArea::CGisItemOvlArea(const CGisItemOvlArea& parentArea, IGisProject * project, int idx, bool clone)
+    : IGisItem(project, eTypeOvl, idx)
+{
+    history = parentArea.history;
+    loadHistory(history.histIdxCurrent);
+
+    if(clone)
+    {
+        area.name += tr("_Clone");
+        key.clear();
+        history.events.clear();
+        setupHistory();
+    }
+
+    if(parentArea.isOnDevice() || !parentArea.isReadOnly())
+    {
+        flags |= eFlagWriteAllowed;
+    }
+    else
+    {
+        flags &= ~eFlagWriteAllowed;
+    }
+
+    deriveSecondaryData();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+CGisItemOvlArea::CGisItemOvlArea(const QDomNode &xml, IGisProject *project)
+    : IGisItem(project, eTypeOvl, project->childCount())
+{
+    // --- start read and process data ----
+    setColor(penForeground.color());
+    readArea(xml, area);
+    // --- stop read and process data ----
+
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemOvlArea::CGisItemOvlArea(const history_t& hist, const QString &dbHash, IGisProject * project)
+    : IGisItem(project, eTypeOvl, project->childCount())
+{
+    history = hist;
+    loadHistory(hist.histIdxCurrent);
+    if(!dbHash.isEmpty())
+    {
+        lastDatabaseHash = dbHash;
+    }
+}
+
+CGisItemOvlArea::CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project)
+    : IGisItem(project, eTypeOvl, NOIDX)
+{
+    loadFromDb(id, db);
+}
+
+CGisItemOvlArea::~CGisItemOvlArea()
+{
+    // reset user focus if focused on this track
+    if(key == keyUserFocus)
+    {
+        keyUserFocus.clear();
+    }
+}
+
+IGisItem * CGisItemOvlArea::createClone()
+{
+    int idx = -1;
+    IGisProject * project = getParentProject();
+    if(project)
+    {
+        idx = project->indexOfChild(this);
+    }
+    return new CGisItemOvlArea(*this, project, idx, true);
+}
+
+void CGisItemOvlArea::setSymbol()
+{
+    setColor(str2color(area.color));
+}
+
+bool CGisItemOvlArea::isCloseTo(const QPointF& pos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qreal dist = GPS_Math_DistPointPolyline(polygonArea, pos);
+    return dist < 20;
+}
+
+bool CGisItemOvlArea::isWithin(const QRectF& area, selflags_t flags)
+{
+    return (flags & eSelectionOvl) ? IGisItem::isWithin(area, flags, polygonArea) : false;
+}
+
+QPointF CGisItemOvlArea::getPointCloseBy(const QPoint& screenPos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qint32 i    = 0;
+    qint32 idx  = NOIDX;
+    qint32 d    = NOINT;
+    for(const QPointF &point : polygonArea)
+    {
+        int tmp = (screenPos - point).manhattanLength();
+        if(tmp < d)
+        {
+            idx = i;
+            d   = tmp;
+        }
+        i++;
+    }
+
+    return (idx < 0) ? NOPOINTF : polygonArea[idx];
+}
+
+void CGisItemOvlArea::readAreaDataFromGisLine(const SGisLine &l)
+{
+    QMutexLocker lock(&mutexItems);
+
+    area.pts.clear();
+
+    for(int i = 0; i < l.size(); i++)
+    {
+        area.pts << pt_t();
+
+        pt_t& areapt      = area.pts.last();
+        const point_t& pt = l[i];
+
+        areapt.lon = pt.coord.x() * RAD_TO_DEG;
+        areapt.lat = pt.coord.y() * RAD_TO_DEG;
+
+        for(int n = 0; n < pt.subpts.size(); n++)
+        {
+            area.pts << pt_t();
+            pt_t& areapt       = area.pts.last();
+            const subpt_t& sub = pt.subpts[n];
+
+            areapt.lon = sub.coord.x() * RAD_TO_DEG;
+            areapt.lat = sub.coord.y() * RAD_TO_DEG;
+        }
+    }
+
+    deriveSecondaryData();
+}
+
+
+void CGisItemOvlArea::edit()
+{
+    CDetailsOvlArea dlg(*this, nullptr);
+    dlg.exec();
+
+    deriveSecondaryData();
+}
+
+void CGisItemOvlArea::deriveSecondaryData()
+{
+    qreal north = -90;
+    qreal east  = -180;
+    qreal south =  90;
+    qreal west  =  180;
+
+    for(const pt_t &pt : area.pts)
+    {
+        if(pt.lon < west)
+        {
+            west  = pt.lon;
+        }
+        if(pt.lon > east)
+        {
+            east  = pt.lon;
+        }
+        if(pt.lat < south)
+        {
+            south = pt.lat;
+        }
+        if(pt.lat > north)
+        {
+            north = pt.lat;
+        }
+    }
+
+    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
+
+    QPolygonF line(area.pts.size());
+    for(int i = 1; i < area.pts.size(); i++)
+    {
+        qreal a1, a2, d;
+        const pt_t& pt11 = area.pts[i - 1];
+        const pt_t& pt12 = area.pts[i];
+
+        QPointF& pt21    = line[i - 1];
+        QPointF& pt22    = line[i];
+
+        d = GPS_Math_Distance(pt11.lon * DEG_TO_RAD, pt11.lat * DEG_TO_RAD, pt12.lon * DEG_TO_RAD, pt12.lat * DEG_TO_RAD, a1, a2);
+
+        pt22.rx() = pt21.x() + qCos(a1 * DEG_TO_RAD) * d;
+        pt22.ry() = pt21.y() + qSin(a1 * DEG_TO_RAD) * d;
+    }
+
+    area.area = 0;
+    int j = line.size() - 1;
+    for(int i = 0; i < line.size(); i++)
+    {
+        area.area += (line[j].x() + line[i].x())*(line[j].y() - line[i].y());
+        j = i;
+    }
+
+    area.area = qAbs(area.area/2);
+}
+
+void CGisItemOvlArea::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
+{
+    QMutexLocker lock(&mutexItems);
+
+    polygonArea.clear();
+    if(!isVisible(boundingRect, viewport, gis))
+    {
+        return;
+    }
+
+    QPointF pt1;
+
+    for(const pt_t &pt : area.pts)
+    {
+        pt1.setX(pt.lon);
+        pt1.setY(pt.lat);
+        pt1 *= DEG_TO_RAD;
+        polygonArea << pt1;
+    }
+
+    gis->convertRad2Px(polygonArea);
+
+    p.save();
+    p.setOpacity(area.opacity ? 0.3 : 1.0);
+
+    penBackground.setWidth(area.width + 2);
+    p.setBrush(Qt::NoBrush);
+    p.setPen(penBackground);
+    p.drawPolygon(polygonArea);
+
+    penForeground.setColor(color);
+    penForeground.setWidth(area.width);
+    p.setBrush(isNogo() ? getNogoTextureBrush() : QBrush(color, (Qt::BrushStyle)area.style));
+    p.setPen(penForeground);
+    p.drawPolygon(polygonArea);
+
+    //close polygon (required by isCloseTo)
+    const pt_t &pt = area.pts.first();
+    pt1.setX(pt.lon);
+    pt1.setY(pt.lat);
+    pt1 *= DEG_TO_RAD;
+    gis->convertRad2Px(pt1);
+    polygonArea << pt1;
+
+    p.restore();
+}
+
+void CGisItemOvlArea::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
+{
+    QMutexLocker lock(&mutexItems);
+
+    if(polygonArea.isEmpty())
+    {
+        return;
+    }
+    QPointF pt  = getPolygonCentroid(polygonArea);
+    QRectF rect = fm.boundingRect(area.name);
+    rect.adjust(-2,-2,2,2);
+    rect.moveCenter(pt);
+
+    CDraw::text(getName(), p, pt.toPoint(), Qt::darkBlue);
+    blockedAreas << rect;
+}
+
+void CGisItemOvlArea::drawHighlight(QPainter& p)
+{
+    QMutexLocker lock(&mutexItems);
+
+    if(polygonArea.isEmpty() || key == keyUserFocus)
+    {
+        return;
+    }
+    p.setBrush(Qt::NoBrush);
+    p.setPen(QPen(QColor(255,0,0,100),11,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolygon(polygonArea);
+}
+
+void CGisItemOvlArea::gainUserFocus(bool yes)
+{
+    keyUserFocus = yes ? key : key_t();
+}
+
+QPointF CGisItemOvlArea::getPolygonCentroid(const QPolygonF& polygon)
+{
+    qreal x = 0;
+    qreal y = 0;
+    int len = polygon.size();
+
+    for(int i = 0; i < len; i++)
+    {
+        x = x + polygon[i].x();
+        y = y + polygon[i].y();
+    }
+    x = x / len;
+    y = y / len;
+
+    return QPointF(x,y);
+}
+
+IScrOpt * CGisItemOvlArea::getScreenOptions(const QPoint& origin, IMouse * mouse)
+{
+    if(scrOpt.isNull())
+    {
+        scrOpt = new CScrOptOvlArea(this, origin, mouse);
+    }
+    return scrOpt;
+}
+
+QString CGisItemOvlArea::getInfo(quint32 feature) const
+{
+    QString unit, val;
+    QString str = "<div>";
+
+    if(feature && eFeatureShowName)
+    {
+        str += "<b>" + getName() + "</b>";
+    }
+
+
+    IUnit::self().meter2area(area.area, val, unit);
+    str += "<br/>\n" + tr("Area: %1%2").arg(val).arg(unit);
+
+    QString desc = removeHtml(area.desc).simplified();
+    if(desc.count())
+    {
+        if(!str.isEmpty())
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || (desc.count() < 300))
+        {
+            str += desc;
+        }
+        else
+        {
+            str += desc.left(297) + "...";
+        }
+    }
+
+    QString cmt = removeHtml(area.cmt).simplified();
+    if((cmt != desc) && cmt.count())
+    {
+        if(!str.isEmpty())
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || (cmt.count() < 300))
+        {
+            str += cmt;
+        }
+        else
+        {
+            str += cmt.left(297) + "...";
+        }
+    }
+
+    return str + "</div>";
+}
+
+void CGisItemOvlArea::getPolylineFromData(SGisLine &l) const
+{
+    QMutexLocker lock(&mutexItems);
+
+    l.clear();
+    for(const pt_t &pt : area.pts)
+    {
+        l << point_t(QPointF(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD));
+    }
+}
+
+void CGisItemOvlArea::getPolylineDegFromData(QPolygonF &polygon) const
+{
+    QMutexLocker lock(&mutexItems);
+
+    polygon.clear();
+    for(const pt_t &pt : area.pts)
+    {
+        polygon << QPointF(pt.lon, pt.lat);
+    }
+}
+
+void CGisItemOvlArea::setDataFromPolyline(const SGisLine& l)
+{
+    QMutexLocker lock(&mutexItems);
+
+    readAreaDataFromGisLine(l);
+
+    flags |= eFlagTainted;
+
+    changed(tr("Changed area shape."), "://icons/48x48/AreaMove.png");
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void CGisItemOvlArea::setName(const QString& str)
+{
+    setText(CGisListWks::eColumnName, str);
+    area.name = str;
+    changed(tr("Changed name."), "://icons/48x48/EditText.png");
+}
+
+void CGisItemOvlArea::setWidth(qint32 w)
+{
+    area.width = w;
+    changed(tr("Changed border width."), "://icons/48x48/TextBold.png");
+}
+
+void CGisItemOvlArea::setStyle(qint32 s)
+{
+    area.style = s;
+    changed(tr("Changed fill pattern."), "://icons/48x48/Pattern.png");
+}
+
+void CGisItemOvlArea::setOpacity(bool yes)
+{
+    area.opacity = yes;
+    changed(tr("Changed opacity."), "://icons/48x48/Opacity.png");
+}
+
+void CGisItemOvlArea::setComment(const QString& str)
+{
+    area.cmt = str;
+    changed(tr("Changed comment."), "://icons/48x48/EditText.png");
+}
+
+void CGisItemOvlArea::setDescription(const QString& str)
+{
+    area.desc = str;
+    changed(tr("Changed description."), "://icons/48x48/EditText.png");
+}
+
+void CGisItemOvlArea::setLinks(const QList<link_t>& links)
+{
+    area.links = links;
+    changed(tr("Changed links"), "://icons/48x48/Link.png");
+}
+
+
+void CGisItemOvlArea::setColor(size_t idx)
+{
+    if(idx >= colorMapSize)
+    {
+        return;
+    }
+    setColor(colorMap[idx].color);
+    changed(tr("Changed color"), "://icons/48x48/SelectColor.png");
+}
+
+void CGisItemOvlArea::setColor(const QColor& c)
+{
+    size_t n;
+
+    for(n = 0; n < colorMapSize; n++)
+    {
+        if(colorMap[n].color == c)
+        {
+            colorIdx    = n;
+            color       = colorMap[n].color;
+            bullet      = QPixmap(colorMap[n].bullet);
+            break;
+        }
+    }
+
+    if(n == colorMapSize)
+    {
+        colorIdx    = DEFAULT_COLOR;
+        color       = colorMap[DEFAULT_COLOR].color;
+        bullet      = QPixmap(colorMap[DEFAULT_COLOR].bullet);
+    }
+
+    setIcon(color.name());
+}
+
+void CGisItemOvlArea::setIcon(const QString& c)
+{
+    area.color  = c;
+    QPixmap icon = QPixmap("://icons/48x48/Area.png");
+
+    QPixmap mask( icon.size() );
+    mask.fill( str2color(c) );
+    mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
+    IGisItem::setIcon(mask.scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+}
diff --git a/src/qmapshack/gis/ovl/CGisItemOvlArea.h b/src/qmapshack/gis/ovl/CGisItemOvlArea.h
new file mode 100644
index 0000000..a72e51e
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CGisItemOvlArea.h
@@ -0,0 +1,192 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISITEMOVLAREA_H
+#define CGISITEMOVLAREA_H
+
+#include "gis/IGisItem.h"
+#include "gis/IGisLine.h"
+
+#include <QPen>
+#include <QPointer>
+
+class IGisProject;
+class CScrOptOvlArea;
+class IQlgtOverlay;
+
+#define OVL_N_WIDTHS 4
+#define OVL_N_STYLES 8
+
+class CGisItemOvlArea : public IGisItem, public IGisLine
+{
+    Q_DECLARE_TR_FUNCTIONS(CGisItemOvlArea)
+public:
+    CGisItemOvlArea(const SGisLine& line, const QString &name, IGisProject * project, int idx);
+    CGisItemOvlArea(const CGisItemOvlArea &parentArea, IGisProject * project, int idx, bool clone);
+    CGisItemOvlArea(const QDomNode &xml, IGisProject *project);
+    CGisItemOvlArea(const history_t& hist, const QString& dbHash, IGisProject * project);
+    CGisItemOvlArea(quint64 id, QSqlDatabase& db, IGisProject * project);
+    CGisItemOvlArea(const IQlgtOverlay& ovl, IGisProject *project = nullptr);
+    virtual ~CGisItemOvlArea();
+
+    IGisItem * createClone() override;
+
+    QDataStream& operator<<(QDataStream& stream) override;
+    QDataStream& operator>>(QDataStream& stream) const override;
+
+    const QString& getName() const override
+    {
+        return area.name.isEmpty() ? noName : area.name;
+    }
+
+    int getColorIdx() const
+    {
+        return colorIdx;
+    }
+    QString getInfo(quint32 feature) const override;
+    void getPolylineFromData(SGisLine& l) const override;
+    void getPolylineDegFromData(QPolygonF &polygon) const override;
+
+    const QString& getComment() const override
+    {
+        return area.cmt;
+    }
+    const QString& getDescription() const override
+    {
+        return area.desc;
+    }
+    const QList<link_t>& getLinks() const override
+    {
+        return area.links;
+    }
+    qint32 getWidth() const
+    {
+        return area.width;
+    }
+    qint32 getStyle() const
+    {
+        return area.style;
+    }
+    bool getOpacity() const
+    {
+        return area.opacity;
+    }
+
+    QDateTime getTimestamp() const override
+    {
+        return QDateTime();
+    }
+
+    void setName(const QString& str);
+    void setColor(size_t idx);
+    void setDataFromPolyline(const SGisLine& l) override;
+    void setWidth(qint32 w);
+    void setStyle(qint32 s);
+    void setOpacity(bool yes);
+    void setComment(const QString& str)       override;
+    void setDescription(const QString& str)   override;
+    void setLinks(const QList<link_t>& links) override;
+
+    void save(QDomNode& gpx, bool strictGpx11) override;
+    void edit() override;
+
+    using IGisItem::drawItem;
+    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
+    void drawLabel(QPainter& p, const QPolygonF& viewport,QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
+    void drawHighlight(QPainter& p) override;
+
+    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
+    QPointF getPointCloseBy(const QPoint& screenPos) override;
+    bool isCloseTo(const QPointF& pos) override;
+    bool isWithin(const QRectF& area, selflags_t flags) override;
+
+    void gainUserFocus(bool yes) override;
+
+    struct width_t
+    {
+        int width;
+        QString string;
+    };
+
+    static const width_t lineWidths[OVL_N_WIDTHS];
+    static const Qt::BrushStyle brushStyles[OVL_N_STYLES];
+protected:
+    void setSymbol() override;
+
+
+public:
+
+    struct pt_t : public wpt_t
+    {
+    };
+
+    struct area_t
+    {
+        // -- all gpx tags - start
+        QString name;
+        QString cmt;
+        QString desc;
+        QString src;
+        QList<link_t> links;
+        quint64 number = 0;
+        QString type;
+        QVector<pt_t> pts;
+        QString color;
+        qint32 width = 5;
+        qint32 style = Qt::BDiagPattern;
+        bool opacity = false;
+
+        // secondary data;
+        qreal area;
+    };
+
+    const area_t& getAreaData() const
+    {
+        return area;
+    }
+
+private:
+    void readArea(const QDomNode& xml, area_t& area);
+    void setColor(const QColor& c);
+    void setIcon(const QString& c);
+    void readAreaDataFromGisLine(const SGisLine &line);
+    void deriveSecondaryData();
+    QPointF getPolygonCentroid(const QPolygonF& polygon);
+
+    area_t area;
+
+
+    static key_t keyUserFocus;
+
+    QPen penForeground {Qt::blue,  3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+    QPen penBackground {Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+
+    /// the track line color
+    QColor color;
+    /// the trackpoint bullet icon
+    QPixmap bullet;
+    /// the track line color by index
+    unsigned colorIdx = 0;
+
+    QPolygonF polygonArea;
+
+    QPointer<CScrOptOvlArea>  scrOpt;
+};
+
+#endif //CGISITEMOVLAREA_H
+
diff --git a/src/qmapshack/gis/ovl/CScrOptOvlArea.cpp b/src/qmapshack/gis/ovl/CScrOptOvlArea.cpp
new file mode 100644
index 0000000..34ab3d6
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CScrOptOvlArea.cpp
@@ -0,0 +1,102 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/ovl/CScrOptOvlArea.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+
+CScrOptOvlArea::CScrOptOvlArea(CGisItemOvlArea *area, const QPoint &point, IMouse *parent)
+    : IScrOpt(parent)
+    , key(area->getKey())
+{
+    setupUi(this);
+    setOrigin(point);
+    label->setFont(CMainWindow::self().getMapFont());
+    label->setText(area->getInfo(IGisItem::eFeatureShowName));
+    adjustSize();
+
+    anchor = area->getPointCloseBy(point);
+    if((anchor - point).manhattanLength() > 50)
+    {
+        anchor = point;
+    }
+    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+    toolNogo->setChecked(area->isNogo());
+    show();
+
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptOvlArea::hide);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptOvlArea::hide);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptOvlArea::hide);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptOvlArea::hide);
+
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptOvlArea::slotEditDetails);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptOvlArea::slotDelete);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptOvlArea::slotCopy);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptOvlArea::slotEdit);
+    connect(toolNogo,        &QToolButton::clicked, this, &CScrOptOvlArea::slotNogo);
+}
+
+CScrOptOvlArea::~CScrOptOvlArea()
+{
+}
+
+void CScrOptOvlArea::slotEditDetails()
+{
+    CGisWorkspace::self().editItemByKey(key);
+    close();
+}
+
+void CScrOptOvlArea::slotCopy()
+{
+    CGisWorkspace::self().copyItemByKey(key);
+    close();
+}
+
+void CScrOptOvlArea::slotDelete()
+{
+    CGisWorkspace::self().delItemByKey(key);
+    close();
+}
+
+void CScrOptOvlArea::slotEdit()
+{
+    CGisWorkspace::self().editAreaByKey(key);
+    close();
+}
+
+void CScrOptOvlArea::slotNogo()
+{
+    CGisWorkspace::self().toggleNogoItem(key);
+    close();
+}
+
+void CScrOptOvlArea::draw(QPainter& p)
+{
+    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
+    if(nullptr == item)
+    {
+        QWidget::deleteLater();
+        return;
+    }
+    item->drawHighlight(p);
+
+    CDraw::bubble(p, geometry(), anchor.toPoint());
+}
diff --git a/src/qmapshack/gis/ovl/CScrOptOvlArea.h b/src/qmapshack/gis/ovl/CScrOptOvlArea.h
new file mode 100644
index 0000000..2e76f54
--- /dev/null
+++ b/src/qmapshack/gis/ovl/CScrOptOvlArea.h
@@ -0,0 +1,52 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CSCROPTOVLAREA_H
+#define CSCROPTOVLAREA_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IScrOpt.h"
+
+#include "ui_IScrOptOvlArea.h"
+
+class CGisItemOvlArea;
+class IMouse;
+
+class CScrOptOvlArea : public IScrOpt, private Ui::IScrOptOvlArea
+{
+    Q_OBJECT
+public:
+    CScrOptOvlArea(CGisItemOvlArea * area, const QPoint &point, IMouse *parent);
+    virtual ~CScrOptOvlArea();
+
+    void draw(QPainter& p) override;
+
+private slots:
+    void slotEditDetails();
+    void slotCopy();
+    void slotDelete();
+    void slotEdit();
+    void slotNogo();
+
+private:
+    IGisItem::key_t key;
+    QPointF anchor;
+};
+
+#endif //CSCROPTOVLAREA_H
+
diff --git a/src/qmapshack/gis/ovl/IDetailsOvlArea.ui b/src/qmapshack/gis/ovl/IDetailsOvlArea.ui
new file mode 100644
index 0000000..e4bb23a
--- /dev/null
+++ b/src/qmapshack/gis/ovl/IDetailsOvlArea.ui
@@ -0,0 +1,384 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IDetailsOvlArea</class>
+ <widget class="QDialog" name="IDetailsOvlArea">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="CLineEdit" name="lineName">
+       <property name="palette">
+        <palette>
+         <active>
+          <colorrole role="Base">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+          <colorrole role="Window">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+         </active>
+         <inactive>
+          <colorrole role="Base">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+          <colorrole role="Window">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+         </inactive>
+         <disabled>
+          <colorrole role="Base">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+          <colorrole role="Window">
+           <brush brushstyle="SolidPattern">
+            <color alpha="0">
+             <red>0</red>
+             <green>0</green>
+             <blue>0</blue>
+            </color>
+           </brush>
+          </colorrole>
+         </disabled>
+        </palette>
+       </property>
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="frame">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelTainted">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>25</width>
+         <height>25</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelNogo">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="maximumSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string>This is a NoGo-Area</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/icons/32x32/NoGo.png</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolLock">
+       <property name="toolTip">
+        <string>Toggle read only mode. You have to open the lock to edit the item.</string>
+       </property>
+       <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>
+       <property name="autoRaise">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="labelColor">
+       <property name="text">
+        <string>Color</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QComboBox" name="comboColor">
+       <property name="iconSize">
+        <size>
+         <width>64</width>
+         <height>24</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Border width</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="3">
+      <widget class="QComboBox" name="comboBorderWidth"/>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="labelStyle">
+       <property name="text">
+        <string>Style</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="comboStyle">
+       <property name="iconSize">
+        <size>
+         <width>64</width>
+         <height>24</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QCheckBox" name="checkOpacity">
+       <property name="text">
+        <string>Opacity</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>1</number>
+     </property>
+     <widget class="QWidget" name="tab_3">
+      <attribute name="title">
+       <string>Info</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_4">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QTextBrowser" name="textCmtDesc">
+         <property name="openLinks">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab">
+      <attribute name="title">
+       <string>Points</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="QTreeWidget" name="treeWidget">
+         <column>
+          <property name="text">
+           <string notr="true">#</string>
+          </property>
+         </column>
+         <column>
+          <property name="text">
+           <string>Position</string>
+          </property>
+         </column>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_2">
+      <attribute name="title">
+       <string>Hist.</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="CHistoryListWidget" name="listHistory"/>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CHistoryListWidget</class>
+   <extends>QListWidget</extends>
+   <header>widgets/CHistoryListWidget.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>widgets/CLineEdit.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>toolLock</tabstop>
+  <tabstop>lineName</tabstop>
+  <tabstop>tabWidget</tabstop>
+  <tabstop>comboColor</tabstop>
+  <tabstop>comboBorderWidth</tabstop>
+  <tabstop>comboStyle</tabstop>
+  <tabstop>checkOpacity</tabstop>
+  <tabstop>textCmtDesc</tabstop>
+  <tabstop>treeWidget</tabstop>
+  <tabstop>listHistory</tabstop>
+ </tabstops>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/ovl/IScrOptOvlArea.ui b/src/qmapshack/gis/ovl/IScrOptOvlArea.ui
new file mode 100644
index 0000000..1701912
--- /dev/null
+++ b/src/qmapshack/gis/ovl/IScrOptOvlArea.ui
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptOvlArea</class>
+ <widget class="QWidget" name="IScrOptOvlArea">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>171</width>
+    <height>69</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolEditDetails">
+       <property name="toolTip">
+        <string>View details and edit.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy area into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelete">
+       <property name="toolTip">
+        <string>Delete area from project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolEdit">
+       <property name="toolTip">
+        <string>Edit shape of the area.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/AreaMove.png</normaloff>:/icons/32x32/AreaMove.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolNogo">
+       <property name="toolTip">
+        <string>Toggle Nogo-Area</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/NoGo.png</normaloff>:/icons/32x32/NoGo.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Expanding</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>1</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/prj/CDetailsPrj.cpp b/src/qmapshack/gis/prj/CDetailsPrj.cpp
new file mode 100644
index 0000000..5825053
--- /dev/null
+++ b/src/qmapshack/gis/prj/CDetailsPrj.cpp
@@ -0,0 +1,968 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/IGisItem.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/CDetailsPrj.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/trk/CActivityTrk.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CLinksDialog.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/Signals.h"
+#include "plot/CPlotProfile.h"
+#include "plot/CPlotTrack.h"
+#include "widgets/CTextEditWidget.h"
+
+#include <QtPrintSupport>
+#include <QtWidgets>
+
+CDetailsPrj::CDetailsPrj(IGisProject &prj, QWidget *parent)
+    : QWidget(parent)
+    , INotifyTrk(CGisItemTrk::eVisualProject)
+    , prj(prj)
+{
+    setupUi(this);
+
+    const int N = prj.childCount();
+    for(int i = 0; i < N; i++)
+    {
+        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
+        if(nullptr != trk)
+        {
+            trk->registerVisual(this);
+        }
+    }
+
+    connect(labelKeywords, &QLabel::linkActivated,          this, static_cast<void (CDetailsPrj::*)(const QString&)>(&CDetailsPrj::slotLinkActivated));
+    connect(textDesc,      &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsPrj::*)(const QUrl&)   >(&CDetailsPrj::slotLinkActivated));
+    connect(toolPrint,     &QToolButton::clicked,           this, &CDetailsPrj::slotPrint);
+    connect(toolReload,    &QToolButton::clicked,           this, &CDetailsPrj::slotSetupGui);
+    connect(toolLock,      &QToolButton::clicked,           this, &CDetailsPrj::slotLock);
+
+    connect(comboSort,     static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsPrj::slotSortMode);
+
+    timerUpdateTime = new QTimer(this);
+    timerUpdateTime->setSingleShot(true);
+    timerUpdateTime->setInterval(20);
+    connect(timerUpdateTime, &QTimer::timeout, this, &CDetailsPrj::slotSetupGui);
+
+    timerUpdateTime->start();
+}
+
+CDetailsPrj::~CDetailsPrj()
+{
+    const int N = prj.childCount();
+    for(int i = 0; i < N; i++)
+    {
+        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
+        if(nullptr != trk)
+        {
+            trk->unregisterVisual(this);
+        }
+    }
+}
+
+void CDetailsPrj::resizeEvent(QResizeEvent * e)
+{
+    QWidget::resizeEvent(e);
+    timerUpdateTime->start();
+}
+
+void CDetailsPrj::getTrackProfile(CGisItemTrk * trk, QImage& image)
+{
+    CPlotProfile plot(trk, trk->limitsGraph1, IPlot::eModeIcon, this);
+    plot.setSolid(true);
+    plot.save(image);
+}
+
+void CDetailsPrj::getTrackOverview(CGisItemTrk * trk, QImage& image)
+{
+    CPlotTrack plot(trk, this);
+    plot.save(image);
+}
+
+
+void CDetailsPrj::slotSetupGui()
+{
+    if(!mutex.tryLock())
+    {
+        /*
+            What is this about?
+
+            When drawing the diary a progress dialog is used. This dialog is operating the event loop.
+            Consequently new events resulting into drawing the diary can be processed. But slotSetupGui()
+            is not reentrant. That is why we have to block these calls with a mutex. However as something
+            has changed the diary has to be redrawn again. That is why the timer is restarted.
+
+         */
+        timerUpdateTime->start(1000);
+        return;
+    }
+
+    X______________BlockAllSignals______________X(this);
+    comboSort->setCurrentIndex(prj.getSortingRoadbook());
+    if((prj.getSortingRoadbook() > IGisProject::eSortRoadbookNone) && !prj.doCorrelation())
+    {
+        X_____________UnBlockAllSignals_____________X(this);
+
+        QString msg = tr("You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?");
+        int res = QMessageBox::question(this, tr("Correlation..."), msg, QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+        if(res == QMessageBox::Yes)
+        {
+            prj.switchOnCorrelation();
+        }
+        else
+        {
+            comboSort->setCurrentIndex(IGisProject::eSortRoadbookNone);
+        }
+        timerUpdateTime->start();
+
+        mutex.unlock();
+        return;
+    }
+
+    const int N = prj.childCount();
+    if(N == 0)
+    {
+        toolLock->setChecked(false);
+        toolLock->setEnabled(false);
+    }
+    else
+    {
+        toolLock->setChecked(true);
+        toolLock->setEnabled(true);
+        for(int n = 0; n < N; n++)
+        {
+            IGisItem * item = dynamic_cast<IGisItem*>(prj.child(n));
+            if(item && !item->isReadOnly())
+            {
+                toolLock->setChecked(false);
+                break;
+            }
+        }
+    }
+    X_____________UnBlockAllSignals_____________X(this);
+
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "CDetailsPrj::slotSetupGui()");
+    // Create a new document, fill it and attach it to the text browser.
+    // This is much faster than to use the current one of the text browser.
+    // According to the docs, the text browser's current document should be
+    // deleted because the text browser is it's parent.
+    QTextDocument * doc = new QTextDocument();
+    doc->setTextWidth(textDesc->size().width() - 20);
+    draw(*doc, false);
+    doc->setParent(textDesc);
+    textDesc->setDocument(doc);
+
+    QTabWidget * tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
+    if(tabWidget)
+    {
+        int idx = tabWidget->indexOf(this);
+        if(idx != NOIDX)
+        {
+            setObjectName(prj.getName());
+            tabWidget->setTabText(idx, prj.getName().replace("&", "&&"));
+        }
+    }
+    CCanvas::restoreOverrideCursor("CDetailsPrj::slotSetupGui()");
+    mutex.unlock();
+}
+
+#define ROOT_FRAME_MARGIN 5
+#define CHAR_PER_LINE 130
+
+void CDetailsPrj::draw(QTextDocument& doc, bool printable)
+{
+    int w = doc.textWidth();
+    int nItems = 0;
+
+    QFontMetrics fm(QFont(font().family(),12));
+    int pointSize = ((10 * (w - 2 * ROOT_FRAME_MARGIN)) / (CHAR_PER_LINE *  fm.width("X")));
+    pointSize = qMax(pointSize,CMainWindow::self().getMapFont().pointSize());
+
+    QFont f = textDesc->font();
+    f.setPointSize(pointSize);
+    textDesc->setFont(f);
+
+    fmtFrameStandard.setTopMargin(5);
+    fmtFrameStandard.setBottomMargin(5);
+    fmtFrameStandard.setWidth(w - 2 * ROOT_FRAME_MARGIN);
+
+    fmtFrameTrackSummary.setBackground(Qt::white);
+    fmtFrameTrackSummary.setBorder(1);
+    fmtFrameTrackSummary.setPadding(10);
+
+    fmtCharStandard.setFont(f);
+
+    fmtBlockStandard.setTopMargin(10);
+    fmtBlockStandard.setBottomMargin(10);
+    fmtBlockStandard.setAlignment(Qt::AlignJustify);
+
+    fmtFrameRoot.setTopMargin(0);
+    fmtFrameRoot.setBottomMargin(ROOT_FRAME_MARGIN);
+    fmtFrameRoot.setLeftMargin(ROOT_FRAME_MARGIN);
+    fmtFrameRoot.setRightMargin(ROOT_FRAME_MARGIN);
+
+    fmtTableStandard.setBorder(1);
+    fmtTableStandard.setBorderBrush(Qt::black);
+    fmtTableStandard.setCellPadding(4);
+    fmtTableStandard.setCellSpacing(0);
+    fmtTableStandard.setHeaderRowCount(1);
+    fmtTableStandard.setTopMargin(10);
+    fmtTableStandard.setBottomMargin(20);
+    fmtTableStandard.setWidth(w - 4 * ROOT_FRAME_MARGIN);
+
+    QVector<QTextLength> constraints1;
+    constraints1 << QTextLength(QTextLength::FixedLength, 32);
+    constraints1 << QTextLength(QTextLength::VariableLength, 50);
+    constraints1 << QTextLength(QTextLength::VariableLength, 100);
+    fmtTableStandard.setColumnWidthConstraints(constraints1);
+
+    fmtTableHidden.setBorder(0);
+    fmtTableHidden.setCellPadding(4);
+    fmtTableHidden.setCellSpacing(0);
+    fmtTableHidden.setTopMargin(0);
+    fmtTableHidden.setBottomMargin(0);
+
+    QVector<QTextLength> constraints2;
+    constraints2 << QTextLength(QTextLength::PercentageLength, 50);
+    constraints2 << QTextLength(QTextLength::PercentageLength, 50);
+    fmtTableHidden.setColumnWidthConstraints(constraints2);
+
+    fmtTableInfo.setBorder(0);
+
+    fmtCharHeader.setFont(f);
+    fmtCharHeader.setBackground(Qt::darkBlue);
+    fmtCharHeader.setFontWeight(QFont::Bold);
+    fmtCharHeader.setForeground(Qt::white);
+
+    bool isReadOnly = printable || prj.isOnDevice() || toolLock->isChecked();
+
+    setWindowTitle(prj.getName());
+
+    labelTime->setText(IUnit::datetime2string(prj.getTime(), false));
+
+    QString keywords = prj.getKeywords();
+    if(keywords.isEmpty())
+    {
+        keywords = tr("none");
+    }
+    labelKeywords->setText(IGisItem::toLink(isReadOnly, "keywords", keywords, ""));
+
+
+    scrollVal = textDesc->verticalScrollBar()->value();
+
+    doc.clear();
+    doc.rootFrame()->setFrameFormat(fmtFrameRoot);
+    QTextCursor cursor = doc.rootFrame()->firstCursorPosition();
+    cursor.insertHtml(IGisItem::toLink(isReadOnly, "name", QString("<h1>%1</h1>").arg(prj.getNameEx()), ""));
+
+
+    QList<CGisItemTrk*> trks;
+    QList<CGisItemRte*> rtes;
+    QList<CGisItemWpt*> wpts;
+    QList<CGisItemOvlArea*> areas;
+    const int N = prj.childCount();
+    for(int i = 0; i < N; i++)
+    {
+        CGisItemTrk *trk = dynamic_cast<CGisItemTrk*>(prj.child(i));
+        if(nullptr != trk && !trk->isHidden())
+        {
+            trks << trk;
+            nItems++;
+            continue;
+        }
+
+        CGisItemRte *rte = dynamic_cast<CGisItemRte*>(prj.child(i));
+        if(nullptr != rte && !rte->isHidden())
+        {
+            rtes << rte;
+            nItems++;
+            continue;
+        }
+
+        CGisItemWpt *wpt = dynamic_cast<CGisItemWpt*>(prj.child(i));
+        if(nullptr != wpt && !wpt->isHidden())
+        {
+            wpts << wpt;
+            nItems++;
+            continue;
+        }
+
+        CGisItemOvlArea *area = dynamic_cast<CGisItemOvlArea*>(prj.child(i));
+        if(nullptr != area && !area->isHidden())
+        {
+            areas << area;
+            nItems++;
+            continue;
+        }
+    }
+
+    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameStandard);
+    {
+        QTextCursor cursor1(diaryFrame);
+        cursor1.setCharFormat(fmtCharStandard);
+        cursor1.setBlockFormat(fmtBlockStandard);
+
+        QTextTable * table = cursor1.insertTable(1, 2, fmtTableHidden);
+
+        QTextCursor cursor2 = table->cellAt(0,0).firstCursorPosition();
+        drawInfo(cursor2, isReadOnly);
+
+        if(prj.getItemCountByType(IGisItem::eTypeTrk) != 0)
+        {
+            QTextCursor cursor3 = table->cellAt(0,1).firstCursorPosition();
+            drawTrackSummary(cursor3, trks, isReadOnly);
+        }
+    }
+
+
+    int n=1;
+    PROGRESS_SETUP(tr("Build diary..."), 0, nItems, this);
+
+    if(comboSort->currentIndex() > IGisProject::eSortRoadbookNone)
+    {
+        drawByTrack(cursor, trks, wpts, progress, n, isReadOnly);
+    }
+    else
+    {
+        drawByGroup(cursor, trks, wpts, progress, n, isReadOnly);
+    }
+
+    drawRoute(cursor, rtes, progress, n, isReadOnly);
+
+    drawArea(cursor, areas, progress, n, isReadOnly);
+
+    QTimer::singleShot(1, this, SLOT(slotSetScrollbar()));
+}
+
+void CDetailsPrj::slotSetScrollbar()
+{
+    textDesc->verticalScrollBar()->setValue(scrollVal);
+    comboSort->setEnabled(true);
+}
+
+void CDetailsPrj::drawInfo(QTextCursor& cursor, bool isReadOnly)
+{
+    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameStandard);
+
+    QTextCursor cursor1(diaryFrame);
+
+    cursor1.setCharFormat(fmtCharStandard);
+    cursor1.setBlockFormat(fmtBlockStandard);
+    cursor1.insertHtml(IGisItem::createText(isReadOnly, prj.getDescription(), prj.getLinks()));
+}
+
+void CDetailsPrj::drawTrackSummary(QTextCursor& cursor, const QList<CGisItemTrk*> trks, bool isReadOnly)
+{
+    quint32 flags = 0;
+    QMap<quint32, CActivityTrk::activity_summary_t> summaries;
+    for(const CGisItemTrk* trk : trks)
+    {
+        const CActivityTrk& activities = trk->getActivities();
+        flags |= activities.getAllFlags();
+        activities.sumUp(summaries);
+    }
+
+
+    QTextFrame * diaryFrame = cursor.insertFrame(fmtFrameTrackSummary);
+
+    QTextCursor cursor1(diaryFrame);
+
+    cursor1.setCharFormat(fmtCharStandard);
+    cursor1.setBlockFormat(fmtBlockStandard);
+
+    QString str;
+    str += tr("<b>Summary over all tracks in project</b><br/>");
+    CActivityTrk::printSummary(summaries, flags, str);
+
+
+    cursor1.insertHtml(str);
+}
+
+void CDetailsPrj::addIcon(QTextTable * table, int col, int row, IGisItem * item, bool printable)
+{
+    table->cellAt(row,col).firstCursorPosition().insertImage(item->getDisplayIcon().toImage().scaledToWidth(16, Qt::SmoothTransformation));
+
+    if(!(printable||item->isReadOnly()))
+    {
+        table->cellAt(row,col).lastCursorPosition().insertHtml(QString("<p><a href='edit?key=%1'><img src='://icons/16x16/EditDetails.png'/></a></p>").arg(item->getKey().item));
+    }
+}
+
+
+void CDetailsPrj::drawByGroup(QTextCursor &cursor, QList<CGisItemTrk*>& trks, QList<CGisItemWpt*>& wpts, CProgressDialog& progress, int& n, bool printable)
+{
+    int cnt, w = cursor.document()->textWidth();
+
+    if(!wpts.isEmpty())
+    {
+        cursor.insertHtml(tr("<h2>Waypoints</h2>"));
+        QTextTable * table = cursor.insertTable(wpts.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;
+        for(CGisItemWpt * wpt : wpts)
+        {
+            PROGRESS(n++, return );
+
+            addIcon(table, eSym1, cnt, wpt, printable);
+            table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(wpt->getInfo(IGisItem::eFeatureShowName));
+            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
+            cnt++;
+        }
+
+        cursor.setPosition(table->lastPosition() + 1);
+    }
+
+    if(!trks.isEmpty())
+    {
+        cursor.insertHtml(tr("<h2>Tracks</h2>"));
+        QTextTable * table = cursor.insertTable(trks.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;
+
+        for(CGisItemTrk * trk : trks)
+        {
+            PROGRESS(n++, return );
+
+            addIcon(table, eSym1, cnt, trk, printable);
+
+            int w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
+            int h1 = qRound(w1/2.0);
+
+            if(w1 < 300)
+            {
+                table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
+
+                QTextTable * table1 = table->cellAt(cnt,eInfo1).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);
+            }
+            else
+            {
+                QTextTable * table1 = table->cellAt(cnt,eInfo1).firstCursorPosition().insertTable(1, 3, fmtTableInfo);
+
+                table1->cellAt(0,0).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
+
+                QImage profile(w1,h1,QImage::Format_ARGB32);
+                getTrackProfile(trk, profile);
+                table1->cellAt(0,1).firstCursorPosition().insertImage(profile);
+
+                QImage overview(h1,h1,QImage::Format_ARGB32);
+                getTrackOverview(trk, overview);
+                table1->cellAt(0,2).firstCursorPosition().insertImage(overview);
+            }
+
+            table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(trk->isReadOnly()||printable, trk->getComment(), trk->getDescription(), trk->getLinks(), trk->getKey().item));
+
+            cnt++;
+        }
+
+
+        cursor.setPosition(table->lastPosition() + 1);
+    }
+}
+
+struct wpt_info_t
+{
+    IGisItem::key_t key;
+    qreal distance1 = NOFLOAT;
+    qreal ascent1 = NOFLOAT;
+    qreal elapsedSeconds1 = 0;
+    qreal descent1 = NOFLOAT;
+
+    qreal distance2 = NOFLOAT;
+    qreal elapsedSeconds2 = 0;
+    qreal ascent2 = NOFLOAT;
+    qreal descent2 = NOFLOAT;
+
+    qreal distance3 = NOFLOAT;
+    qreal elapsedSeconds3 = 0;
+    qreal ascent3 = NOFLOAT;
+    qreal descent3 = NOFLOAT;
+};
+
+void CDetailsPrj::drawByTrack(QTextCursor& cursor, QList<CGisItemTrk *> &trks, QList<CGisItemWpt *> &wpts, CProgressDialog &progress, int &n, bool printable)
+{
+    int cnt, w = cursor.document()->textWidth();
+
+
+    const qreal w1 = qRound(w/3.5 > 300 ? 300 : w/3.5);
+    const qreal h1 = qRound(w1/2.0);
+
+
+    for(CGisItemTrk * trk : trks)
+    {
+        const CTrackData::trkpt_t* lastTrkpt = nullptr;
+        wpt_info_t * lastWptInfo = nullptr;
+        QList<wpt_info_t> wptInfo;
+        const CTrackData& t = trk->getTrackData();
+        for(const CTrackData::trkpt_t& trkpt : t)
+        {
+            if(trkpt.isHidden() || trkpt.keyWpt.item.isEmpty())
+            {
+                continue;
+            }
+
+            wptInfo << wpt_info_t();
+            wpt_info_t& info = wptInfo.last();
+            info.key        = trkpt.keyWpt;
+            info.distance1  = trkpt.distance;
+            info.elapsedSeconds1 = trkpt.elapsedSeconds;
+            info.ascent1    = trkpt.ascent;
+            info.descent1   = trkpt.descent;
+
+            if(lastWptInfo != nullptr)
+            {
+                lastWptInfo->distance2  = trkpt.distance - lastTrkpt->distance;
+                lastWptInfo->elapsedSeconds2  = trkpt.elapsedSeconds - lastTrkpt->elapsedSeconds;
+                lastWptInfo->ascent2    = trkpt.ascent   - lastTrkpt->ascent;
+                lastWptInfo->descent2   = trkpt.descent  - lastTrkpt->descent;
+            }
+
+            info.distance3  = trk->getTotalDistance() - trkpt.distance;
+            info.elapsedSeconds3  = trk->getTotalElapsedSeconds() - trkpt.elapsedSeconds;
+            info.ascent3    = trk->getTotalAscent() - trkpt.ascent;
+            info.descent3   = trk->getTotalDescent() - trkpt.descent;
+
+            lastTrkpt       = &trkpt;
+            lastWptInfo     = &wptInfo.last();
+        }
+
+        cursor.insertHtml(QString("<h2>%1</h2>").arg(trk->getName()));
+        QTextTable * table = cursor.insertTable(wptInfo.count()+2, eMax2, fmtTableStandard);
+
+        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;
+
+        for(const wpt_info_t &info : wptInfo)
+        {
+            PROGRESS(n++, return );
+
+            CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(prj.getItemByKey(info.key));
+            if(wpt != nullptr)
+            {
+                addIcon(table, eSym2, cnt, wpt, printable);
+                QString timeStr = "";
+                QDateTime arrivalTime = trk->getTimeStart();
+                if (arrivalTime.isValid())
+                {
+                    timeStr += wpt->getInfo(IGisItem::eFeatureShowName) + "<br/>\n" +
+                               tr("Arrival: ") + QString("%1").arg(IUnit::datetime2string(arrivalTime.addSecs(info.elapsedSeconds1), false));
+                }
+                else
+                {
+                    timeStr = wpt->getInfo(IGisItem::eFeatureShowName | IGisItem::eFeatureShowDateTime);
+                }
+                table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(timeStr);
+                QTextTable * table1 = table->cellAt(cnt,eData2).lastCursorPosition().insertTable(1, 2, fmtTableInfo);
+
+                QString text, val, unit;
+                text += "<table sytle='border=1px;'>";
+                text += "<tr><td></td><td><nobr> " + tr("From Start") + " </nobr></td><td><nobr> " + tr("To Next") + " </nobr></td><td><nobr> " + tr("To End")  + " </nobr></td></tr>";
+
+                text += "<tr>";
+                text += "<td>" + tr("Distance: ") + "</td>";
+                IUnit::self().meter2distance(info.distance1, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2distance(info.distance2, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2distance(info.distance3, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                text += "</tr>";
+
+                text += "<tr>";
+                text += "<td>" + tr("Time: ") + "</td>";
+                IUnit::self().seconds2time(info.elapsedSeconds1, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + " </td>";
+                IUnit::self().seconds2time(info.elapsedSeconds2, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + " </td>";
+                IUnit::self().seconds2time(info.elapsedSeconds3, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + " </td>";
+                text += "</tr>";
+
+                text += "<tr>";
+                text += "<td>" + tr("Ascent: ") + "</td>";
+                IUnit::self().meter2elevation(info.ascent1, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2elevation(info.ascent2, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2elevation(info.ascent3, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                text += "</tr>";
+
+                text += "<tr>";
+                text += "<td>" + tr("Descent: ") + "</td>";
+                IUnit::self().meter2elevation(info.descent1, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2elevation(info.descent2, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                IUnit::self().meter2elevation(info.descent3, val, unit);
+                text += "<td>"+ QString("%1%2").arg(val).arg(unit) + "</td>";
+                text += "</tr>";
+
+                text += "</table>";
+
+                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,eComment2).firstCursorPosition().insertHtml(IGisItem::createText(wpt->isReadOnly()||printable, wpt->getComment(), wpt->getDescription(), wpt->getLinks(), wpt->getKey().item));
+            }
+            cnt++;
+        }
+
+        addIcon(table, eSym1, cnt, trk, printable);
+        table->cellAt(cnt,eInfo2).firstCursorPosition().insertHtml(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
+
+        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);
+    }
+}
+
+void CDetailsPrj::drawArea(QTextCursor& cursor, QList<CGisItemOvlArea *> &areas, CProgressDialog &progress, int &n, bool printable)
+{
+    if(areas.isEmpty())
+    {
+        return;
+    }
+    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"));
+
+    int cnt = 1;
+    for(CGisItemOvlArea * area : areas)
+    {
+        PROGRESS(n++, return );
+
+        addIcon(table, eSym1, cnt, area, printable);
+        table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(area->getInfo(IGisItem::eFeatureShowName));
+        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);
+}
+
+void CDetailsPrj::drawRoute(QTextCursor& cursor, QList<CGisItemRte *> &rtes, CProgressDialog &progress, int &n, bool printable)
+{
+    if(rtes.isEmpty())
+    {
+        return;
+    }
+    cursor.insertHtml(tr("<h2>Routes</h2>"));
+    QTextTable * table = cursor.insertTable(rtes.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"));
+
+    int cnt = 1;
+    for(CGisItemRte * rte : rtes)
+    {
+        PROGRESS(n++, return );
+
+        addIcon(table, eSym1, cnt, rte, printable);
+        table->cellAt(cnt,eInfo1).firstCursorPosition().insertHtml(rte->getInfo(IGisItem::eFeatureShowName));
+        table->cellAt(cnt,eComment1).firstCursorPosition().insertHtml(IGisItem::createText(rte->isReadOnly()||printable, rte->getComment(), rte->getDescription(), rte->getLinks(), rte->getKey().item));
+        cnt++;
+    }
+
+    cursor.setPosition(table->lastPosition() + 1);
+}
+
+void CDetailsPrj::slotLinkActivated(const QString& link)
+{
+    if(link == "name")
+    {
+        QString name = QInputDialog::getText(this, tr("Edit name..."), tr("Enter new project name."), QLineEdit::Normal, prj.getName());
+        if(name.isEmpty())
+        {
+            return;
+        }
+        prj.setName(name);
+    }
+    else if(link == "keywords")
+    {
+        QString keywords = QInputDialog::getText(this, tr("Edit keywords..."), tr("Enter keywords."), QLineEdit::Normal, prj.getKeywords());
+        if(keywords.isEmpty())
+        {
+            return;
+        }
+        if(keywords == tr("none"))
+        {
+            keywords.clear();
+        }
+        prj.setKeywords(keywords);
+    }
+    slotSetupGui();
+}
+
+void CDetailsPrj::slotLinkActivated(const QUrl& url)
+{
+    if(url.path() == "name")
+    {
+        QString name = QInputDialog::getText(this, tr("Edit name..."), tr("Enter new project name."), QLineEdit::Normal, prj.getName());
+        if(!name.isEmpty())
+        {
+            prj.setName(name);
+        }
+    }
+    else if(url.path() == "description")
+    {
+        if(url.hasQuery())
+        {
+            IGisItem::key_t key;
+            key.project = prj.getKey();
+
+            QString query = url.query();
+            if(query.startsWith("key="))
+            {
+                key.item = query.mid(4);
+            }
+
+            IGisItem * item = prj.getItemByKey(key);
+            if(item)
+            {
+                CTextEditWidget dlg(item->getDescription(), this);
+                if(dlg.exec() == QDialog::Accepted)
+                {
+                    item->setDescription(dlg.getHtml());
+                }
+            }
+        }
+        else
+        {
+            CTextEditWidget dlg(prj.getDescription(), nullptr);
+            if(dlg.exec() == QDialog::Accepted)
+            {
+                prj.setDescription(dlg.getHtml());
+            }
+        }
+    }
+    else if(url.path() == "comment")
+    {
+        if(url.hasQuery())
+        {
+            IGisItem::key_t key;
+            key.project = prj.getKey();
+
+            QString query = url.query();
+            if(query.startsWith("key="))
+            {
+                key.item = query.mid(4);
+            }
+
+            IGisItem * item = prj.getItemByKey(key);
+            if(item)
+            {
+                CTextEditWidget dlg(item->getComment(), this);
+                if(dlg.exec() == QDialog::Accepted)
+                {
+                    item->setComment(dlg.getHtml());
+                }
+            }
+        }
+    }
+    else if(url.path() == "links")
+    {
+        if(url.hasQuery())
+        {
+            IGisItem::key_t key;
+            key.project = prj.getKey();
+
+            QString query = url.query();
+            if(query.startsWith("key="))
+            {
+                key.item = query.mid(4);
+            }
+
+            IGisItem * item = prj.getItemByKey(key);
+            if(item)
+            {
+                QList<IGisItem::link_t> links = item->getLinks();
+                CLinksDialog dlg(links, this);
+                if(dlg.exec() == QDialog::Accepted)
+                {
+                    item->setLinks(links);
+                }
+            }
+        }
+        else
+        {
+            QList<IGisItem::link_t> links = prj.getLinks();
+            CLinksDialog dlg(links, this);
+            if(dlg.exec() == QDialog::Accepted)
+            {
+                prj.setLinks(links);
+            }
+        }
+    }
+    else if(url.path() == "edit")
+    {
+        IGisItem::key_t key;
+        key.project = prj.getKey();
+
+        QString query = url.query();
+        if(query.startsWith("key="))
+        {
+            key.item = query.mid(4);
+        }
+
+        IGisItem * item = prj.getItemByKey(key);
+        if(item)
+        {
+            item->edit();
+        }
+    }
+    else
+    {
+        QDesktopServices::openUrl(url);
+        return;
+    }
+    slotSetupGui();
+}
+
+void CDetailsPrj::slotPrint()
+{
+    QPrinter printer;
+
+    printer.setResolution(200);
+    printer.setPageSize(QPrinter::A4);
+    QPrintDialog dialog(&printer, this);
+    dialog.setWindowTitle(tr("Print Diary"));
+    if (dialog.exec() != QDialog::Accepted)
+    {
+        return;
+    }
+
+    QTextDocument doc;
+    QSizeF pageSize = printer.pageRect(QPrinter::DevicePixel).size();
+    doc.setPageSize(pageSize);
+    draw(doc, true);
+    doc.print(&printer);
+
+    slotSetupGui();
+}
+
+void CDetailsPrj::slotLock(bool on)
+{
+    prj.blockUpdateItems(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() != on))
+        {
+            item->setReadOnlyMode(on);
+        }
+    }
+    prj.blockUpdateItems(false);
+    slotSetupGui();
+}
+
+
+void CDetailsPrj::slotSortMode(int idx)
+{
+    comboSort->setEnabled(false);
+    prj.setSortingRoadbook(IGisProject::sorting_roadbook_e(idx));
+    slotSetupGui();
+}
+
+void CDetailsPrj::updateData()
+{
+    if(!prj.blockUpdateItems())
+    {
+        slotSetupGui();
+    }
+}
diff --git a/src/gis/prj/CDetailsPrj.h b/src/qmapshack/gis/prj/CDetailsPrj.h
similarity index 100%
rename from src/gis/prj/CDetailsPrj.h
rename to src/qmapshack/gis/prj/CDetailsPrj.h
diff --git a/src/gis/prj/IDetailsPrj.ui b/src/qmapshack/gis/prj/IDetailsPrj.ui
similarity index 100%
rename from src/gis/prj/IDetailsPrj.ui
rename to src/qmapshack/gis/prj/IDetailsPrj.ui
diff --git a/src/qmapshack/gis/prj/IGisProject.cpp b/src/qmapshack/gis/prj/IGisProject.cpp
new file mode 100644
index 0000000..9509a6e
--- /dev/null
+++ b/src/qmapshack/gis/prj/IGisProject.cpp
@@ -0,0 +1,1209 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "device/IDevice.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/IGisItem.h"
+#include "gis/fit/CFitProject.h"
+#include "gis/gpx/CGpxProject.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/prj/CDetailsPrj.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/qlb/CQlbProject.h"
+#include "gis/qms/CQmsProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/router/IRouter.h"
+#include "gis/slf/CSlfProject.h"
+#include "gis/suunto/CLogProject.h"
+#include "gis/suunto/CSmlProject.h"
+#include "gis/tcx/CTcxProject.h"
+#include "gis/tcx/CTcxProject.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSelectCopyAction.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+
+const QString IGisProject::filedialogAllSupported = "All Supported (*.gpx *.GPX *.tcx *.TCX *.sml *.log *.qms *.qlb *.slf *.fit)";
+const QString IGisProject::filedialogFilterGPX    = "GPS Exchange Format (*.gpx *.GPX)";
+const QString IGisProject::filedialogFilterTCX    = "TCX Garmin Proprietary (*.tcx *.TCX)";
+const QString IGisProject::filedialogFilterSML    = "Suunto XML format (*.sml)";
+const QString IGisProject::filedialogFilterLOG    = "Openambit XML format (*.log)";
+const QString IGisProject::filedialogFilterQLB    = "QLandkarte Binary (*.qlb)";
+const QString IGisProject::filedialogFilterQMS    = "QMapShack Binary (*.qms)";
+const QString IGisProject::filedialogFilterSLF    = "Sigma Log Format (*.slf)";
+const QString IGisProject::filedialogFilterFIT    = "Garmin FIT Format (*.fit)";
+const QString IGisProject::filedialogSaveFilters = filedialogFilterGPX + ";; " + filedialogFilterQLB + ";; " + filedialogFilterQMS + ";; " + filedialogFilterTCX;
+const QString IGisProject::filedialogLoadFilters = filedialogAllSupported + ";; " + filedialogFilterGPX + ";; " + filedialogFilterTCX + ";; " + filedialogFilterSML + ";; " + filedialogFilterLOG + ";; " + filedialogFilterQLB + ";; " + filedialogFilterQMS + ";; " + filedialogFilterSLF + ";; " + filedialogFilterFIT;
+
+IGisProject::filter_mode_e IGisProject::filterMode = IGisProject::eFilterModeName;
+
+IGisProject::IGisProject(type_e type, const QString &filename, CGisListWks *parent)
+    : QTreeWidgetItem(parent)
+    , type(type)
+    , filename(filename)
+{
+    memset(cntItemsByType, 0, sizeof(cntItemsByType));
+    setCheckState(CGisListWks::eColumnCheckBox, Qt::Checked);
+
+    if(parent)
+    {
+        // move project up the list until there a re only projects, no devices
+        int newIdx      = NOIDX;
+        const int myIdx = parent->topLevelItemCount() - 1;
+        for(int i = myIdx - 1; i >= 0; i--)
+        {
+            IDevice * device = dynamic_cast<IDevice*>(parent->topLevelItem(i));
+            if(device != nullptr)
+            {
+                newIdx = i;
+                continue;
+            }
+            break;
+        }
+
+        if(newIdx != NOIDX)
+        {
+            parent->takeTopLevelItem(myIdx);
+            parent->insertTopLevelItem(newIdx, this);
+        }
+    }
+}
+
+IGisProject::IGisProject(type_e type, const QString &filename, IDevice *parent)
+    : QTreeWidgetItem(parent)
+    , type(type)
+    , filename(filename)
+{
+    memset(cntItemsByType, 0, sizeof(cntItemsByType));
+    setCheckState(CGisListWks::eColumnCheckBox, Qt::Checked);
+    nameSuffix = parent->getName();
+}
+
+IGisProject::~IGisProject()
+{
+    delete dlgDetails;
+}
+
+IGisProject * IGisProject::create(const QString filename, CGisListWks * parent)
+{
+    IGisProject *item = nullptr;
+    QString suffix = QFileInfo(filename).suffix().toLower();
+    if(suffix == "gpx")
+    {
+        item = new CGpxProject(filename, parent);
+    }
+    else if(suffix == "qms")
+    {
+        item = new CQmsProject(filename, parent);
+    }
+    else if(suffix == "slf")
+    {
+        item = new CSlfProject(filename);
+
+        // the CSlfProject does not - as the other C*Project - register itself in the list
+        // of currently opened projects. This is done manually here.
+        if(parent)
+        {
+            parent->addProject(item);
+        }
+    }
+    else if(suffix == "fit")
+    {
+        item = new CFitProject(filename, parent);
+    }
+    else if(suffix == "tcx")
+    {
+        item = new CTcxProject(filename, parent);
+    }
+    else if (suffix == "sml")
+    {
+        item = new CSmlProject(filename, parent);
+    }
+    else if (suffix == "log")
+    {
+        item = new CLogProject(filename, parent);
+    }
+    else if (suffix == "qlb")
+    {
+        item = new CQlbProject(filename, parent);
+    }
+
+    if(item && !item->isValid())
+    {
+        delete item;
+        item = nullptr;
+    }
+
+    return item;
+}
+
+QString IGisProject::html2Dev(const QString& str)
+{
+    return isOnDevice() == IDevice::eTypeGarmin ? IGisItem::removeHtml(str) : str;
+}
+
+bool IGisProject::askBeforClose()
+{
+    int res = QMessageBox::Ok;
+    if(isChanged())
+    {
+        CCanvas::setOverrideCursor(Qt::ArrowCursor, "askBeforClose");
+
+        res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Save project?"), tr("<h3>%1</h3>The project was changed. Save before closing it?").arg(getName()), QMessageBox::Save|QMessageBox::No|QMessageBox::Abort, QMessageBox::No);
+        CCanvas::restoreOverrideCursor("askBeforClose");
+
+        if(res == QMessageBox::Save)
+        {
+            // some project cannot be saved
+            if(canSave())
+            {
+                save();
+            }
+            else
+            {
+                saveAs();
+            }
+        }
+    }
+
+    return res == QMessageBox::Abort;
+}
+
+
+bool IGisProject::isVisible() const
+{
+    return checkState(CGisListWks::eColumnCheckBox) == Qt::Checked;
+}
+
+
+void IGisProject::genKey() const
+{
+    if(key.isEmpty())
+    {
+        QByteArray buffer;
+        QDataStream stream(&buffer, QIODevice::WriteOnly);
+        stream.setByteOrder(QDataStream::LittleEndian);
+        stream.setVersion(QDataStream::Qt_5_2);
+
+        *this >> stream;
+
+        QCryptographicHash md5(QCryptographicHash::Md5);
+        md5.addData(buffer);
+        key = md5.result().toHex();
+    }
+}
+
+QString IGisProject::getDeviceKey() const
+{
+    IDevice * device = dynamic_cast<IDevice*>(parent());
+    if(device)
+    {
+        return device->getKey();
+    }
+
+    return "";
+}
+
+QPixmap IGisProject::getIcon() const
+{
+    return icon(CGisListWks::eColumnIcon).pixmap(22,22);
+}
+
+qint32 IGisProject::isOnDevice() const
+{
+    IDevice * device = dynamic_cast<IDevice*>(parent());
+    return device != nullptr ? device->type() : IDevice::eTypeNone;
+}
+
+bool IGisProject::isChanged() const
+{
+    return text(CGisListWks::eColumnDecoration) == "*";
+}
+
+void IGisProject::edit()
+{
+    if(dlgDetails.isNull())
+    {
+        dlgDetails = new CDetailsPrj(*this, 0);
+        dlgDetails->setObjectName(getName());
+    }
+
+    CMainWindow::self().addWidgetToTab(dlgDetails);
+}
+
+void IGisProject::setName(const QString& str)
+{
+    metadata.name = str;
+    setText(CGisListWks::eColumnName, getNameEx());
+    setChanged();
+}
+
+void IGisProject::setKeywords(const QString& str)
+{
+    metadata.keywords = str;
+    setChanged();
+}
+
+void IGisProject::setDescription(const QString& str)
+{
+    metadata.desc = str;
+    setChanged();
+}
+
+void IGisProject::setLinks(const QList<IGisItem::link_t>& links)
+{
+    metadata.links = links;
+    setChanged();
+}
+
+void IGisProject::setSortingRoadbook(sorting_roadbook_e s)
+{
+    changedRoadbookMode = (s != sortingRoadbook);
+    sortingRoadbook = s;
+    if(changedRoadbookMode)
+    {
+        setChanged();
+    }
+}
+
+void IGisProject::setSortingFolder(sorting_folder_e s)
+{
+    bool changed = (s != sortingFolder);
+    sortingFolder = s;
+    sortItems();
+
+    if(changed)
+    {
+        setChanged();
+        if(dlgDetails != nullptr)
+        {
+            dlgDetails->updateData();
+        }
+    }
+}
+
+void IGisProject::setChanged()
+{
+    if(autoSave)
+    {
+        setText(CGisListWks::eColumnDecoration,"A");
+
+        if(!autoSavePending)
+        {
+            autoSavePending = true;
+            CGisWorkspace::self().postEventForWks(new CEvtA2WSave(getKey()));
+        }
+    }
+    else
+    {
+        setText(CGisListWks::eColumnDecoration,"*");
+    }
+    updateItems();
+}
+
+void IGisProject::setAutoSave(bool on)
+{
+    // make sure project is saved one more time to remove autoSave flag in storage
+    if(!on && autoSave)
+    {
+        CGisWorkspace::self().postEventForWks(new CEvtA2WSave(getKey()));
+    }
+
+    autoSave = on;
+    setChanged();
+}
+
+void IGisProject::switchOnCorrelation()
+{
+    noCorrelation = false;
+    hashTrkWpt[0].clear();
+    hashTrkWpt[1].clear();
+    updateItems();
+}
+
+void IGisProject::updateItems()
+{
+    if(noUpdate)
+    {
+        return;
+    }
+
+    sortItems();
+    updateItemCounters();
+
+    if(noCorrelation)
+    {
+        return;
+    }
+
+    if(!changedRoadbookMode)
+    {
+        if((hashTrkWpt[0] == hashTrkWpt[1]) || (getItemCountByType(IGisItem::eTypeTrk) == 0))
+        {
+            return;
+        }
+    }
+    changedRoadbookMode = false;
+
+
+    quint32 total   = cntTrkPts * cntWpts;
+    quint32 current = 0;
+
+    PROGRESS_SETUP(tr("%1: Correlate tracks and waypoints.").arg(getName()), 0, total, CMainWindow::getBestWidgetForParent());
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(child(i));
+        if(trk)
+        {
+            trk->findWaypointsCloseBy(progress, current);
+            if(progress.wasCanceled())
+            {
+                QString msg = tr("<h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?").arg(getNameEx());
+                int res = QMessageBox::question(&progress, tr("Canceled correlation..."), msg, QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+                noCorrelation = res == QMessageBox::Yes;
+                break;
+            }
+        }
+    }
+
+    if(dlgDetails != nullptr)
+    {
+        dlgDetails->updateData();
+    }
+}
+
+bool IGisProject::save()
+{
+    if(!canSave())
+    {
+        qWarning() << "This should never be called!";
+        return false;
+    }
+
+    return saveAs(filename, getFileDialogFilter());
+}
+
+bool IGisProject::saveAs(QString fn, QString filter)
+{
+    SETTINGS;
+
+    if(fn.isEmpty())
+    {
+        QString path = cfg.value("Paths/lastGisPath", QDir::homePath()).toString();
+
+        // guess the correct extension:
+        // by default use the extension provided by the current format,
+        // otherwise use gpx
+        QString ext = getFileExtension();
+        filter = getFileDialogFilter();
+        if(ext.isEmpty() || !canSave())
+        {
+            ext    = "gpx";
+            filter = IGisProject::filedialogFilterGPX;
+        }
+        path += "/" + getName() + "." + ext;
+
+
+        fn = QFileDialog::getSaveFileName(CMainWindow::getBestWidgetForParent(), tr("Save \"%1\" to...").arg(getName()), path, filedialogSaveFilters, &filter);
+
+        if(fn.isEmpty())
+        {
+            return false;
+        }
+    }
+
+    bool res = false;
+    if(filter == getFileDialogFilter())
+    {
+        filename = fn;
+        setupName(QFileInfo(fn).completeBaseName());
+    }
+
+    if(filter == filedialogFilterGPX)
+    {
+        res = CGpxProject::saveAs(fn, *this, false);
+    }
+    else if(filter == filedialogFilterQMS)
+    {
+        res = CQmsProject::saveAs(fn, *this);
+    }
+    else if (filter == filedialogFilterTCX)
+    {
+        res = CTcxProject::saveAs(fn, *this);
+    }
+    else
+    {
+        return false;
+    }
+
+    if(res && filter == getFileDialogFilter())
+    {
+        markAsSaved();
+    }
+
+    QString path = QFileInfo(fn).absolutePath();
+    cfg.setValue("Paths/lastGisPath", path);
+
+    return res;
+}
+
+bool IGisProject::saveAsStrictGpx11()
+{
+    SETTINGS;
+
+    QString fn;
+    QString path = cfg.value("Paths/lastGisPath", QDir::homePath()).toString();
+
+    // guess the correct extension:
+    // by default use the extension provided by the current format,
+    // otherwise use gpx
+    QString ext    = "gpx";
+    QString filter = IGisProject::filedialogFilterGPX;
+    path += "/" + getName() + "." + ext;
+
+    fn = QFileDialog::getSaveFileName(CMainWindow::getBestWidgetForParent(), tr("Save \"%1\" to...").arg(getName()), path, "Strict GPX V 1.1 (*.gpx *.GPX)", &filter);
+
+    if(fn.isEmpty())
+    {
+        return false;
+    }
+
+    bool res = CGpxProject::saveAs(fn, *this, true);
+
+    path = QFileInfo(fn).absolutePath();
+    cfg.setValue("Paths/lastGisPath", path);
+
+    return res;
+}
+
+void IGisProject::setupName(const QString &defaultName)
+{
+    if(metadata.name.isEmpty())
+    {
+        metadata.name = defaultName;
+    }
+    setText(CGisListWks::eColumnName, getName());
+}
+
+void IGisProject::markAsSaved()
+{
+    setText(CGisListWks::eColumnDecoration,autoSave ? "A" : "");
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+        item->updateDecoration(IGisItem::eMarkNone, IGisItem::eMarkChanged);
+    }
+}
+
+QString IGisProject::getName() const
+{
+    return metadata.name;
+}
+
+QString IGisProject::getNameEx() const
+{
+    if(nameSuffix.isEmpty())
+    {
+        return metadata.name;
+    }
+    else
+    {
+        return metadata.name + " @ " + nameSuffix;
+    }
+}
+
+
+QString IGisProject::getInfo() const
+{
+    QString str = metadata.name.isEmpty() ? text(CGisListWks::eColumnName) : metadata.name;
+    str = "<div style='font-weight: bold;'>" + str + "</div>";
+
+    if(metadata.time.isValid())
+    {
+        str += "<br/>\n";
+        str += IUnit::datetime2string(metadata.time, false);
+    }
+
+
+    QString desc = IGisItem::removeHtml(metadata.desc).simplified();
+    if(!desc.isEmpty())
+    {
+        str += "<br/>\n";
+
+        if(desc.count() < 100)
+        {
+            str += desc;
+        }
+        else
+        {
+            str += desc.left(97) + "...";
+        }
+    }
+
+    if(!filename.isEmpty())
+    {
+        str += tr("<br/>\nFilename: %1").arg(filename);
+    }
+
+    if(cntItemsByType[IGisItem::eTypeWpt])
+    {
+        str += "<br/>\n" + tr("Waypoints: %1").arg(cntItemsByType[IGisItem::eTypeWpt]);
+    }
+    if(cntItemsByType[IGisItem::eTypeTrk])
+    {
+        str += "<br/>\n" + tr("Tracks: %1").arg(cntItemsByType[IGisItem::eTypeTrk]);
+    }
+    if(cntItemsByType[IGisItem::eTypeRte])
+    {
+        str += "<br/>\n" + tr("Routes: %1").arg(cntItemsByType[IGisItem::eTypeRte]);
+    }
+    if(cntItemsByType[IGisItem::eTypeOvl])
+    {
+        str += "<br/>\n" + tr("Areas: %1").arg(cntItemsByType[IGisItem::eTypeOvl]);
+    }
+
+    return str;
+}
+
+
+IGisItem * IGisProject::getItemByKey(const IGisItem::key_t& key)
+{
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem *item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+
+        if(item->getKey() == key)
+        {
+            return item;
+        }
+    }
+    return nullptr;
+}
+
+void IGisProject::getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items)
+{
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem *item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+
+        if(keys.contains(item->getKey()))
+        {
+            items << item;
+        }
+    }
+}
+
+void IGisProject::getItemsByPos(const QPointF& pos, QList<IGisItem *> &items)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+        if(item->isCloseTo(pos))
+        {
+            items << item;
+        }
+    }
+}
+
+void IGisProject::getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+        if(item->isWithin(area, flags))
+        {
+            items << item;
+        }
+    }
+}
+
+void IGisProject::getNogoAreas(QList<IGisItem*> &nogos) const
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if (item != nullptr && !item->isHidden() && item->isNogo())
+        {
+            nogos << item;
+        }
+    }
+}
+
+
+void IGisProject::mouseMove(const QPointF& pos)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+        item->mouseMove(pos);
+    }
+}
+
+
+bool IGisProject::delItemByKey(const IGisItem::key_t& key, QMessageBox::StandardButtons& last)
+{
+    for(int i = childCount(); i > 0; i--)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i-1));
+        if(nullptr == item )
+        {
+            continue;
+        }
+
+        if(item->getKey() == key)
+        {
+            if(last != QMessageBox::YesToAll)
+            {
+                QString msg = tr("Are you sure you want to delete '%1' from project '%2'?").arg(item->getName()).arg(text(CGisListWks::eColumnName));
+                last = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Delete..."), msg, QMessageBox::YesToAll|QMessageBox::Cancel|QMessageBox::Ok|QMessageBox::No, QMessageBox::Ok);
+                if((last == QMessageBox::No) || (last == QMessageBox::Cancel))
+                {
+                    // as each item in the project has to be unique, we can stop searching.
+                    return false;
+                }
+            }
+            delete item;
+
+            /*
+                Database projects are a bit different. Deleting an item does not really
+                mean the project is changed as the item is still stored in the database.
+             */
+            if(type != eTypeDb)
+            {
+                setChanged();
+            }
+
+            // as each item in the project has to be unique, we can stop searching.
+            return true;
+        }
+    }
+    return false;
+}
+
+void IGisProject::editItemByKey(const IGisItem::key_t& key)
+{
+    for(int i = childCount(); i > 0; i--)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i-1));
+        if(nullptr == item)
+        {
+            continue;
+        }
+
+        if(item->getKey() == key)
+        {
+            item->edit();
+        }
+    }
+}
+
+
+void IGisProject::insertCopyOfItem(IGisItem * item, int off, int& lastResult)
+{
+    bool clone = false;
+    IGisItem::key_t key = item->getKey();
+    key.project = getKey();
+    key.device  = getDeviceKey();
+
+    IGisItem * item2 = getItemByKey(key);
+    if(item2 != nullptr)
+    {
+        int result = lastResult;
+        if(lastResult == CSelectCopyAction::eResultNone)
+        {
+            CSelectCopyAction dlg(item, item2, CMainWindow::getBestWidgetForParent());
+            dlg.exec();
+            result = dlg.getResult();
+            if(dlg.allOthersToo())
+            {
+                lastResult = result;
+            }
+        }
+
+        if(result == CSelectCopyAction::eResultSkip)
+        {
+            return;
+        }
+        if(result == CSelectCopyAction::eResultNone)
+        {
+            return;
+        }
+        if(result == CSelectCopyAction::eResultClone)
+        {
+            clone = true;
+        }
+        else
+        {
+            // replace item2 with item
+            if(item != item2)
+            {
+                delete item2;
+            }
+            else
+            {
+                // replacing an item with itself does not make sense
+                return;
+            }
+        }
+    }
+
+    switch(item->type())
+    {
+    case IGisItem::eTypeTrk:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+        if(trk != nullptr)
+        {
+            CGisItemTrk * newTrk = new CGisItemTrk(*trk, this, off, clone);
+            // if the track is on a device, remove hidden trackpoints
+            if(isOnDevice())
+            {
+                newTrk->filterDelete();
+            }
+        }
+        break;
+    }
+
+    case IGisItem::eTypeWpt:
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(wpt != nullptr)
+        {
+            new CGisItemWpt(*wpt, this, off, clone);
+        }
+        break;
+    }
+
+    case IGisItem::eTypeRte:
+    {
+        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(item);
+        if(rte != nullptr)
+        {
+            new CGisItemRte(*rte, this, off, clone);
+        }
+        break;
+    }
+
+    case IGisItem::eTypeOvl:
+    {
+        CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(item);
+        if(area != nullptr)
+        {
+            new CGisItemOvlArea(*area, this, off, clone);
+        }
+        break;
+    }
+    }
+}
+
+void IGisProject::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        if(gis->needsRedraw())
+        {
+            break;
+        }
+
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+        item->drawItem(p, viewport, blockedAreas, gis);
+    }
+}
+
+void IGisProject::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+
+        item->drawItem(p, viewport, gis);
+    }
+}
+
+void IGisProject::drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis)
+{
+    if(!isVisible())
+    {
+        return;
+    }
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        if(gis->needsRedraw())
+        {
+            break;
+        }
+
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item || item->isHidden())
+        {
+            continue;
+        }
+
+        item->drawLabel(p, viewport, blockedAreas, fm, gis);
+    }
+}
+
+void IGisProject::mount()
+{
+    if(!isOnDevice())
+    {
+        return;
+    }
+    IDevice * device = dynamic_cast<IDevice*>(parent());
+    if(device)
+    {
+        device->mount();
+    }
+}
+
+void IGisProject::umount()
+{
+    if(!isOnDevice())
+    {
+        return;
+    }
+    IDevice * device = dynamic_cast<IDevice*>(parent());
+    if(device)
+    {
+        device->umount();
+    }
+}
+
+bool IGisProject::remove()
+{
+    mount();
+
+    /*
+       Check if parent is a device and give it a chance to take care of data.
+
+       e.g. Garmin devices remove images attached to the project.
+     */
+    IDevice * device = dynamic_cast<IDevice*>(parent());
+    if(device)
+    {
+        device->aboutToRemoveProject(this);
+    }
+
+    QFileInfo fi(filename);
+    if(fi.isFile())
+    {
+        QFile::remove(filename);
+    }
+    else if(fi.isDir())
+    {
+        QDir(filename).removeRecursively();
+    }
+
+    umount();
+    return true;
+}
+
+void IGisProject::updateItemCounters()
+{
+    // count number of items by type
+    memset(cntItemsByType, 0, sizeof(cntItemsByType));
+    cntTrkPts = 0;
+    cntWpts = 0;
+    totalDistance = 0;
+    totalAscent = 0;
+    totalDescent = 0;
+    totalElapsedSeconds = 0;
+    totalElapsedSecondsMoving = 0;
+
+    QByteArray buffer;
+    QDataStream stream(&buffer, QIODevice::WriteOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_2);
+
+    for(int i = 0; i < childCount(); i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+
+        cntItemsByType[item->type()]++;
+
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+        if(trk)
+        {
+            cntTrkPts       += trk->getNumberOfVisiblePoints();
+            totalDistance   += trk->getTotalDistance();
+            totalAscent     += trk->getTotalAscent();
+            totalDescent    += trk->getTotalDescent();
+            totalElapsedSeconds += trk->getTotalElapsedSeconds();
+            totalElapsedSecondsMoving += trk->getTotalElapsedSecondsMoving();
+            stream << trk->getHash();
+        }
+
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(wpt)
+        {
+            cntWpts++;
+            stream << wpt->getHash();
+        }
+    }
+    QCryptographicHash md5(QCryptographicHash::Md5);
+    md5.addData(buffer);
+
+    hashTrkWpt[1] = hashTrkWpt[0];
+    hashTrkWpt[0] = md5.result().toHex();
+}
+
+void IGisProject::blockUpdateItems(bool yes)
+{
+    noUpdate = yes;
+    if(noUpdate == false)
+    {
+        updateItems();
+    }
+}
+
+void IGisProject::updateDecoration()
+{
+    int N       = childCount();
+    bool saved  = true;
+
+    for(int i = 0; i < N; i++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(i));
+        if(nullptr == item)
+        {
+            continue;
+        }
+        if(item->isChanged())
+        {
+            saved = false;
+            break;
+        }
+    }
+    setText(CGisListWks::eColumnDecoration, autoSave ? "A" : saved ? "" : "*");
+}
+
+void IGisProject::sortItems()
+{
+    QList<IGisItem*> trks;
+    QList<IGisItem*> rtes;
+    QList<IGisItem*> wpts;
+    QList<IGisItem*> ovls;
+
+    QList<QTreeWidgetItem*> items = takeChildren();
+    for(QTreeWidgetItem* item : items)
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+        if(trk != nullptr)
+        {
+            trks << trk;
+            continue;
+        }
+
+        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(item);
+        if(rte != nullptr)
+        {
+            rtes << rte;
+            continue;
+        }
+
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(item);
+        if(wpt != nullptr)
+        {
+            wpts << wpt;
+            continue;
+        }
+
+        CGisItemOvlArea * ovl = dynamic_cast<CGisItemOvlArea*>(item);
+        if(ovl != nullptr)
+        {
+            ovls << ovl;
+            continue;
+        }
+    }
+
+    sortItems(trks);
+    sortItems(rtes);
+    sortItems(wpts);
+    sortItems(ovls);
+
+    items.clear();
+    for(IGisItem * item : trks)
+    {
+        items << item;
+    }
+    for(IGisItem * item : rtes)
+    {
+        items << item;
+    }
+    for(IGisItem * item : wpts)
+    {
+        items << item;
+    }
+    for(IGisItem * item : ovls)
+    {
+        items << item;
+    }
+
+    addChildren(items);
+}
+
+static bool sortByName(IGisItem * item1, IGisItem * item2)
+{
+    static QCollator collator;
+    // this will set collator to natural sorting mode (instead of lexical)
+    collator.setNumericMode(true);
+    return collator.compare(item1->getName(), item2->getName()) < 0;
+}
+
+static bool sortByTime(IGisItem * item1, IGisItem * item2)
+{
+    const QDateTime& t1 = item1->getTimestamp();
+    const QDateTime& t2 = item2->getTimestamp();
+
+    // avoid jumping items due to invalid timestamps
+    if(!t1.isValid() || !t2.isValid())
+    {
+        return sortByName(item1, item2);
+    }
+
+    return t1 < t2;
+}
+
+void IGisProject::sortItems(QList<IGisItem *> &items) const
+{
+    switch(sortingFolder)
+    {
+    case IGisProject::eSortFolderName:
+        qSort(items.begin(), items.end(), &sortByName);
+        break;
+
+    case IGisProject::eSortFolderTime:
+        qSort(items.begin(), items.end(), &sortByTime);
+        break;
+    }
+}
+
+void IGisProject::filter(const QString& str)
+{
+    const int N = childCount();
+
+    if(str.isEmpty())
+    {
+        for(int n = 0; n < N; n++)
+        {
+            child(n)->setHidden(false);
+        }
+        return;
+    }
+
+    for(int n = 0; n < N; n++)
+    {
+        IGisItem * item = dynamic_cast<IGisItem*>(child(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        switch(filterMode)
+        {
+        case eFilterModeName:
+            item->setHidden(!item->getName().toUpper().contains(str));
+            break;
+
+        case eFilterModeText:
+            item->setHidden(!item->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText).toUpper().contains(str));
+            break;
+        }
+    }
+}
diff --git a/src/qmapshack/gis/prj/IGisProject.h b/src/qmapshack/gis/prj/IGisProject.h
new file mode 100644
index 0000000..89b23ad
--- /dev/null
+++ b/src/qmapshack/gis/prj/IGisProject.h
@@ -0,0 +1,587 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef IGISPROJECT_H
+#define IGISPROJECT_H
+
+#include "gis/IGisItem.h"
+#include "gis/rte/router/IRouter.h"
+#include <QDebug>
+#include <QMessageBox>
+#include <QPointer>
+#include <QTreeWidgetItem>
+
+class CGisListWks;
+class CGisDraw;
+class CGisItemWpt;
+class QDataStream;
+class CDetailsPrj;
+class IDevice;
+
+class IGisProject : public QTreeWidgetItem
+{
+    Q_DECLARE_TR_FUNCTIONS(IGisProject)
+public:
+    enum type_e
+    {
+        eTypeGoogle
+        , eTypeQms
+        , eTypeGpx
+        , eTypeDb
+        , eTypeLostFound
+        , eTypeTwoNav
+        , eTypeSlf       // the Sigma Log Format
+        , eTypeFit
+        , eTypeTcx
+        , eTypeSml
+        , eTypeLog
+        , eTypeQlb
+    };
+
+    /// flags used to serialize trivial flags in qms file
+    enum flags_e
+    {
+        eFlagNoCorrelation  = 0x1
+        , eFlagAutoSave     = 0x2
+    };
+
+    enum sorting_roadbook_e
+    {
+        eSortRoadbookNone
+        , eSortRoadbookTrackWithDouble
+        , eSortRoadbookTrackWithoutDouble
+    };
+
+    enum sorting_folder_e
+    {
+        eSortFolderTime
+        ,eSortFolderName
+        ,eSortFolderSymbol
+    };
+
+    enum filter_mode_e
+    {
+        eFilterModeName
+        ,eFilterModeText
+    };
+
+    struct person_t
+    {
+        QString name;
+        QString id;
+        QString domain;
+        IGisItem::link_t link;
+    };
+
+    struct copyright_t
+    {
+        QString author;
+        QString year;
+        QString license;
+    };
+
+    struct metadata_t
+    {
+        metadata_t() : time(QDateTime::currentDateTimeUtc())
+        {
+        }
+        QString name;
+        QString desc;
+        person_t author;
+        copyright_t copyright;
+        QList<IGisItem::link_t> links;
+        QDateTime time;
+        QString keywords;
+        QRectF bounds;
+        // -- all gpx tags - stop
+        QMap<QString, QVariant> extensions;
+    };
+
+    static const QString filedialogAllSupported;
+    static const QString filedialogFilterGPX;
+    static const QString filedialogFilterTCX;
+    static const QString filedialogFilterSML;
+    static const QString filedialogFilterLOG;
+    static const QString filedialogFilterQLB;
+    static const QString filedialogFilterQMS;
+    static const QString filedialogFilterSLF;
+    static const QString filedialogFilterFIT;
+    static const QString filedialogSaveFilters;
+    static const QString filedialogLoadFilters;
+
+    static filter_mode_e filterMode;
+
+    IGisProject(type_e type, const QString &filename, CGisListWks *parent);
+    IGisProject(type_e type, const QString &filename, IDevice     *parent);
+    virtual ~IGisProject();
+
+    static IGisProject * create(const QString filename, CGisListWks * parent);
+
+    /**
+       @brief Ask to save the project before it is closed.
+
+       If the project is closed, the user is asked if the project should be saved and saved on user request.
+
+       @return True if the operation is aborted. False on "save" and "no".
+     */
+    bool askBeforClose();
+
+    IGisProject& operator=(const IGisProject& p)
+    {
+        key      = p.key;
+        metadata = p.metadata;
+        return *this;
+    }
+
+    /**
+       @brief Summon the project details dialog.
+     */
+    void edit();
+
+    /**
+       @brief Returns true if a project of given format can be saved, false if it cannot be saved (just as .slf atm)
+     */
+    virtual bool canSave() const
+    {
+        return false;
+    }
+
+    virtual const QString getFileDialogFilter() const
+    {
+        return QString();
+    }
+
+    virtual const QString getFileExtension() const
+    {
+        return QString();
+    }
+
+    /**
+       @brief Save the project using it's native format.
+     */
+    virtual bool save();
+
+    /**
+       @brief Save the project selecting one of the available formats.
+     */
+    bool saveAs(QString fn = QString(), QString filter = QString());
+
+    /**
+       @brief Save as strict GPX V 1.1 without any extensions and HTML
+       @return True on success
+     */
+    bool saveAsStrictGpx11();
+
+    virtual void setFilename(const QString& fn)
+    {
+        filename = fn;
+    }
+
+    virtual QString getFilename() const
+    {
+        return filename;
+    }
+
+    /**
+       @brief Get the project type enumeration.
+
+       @Note: usually dynamic_cast should be used to get a pointer of correct type.
+              However if the project is serialized, a type id is needed.
+
+       @return One of type_e
+     */
+    type_e getType() const
+    {
+        return type;
+    }
+
+    /**
+       @brief Get unique project key.
+       @return A MD5 hash string
+     */
+    const QString& getKey() const
+    {
+        genKey();
+        return key;
+    }
+
+    /**
+       @brief Get the unique key of the device the project is attached to
+       @return If the project is not attached to a device the string is empty
+     */
+    QString getDeviceKey() const;
+
+
+    QPixmap getIcon() const;
+
+    /**
+       @brief Get the project's name
+       @return The name from metadata.name
+     */
+    QString getName() const;
+    /**
+       @brief Get the project's name extended with the parent's name.
+       @return The name from metadata.nam appended with either the device name or the database parent folder's name.
+     */
+    QString getNameEx() const;
+
+    const QDateTime& getTime() const
+    {
+        return metadata.time;
+    }
+    const QString& getKeywords() const
+    {
+        return metadata.keywords;
+    }
+    const QString& getDescription() const
+    {
+        return metadata.desc;
+    }
+    const QList<IGisItem::link_t>& getLinks() const
+    {
+        return metadata.links;
+    }
+
+    const metadata_t& getMetadata() const
+    {
+        return metadata;
+    }
+
+    /**
+       @brief Get the sorting mode
+       @return One of sorting_e
+     */
+    sorting_roadbook_e getSortingRoadbook() const
+    {
+        return sortingRoadbook;
+    }
+
+    sorting_folder_e getSortingFolder() const
+    {
+        return sortingFolder;
+    }
+
+    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();
+
+    /**
+       @brief Set the sorting mode for the roadbook in the details dialog
+
+       This will mark the project as changed.
+
+       @param s the mode
+     */
+    void setSortingRoadbook(sorting_roadbook_e s);
+
+    /**
+       @brief Set the sorting mode for workspace folder
+
+       This will mark the project as changed.
+
+       @param s the mode
+     */
+    void setSortingFolder(sorting_folder_e s);
+
+    /**
+       @brief Get a short metadata summary
+       @return Informational string.
+     */
+    virtual QString getInfo() const;
+    /**
+       @brief Get a temporary pointer to the item with matching key
+       @param key
+       @return If no item is found 0 is returned.
+     */
+    IGisItem * getItemByKey(const IGisItem::key_t &key);
+
+    void getItemsByKeys(const QList<IGisItem::key_t>& keys, QList<IGisItem*>& items);
+    /**
+       @brief Get a list of items that are close to a given pixel coordinate of the screen
+
+       @note: The returned pointers are just for temporary use. Best you use them to get the item's key.
+
+       @param pos       the coordinate on the screen in pixel
+       @param items     a list the item's pointer is stored to.
+     */
+    void getItemsByPos(const QPointF& pos, QList<IGisItem*>& items);
+
+    void getItemsByArea(const QRectF& area, IGisItem::selflags_t flags, QList<IGisItem *> &items);
+
+    void getNogoAreas(QList<IGisItem *> &nogos) const;
+
+    int getItemCountByType(IGisItem::type_e type) const
+    {
+        return cntItemsByType[type];
+    }
+
+    qreal getTotalDistance() const
+    {
+        return totalDistance;
+    }
+    qreal getTotalAscent() const
+    {
+        return totalAscent;
+    }
+    qreal getTotalDescent() const
+    {
+        return totalDescent;
+    }
+    qreal getTotalElapsedSeconds() const
+    {
+        return totalElapsedSeconds;
+    }
+    qreal getTotalElapsedSecondsMoving() const
+    {
+        return totalElapsedSecondsMoving;
+    }
+
+    bool doCorrelation() const
+    {
+        return !noCorrelation;
+    }
+
+    void switchOnCorrelation();
+
+    void setAutoSave(bool on);
+
+    /**
+       @brief Receive the current mouse position
+
+       Iterate over all items and pass the position
+
+       @param pos   the mouse position on the screen in pixel
+     */
+    virtual void mouseMove(const QPointF& pos);
+
+    /**
+       @brief Delete items with matching key
+       @param key
+     */
+    bool delItemByKey(const IGisItem::key_t &key, QMessageBox::StandardButtons &last);
+
+    /**
+       @brief Call IGisItem::edit() method for items with given key
+
+       @param key   a MD5 hash key
+     */
+    void editItemByKey(const IGisItem::key_t &key);
+
+    /**
+       @brief Add a copy if the given item to the project
+
+       Before the item is inserted the method will use it's key to find a duplicate item.
+       If there is an item with the same item key a copy option dialog is shown. Depending
+       the result the action is performed or aborted. The result will be copied into
+       lastResult to repeat the same decision on subsequent items.
+
+       @param item          pointer to item
+       @param off           the offset into the tree widget, -1 for none
+       @param lastResult    a reference to hold the last result of the copy option dialog
+     */
+    void insertCopyOfItem(IGisItem *item, int off, int &lastResult);
+
+    /**
+       @brief Check if the project was initialized correctly.
+
+       For example a if a GPX file does not load correctly the project is invalid.
+
+       @return True if project is valid
+     */
+    bool isValid() const
+    {
+        return valid;
+    }
+
+    /**
+       @brief Test if visibility check mark is set
+       @return True if project is visible
+     */
+    bool isVisible() const;
+
+    bool isAutoSave() const
+    {
+        return autoSave;
+    }
+
+    /**
+       @brief Test if this project is handled by a device
+       @return The device type (IDevice::type_e). IDevice::eTypeNone if the project is not stored on a device.
+     */
+    qint32 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);
+    void drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis);
+    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis);
+
+    /**
+       @brief Serialize object out of a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    virtual QDataStream& operator<<(QDataStream& stream);
+
+    /**
+       @brief Serialize object into a QDataStream
+
+       See CGisSerialization.cpp for implementation
+
+       @param stream the binary data stream
+       @return The stream object.
+     */
+    virtual QDataStream& operator>>(QDataStream& stream) const;
+
+    /**
+       @brief writeMetadata
+       @param doc
+       @return
+     */
+    QDomNode writeMetadata(QDomDocument& doc, bool strictGpx11);
+
+    /**
+       @brief Mount volume the project's file is stored at
+
+       This is only valid for projects located on GPS devices.
+       For all other projects the method does nothing.
+     */
+    void mount();
+    /**
+       @brief Umount volume the project's file is stored at
+
+       This is only valid for projects located on GPS devices.
+       For all other projects the method does nothing.
+     */
+    void umount();
+
+    /**
+       @brief Removed the projects file from disk.
+
+       This is only valid for projects located on GPS devices.
+       For all other projects the method does nothing.
+     */
+    bool remove();
+
+    /**
+       @brief Block update of items.
+
+        Use this to speed up actions with many items, e.g. copy actions.
+        If the blocking is stopped (yes == false) updateItems() is called.
+
+       @param yes set true to block updating items
+     */
+    void blockUpdateItems(bool yes);
+
+    /**
+       @brief  Return state of current update block
+       @return True if updates are blocked.
+     */
+    bool blockUpdateItems() const
+    {
+        return noUpdate;
+    }
+
+    void filter(const QString& str);
+
+    void confirmPendingAutoSave()
+    {
+        autoSavePending = false;
+    }
+
+protected:
+    void genKey() const;
+    virtual void setupName(const QString& defaultName);
+    void markAsSaved();
+    void readMetadata(const QDomNode& xml, metadata_t& metadata);
+    void updateItems();
+    void updateItemCounters();
+    void updateDecoration();
+    void sortItems();
+    void sortItems(QList<IGisItem*>& items) const;
+
+    /**
+       @brief Converts a string with HTML tags to a string without HTML depending on the device
+
+       Some devices e.g. Garmin can not handle HTML.
+
+       @param str   a string
+       @return A string with HTML removed depending on the device
+     */
+    QString html2Dev(const QString& str);
+
+    // Those are the URIs of the GPX extensions we support
+    static const QString gpxx_ns;
+    static const QString gpxtpx_ns;
+    static const QString wptx1_ns;
+    static const QString rmc_ns;
+    static const QString ql_ns;
+    static const QString gs_ns;
+    static const QString tp1_ns;
+    // Those are standard GPX/XML namespaces
+    static const QString gpx_ns;
+    static const QString xsi_ns;
+    static const QString gpxdata_ns;
+
+    QPointer<CDetailsPrj> dlgDetails;
+
+    type_e type;
+    mutable QString key;
+    QString filename;
+    bool valid         = false;
+    bool noUpdate      = false;
+    bool noCorrelation = false;
+    bool changedRoadbookMode = false;
+    bool autoSave      = false; ///< flag to show if auto save is on or off
+    bool autoSavePending = false; ///< flag to show if auto save event has been sent. will be reset by save()
+
+    metadata_t metadata;
+    QString nameSuffix;
+
+    sorting_roadbook_e sortingRoadbook  = eSortRoadbookNone;
+    sorting_folder_e sortingFolder    = eSortFolderTime;
+
+    qint32 cntItemsByType[IGisItem::eTypeMax];
+
+    qint32 cntTrkPts                 = 0;
+    qint32 cntWpts                   = 0;
+
+    qreal totalDistance             = 0;
+    qreal totalAscent               = 0;
+    qreal totalDescent              = 0;
+    quint32 totalElapsedSeconds       = 0;
+    quint32 totalElapsedSecondsMoving = 0;
+
+    QString hashTrkWpt[2];
+};
+
+#endif //IGISPROJECT_H
+
diff --git a/src/gis/qlb/CQlbProject.cpp b/src/qmapshack/gis/qlb/CQlbProject.cpp
similarity index 100%
rename from src/gis/qlb/CQlbProject.cpp
rename to src/qmapshack/gis/qlb/CQlbProject.cpp
diff --git a/src/gis/qlb/CQlbProject.h b/src/qmapshack/gis/qlb/CQlbProject.h
similarity index 100%
rename from src/gis/qlb/CQlbProject.h
rename to src/qmapshack/gis/qlb/CQlbProject.h
diff --git a/src/gis/qms/CQmsProject.cpp b/src/qmapshack/gis/qms/CQmsProject.cpp
similarity index 100%
rename from src/gis/qms/CQmsProject.cpp
rename to src/qmapshack/gis/qms/CQmsProject.cpp
diff --git a/src/gis/qms/CQmsProject.h b/src/qmapshack/gis/qms/CQmsProject.h
similarity index 100%
rename from src/gis/qms/CQmsProject.h
rename to src/qmapshack/gis/qms/CQmsProject.h
diff --git a/src/gis/qms/serialization.cpp b/src/qmapshack/gis/qms/serialization.cpp
similarity index 100%
rename from src/gis/qms/serialization.cpp
rename to src/qmapshack/gis/qms/serialization.cpp
diff --git a/src/gis/rte/CCreateRouteFromWpt.cpp b/src/qmapshack/gis/rte/CCreateRouteFromWpt.cpp
similarity index 100%
rename from src/gis/rte/CCreateRouteFromWpt.cpp
rename to src/qmapshack/gis/rte/CCreateRouteFromWpt.cpp
diff --git a/src/gis/rte/CCreateRouteFromWpt.h b/src/qmapshack/gis/rte/CCreateRouteFromWpt.h
similarity index 100%
rename from src/gis/rte/CCreateRouteFromWpt.h
rename to src/qmapshack/gis/rte/CCreateRouteFromWpt.h
diff --git a/src/qmapshack/gis/rte/CDetailsRte.cpp b/src/qmapshack/gis/rte/CDetailsRte.cpp
new file mode 100644
index 0000000..e9606d5
--- /dev/null
+++ b/src/qmapshack/gis/rte/CDetailsRte.cpp
@@ -0,0 +1,165 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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 "gis/rte/CDetailsRte.h"
+#include "gis/rte/CGisItemRte.h"
+#include "helpers/CLinksDialog.h"
+#include "units/IUnit.h"
+#include "widgets/CTextEditWidget.h"
+
+#include <QtWidgets>
+
+CDetailsRte::CDetailsRte(CGisItemRte& rte, QWidget *parent)
+    : QDialog(parent)
+    , rte(rte)
+{
+    setupUi(this);
+
+    setupGui();
+
+    if(rte.isOnDevice())
+    {
+        toolLock->setDisabled(true);
+    }
+
+    connect(lineName,    &CLineEdit::textEdited,          this, &CDetailsRte::slotNameChanged);
+    connect(lineName,    &CLineEdit::editingFinished,     this, &CDetailsRte::slotNameChangeFinished);
+    connect(toolLock,    &QToolButton::toggled,           this, &CDetailsRte::slotChangeReadOnlyMode);
+    connect(textCmtDesc, &QTextBrowser::anchorClicked,    this, static_cast<void (CDetailsRte::*)(const QUrl&)>(&CDetailsRte::slotLinkActivated));
+    connect(listHistory, &CHistoryListWidget::sigChanged, this, &CDetailsRte::setupGui);
+}
+
+CDetailsRte::~CDetailsRte()
+{
+}
+
+void CDetailsRte::setupGui()
+{
+    if(originator)
+    {
+        return;
+    }
+    originator = true;
+
+    bool isReadOnly = rte.isReadOnly();
+    setWindowTitle(rte.getName());
+
+    labelTainted->setVisible(rte.isTainted());
+
+    lineName->setText(rte.getName());
+    lineName->setReadOnly(isReadOnly);
+
+    labelInfo->setText(rte.getInfo(IGisItem::eFeatureNone));
+
+    textCmtDesc->document()->clear();
+    textCmtDesc->append(IGisItem::createText(isReadOnly, rte.getComment(), rte.getDescription(), rte.getLinks()));
+    textCmtDesc->moveCursor (QTextCursor::Start);
+    textCmtDesc->ensureCursorVisible();
+
+
+//    treeWidget->clear();
+//    QString val, unit;
+//    for(const CGisItemRte::rtept_t& rtept : rte.getRoute().pts)
+//    {
+//        QTreeWidgetItem * item = new QTreeWidgetItem(treeWidget);
+
+//        item->setText(0, tr("Route waypoint"));
+
+//        for(const CGisItemRte::subpt_t& subpt : rtept.subpts)
+//        {
+//            if(subpt.type != CGisItemRte::subpt_t::eTypeJunct)
+//            {
+//                continue;
+//            }
+//            QTreeWidgetItem * item = new QTreeWidgetItem(treeWidget);
+
+//            IUnit::self().meter2distance(subpt.distance, val, unit);
+//            QString str = QString("Time: %1 Dist.: %2 %3").arg(subpt.time.toString()).arg(val).arg(unit);
+//            str += "\n" + subpt.instruction;
+
+//            item->setText(0,str);
+//        }
+//    }
+
+    toolLock->setChecked(isReadOnly);
+    labelNogo->setVisible(rte.isNogo());
+    listHistory->setupHistory(rte);
+    originator = false;
+}
+
+void CDetailsRte::slotChangeReadOnlyMode(bool on)
+{
+    rte.setReadOnlyMode(on);
+    setupGui();
+}
+
+void CDetailsRte::slotNameChanged(const QString &name)
+{
+    setWindowTitle(name);
+}
+
+void CDetailsRte::slotNameChangeFinished()
+{
+    lineName->clearFocus();
+
+    const QString& name = lineName->text();
+    slotNameChanged(name);
+
+    if(name != rte.getName())
+    {
+        rte.setName(name);
+        setupGui();
+    }
+}
+
+void CDetailsRte::slotLinkActivated(const QUrl& url)
+{
+    if(url.toString() == "comment")
+    {
+        CTextEditWidget dlg(rte.getComment(), nullptr);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            rte.setComment(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "description")
+    {
+        CTextEditWidget dlg(rte.getDescription(), nullptr);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            rte.setDescription(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "links")
+    {
+        QList<IGisItem::link_t> links = rte.getLinks();
+        CLinksDialog dlg(links, this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            rte.setLinks(links);
+        }
+        setupGui();
+    }
+    else
+    {
+        QDesktopServices::openUrl(url);
+    }
+}
+
diff --git a/src/gis/rte/CDetailsRte.h b/src/qmapshack/gis/rte/CDetailsRte.h
similarity index 100%
rename from src/gis/rte/CDetailsRte.h
rename to src/qmapshack/gis/rte/CDetailsRte.h
diff --git a/src/qmapshack/gis/rte/CGisItemRte.cpp b/src/qmapshack/gis/rte/CGisItemRte.cpp
new file mode 100644
index 0000000..958ce99
--- /dev/null
+++ b/src/qmapshack/gis/rte/CGisItemRte.cpp
@@ -0,0 +1,1282 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
+#include "gis/WptIcons.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/rte/CDetailsRte.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/CScrOptRte.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "helpers/CDraw.h"
+#include "helpers/CDraw.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+#include <QtXml>
+#include <proj_api.h>
+
+const QPen CGisItemRte::penBackground(Qt::white, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
+IGisItem::key_t CGisItemRte::keyUserFocus;
+
+#define MIN_DIST_FOCUS 200
+
+void CGisItemRte::rtept_t::updateIcon()
+{
+    if(sym.isEmpty())
+    {
+        icon  = QPixmap();
+        focus = NOPOINTF;
+    }
+    else
+    {
+        icon = getWptIconByName(sym, focus);
+    }
+}
+/// used to create a copy of route with new parent
+CGisItemRte::CGisItemRte(const CGisItemRte& parentRte, IGisProject * project, int idx, bool clone)
+    : IGisItem(project, eTypeRte, idx)
+{
+    history = parentRte.history;
+    loadHistory(history.histIdxCurrent);
+
+
+    if(clone)
+    {
+        rte.name += tr("_Clone");
+        key.clear();
+        history.events.clear();
+    }
+
+    if(parentRte.isOnDevice())
+    {
+        flags |= eFlagWriteAllowed;
+    }
+    else if(!parentRte.isReadOnly())
+    {
+        flags |= eFlagWriteAllowed;
+    }
+    else
+    {
+        flags &= ~eFlagWriteAllowed;
+    }
+
+
+
+    setupHistory();
+    deriveSecondaryData();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+/// used to create route from GPX file
+CGisItemRte::CGisItemRte(const QDomNode& xml, IGisProject *parent)
+    : IGisItem(parent, eTypeRte, parent->childCount())
+{
+    // --- start read and process data ----
+    readRte(xml, rte);
+    // --- stop read and process data ----
+
+    setupHistory();
+    deriveSecondaryData();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemRte::CGisItemRte(const history_t& hist, const QString &dbHash, IGisProject * project)
+    : IGisItem(project, eTypeRte, project->childCount())
+{
+    history = hist;
+    loadHistory(hist.histIdxCurrent);
+    deriveSecondaryData();
+    if(!dbHash.isEmpty())
+    {
+        lastDatabaseHash = dbHash;
+    }
+}
+
+CGisItemRte::CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project)
+    : IGisItem(project, eTypeRte, NOIDX)
+{
+    loadFromDb(id, db);
+}
+
+CGisItemRte::CGisItemRte(const SGisLine &l, const QString &name, IGisProject *project, int idx)
+    : IGisItem(project, eTypeRte, idx)
+{
+    rte.name = name;
+    readRouteDataFromGisLine(l);
+
+    flags |=  eFlagCreatedInQms|eFlagWriteAllowed;
+
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+CGisItemRte::CGisItemRte(CFitStream& stream, IGisProject * project)
+    : IGisItem(project, eTypeRte, project->childCount())
+{
+    // --- start read and process data ----
+    readRteFromFit(stream);
+    // --- stop read and process data ----
+
+    setupHistory();
+    deriveSecondaryData();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemRte::~CGisItemRte()
+{
+    // reset user focus if focused on this track
+    if(key == keyUserFocus)
+    {
+        keyUserFocus.clear();
+    }
+}
+
+IGisItem * CGisItemRte::createClone()
+{
+    int idx = -1;
+    IGisProject * project = getParentProject();
+    if(project)
+    {
+        idx = project->indexOfChild(this);
+    }
+    return new CGisItemRte(*this, project, idx, true);
+}
+
+
+bool CGisItemRte::isCalculated()
+{
+    bool yes = true;
+    for(const rtept_t &pt : rte.pts)
+    {
+        if((pt.fakeSubpt.lat == NOFLOAT) || (pt.fakeSubpt.lon == NOFLOAT))
+        {
+            yes = false;
+            break;
+        }
+    }
+
+    return yes;
+}
+
+void CGisItemRte::setElevation(qreal ele, subpt_t& subpt, qreal& lastEle)
+{
+    if(ele == NOFLOAT)
+    {
+        subpt.ele = NOINT;
+        return;
+    }
+
+    subpt.ele = qRound(ele);
+
+    if(lastEle != NOFLOAT)
+    {
+        qreal delta   = subpt.ele - lastEle;
+
+        if(qAbs(delta) > ASCENT_THRESHOLD)
+        {
+            if(delta > 0)
+            {
+                rte.ascent  += delta;
+            }
+            else
+            {
+                rte.descent -= delta;
+            }
+            lastEle = subpt.ele;
+        }
+    }
+    else
+    {
+        lastEle = subpt.ele;
+    }
+}
+
+void CGisItemRte::deriveSecondaryData()
+{
+    QPolygonF pos;
+    QPolygonF ele;
+    qreal north = -90;
+    qreal east  = -180;
+    qreal south =  90;
+    qreal west  =  180;
+
+    for(rtept_t &rtept : rte.pts)
+    {
+        west  = qMin(west,  rtept.lon);
+        east  = qMax(east,  rtept.lon);
+        south = qMin(south, rtept.lat);
+        north = qMax(north, rtept.lat);
+
+        pos << (QPointF(rtept.lon, rtept.lat) * DEG_TO_RAD);
+        rtept.ele = NOINT;
+        rtept.fakeSubpt.ele = NOINT;
+
+        for(subpt_t &subpt : rtept.subpts)
+        {
+            west  = qMin(west,  subpt.lon);
+            east  = qMax(east,  subpt.lon);
+            south = qMin(south, subpt.lat);
+            north = qMax(north, subpt.lat);
+
+            pos << (QPointF(subpt.lon, subpt.lat) * DEG_TO_RAD);
+            subpt.ele = NOINT;
+        }
+        rtept.updateIcon();
+    }
+
+    ele.resize(pos.size());
+    ele.fill(NOPOINTF);
+    CMainWindow::self().getElevationAt(pos, ele);
+
+    if(!ele.isEmpty())
+    {
+        qreal lastEle = NOFLOAT;
+        int i = 0;
+        rte.descent = 0;
+        rte.ascent = 0;
+
+        for(rtept_t &rtept : rte.pts)
+        {
+            setElevation(ele[i++].y(), rtept.fakeSubpt, lastEle);
+            rtept.ele = rtept.fakeSubpt.ele;
+
+            for(subpt_t &subpt : rtept.subpts)
+            {
+                setElevation(ele[i++].y(), subpt, lastEle);
+            }
+        }
+    }
+
+    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
+}
+
+void CGisItemRte::edit()
+{
+    CDetailsRte dlg(*this, CMainWindow::getBestWidgetForParent());
+    dlg.exec();
+}
+
+void CGisItemRte::reverse()
+{
+    QString name = getName() + "_rev";
+    IGisProject *project = nullptr;
+    if(!getNameAndProject(name, project, tr("route")))
+    {
+        return;
+    }
+
+    // start with a 1:1 copy of the first route
+    CGisItemRte * rte1 = new CGisItemRte(*this, project, NOIDX, false);
+    rte1->rte.name = name;
+    rte1->rte.pts.clear();
+    rte1->key.clear();
+    rte1->history.events.clear();
+
+    for(rtept_t &rtept : rte.pts)
+    {
+        rtept_t rtept1 = rtept;
+        rtept1.subpts.clear();
+        rtept1.fakeSubpt = subpt_t();
+        rte1->rte.pts.push_front(rtept1);
+    }
+
+    rte1->mouseMoveFocus  = nullptr;
+
+    rte1->setupHistory();
+
+    if (rte.lastRoutedTime.isValid() && project->isVisible())
+    {
+        rte1->calc();
+    }
+    else
+    {
+        rte1->rte.totalDistance   = NOFLOAT;
+        rte1->rte.totalTime       = 0;
+        rte1->rte.lastRoutedTime  = QDateTime();
+        rte1->rte.lastRoutedWith  = "";
+        rte1->deriveSecondaryData();
+    }
+    rte1->updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void CGisItemRte::toTrack()
+{
+    QString name;
+    IGisProject * project;
+
+    if(!getNameAndProject(name, project, tr("track")))
+    {
+        return;
+    }
+
+    SGisLine line;
+    getPolylineFromData(line);
+
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->getElevationAt(line);
+    }
+
+    new CGisItemTrk(line, name, project, -1);
+}
+
+void CGisItemRte::setSymbol()
+{
+    IGisItem::setIcon(QPixmap("://icons/48x48/Route.png").scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+}
+
+void CGisItemRte::setName(const QString& str)
+{
+    setText(CGisListWks::eColumnName, str);
+    rte.name = str;
+    changed(tr("Changed name."), "://icons/48x48/EditText.png");
+}
+
+void CGisItemRte::setComment(const QString& str)
+{
+    rte.cmt = str;
+    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemRte::setDescription(const QString& str)
+{
+    rte.desc = str;
+    changed(tr("Changed description"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemRte::setLinks(const QList<link_t>& links)
+{
+    rte.links = links;
+    changed(tr("Changed links"), "://icons/48x48/Link.png");
+}
+
+QString CGisItemRte::getInfo(quint32 feature) const
+{
+    QString val1, unit1;
+    QString str = "<div>";
+
+    if(feature & eFeatureShowName)
+    {
+        str += "<b>" + getName() + "</b><br />";
+    }
+
+    if(rte.totalDistance != NOFLOAT)
+    {
+        IUnit::self().meter2distance(rte.totalDistance, val1, unit1);
+        str += tr("Length: %1%2").arg(val1).arg(unit1);
+    }
+    else
+    {
+        str += tr("Length: -");
+    }
+
+    str += "<br/>\n";
+    if(rte.totalTime != 0)
+    {
+        IUnit::self().seconds2time(rte.totalTime, val1, unit1);
+        str += tr("Time: %1%2").arg(val1).arg(unit1);
+    }
+    else
+    {
+        str += tr("Time: -");
+    }
+
+    if((rte.ascent != NOFLOAT) && (rte.descent != NOFLOAT))
+    {
+        str += "<br/>\n";
+        QString val1, val2, unit1, unit2;
+        IUnit::self().meter2elevation(rte.ascent,  val1, unit1);
+        IUnit::self().meter2elevation(rte.descent, val2, unit2);
+
+        str += tr("%1%2 %3, %4%5 %6").arg(QChar(0x2197)).arg(val1).arg(unit1).arg(QChar(0x2198)).arg(val2).arg(unit2);
+    }
+
+    if(!rte.lastRoutedWith.isEmpty())
+    {
+        str += "<br/>\n";
+        str += tr("Last time routed:<br/>%1").arg(IUnit::datetime2string(rte.lastRoutedTime, false, boundingRect.center()));
+        str += "<br/>\n";
+        str += tr("with %1").arg(rte.lastRoutedWith);
+    }
+
+    QString desc = removeHtml(rte.desc).simplified();
+    if(desc.count())
+    {
+        if(!str.isEmpty())
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || (desc.count() < 300))
+        {
+            str += desc;
+        }
+        else
+        {
+            str += desc.left(297) + "...";
+        }
+    }
+
+    QString cmt = removeHtml(rte.cmt).simplified();
+    if((cmt != desc) && cmt.count())
+    {
+        if(!str.isEmpty())
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || cmt.count() < 300)
+        {
+            str += cmt;
+        }
+        else
+        {
+            str += cmt.left(297) + "...";
+        }
+    }
+
+    return str + "</div>";
+}
+
+IScrOpt * CGisItemRte::getScreenOptions(const QPoint& origin, IMouse * mouse)
+{
+    if(scrOpt.isNull())
+    {
+        scrOpt = new CScrOptRte(this, origin, mouse);
+    }
+    return scrOpt;
+}
+
+QPointF CGisItemRte::getPointCloseBy(const QPoint& screenPos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qint32 d    = NOINT;
+    QPointF pt  = NOPOINTF;
+    for(const QPointF &point : line)
+    {
+        int tmp = (screenPos - point).manhattanLength();
+        if(tmp < d)
+        {
+            pt  = point;
+            d   = tmp;
+        }
+    }
+
+    return pt;
+}
+
+
+
+bool CGisItemRte::isCloseTo(const QPointF& pos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qreal dist = GPS_Math_DistPointPolyline(line, pos);
+    return dist < 20;
+}
+
+bool CGisItemRte::isWithin(const QRectF& area, selflags_t flags)
+{
+    return (flags & eSelectionRte) ? IGisItem::isWithin(area, flags, line) : false;
+}
+
+
+void CGisItemRte::gainUserFocus(bool yes)
+{
+    keyUserFocus = yes ? key : key_t();
+}
+
+
+void CGisItemRte::looseUserFocus()
+{
+    if(keyUserFocus == key)
+    {
+        keyUserFocus.clear();
+    }
+}
+
+
+
+void CGisItemRte::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
+{
+    QMutexLocker lock(&mutexItems);
+
+    line.clear();
+    if(!isVisible(boundingRect, viewport, gis))
+    {
+        return;
+    }
+
+    QPointF p1 = viewport[0];
+    QPointF p2 = viewport[2];
+    gis->convertRad2Px(p1);
+    gis->convertRad2Px(p2);
+    QRectF extViewport(p1,p2);
+
+    QVector<qint32>  points;
+    QVector<QPixmap> icons;
+    QVector<QPointF> focus;
+
+    for(const rtept_t &rtept : rte.pts)
+    {
+        QPointF pt(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD);
+
+        gis->convertRad2Px(pt);
+
+        line << pt;
+        points << 1;
+        icons << rtept.icon;
+        focus << rtept.focus;
+
+        blockedAreas << QRectF(pt - rtept.focus, rtept.icon.size());
+        for(const subpt_t &subpt : rtept.subpts)
+        {
+            QPointF pt(subpt.lon * DEG_TO_RAD, subpt.lat * DEG_TO_RAD);
+            gis->convertRad2Px(pt);
+            line << pt;
+            if(subpt.type != subpt_t::eTypeNone)
+            {
+                points << 2;
+            }
+            else
+            {
+                points << 0;
+            }
+        }
+    }
+
+    p.setPen(penBackground);
+    p.drawPolyline(line);
+
+    p.setPen(Qt::NoPen);
+    p.setBrush(Qt::white);
+    for(int i = 0; i < line.size(); i++)
+    {
+        switch(points[i])
+        {
+        case 1:
+            p.drawEllipse(line[i],7,7);
+            break;
+
+        case 2:
+            p.drawEllipse(line[i],5,5);
+            break;
+        }
+    }
+
+    p.setPen(hasUserFocus() ? penForegroundFocus : penForeground);
+    p.setBrush(hasUserFocus() ? penForegroundFocus.color() : penForeground.color());
+    if (!isNogo())
+    {
+        CDraw::arrows(line, extViewport, p, 10, 80, 1.0);
+    }
+    p.drawPolyline(line);
+
+    if (isNogo())
+    {
+        CDraw::nogos(line, extViewport, p, 80);
+    }
+
+    p.setPen(Qt::NoPen);
+    for(int i = 0, n = 0; i < line.size(); i++)
+    {
+        switch(points[i])
+        {
+        case 1:
+            p.setBrush(Qt::red);
+            p.drawEllipse(line[i],5,5);
+            if(focus[n] != NOPOINTF)
+            {
+                p.drawPixmap(line[i] - focus[n], icons[n]);
+            }
+            n++;
+            break;
+
+        case 2:
+            p.setBrush(Qt::cyan);
+            p.drawEllipse(line[i],3,3);
+            break;
+        }
+    }
+}
+
+void CGisItemRte::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+{
+    QMutexLocker lock(&mutexItems);
+    if(rte.pts.isEmpty())
+    {
+        return;
+    }
+
+    QDateTime startTime = rte.pts.first().fakeSubpt.time;
+    if(!startTime.isValid() && !rte.pts.isEmpty() && !rte.pts.first().subpts.isEmpty())
+    {
+        startTime = rte.pts.first().subpts.first().time;
+    }
+
+    if(hasUserFocus() && mouseMoveFocus && mouseMoveFocus->lon != NOFLOAT && mouseMoveFocus->lat != NOFLOAT)
+    {
+        QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
+        anchor *= DEG_TO_RAD;
+        gis->convertRad2Px(anchor);
+        p.drawEllipse(anchor, 5, 5);
+
+        QString str, val, unit;
+        IUnit::self().seconds2time((mouseMoveFocus->time.toTime_t() - startTime.toTime_t()), val, unit);
+        str += tr("Time: %1%2").arg(val).arg(unit) + " ";
+        IUnit::self().meter2distance(mouseMoveFocus->distance, val, unit);
+        str += tr("Distance: %1%2").arg(val).arg(unit);
+        str += "\n" + mouseMoveFocus->instruction;
+
+        // calculate bounding box of text
+        QFont f = CMainWindow::self().getMapFont();
+        QFontMetrics fm(f);
+        QRect rectText = fm.boundingRect(QRect(0,0,500,0), Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
+        rectText.adjust(-5, -5, 5, 5);
+        rectText.moveBottomLeft(anchor.toPoint() + QPoint(-50,-50));
+
+        p.setFont(f);
+        CDraw::bubble(p, rectText, anchor.toPoint(), 18 /* px */, 21 /* px */);
+
+        p.save();
+        p.translate(5,5);
+        p.setPen(Qt::darkBlue);
+        p.drawText(rectText, str);
+        p.restore();
+    }
+}
+
+void CGisItemRte::drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, const QFontMetricsF &fm, CGisDraw *gis)
+{
+    QMutexLocker lock(&mutexItems);
+    if(!isVisible(boundingRect, viewport, gis))
+    {
+        return;
+    }
+
+
+    for(const rtept_t &rtept : rte.pts)
+    {
+        QPointF pt(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD);
+
+        gis->convertRad2Px(pt);
+        //pt = pt - rtept.focus;
+        //p.drawPixmap(pt, rtept.icon);
+
+        QRectF rect = fm.boundingRect(rtept.name);
+        rect.adjust(-2,-2,2,2);
+
+        // place label on top
+        rect.moveCenter(pt + QPointF(rtept.icon.width()/2, -fm.height()));
+        if(CDraw::doesOverlap(blockedAreas, rect))
+        {
+            // place label on bottom
+            rect.moveCenter(pt + QPointF( rtept.icon.width()/2, +fm.height() + rtept.icon.height()));
+            if(CDraw::doesOverlap(blockedAreas, rect))
+            {
+                // place label on right
+                rect.moveCenter(pt + QPointF( rtept.icon.width() + rect.width()/2, +fm.height()));
+                if(CDraw::doesOverlap(blockedAreas, rect))
+                {
+                    // place label on left
+                    rect.moveCenter(pt + QPointF( -rect.width()/2, +fm.height()));
+                    if(CDraw::doesOverlap(blockedAreas, rect))
+                    {
+                        // failed to place label anywhere
+                        return;
+                    }
+                }
+            }
+        }
+
+        CDraw::text(rtept.name, p, rect.toRect(), Qt::darkBlue);
+        blockedAreas << rect;
+    }
+}
+
+void CGisItemRte::drawHighlight(QPainter& p)
+{
+    QMutexLocker lock(&mutexItems);
+
+    if(line.isEmpty() || hasUserFocus())
+    {
+        return;
+    }
+
+    p.setPen(QPen(QColor(255,0,0,100),11,Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolyline(line);
+}
+
+void CGisItemRte::readRouteDataFromGisLine(const SGisLine &l)
+{
+    bool doAutoRouting = !l.first().subpts.isEmpty();
+    rte.pts.clear();
+
+    for(int i = 0; i < l.size(); i++)
+    {
+        rte.pts << rtept_t();
+
+        rtept_t& rtept      = rte.pts.last();
+        const point_t& pt   = l[i];
+
+        rtept.lon = pt.coord.x() * RAD_TO_DEG;
+        rtept.lat = pt.coord.y() * RAD_TO_DEG;
+        rtept.ele = pt.ele;
+        rtept.name = pt.name;
+    }
+
+    if(doAutoRouting)
+    {
+        calc();
+    }
+    deriveSecondaryData();
+}
+
+void CGisItemRte::setDataFromPolyline(const SGisLine &l)
+{
+    QMutexLocker lock(&mutexItems);
+    mouseMoveFocus = nullptr;
+
+    readRouteDataFromGisLine(l);
+
+    flags |= eFlagTainted;
+    changed(tr("Changed route points."), "://icons/48x48/LineMove.png");
+}
+
+void CGisItemRte::getPolylineFromData(SGisLine& l) const
+{
+    QMutexLocker lock(&mutexItems);
+    l.clear();
+    for(const rtept_t &rtept : rte.pts)
+    {
+        l << point_t(QPointF(rtept.lon * DEG_TO_RAD, rtept.lat * DEG_TO_RAD));
+
+        point_t& pt = l.last();
+
+        pt.subpts.clear();
+        for(const subpt_t &subpt : rtept.subpts)
+        {
+            pt.subpts << IGisLine::subpt_t(QPointF(subpt.lon * DEG_TO_RAD, subpt.lat * DEG_TO_RAD));
+        }
+    }
+}
+
+void CGisItemRte::getPolylineDegFromData(QPolygonF &polygon) const
+{
+    QMutexLocker lock(&mutexItems);
+    polygon.clear();
+    for(const rtept_t &rtept : rte.pts)
+    {
+        polygon << QPointF(rtept.lon, rtept.lat);
+
+        for(const subpt_t &subpt : rtept.subpts)
+        {
+            polygon << QPointF(subpt.lon, subpt.lat);
+        }
+    }
+}
+
+void CGisItemRte::calc()
+{
+    QMutexLocker lock(&mutexItems);
+    mouseMoveFocus = nullptr;
+    for(int i = 0; i < rte.pts.size(); i++)
+    {
+        rte.pts[i].subpts.clear();
+    }
+    CRouterSetup::self().calcRoute(getKey());
+}
+
+void CGisItemRte::reset()
+{
+    QMutexLocker lock(&mutexItems);
+    for(int i = 0; i < rte.pts.size(); i++)
+    {
+        rtept_t& pt = rte.pts[i];
+        pt.subpts.clear();
+        pt.fakeSubpt = subpt_t();
+    }
+
+    mouseMoveFocus  = nullptr;
+    rte.totalDistance   = NOFLOAT;
+    rte.totalTime       = 0;
+    rte.lastRoutedTime  = QDateTime();
+    rte.lastRoutedWith  = "";
+
+    deriveSecondaryData();
+    updateHistory();
+
+    if(key == keyUserFocus)
+    {
+        gainUserFocus(false);
+    }
+}
+
+
+QPointF CGisItemRte::setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner)
+{
+    QMutexLocker lock(&mutexItems);
+
+    const subpt_t * newPointOfFocus = nullptr;
+    quint32 idx = 0;
+
+    if(pt != NOPOINT && GPS_Math_DistPointPolyline(line, pt) < MIN_DIST_FOCUS)
+    {
+        quint32 i = 0;
+        qint32 d1 = NOINT;
+
+        for(const QPointF &point : line)
+        {
+            int tmp = (pt - point).manhattanLength();
+            if(tmp <= d1)
+            {
+                idx = i;
+                d1  = tmp;
+            }
+            i++;
+        }
+
+        newPointOfFocus = getSubPtByIndex(idx);
+    }
+
+    if(newPointOfFocus && (newPointOfFocus->type == subpt_t::eTypeNone))
+    {
+        newPointOfFocus = nullptr;
+    }
+
+
+    mouseMoveFocus = newPointOfFocus;
+
+    return newPointOfFocus ? ((int)idx < line.size() ? line[idx] : NOPOINTF) : NOPOINTF;
+}
+
+const CGisItemRte::subpt_t * CGisItemRte::getSubPtByIndex(quint32 idx)
+{
+    quint32 cnt = 0;
+    for(const rtept_t &rtept : rte.pts)
+    {
+        if(cnt == idx)
+        {
+            return &rtept.fakeSubpt;
+        }
+
+        for(const subpt_t &subpt : rtept.subpts)
+        {
+            cnt++;
+            if(cnt == idx)
+            {
+                return &subpt;
+            }
+        }
+        cnt++;
+    }
+
+    return nullptr;
+}
+
+void CGisItemRte::setResult(Routino_Output * route, const QString& options)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qint32 idxRtept = -1;
+    rtept_t * rtept = nullptr;
+
+    QDateTime time = QDateTime::currentDateTimeUtc();
+
+    Routino_Output * next = route;
+    while(next)
+    {
+        if(next->type == ROUTINO_POINT_WAYPOINT)
+        {
+            idxRtept++;
+            rtept = &rte.pts[idxRtept];
+            rtept->subpts.clear();
+            rtept->fakeSubpt.lon       = next->lon * RAD_TO_DEG;
+            rtept->fakeSubpt.lat       = next->lat * RAD_TO_DEG;
+
+            rtept->fakeSubpt.turn      = next->turn;
+            rtept->fakeSubpt.bearing   = next->bearing;
+            rtept->fakeSubpt.distance  = next->dist * 1000;
+            rtept->fakeSubpt.time      = time.addSecs(next->time * 60);
+
+            rtept->fakeSubpt.type      = subpt_t::eTypeWpt;
+            rtept->fakeSubpt.instruction = QString(next->desc1) + ".\n" + QString(next->desc2) + ".";
+
+            rte.totalDistance = rtept->fakeSubpt.distance;
+            rte.totalTime     = rtept->fakeSubpt.time.toTime_t() - time.toTime_t();
+        }
+        else if(rtept != nullptr)
+        {
+            rtept->subpts << subpt_t();
+            subpt_t& subpt  = rtept->subpts.last();
+            subpt.lon       = next->lon * RAD_TO_DEG;
+            subpt.lat       = next->lat * RAD_TO_DEG;
+
+            subpt.turn      = next->turn;
+            subpt.bearing   = next->bearing;
+            subpt.distance  = next->dist * 1000;
+            subpt.time      = time.addSecs(next->time * 60);
+
+            if(next->name != 0)
+            {
+                subpt.streets << next->name;
+            }
+
+            if(next->type > ROUTINO_POINT_CHANGE)
+            {
+                subpt.type = subpt_t::eTypeJunct;
+            }
+            else
+            {
+                subpt.type = subpt_t::eTypeNone;
+            }
+
+            rte.totalDistance = subpt.distance;
+            rte.totalTime     = subpt.time.toTime_t() - time.toTime_t();
+            subpt.instruction = QString(next->desc1) + ".\n" + QString(next->desc2) + ".";
+        }
+
+        next = next->next;
+    }
+
+    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
+    rte.lastRoutedWith = "Routino, " + options;
+
+    deriveSecondaryData();
+    updateHistory();
+}
+
+struct maneuver_t
+{
+    QStringList streets;
+    QString instruction;
+    quint32 time;
+    qreal dist;
+    qint32 bearing;
+    qint32 turn;
+};
+
+static const qint32 idx2bearing[] =
+{
+    NOINT
+    , 0
+    , -45
+    , 45
+    , 180
+    , 135
+    , -135
+    , -90
+    , 90
+};
+
+
+void CGisItemRte::setResult(const QDomDocument& xml, const QString &options)
+{
+    QMutexLocker lock(&mutexItems);
+
+    QDateTime localtime = QDateTime::currentDateTimeUtc();
+
+    QDomElement response    = xml.firstChildElement("response");
+    QDomElement route       = response.firstChildElement("route");
+
+    // get time of travel
+    QDomElement xmlTime     = route.firstChildElement("time");
+    rte.totalTime = xmlTime.text().toUInt();
+
+
+    // build list of maneuvers
+    QDomNodeList xmlLegs       = route.firstChildElement("legs").elementsByTagName("leg");
+    const qint32 L = xmlLegs.size();
+
+    QList<maneuver_t> maneuvers;
+
+    for(int l = 0; l < L; l++)
+    {
+        QDomNode xmlLeg = xmlLegs.item(l);
+        QDomNodeList xmlManeuvers = xmlLeg.firstChildElement("maneuvers").elementsByTagName("maneuver");
+        const qint32 M = xmlManeuvers.size();
+        for(int m = 0; m < M; m++)
+        {
+            maneuvers << maneuver_t();
+            maneuver_t& maneuver    = maneuvers.last();
+            QDomNode xmlManeuver    = xmlManeuvers.item(m);
+            maneuver.instruction    = xmlManeuver.firstChildElement("narrative").text();
+            maneuver.time           = xmlManeuver.firstChildElement("time").text().toUInt();
+            maneuver.dist           = xmlManeuver.firstChildElement("distance").text().toFloat();
+
+            maneuver.bearing        = idx2bearing[xmlManeuver.firstChildElement("direction").text().toUInt()];
+            maneuver.turn           = xmlManeuver.firstChildElement("turnType").text().toInt();
+
+            QDomNodeList xmlStreets = xmlManeuver.toElement().elementsByTagName("streets");
+            const int S = xmlStreets.size();
+            for(int s = 0; s < S; s++)
+            {
+                QDomNode xmlStreet = xmlStreets.item(s);
+                maneuver.streets << xmlStreet.toElement().text();
+            }
+        }
+    }
+
+    QVector<subpt_t> shape;
+
+    // read the shape
+    QDomElement xmlShape        = route.firstChildElement("shape");
+    QDomElement xmlShapePoints  = xmlShape.firstChildElement("shapePoints");
+    QDomNodeList xmlLatLng      = xmlShapePoints.elementsByTagName("latLng");
+    const qint32 N = xmlLatLng.size();
+    for(int n = 0; n < N; n++)
+    {
+        QDomNode elem   = xmlLatLng.item(n);
+        QDomElement lat = elem.firstChildElement("lat");
+        QDomElement lng = elem.firstChildElement("lng");
+
+        shape << subpt_t();
+        subpt_t& subpt = shape.last();
+        subpt.lon = lng.text().toFloat();
+        subpt.lat = lat.text().toFloat();
+    }
+
+
+    QVector<quint32> idxLegs;
+    QDomElement xmlLegIndexes = xmlShape.firstChildElement("legIndexes");
+    QDomNodeList xmlIndex     = xmlLegIndexes.elementsByTagName("index");
+    const qint32 I = xmlIndex.size();
+    for(int i = 0; i < I; i++)
+    {
+        QDomNode elem = xmlIndex.item(i);
+        idxLegs << elem.toElement().text().toUInt();
+    }
+
+    quint32 time = 0;
+    quint32 dist = 0;
+    QDomElement xmlManeuverIndexes = xmlShape.firstChildElement("maneuverIndexes");
+    xmlIndex                       = xmlManeuverIndexes.elementsByTagName("index");
+    qint32 M = xmlIndex.size();
+    for(int m = 0; m < M; m++)
+    {
+        QDomNode elem           = xmlIndex.item(m);
+        quint32 idx             = elem.toElement().text().toUInt();
+        subpt_t& subpt          = shape[idx];
+        maneuver_t& maneuver    = maneuvers[m];
+        subpt.type              = subpt_t::eTypeJunct;
+        subpt.instruction       = maneuver.instruction;
+
+        subpt.time              = localtime.addSecs(time);
+        time += maneuver.time;
+
+        subpt.distance          = dist;
+        dist += maneuver.dist * 1000;
+
+        subpt.bearing           = maneuver.bearing;
+        subpt.turn              = maneuver.turn;
+
+        subpt.streets           = maneuver.streets;
+    }
+
+    for(int i = 0; i < rte.pts.size() - 1; i++ )
+    {
+        quint32 idx1 = idxLegs[i];
+        quint32 idx2 = idxLegs[i+1];
+
+        rtept_t& rtept      = rte.pts[i];
+        rtept.subpts        = shape.mid(idx1, idx2 - idx1 + 1);
+        rtept.fakeSubpt.lon = rtept.lon;
+        rtept.fakeSubpt.lat = rtept.lat;
+    }
+
+    rtept_t& rtept = rte.pts.last();
+    rtept.fakeSubpt.lon = rtept.lon;
+    rtept.fakeSubpt.lat = rtept.lat;
+
+    rte.totalDistance  = dist;
+    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
+    rte.lastRoutedWith = "MapQuest" + options;
+
+    deriveSecondaryData();
+    updateHistory();
+}
+
+void CGisItemRte::setResultFromBRouter(const QDomDocument &xml, const QString &options)
+{
+    QMutexLocker lock(&mutexItems);
+
+    QVector<subpt_t> shape;
+
+    const QDomElement &gpx = xml.documentElement();
+    // read the shape
+    const QDomElement &xmlShape        = gpx.firstChildElement("trk");
+    const QDomElement &xmlShapePoints  = xmlShape.firstChildElement("trkseg");
+    const QDomNodeList &xmlLatLng      = xmlShapePoints.elementsByTagName("trkpt");
+    const qint32 N = xmlLatLng.size();
+    for(int n = 0; n < N; n++)
+    {
+        const QDomElement &elem   = xmlLatLng.item(n).toElement();
+        shape << subpt_t();
+        subpt_t& subpt = shape.last();
+        subpt.lon = elem.attribute("lon").toFloat();
+        subpt.lat = elem.attribute("lat").toFloat();
+        subpt.ele = elem.firstChildElement("ele").text().toFloat();
+    }
+
+    // build list of maneuvers
+    const QDomElement &xmlLeg = gpx.firstChildElement("rte");
+    if (!xmlLeg.isNull())
+    {
+        const QDomNodeList &xmlManeuvers = xmlLeg.elementsByTagName("rtept");
+        const qint32 M = xmlManeuvers.size();
+        for(int m = 0; m < M; m++)
+        {
+            const QDomNode &xmlManeuver    = xmlManeuvers.item(m);
+            /* <rtept lat="48.322380" lon="11.601220">
+                <desc>right</desc>
+                <extensions>
+                 <turn>TR</turn>
+                 <turn-angle>45.655945</turn-angle>
+                 <offset>76</offset>
+                </extensions>
+               </rtept> */
+            quint32 idx = xmlManeuver.firstChildElement("extensions").firstChildElement("offset").text().toUInt();
+            subpt_t& subpt          = shape[idx];
+            subpt.type              = subpt_t::eTypeJunct;
+            subpt.instruction       = xmlManeuver.firstChildElement("desc").text();
+            const QString &command = xmlManeuver.firstChildElement("extensions").firstChildElement("turn").text(); // command
+            if(command=="TU")        // u-turn
+            {
+                subpt.bearing = 180;
+            }
+            else if(command=="TSHL") // turn sharp left
+            {
+                subpt.bearing = -135;
+            }
+            else if(command=="TL")   // turn left
+            {
+                subpt.bearing = -90;
+            }
+            else if(command=="TSLL") // turn slight left
+            {
+                subpt.bearing = -45;
+            }
+            else if(command=="KL")   // keep left
+            {
+                subpt.bearing = 0;
+            }
+            else if(command=="C")    // straight
+            {
+                subpt.bearing = 0;
+            }
+            else if(command=="KR")   // keep right
+            {
+                subpt.bearing = 0;
+            }
+            else if(command=="TSLR") // turn slight right
+            {
+                subpt.bearing = 45;
+            }
+            else if(command=="TR")   // turn right
+            {
+                subpt.bearing = 90;
+            }
+            else if(command=="TSHR") // turn sharp right
+            {
+                subpt.bearing = 135;
+            }
+            else if(command=="TRU")  // u-turn
+            {
+                subpt.bearing = 180;
+            }
+            else if(command.startsWith("RNDB")) // take roundabout exit nr
+            {
+                subpt.bearing = 0;
+            }
+            else if(command.startsWith("RNLB")) // take roundabout exit nr. (to the left)
+            {
+                subpt.bearing = 0;
+            }
+
+            subpt.turn = xmlManeuver.firstChildElement("extensions").firstChildElement("turn-angle").text().toUInt();  // turn angle (degree)
+        }
+    }
+
+    // match routepoints to shape
+    qint32 startIdx = 0;
+    qint32 minDistIdx = 0;
+
+    for(qint32 rtIdx = 0; rtIdx < rte.pts.size() - 1; rtIdx++)
+    {
+        rtept_t &routePoint = rte.pts[rtIdx];
+        const rtept_t &nextRoutePoint = rte.pts[rtIdx+1];
+
+        qreal minDist = std::pow(nextRoutePoint.lon - shape[minDistIdx].lon, 2) + std::pow(nextRoutePoint.lat - shape[minDistIdx].lat, 2);
+        for (qint32 idx = startIdx+1; idx < shape.size(); idx++)
+        {
+            qreal dist = std::pow(nextRoutePoint.lon - shape[idx].lon, 2) + std::pow(nextRoutePoint.lat - shape[idx].lat, 2);
+            if (dist < minDist)
+            {
+                minDist = dist;
+                minDistIdx = idx;
+            }
+        }
+        routePoint.ele = shape[startIdx].ele;
+        routePoint.subpts = shape.mid(startIdx,minDistIdx-startIdx);
+        routePoint.fakeSubpt.lon = routePoint.lon;
+        routePoint.fakeSubpt.lat = routePoint.lat;
+        routePoint.fakeSubpt.ele = routePoint.ele;
+        startIdx = minDistIdx;
+    }
+
+    rtept_t &rtept = rte.pts.last();
+    rtept.ele = shape[minDistIdx].ele;
+    rtept.fakeSubpt.lon = rtept.lon;
+    rtept.fakeSubpt.lat = rtept.lat;
+    rtept.fakeSubpt.ele = rtept.ele;
+
+    rte.lastRoutedTime = QDateTime::currentDateTimeUtc();
+    rte.lastRoutedWith = QString("BRouter %1").arg(options);
+
+//    <!-- track-length = 9624 filtered ascend = 59 plain-ascend = -8 cost=19415 -->
+    const QDomNodeList &nodes = xml.childNodes();
+    for (int i = 0; i < nodes.count(); i++)
+    {
+        const QDomNode &node = nodes.at(i);
+        if (node.isComment())
+        {
+            const QString &commentTxt = node.toComment().data();
+            // ' track-length = 180864 filtered ascend = 428 plain-ascend = -172 cost=270249 '
+            const QRegExp rxAscDes("(\\s*track-length\\s*=\\s*)(-?\\d+)(\\s*)(filtered ascend\\s*=\\s*-?\\d+)(\\s*)(plain-ascend\\s*=\\s*-?\\d+)(\\s*)(cost\\s*=\\s*-?\\d+)(\\s*)");
+            int pos = rxAscDes.indexIn(commentTxt);
+            if (pos > -1)
+            {
+                rte.totalDistance = rxAscDes.cap(2).toFloat();
+                rte.cmt = QString("%1, %2, %3").arg(rxAscDes.cap(4)).arg(rxAscDes.cap(6)).arg(rxAscDes.cap(8));
+            }
+            break;
+        }
+    }
+
+    deriveSecondaryData();
+    updateHistory();
+}
diff --git a/src/qmapshack/gis/rte/CGisItemRte.h b/src/qmapshack/gis/rte/CGisItemRte.h
new file mode 100644
index 0000000..ef668b5
--- /dev/null
+++ b/src/qmapshack/gis/rte/CGisItemRte.h
@@ -0,0 +1,247 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISITEMRTE_H
+#define CGISITEMRTE_H
+
+#include "gis/IGisItem.h"
+#include "gis/IGisLine.h"
+#include <routino.h>
+
+#include "gis/fit/CFitStream.h"
+#include <QPen>
+#include <QPointer>
+
+class QDomNode;
+class IGisProject;
+class CQlgtRoute;
+class CScrOptRte;
+
+class CGisItemRte : public IGisItem, public IGisLine
+{
+    Q_DECLARE_TR_FUNCTIONS(CGisItemRte)
+public:
+
+    enum focusmode_e
+    {
+        eFocusMouseMove
+        ,eFocusMouseClick
+    };
+
+    struct subpt_t
+    {
+        enum type_e
+        {
+            eTypeNone
+            , eTypeWpt
+            , eTypeJunct
+        };
+
+        qreal lon = NOFLOAT;
+        qreal lat = NOFLOAT;
+        quint8 type = eTypeNone;
+
+        qreal turn = NOFLOAT;
+        qreal bearing = NOFLOAT;
+        QStringList streets;
+
+        QString instruction;
+        qreal distance = 0;
+        QDateTime time;
+
+        qint32 ele = NOINT;
+    };
+
+    struct rtept_t : public wpt_t
+    {
+        rtept_t()
+        {
+            fakeSubpt.type = subpt_t::eTypeWpt;
+        }
+
+        void updateIcon();
+
+        QPixmap icon;
+        QPointF focus;
+
+        subpt_t fakeSubpt;
+        QVector<subpt_t> subpts;
+    };
+
+    struct rte_t
+    {
+        // -- all gpx tags - start
+        QString name;
+        QString cmt;
+        QString desc;
+        QString src;
+        QList<link_t> links;
+        quint64 number = 0;
+        QString type;
+        QVector<rtept_t> pts;
+        // -- all gpx tags - stop
+
+        QString lastRoutedWith;
+        QDateTime lastRoutedTime;
+
+        qreal totalDistance = NOFLOAT;
+        quint32 totalTime = 0;
+        qreal ascent  = NOFLOAT;
+        qreal descent = NOFLOAT;
+    };
+
+    CGisItemRte(const QDomNode &xml, IGisProject *parent);
+    CGisItemRte(const CGisItemRte& parentRte, IGisProject *project, int idx, bool clone);
+    CGisItemRte(const history_t& hist, const QString& dbHash, IGisProject * project);
+    CGisItemRte(quint64 id, QSqlDatabase& db, IGisProject * project);
+    CGisItemRte(const CQlgtRoute& rte1, IGisProject *project = nullptr);
+    CGisItemRte(const SGisLine& l, const QString &name, IGisProject *project, int idx);
+    CGisItemRte(CFitStream& stream, IGisProject * project);
+    virtual ~CGisItemRte();
+
+    IGisItem * createClone() override;
+
+    QDataStream& operator<<(QDataStream& stream) override;
+    QDataStream& operator>>(QDataStream& stream) const override;
+
+    const QString& getName() const override
+    {
+        return rte.name.isEmpty() ? noName : rte.name;
+    }
+
+    QString getInfo(quint32 feature) const override;
+    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
+    QPointF getPointCloseBy(const QPoint& screenPos) override;
+    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
+    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
+    void drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
+    void drawHighlight(QPainter& p) override;
+    void save(QDomNode& gpx, bool strictGpx11) override;
+    bool isCloseTo(const QPointF& pos) override;
+    bool isWithin(const QRectF& area, selflags_t flags) override;
+    /**
+       @brief Switch user focus on and off.
+
+       If the focus is switched on any other route having the focus will loose it.
+
+       @param yes   set true to gain focus.
+     */
+    void gainUserFocus(bool yes) override;
+    /**
+       @brief Make sure the route has lost focus.
+
+       If the route has the focus, keyUserFocus will be reset. In all other cases nothing will be done.
+
+     */
+    void looseUserFocus();
+    /**
+       @brief Check for user focus
+
+       @return True if the route has user focus
+     */
+    bool hasUserFocus() const override
+    {
+        return key == keyUserFocus;
+    }
+
+    /**
+       @brief Get the key of the current track with user focus
+
+       @return If no route has the focus an empty string is returned
+     */
+    static const key_t& getKeyUserFocus()
+    {
+        return keyUserFocus;
+    }
+
+    void setDataFromPolyline(const SGisLine& l) override;
+
+    void getPolylineFromData(SGisLine &l) const override;
+    void getPolylineDegFromData(QPolygonF &polygon) const override;
+
+    const QString& getComment() const override
+    {
+        return rte.cmt;
+    }
+    const QString& getDescription() const override
+    {
+        return rte.desc;
+    }
+    const QList<link_t>& getLinks() const override
+    {
+        return rte.links;
+    }
+
+    const rte_t& getRoute() const
+    {
+        return rte;
+    }
+
+    QDateTime getTimestamp() const override
+    {
+        return QDateTime();
+    }
+
+
+    void setName(const QString& str);
+    void setComment(const QString& str)       override;
+    void setDescription(const QString& str)   override;
+    void setLinks(const QList<link_t>& links) override;
+
+    void calc();
+    void reset();
+    void edit() override;
+    void reverse();
+    void toTrack();
+
+
+    QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner);
+
+    void setResult(Routino_Output * route, const QString &options);
+    void setResult(const QDomDocument& xml, const QString &options);
+    void setResultFromBRouter(const QDomDocument& xml, const QString &options);
+
+    bool isCalculated();
+
+private:
+    void deriveSecondaryData();
+    void setElevation(qreal ele, subpt_t &subpt, qreal &lastEle);
+    void setSymbol() override;
+    void readRte(const QDomNode& xml, rte_t& rte);
+    void readRteFromFit(CFitStream &stream);
+    void readRouteDataFromGisLine(const SGisLine &l);
+    const subpt_t * getSubPtByIndex(quint32 idx);
+
+    static key_t keyUserFocus;
+
+    static const QPen penBackground;
+    QPen penForeground {Qt::darkBlue, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+    QPen penForegroundFocus {Qt::magenta, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+
+    rte_t rte;
+    QPolygonF line;
+
+
+    const subpt_t * mouseMoveFocus = nullptr;
+
+    QPointer<CScrOptRte>  scrOpt;
+};
+
+#endif //CGISITEMRTE_H
+
diff --git a/src/qmapshack/gis/rte/CScrOptRte.cpp b/src/qmapshack/gis/rte/CScrOptRte.cpp
new file mode 100644
index 0000000..4a7b269
--- /dev/null
+++ b/src/qmapshack/gis/rte/CScrOptRte.cpp
@@ -0,0 +1,149 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/CScrOptRte.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+
+CScrOptRte::CScrOptRte(CGisItemRte *rte, const QPoint& point, IMouse *parent)
+    : IScrOpt(parent)
+    , key(rte->getKey())
+{
+    setupUi(this);
+    setOrigin(point);
+    label->setFont(CMainWindow::self().getMapFont());
+    label->setText(rte->getInfo(IGisItem::eFeatureShowName));
+    adjustSize();
+
+    toolInstruction->setEnabled(rte->isCalculated());
+    toolInstruction->setChecked(rte->hasUserFocus());
+
+    bool isOnDevice = rte->isOnDevice();
+    toolEdit->setDisabled(isOnDevice);
+
+    anchor = rte->getPointCloseBy(point);
+    if((anchor - point).manhattanLength() > 50)
+    {
+        anchor = point;
+    }
+    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+    toolNogo->setChecked(rte->isNogo());
+    show();
+
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolCalc,        &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolReset,       &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptRte::hide);
+    connect(toolInstruction, &QToolButton::toggled, this, &CScrOptRte::hide);
+    connect(toolToTrack,     &QToolButton::clicked, this, &CScrOptRte::hide);
+
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptRte::slotEditDetails);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptRte::slotDelete);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptRte::slotCopy);
+    connect(toolCalc,        &QToolButton::clicked, this, &CScrOptRte::slotCalc);
+    connect(toolReset,       &QToolButton::clicked, this, &CScrOptRte::slotReset);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptRte::slotEdit);
+    connect(toolReverse,     &QToolButton::clicked, this, &CScrOptRte::slotReverse);
+    connect(toolInstruction, &QToolButton::toggled, this, &CScrOptRte::slotInstruction);
+    connect(toolToTrack,     &QToolButton::clicked, this, &CScrOptRte::slotToTrack);
+    connect(toolNogo,        &QToolButton::clicked, this, &CScrOptRte::slotNogo);
+}
+
+CScrOptRte::~CScrOptRte()
+{
+}
+
+void CScrOptRte::slotEditDetails()
+{
+    CGisWorkspace::self().editItemByKey(key);
+    close();
+}
+
+void CScrOptRte::slotDelete()
+{
+    CGisWorkspace::self().delItemByKey(key);
+    close();
+}
+
+void CScrOptRte::slotCopy()
+{
+    CGisWorkspace::self().copyItemByKey(key);
+    close();
+}
+
+void CScrOptRte::slotCalc()
+{
+    CGisWorkspace::self().calcRteByKey(key);
+    close();
+}
+
+void CScrOptRte::slotReset()
+{
+    CGisWorkspace::self().resetRteByKey(key);
+    close();
+}
+
+void CScrOptRte::slotEdit()
+{
+    CGisWorkspace::self().editRteByKey(key);
+    close();
+}
+
+void CScrOptRte::slotReverse()
+{
+    CGisWorkspace::self().reverseRteByKey(key);
+    close();
+}
+
+void CScrOptRte::slotInstruction(bool on)
+{
+    CGisWorkspace::self().focusRteByKey(on, key);
+    close();
+}
+
+void CScrOptRte::slotToTrack()
+{
+    CGisWorkspace::self().convertRouteToTrack(key);
+    close();
+}
+
+void CScrOptRte::slotNogo()
+{
+    CGisWorkspace::self().toggleNogoItem(key);
+    close();
+}
+
+void CScrOptRte::draw(QPainter& p)
+{
+    IGisItem *item = CGisWorkspace::self().getItemByKey(key);
+    if(nullptr == item)
+    {
+        close();
+        return;
+    }
+    item->drawHighlight(p);
+
+    CDraw::bubble(p, geometry(), anchor.toPoint());
+}
+
diff --git a/src/qmapshack/gis/rte/CScrOptRte.h b/src/qmapshack/gis/rte/CScrOptRte.h
new file mode 100644
index 0000000..8bef673
--- /dev/null
+++ b/src/qmapshack/gis/rte/CScrOptRte.h
@@ -0,0 +1,58 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CSCROPTRTE_H
+#define CSCROPTRTE_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IScrOpt.h"
+
+#include "ui_IScrOptRte.h"
+#include <QWidget>
+
+class CGisItemRte;
+class IMouse;
+
+class CScrOptRte : public IScrOpt, private Ui::IScrOptRte
+{
+    Q_OBJECT
+public:
+    CScrOptRte(CGisItemRte * rte, const QPoint &point, IMouse *parent);
+    virtual ~CScrOptRte();
+
+    void draw(QPainter& p) override;
+
+private slots:
+    void slotEditDetails();
+    void slotDelete();
+    void slotCopy();
+    void slotCalc();
+    void slotReset();
+    void slotEdit();
+    void slotReverse();
+    void slotInstruction(bool on);
+    void slotToTrack();
+    void slotNogo();
+
+private:
+    IGisItem::key_t key;
+    QPointF anchor;
+};
+
+#endif //CSCROPTRTE_H
+
diff --git a/src/gis/rte/ICreateRouteFromWpt.ui b/src/qmapshack/gis/rte/ICreateRouteFromWpt.ui
similarity index 100%
rename from src/gis/rte/ICreateRouteFromWpt.ui
rename to src/qmapshack/gis/rte/ICreateRouteFromWpt.ui
diff --git a/src/qmapshack/gis/rte/IDetailsRte.ui b/src/qmapshack/gis/rte/IDetailsRte.ui
new file mode 100644
index 0000000..b2ca587
--- /dev/null
+++ b/src/qmapshack/gis/rte/IDetailsRte.ui
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IDetailsRte</class>
+ <widget class="QDialog" name="IDetailsRte">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>400</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tab">
+      <attribute name="title">
+       <string>Info</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <property name="spacing">
+        <number>3</number>
+       </property>
+       <property name="leftMargin">
+        <number>3</number>
+       </property>
+       <property name="topMargin">
+        <number>3</number>
+       </property>
+       <property name="rightMargin">
+        <number>3</number>
+       </property>
+       <property name="bottomMargin">
+        <number>3</number>
+       </property>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <widget class="CLineEdit" name="lineName">
+           <property name="palette">
+            <palette>
+             <active>
+              <colorrole role="Base">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+              <colorrole role="Window">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+             </active>
+             <inactive>
+              <colorrole role="Base">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+              <colorrole role="Window">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+             </inactive>
+             <disabled>
+              <colorrole role="Base">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+              <colorrole role="Window">
+               <brush brushstyle="SolidPattern">
+                <color alpha="0">
+                 <red>0</red>
+                 <green>0</green>
+                 <blue>0</blue>
+                </color>
+               </brush>
+              </colorrole>
+             </disabled>
+            </palette>
+           </property>
+           <property name="font">
+            <font>
+             <weight>75</weight>
+             <bold>true</bold>
+            </font>
+           </property>
+           <property name="frame">
+            <bool>false</bool>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLabel" name="labelTainted">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="minimumSize">
+            <size>
+             <width>0</width>
+             <height>0</height>
+            </size>
+           </property>
+           <property name="maximumSize">
+            <size>
+             <width>25</width>
+             <height>25</height>
+            </size>
+           </property>
+           <property name="toolTip">
+            <string>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
+           </property>
+           <property name="text">
+            <string/>
+           </property>
+           <property name="pixmap">
+            <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
+           </property>
+           <property name="scaledContents">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLabel" name="labelNogo">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="maximumSize">
+            <size>
+             <width>22</width>
+             <height>22</height>
+            </size>
+           </property>
+           <property name="toolTip">
+            <string>This Route is a NoGo-Line</string>
+           </property>
+           <property name="text">
+            <string/>
+           </property>
+           <property name="pixmap">
+            <pixmap resource="../../resources.qrc">:/icons/32x32/NoGo.png</pixmap>
+           </property>
+           <property name="scaledContents">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="toolLock">
+           <property name="toolTip">
+            <string>Toggle read only mode. You have to open the lock to edit the item.</string>
+           </property>
+           <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>
+           <property name="autoRaise">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QLabel" name="labelInfo">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string>-</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignJustify|Qt::AlignTop</set>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QTextBrowser" name="textCmtDesc">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="openLinks">
+          <bool>false</bool>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_4">
+      <attribute name="title">
+       <string>Hist.</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_5">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="CHistoryListWidget" name="listHistory"/>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CHistoryListWidget</class>
+   <extends>QListWidget</extends>
+   <header>widgets/CHistoryListWidget.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>widgets/CLineEdit.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/rte/IScrOptRte.ui b/src/qmapshack/gis/rte/IScrOptRte.ui
new file mode 100644
index 0000000..940801b
--- /dev/null
+++ b/src/qmapshack/gis/rte/IScrOptRte.ui
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptRte</class>
+ <widget class="QWidget" name="IScrOptRte">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>69</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolEditDetails">
+       <property name="toolTip">
+        <string>View details and edit.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy route into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelete">
+       <property name="toolTip">
+        <string>Delete route from project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolInstruction">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/RteInstr.png</normaloff>:/icons/32x32/RteInstr.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCalc">
+       <property name="toolTip">
+        <string>Calculate route.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolReset">
+       <property name="toolTip">
+        <string>Reset route calculation.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolEdit">
+       <property name="toolTip">
+        <string>Move route points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/LineMove.png</normaloff>:/icons/32x32/LineMove.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolReverse">
+       <property name="toolTip">
+        <string>Reverse Route</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Reverse.png</normaloff>:/icons/32x32/Reverse.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolToTrack">
+       <property name="toolTip">
+        <string>Convert route to track</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Track.png</normaloff>:/icons/32x32/Track.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolNogo">
+       <property name="toolTip">
+        <string>Toggle Nogo-Line</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/NoGo.png</normaloff>:/icons/32x32/NoGo.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="textFormat">
+      <enum>Qt::AutoText</enum>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/rte/router/CRouterBRouter.cpp b/src/qmapshack/gis/rte/router/CRouterBRouter.cpp
new file mode 100644
index 0000000..570c91f
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/CRouterBRouter.cpp
@@ -0,0 +1,857 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/router/CRouterBRouter.h"
+#include "gis/rte/router/brouter/CRouterBRouterInfo.h"
+#include "gis/rte/router/brouter/CRouterBRouterSetup.h"
+#include "gis/rte/router/brouter/CRouterBRouterSetupWizard.h"
+#include "gis/rte/router/brouter/CRouterBRouterToolShell.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSettings.h"
+#include <QtNetwork>
+#include <QtWidgets>
+
+CRouterBRouter::CRouterBRouter(QWidget *parent)
+    : IRouter(false, parent)
+{
+    setupUi(this);
+
+    labelBRouterWarning->hide();
+
+    setup = new CRouterBRouterSetup(this);
+    setup->load();
+
+    connect(toolSetup, &QToolButton::clicked, this, &CRouterBRouter::slotToolSetupClicked);
+    connect(toolProfileInfo, &QToolButton::clicked, this, &CRouterBRouter::slotToolProfileInfoClicked);
+    connect(setup, &CRouterBRouterSetup::sigDisplayOnlineProfileFinished, this, &CRouterBRouter::slotDisplayProfileInfo);
+    connect(setup, &CRouterBRouterSetup::sigError, this, &CRouterBRouter::slotDisplayError);
+
+    comboAlternative->addItem(tr("original"), "0");
+    comboAlternative->addItem(tr("first alternative"), "1");
+    comboAlternative->addItem(tr("second alternative"), "2");
+    comboAlternative->addItem(tr("third alternative"), "3");
+
+    networkAccessManager = new QNetworkAccessManager(this);
+    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouter::slotRequestFinished);
+
+    timerCloseStatusMsg = new QTimer(this);
+    timerCloseStatusMsg->setSingleShot(true);
+    timerCloseStatusMsg->setInterval(5000);
+    connect(timerCloseStatusMsg, &QTimer::timeout, this, &CRouterBRouter::slotCloseStatusMsg);
+
+    routerSetup = dynamic_cast<CRouterSetup*>(parent);
+
+    connect(toolConsole,       &QToolButton::clicked, this, &CRouterBRouter::slotToggleConsole);
+    connect(toolToggleBRouter, &QToolButton::clicked, this, &CRouterBRouter::slotToggleBRouter);
+    connect(pushBRouterError,  &QPushButton::clicked, this, &CRouterBRouter::slotClearError);
+
+    textBRouterOutput->setVisible(false);
+    textBRouterError->setVisible(false);
+    pushBRouterError->setVisible(false);
+
+    //set textBRouterOutput as parent of ToolShell to ensure Toolshell is destroyed before text
+    brouterShell = new CRouterBRouterToolShell(textBRouterOutput,textBRouterOutput);
+    connect(brouterShell, &CRouterBRouterToolShell::sigProcessStateChanged, this, &CRouterBRouter::slotBRouterStateChanged);
+    connect(brouterShell, &CRouterBRouterToolShell::sigProcessError,        this, &CRouterBRouter::slotBRouterError);
+
+    updateDialog();
+
+    SETTINGS;
+
+    cfg.beginGroup("Route/brouter");
+    comboProfile->setCurrentIndex(cfg.value("profile", 0).toInt());
+    checkFastRecalc->setChecked(cfg.value("fastRecalc", false).toBool() && (setup->installMode == CRouterBRouterSetup::eModeLocal));
+    comboAlternative->setCurrentIndex(cfg.value("alternative", 0).toInt());
+    cfg.endGroup();
+}
+
+CRouterBRouter::~CRouterBRouter()
+{
+    isShutdown = true;
+    if (brouterState != QProcess::NotRunning)
+    {
+        stopBRouter();
+    }
+    SETTINGS;
+    cfg.beginGroup("Route/brouter");
+    cfg.setValue("profile", comboProfile->currentIndex());
+    cfg.setValue("alternative", comboAlternative->currentIndex());
+    cfg.setValue("fastRecalc", checkFastRecalc->isChecked());
+    cfg.endGroup();
+}
+
+void CRouterBRouter::slotToolSetupClicked()
+{
+    stopBRouter();
+    CRouterBRouterSetupWizard setupWizard;
+    setupWizard.exec();
+    slotClearError();
+    setup->load();
+    getBRouterVersion();
+    updateDialog();
+}
+
+void CRouterBRouter::slotToolProfileInfoClicked() const
+{
+    const int index = comboProfile->currentIndex();
+    if (index > -1)
+    {
+        setup->displayProfileAsync(setup->getProfiles().at(index));
+    }
+}
+
+void CRouterBRouter::slotDisplayError(const QString &error, const QString &details) const
+{
+    textBRouterError->setText(error);
+    if (!details.isEmpty())
+    {
+        textBRouterError->append(details);
+    }
+    QTextCursor cursor = textBRouterError->textCursor();
+    cursor.movePosition(QTextCursor::Start);
+    textBRouterError->setTextCursor(cursor);
+    textBRouterError->setVisible(true);
+    textBRouterOutput->setVisible(false);
+    pushBRouterError->setVisible(true);
+}
+
+void CRouterBRouter::slotClearError()
+{
+    textBRouterError->clear();
+    textBRouterError->setVisible(false);
+    pushBRouterError->setVisible(false);
+    brouterError = QProcess::UnknownError;
+}
+
+void CRouterBRouter::slotDisplayProfileInfo(const QString &profile, const QString &content)
+{
+    slotClearError();
+    CRouterBRouterInfo info;
+    info.setLabel(profile);
+    info.setInfo(content);
+    info.exec();
+}
+
+void CRouterBRouter::updateDialog() const
+{
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+    {
+        routerSetup->setRouterTitle(CRouterSetup::RouterBRouter,tr("BRouter (offline)"));
+        labelCopyrightBRouter->setVisible(true);
+        labelCopyrightBRouterWeb->setVisible(false);
+    }
+    else
+    {
+        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
+        routerSetup->setRouterTitle(CRouterSetup::RouterBRouter,tr("BRouter (online)"));
+        labelCopyrightBRouter->setVisible(false);
+        labelCopyrightBRouterWeb->setVisible(true);
+    }
+    comboProfile->clear();
+    bool hasItems = false;
+    for(const QString& profile : setup->getProfiles())
+    {
+        comboProfile->addItem(profile,profile);
+        hasItems = true;
+    }
+    comboProfile->setEnabled(hasItems);
+    toolProfileInfo->setEnabled(hasItems);
+    comboAlternative->setEnabled(hasItems);
+    updateLocalBRouterStatus();
+}
+
+void CRouterBRouter::slotCloseStatusMsg() const
+{
+    timerCloseStatusMsg->stop();
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+        canvas->reportStatus("BRouter", "");
+    }
+}
+
+QString CRouterBRouter::getOptions()
+{
+    return QString(tr("profile: %1, alternative: %2")
+                   .arg(comboProfile->currentData().toString())
+                   .arg(comboAlternative->currentData().toInt()+1));
+}
+
+void CRouterBRouter::routerSelected()
+{
+    getBRouterVersion();
+}
+
+bool CRouterBRouter::hasFastRouting()
+{
+    return setup->installMode == CRouterBRouterSetup::eModeLocal && checkFastRecalc->isChecked();
+}
+
+QNetworkRequest CRouterBRouter::getRequest(const QVector<QPointF> &routePoints, const QList<IGisItem*> &nogos) const
+{
+    QString lonLats;
+
+    for(const QPointF &pt : routePoints)
+    {
+        if (!lonLats.isEmpty())
+        {
+            lonLats.append("|");
+        }
+        lonLats.append(QString("%1,%2").arg(pt.x(),0,'f',6).arg(pt.y(),0,'f',6));
+    }
+
+    QString nogoStr;
+    QString nogoPolygons;
+    QString nogoPolylines;
+
+    for(IGisItem* const & item : nogos)
+    {
+        switch(item->type())
+        {
+        case IGisItem::eTypeWpt:
+        {
+            CGisItemWpt * wpt = static_cast<CGisItemWpt*>(item);
+            const qreal& rad = wpt->getProximity();
+            if (rad != NOFLOAT && rad > 0.)
+            {
+                const QPointF& pos = wpt->getPosition();
+                if (!nogoStr.isEmpty())
+                {
+                    nogoStr.append("|");
+                }
+                nogoStr.append(QString("%1,%2,%3").arg(pos.x(),0,'f',6).arg(pos.y(),0,'f',6).arg(rad,0,'f',0));
+            }
+            break;
+        }
+
+        case IGisItem::eTypeOvl:
+        case IGisItem::eTypeRte:
+        case IGisItem::eTypeTrk:
+        {
+            IGisLine* line = dynamic_cast<IGisLine*>(item);
+            Q_ASSERT(line!=nullptr);
+            QPolygonF polygon;
+            line->getPolylineDegFromData(polygon);
+            QString nogoPoints;
+            for (const QPointF point : polygon)
+            {
+                if (!nogoPoints.isEmpty())
+                {
+                    nogoPoints.append(",");
+                }
+                nogoPoints.append(QString("%1,%2").arg(point.x(),0,'f',6).arg(point.y(),0,'f',6));
+            }
+            if (item->type() == IGisItem::eTypeOvl)
+            {
+                if (!nogoPolygons.isEmpty())
+                {
+                    nogoPolygons.append("|");
+                }
+                nogoPolygons.append(QString("%1").arg(nogoPoints));
+            }
+            else
+            {
+                if (!nogoPolylines.isEmpty())
+                {
+                    nogoPolylines.append("|");
+                }
+                nogoPolylines.append(QString("%1").arg(nogoPoints));
+            }
+            break;
+        }
+
+        default:
+        {
+            Q_ASSERT(false);
+        }
+        }
+    }
+
+    QUrlQuery urlQuery;
+    urlQuery.addQueryItem("lonlats",lonLats.toLatin1());
+    if (!nogoStr.isEmpty())
+    {
+        urlQuery.addQueryItem("nogos", nogoStr.toLatin1());
+    }
+    if (!nogoPolygons.isEmpty())
+    {
+        urlQuery.addQueryItem("polygons", nogoPolygons.toLatin1());
+    }
+    if (!nogoPolylines.isEmpty())
+    {
+        urlQuery.addQueryItem("polylines", nogoPolylines.toLatin1());
+    }
+    urlQuery.addQueryItem("profile", comboProfile->currentData().toString());
+    urlQuery.addQueryItem("alternativeidx", comboAlternative->currentData().toString());
+    urlQuery.addQueryItem("format", "gpx");
+
+    QUrl url = getServiceUrl();
+    url.setPath("/brouter");
+    url.setQuery(urlQuery);
+
+    return QNetworkRequest(url);
+}
+
+int CRouterBRouter::calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords)
+{
+    if(!hasFastRouting())
+    {
+        return -1;
+    }
+
+    const QVector<QPointF> points = {p1*RAD_TO_DEG, p2*RAD_TO_DEG};
+
+    QList<IGisItem*> nogos;
+    CGisWorkspace::self().getNogoAreas(nogos);
+
+    return synchronousRequest(points,nogos,coords,false);
+}
+
+int CRouterBRouter::synchronousRequest(const QVector<QPointF> &points, const QList<IGisItem *> &nogos, QPolygonF &coords, bool isVersionRequest)
+{
+    if (isVersionRequest)
+    {
+        // wait for previous request to finish before issuing version-request
+        mutex.lock();
+    }
+    else if (!mutex.tryLock())
+    {
+        // skip further on-the-fly-requests as long a previous request is still running
+        return -1;
+    }
+
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal && brouterState == QProcess::NotRunning)
+    {
+        startBRouter();
+    }
+
+    synchronous = true;
+
+    QNetworkReply * reply = networkAccessManager->get(getRequest(points,nogos));
+
+    try
+    {
+        reply->setProperty("options", getOptions());
+        reply->setProperty("time", QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
+
+        progress = new CProgressDialog(tr("Calculate route with %1").arg(getOptions()), 0, NOINT, this);
+
+        QEventLoop eventLoop;
+        connect(progress, &CProgressDialog::rejected, reply, &QNetworkReply::abort);
+        connect(reply, &QNetworkReply::finished, &eventLoop, &QEventLoop::quit);
+        //Processing userinputevents in local eventloop would cause a SEGV when clicking 'abort' of calling LineOp
+        eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
+
+        delete progress;
+
+        const QNetworkReply::NetworkError& netErr = reply->error();
+        if (netErr == QNetworkReply::RemoteHostClosedError && nogos.size() > 1 && !isMinimumVersion(1,4,10))
+        {
+            throw tr("this version of BRouter does not support more then 1 nogo-area");
+        }
+        else if(netErr != QNetworkReply::NoError)
+        {
+            throw reply->errorString();
+        }
+        else
+        {
+            slotClearError();
+
+            const QByteArray &res = reply->readAll();
+
+            if(res.isEmpty())
+            {
+                throw tr("response is empty");
+            }
+            else
+            {
+                QDomDocument xml;
+                xml.setContent(res);
+
+                const QDomElement &xmlGpx = xml.documentElement();
+                if(xmlGpx.isNull() || xmlGpx.tagName() != "gpx")
+                {
+                    throw QString(res);
+                }
+                else
+                {
+                    if (isVersionRequest)
+                    {
+                        parseBRouterVersion(xmlGpx.attribute("creator"));
+                    }
+                    else
+                    {
+                        // read the shape
+                        const QDomNodeList &xmlLatLng = xmlGpx.firstChildElement("trk")
+                                                        .firstChildElement("trkseg")
+                                                        .elementsByTagName("trkpt");
+                        for(int n = 0; n < xmlLatLng.size(); n++)
+                        {
+                            const QDomElement &elem   = xmlLatLng.item(n).toElement();
+                            coords << QPointF();
+                            QPointF &point = coords.last();
+                            point.setX(elem.attribute("lon").toFloat()*DEG_TO_RAD);
+                            point.setY(elem.attribute("lat").toFloat()*DEG_TO_RAD);
+                        }
+                    }
+                }
+            }
+        }
+    }
+    catch(const QString& msg)
+    {
+        coords.clear();
+        if (isVersionRequest)
+        {
+            parseBRouterVersion("");
+        }
+        if(!msg.isEmpty())
+        {
+            reply->deleteLater();
+            mutex.unlock();
+            throw tr("Bad response from server: %1").arg(msg);
+        }
+    }
+
+    reply->deleteLater();
+    slotCloseStatusMsg();
+    mutex.unlock();
+    return coords.size();
+}
+
+void CRouterBRouter::calcRoute(const IGisItem::key_t& key)
+{
+    mutex.lock();
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal && brouterState == QProcess::NotRunning)
+    {
+        startBRouter();
+    }
+    CGisItemRte *rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
+    if(nullptr == rte)
+    {
+        mutex.unlock();
+        return;
+    }
+
+    QList<IGisItem*> nogos;
+    CGisWorkspace::self().getNogoAreas(nogos);
+
+    rte->reset();
+
+    slotCloseStatusMsg();
+
+    QVector<QPointF> points;
+    for(const CGisItemRte::rtept_t &pt : rte->getRoute().pts)
+    {
+        points << QPointF(pt.lon,pt.lat);
+    }
+
+    synchronous = false;
+
+    QNetworkReply * reply = networkAccessManager->get(getRequest(points,nogos));
+
+    reply->setProperty("key.item", key.item);
+    reply->setProperty("key.project", key.project);
+    reply->setProperty("key.device", key.device);
+    reply->setProperty("options", getOptions());
+    reply->setProperty("time", QDateTime::currentDateTimeUtc().toMSecsSinceEpoch());
+
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+        canvas->reportStatus("BRouter", tr("<b>BRouter</b><br/>Routing request sent to server. Please wait..."));
+    }
+
+    progress = new CProgressDialog(tr("Calculate route with %1").arg(getOptions()), 0, NOINT, this);
+
+    connect(progress, &CProgressDialog::rejected, reply, &QNetworkReply::abort);
+}
+
+void CRouterBRouter::slotRequestFinished(QNetworkReply* reply)
+{
+    if (synchronous)
+    {
+        return;
+    }
+
+    delete progress;
+
+    try
+    {
+        const QNetworkReply::NetworkError& netErr = reply->error();
+        if (netErr == QNetworkReply::RemoteHostClosedError && reply->property("nogos").toInt() > 1 && !isMinimumVersion(1,4,10))
+        {
+            throw tr("this version of BRouter does not support more then 1 nogo-area");
+        }
+        else if(netErr != QNetworkReply::NoError)
+        {
+            throw reply->errorString();
+        }
+
+        const QByteArray &res = reply->readAll();
+        reply->deleteLater();
+
+        if(res.isEmpty())
+        {
+            throw tr("response is empty");
+        }
+
+        slotClearError();
+
+        QDomDocument xml;
+        xml.setContent(res);
+
+        const QDomElement &xmlGpx = xml.documentElement();
+        if(xmlGpx.isNull() || xmlGpx.tagName() != "gpx")
+        {
+            throw QString(res);
+        }
+
+        IGisItem::key_t key;
+        key.item    = reply->property("key.item").toString();
+        key.project = reply->property("key.project").toString();
+        key.device  = reply->property("key.device").toString();
+        qint64 time = reply->property("time").toLongLong();
+        time = QDateTime::currentDateTimeUtc().toMSecsSinceEpoch() - time;
+
+        CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
+        if(rte != nullptr)
+        {
+            rte->setResultFromBRouter(xml, reply->property("options").toString() + tr("<br/>Calculation time: %1s").arg(time/1000.0, 0,'f',2));
+        }
+    }
+    catch(const QString& msg)
+    {
+        if(!msg.isEmpty())
+        {
+            CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+            if(canvas)
+            {
+                canvas->reportStatus("BRouter", tr("<b>BRouter</b><br/>Bad response from server:<br/>%1").arg(msg));
+            }
+            timerCloseStatusMsg->start();
+            reply->deleteLater();
+            mutex.unlock();
+            return;
+        }
+    }
+
+    slotCloseStatusMsg();
+    mutex.unlock();
+}
+
+QUrl CRouterBRouter::getServiceUrl() const
+{
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+    {
+        QUrl url(QString("http://"));
+        url.setHost(setup->localHost);
+        url.setPort(setup->localPort.toInt());
+        return url;
+    }
+    else
+    {
+        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
+        return QUrl(setup->onlineServiceUrl);
+    }
+}
+
+void CRouterBRouter::slotToggleConsole() const
+{
+    textBRouterOutput->setVisible(!textBRouterOutput->isVisible());
+    bool showError = brouterError != QProcess::UnknownError && !textBRouterOutput->isVisible();
+    textBRouterError->setVisible(showError);
+    pushBRouterError->setVisible(showError);
+}
+
+void CRouterBRouter::slotToggleBRouter() const
+{
+    if (brouterState == QProcess::NotRunning)
+    {
+        startBRouter();
+    }
+    else
+    {
+        stopBRouter();
+    }
+}
+
+void CRouterBRouter::startBRouter() const
+{
+    if (setup->isLocalBRouterInstalled())
+    {
+        textBRouterOutput->clear();
+        //# BRouter standalone server
+        //# java -cp brouter.jar btools.brouter.RouteServer <segmentdir> <profile-map> <customprofiledir> <port> <maxthreads>
+        //# maxRunningTime is the request timeout in seconds, set to 0 to disable timeout//    JAVA_OPTS=
+        //    CLASSPATH=../brouter.jar
+        //    java $JAVA_OPTS -cp $CLASSPATH btools.server.RouteServer ../segments4 ../profiles2 ../customprofiles 17777 1
+
+        if (brouterState == QProcess::NotRunning)
+        {
+            QStringList args;
+            args << setup->localJavaOpts.split(QRegExp("\\s+"));
+            args << QString("-DmaxRunningTime=%1").arg(setup->localMaxRunningTime);
+            args << "-cp";
+            args << "brouter.jar";
+            args << "btools.server.RouteServer";
+            args << setup->localSegmentsDir;
+            args << setup->localProfileDir;
+            args << setup->localCustomProfileDir;
+            args << setup->localPort;
+            args << setup->localNumberThreads;
+            if (usesLocalBindaddress())
+            {
+                args << setup->localHost;
+            }
+            brouterShell->start(setup->localDir, setup->localJavaExecutable, args);
+        }
+    }
+}
+
+void CRouterBRouter::stopBRouter() const
+{
+    if (brouterState != QProcess::NotRunning)
+    {
+        brouterShell->stop();
+    }
+    textBRouterOutput->setVisible(false);
+}
+
+void CRouterBRouter::getBRouterVersion()
+{
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+    {
+        if (setup->isLocalBRouterInstalled())
+        {
+            QProcess cmd;
+            QTimer timer;
+            QEventLoop eventLoop;
+
+            connect(&cmd,   static_cast<void (QProcess::*)(int)>(&QProcess::finished), &eventLoop, &QEventLoop::exit);
+            connect(&timer, &QTimer::timeout, &cmd,  &QProcess::kill);
+
+            QStringList args;
+            args << "-cp";
+            args << "brouter.jar";
+            args << "btools.server.RouteServer";
+
+            cmd.setWorkingDirectory(setup->localDir);
+            cmd.start(setup->localJavaExecutable,args);
+            timer.setSingleShot(true);
+            timer.start(200);
+
+            eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
+
+            parseBRouterVersion(QString(cmd.readAll()));
+        }
+        else
+        {
+            labelBRouter->setText("BRouter: not found");
+        }
+    }
+    else
+    {
+        // use 2 points known to be routable:
+        QVector<QPointF> points(2);
+        points.replace(0,QPointF(0.1944047317331011,0.8495732565736815)*RAD_TO_DEG);
+        points.replace(1,QPointF(0.1944047317331012,0.8495732565736816)*RAD_TO_DEG);
+        QPolygonF rt;
+        QList<IGisItem*> nogos;
+        // parseBRouterVersion is called while parsing remote brouters xml-response:
+        try
+        {
+            synchronousRequest(points,nogos,rt,true);
+        }
+        catch(const QString&)
+        {
+        }                        //fail silently
+    }
+}
+
+void CRouterBRouter::parseBRouterVersion(const QString &text)
+{
+    // version string is either like "BRouter 1.4.9 / 24092017"
+    // or (without the date) like "BRouter-1.4.9"
+    QRegExp rx("\\bBRouter[- ](\\d+)\\.(\\d+)\\.(\\d+)\\b");
+    if (rx.indexIn(text) > -1)
+    {
+        versionMajor = rx.cap(1).toInt();
+        versionMinor = rx.cap(2).toInt();
+        versionPatch = rx.cap(3).toInt();
+
+        labelBRouter->setToolTip(tr("BRouter (Version %1.%2.%3)")
+                                 .arg(versionMajor)
+                                 .arg(versionMinor)
+                                 .arg(versionPatch));
+    }
+    else
+    {
+        versionMajor = NOINT;
+        versionMinor = NOINT;
+        versionPatch = NOINT;
+
+        labelBRouter->setText("BRouter:");
+    }
+}
+
+bool CRouterBRouter::isMinimumVersion(int major, int minor, int patch) const
+{
+    if (versionMajor == NOINT || versionMinor == NOINT || versionPatch == NOINT)
+    {
+        return false;
+    }
+    if (versionMajor > major)
+    {
+        return true;
+    }
+    if (versionMajor < major)
+    {
+        return false;
+    }
+    if (versionMinor > minor)
+    {
+        return true;
+    }
+    if (versionMinor < minor)
+    {
+        return false;
+    }
+    if (versionPatch > patch)
+    {
+        return true;
+    }
+    if (versionPatch < patch)
+    {
+        return false;
+    }
+    return true;
+}
+
+bool CRouterBRouter::usesLocalBindaddress() const
+{
+    return setup->localBindLocalonly && isMinimumVersion(1,4,10);
+}
+
+void CRouterBRouter::slotBRouterStateChanged(const QProcess::ProcessState newState)
+{
+    brouterState = newState;
+    updateLocalBRouterStatus();
+}
+
+void CRouterBRouter::slotBRouterError(const QProcess::ProcessError error, const QString &errorString)
+{
+    brouterError = error;
+    slotDisplayError(tr("Error:"),errorString);
+    updateLocalBRouterStatus();
+}
+
+void CRouterBRouter::updateLocalBRouterStatus() const
+{
+    static const QString msgBRouterWarning = tr(
+        "QMapShack communicates with BRouter via a network connection. Usually this is done on a special "
+        "address that can't be reached from outside your device. However BRouter listens for connections "
+        "on all available interfaces. If you are in your own private network with an active firewall, this "
+        "is not much of a problem. If you are in a public network every open port is a risk as it can be "
+        "used by someone else to compromise your system. We do not recommend to use the local BRouter service "
+        "in this case. If you see this warning and use BRouter version >= 1.4.10 you can enforce binding to "
+        "local address by setting hostname to \"localhost\" and check \"Bind to hostname only\" in the setup "
+        "using expert mode."
+        );
+
+    if (isShutdown)
+    {
+        return;
+    }
+
+    labelBRouterWarning->hide();
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+    {
+        if (setup->isLocalBRouterInstalled())
+        {
+            switch(brouterState)
+            {
+            case QProcess::Starting:
+            {
+                SETTINGS;
+                if(!usesLocalBindaddress() && cfg.value("Route/brouter/local/showWarning", true).toBool())
+                {
+                    QMessageBox mbox;
+                    mbox.setWindowTitle(tr("Warning..."));
+                    mbox.setIcon(QMessageBox::Warning);
+                    mbox.setStandardButtons(QMessageBox::Ok);
+                    mbox.setText(msgBRouterWarning);
+
+                    QCheckBox * checkAgree = new QCheckBox(tr("I understand the risk. Don't tell me again."), &mbox);
+                    mbox.setCheckBox(checkAgree);
+                    mbox.exec();
+                    cfg.setValue("Route/brouter/local/showWarning", !checkAgree->isChecked());
+                }
+                labelStatus->setText(tr("starting"));
+                toolConsole->setVisible(true);
+                break;
+            }
+
+            case QProcess::Running:
+            {
+                labelBRouterWarning->setVisible(!usesLocalBindaddress());
+                labelStatus->setText(tr("running"));
+                toolConsole->setVisible(true);
+                break;
+            }
+
+            case QProcess::NotRunning:
+            {
+                labelStatus->setText(tr("stopped"));
+                toolConsole->setVisible(brouterError != QProcess::UnknownError);
+                break;
+            }
+            }
+
+            checkFastRecalc->setEnabled(true);
+            toolToggleBRouter->setEnabled(true);
+        }
+        else
+        {
+            labelStatus->setText(tr("not installed"));
+            toolConsole->setVisible(false);
+            toolToggleBRouter->setEnabled(false);
+            checkFastRecalc->setEnabled(false);
+        }
+        toolToggleBRouter->setVisible(true);
+        checkFastRecalc->setVisible(true);
+    }
+    else
+    {
+        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
+        labelStatus->setText(tr("online"));
+        toolConsole->setVisible(false);
+        toolToggleBRouter->setVisible(false);
+        checkFastRecalc->setVisible(false);
+        textBRouterOutput->clear();
+        textBRouterOutput->setVisible(false);
+    }
+}
diff --git a/src/qmapshack/gis/rte/router/CRouterBRouter.h b/src/qmapshack/gis/rte/router/CRouterBRouter.h
new file mode 100644
index 0000000..86d696b
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/CRouterBRouter.h
@@ -0,0 +1,99 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CROUTERBROUTER_H
+#define CROUTERBROUTER_H
+
+#include "gis/rte/router/IRouter.h"
+#include "ui_IRouterBRouter.h"
+
+#include <QNetworkAccessManager>
+#include <QProcess>
+#include <QTimer>
+
+class CRouterBRouterSetup;
+class CRouterBRouterSetupWizard;
+class CRouterBRouterInfo;
+class CRouterBRouterToolShell;
+class CRouterSetup;
+class CProgressDialog;
+
+class CRouterBRouter : public IRouter, private Ui::IRouterBRouter
+{
+    Q_OBJECT
+public:
+    CRouterBRouter(QWidget * parent);
+    virtual ~CRouterBRouter();
+
+    void calcRoute(const IGisItem::key_t& key) override;
+    int calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords) override;
+    bool hasFastRouting() override;
+    QString getOptions() override;
+    void routerSelected() override;
+
+private slots:
+    void slotToolSetupClicked();
+    void slotRequestFinished(QNetworkReply* reply);
+    void slotCloseStatusMsg() const;
+    void slotToolProfileInfoClicked() const;
+    void slotDisplayError(const QString &error, const QString &details) const;
+    void slotDisplayProfileInfo(const QString &profile, const QString &content);
+    void slotBRouterStateChanged(const QProcess::ProcessState newState);
+    void slotBRouterError(const QProcess::ProcessError error, const QString &errorString);
+    void slotToggleBRouter() const;
+    void slotToggleConsole() const;
+    void slotClearError();
+
+private:
+
+    void updateDialog() const;
+    void startBRouter() const;
+    void stopBRouter() const;
+    void getBRouterVersion();
+    bool isMinimumVersion(int major, int minor, int patch) const;
+    void parseBRouterVersion(const QString& text);
+    bool usesLocalBindaddress() const;
+    void updateLocalBRouterStatus() const;
+    int synchronousRequest(const QVector<QPointF>& points, const QList<IGisItem *> &nogos, QPolygonF &coords, bool isVersionRequest);
+    QNetworkRequest getRequest(const QVector<QPointF>& routePoints, const QList<IGisItem *> &nogos) const;
+    QUrl getServiceUrl() const;
+
+    QNetworkAccessManager * networkAccessManager;
+    QTimer * timerCloseStatusMsg;
+    bool synchronous = false;
+    QMutex mutex {QMutex::NonRecursive};
+    CRouterBRouterSetup * setup;
+    CRouterSetup * routerSetup;
+    CRouterBRouterInfo * info;
+    CRouterBRouterToolShell * brouterShell {nullptr};
+    QProcess::ProcessState brouterState { QProcess::NotRunning };
+    QProcess::ProcessError brouterError { QProcess::UnknownError };
+    CProgressDialog * progress;
+    bool isError { false };
+    QString error;
+    QString errorDetails;
+    bool isShutdown { false };
+
+    int versionMajor { NOINT };
+    int versionMinor { NOINT };
+    int versionPatch { NOINT };
+};
+
+#endif //CROUTERBROUTER_H
+
diff --git a/src/gis/rte/router/CRouterMapQuest.cpp b/src/qmapshack/gis/rte/router/CRouterMapQuest.cpp
similarity index 100%
rename from src/gis/rte/router/CRouterMapQuest.cpp
rename to src/qmapshack/gis/rte/router/CRouterMapQuest.cpp
diff --git a/src/gis/rte/router/CRouterMapQuest.h b/src/qmapshack/gis/rte/router/CRouterMapQuest.h
similarity index 100%
rename from src/gis/rte/router/CRouterMapQuest.h
rename to src/qmapshack/gis/rte/router/CRouterMapQuest.h
diff --git a/src/gis/rte/router/CRouterRoutino.cpp b/src/qmapshack/gis/rte/router/CRouterRoutino.cpp
similarity index 100%
rename from src/gis/rte/router/CRouterRoutino.cpp
rename to src/qmapshack/gis/rte/router/CRouterRoutino.cpp
diff --git a/src/gis/rte/router/CRouterRoutino.h b/src/qmapshack/gis/rte/router/CRouterRoutino.h
similarity index 100%
rename from src/gis/rte/router/CRouterRoutino.h
rename to src/qmapshack/gis/rte/router/CRouterRoutino.h
diff --git a/src/qmapshack/gis/rte/router/CRouterSetup.cpp b/src/qmapshack/gis/rte/router/CRouterSetup.cpp
new file mode 100644
index 0000000..0ca0f47
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/CRouterSetup.cpp
@@ -0,0 +1,101 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "gis/CGisWorkspace.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/rte/router/CRouterBRouter.h"
+#include "gis/rte/router/CRouterMapQuest.h"
+#include "gis/rte/router/CRouterRoutino.h"
+#include "gis/rte/router/CRouterSetup.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CRouterSetup * CRouterSetup::pSelf = nullptr;
+
+CRouterSetup::CRouterSetup(QWidget * parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+    pSelf = this;
+
+    comboRouter->addItem(tr("Routino (offline)"));
+    comboRouter->addItem(tr("MapQuest (online)"));
+    comboRouter->addItem(tr("BRouter (online)"));
+
+    stackedWidget->addWidget(new CRouterRoutino(this));
+    stackedWidget->addWidget(new CRouterMapQuest(this));
+    stackedWidget->addWidget(new CRouterBRouter(this));
+
+    connect(comboRouter, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CRouterSetup::slotSelectRouter);
+
+    SETTINGS;
+    comboRouter->setCurrentIndex(cfg.value("Route/current",0).toInt());
+}
+
+CRouterSetup::~CRouterSetup()
+{
+    SETTINGS;
+    cfg.setValue("Route/current", comboRouter->currentIndex());
+}
+
+bool CRouterSetup::hasFastRouting()
+{
+    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
+    if(router)
+    {
+        return router->hasFastRouting();
+    }
+    return false;
+}
+
+void CRouterSetup::slotSelectRouter(int i)
+{
+    stackedWidget->setCurrentIndex(i);
+    IRouter * router = dynamic_cast<IRouter *>(stackedWidget->currentWidget());
+    if (router != nullptr)
+    {
+        router->routerSelected();
+    }
+}
+
+void CRouterSetup::calcRoute(const IGisItem::key_t& key)
+{
+    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
+    if(router)
+    {
+        router->calcRoute(key);
+    }
+}
+
+int CRouterSetup::calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords)
+{
+    IRouter * router = dynamic_cast<IRouter*>(stackedWidget->currentWidget());
+    if(router)
+    {
+        return router->calcRoute(p1, p2, coords);
+    }
+
+    return false;
+}
+
+void CRouterSetup::setRouterTitle(const router_e router, const QString title)
+{
+    comboRouter->setItemText(router,title);
+}
diff --git a/src/gis/rte/router/CRouterSetup.h b/src/qmapshack/gis/rte/router/CRouterSetup.h
similarity index 100%
rename from src/gis/rte/router/CRouterSetup.h
rename to src/qmapshack/gis/rte/router/CRouterSetup.h
diff --git a/src/gis/rte/router/IRouter.cpp b/src/qmapshack/gis/rte/router/IRouter.cpp
similarity index 100%
rename from src/gis/rte/router/IRouter.cpp
rename to src/qmapshack/gis/rte/router/IRouter.cpp
diff --git a/src/qmapshack/gis/rte/router/IRouter.h b/src/qmapshack/gis/rte/router/IRouter.h
new file mode 100644
index 0000000..c978868
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/IRouter.h
@@ -0,0 +1,48 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef IROUTER_H
+#define IROUTER_H
+
+#include "gis/IGisItem.h"
+#include <QWidget>
+
+class IRouter : public QWidget
+{
+    Q_OBJECT
+public:
+    IRouter(bool fastRouting, QWidget * parent);
+    virtual ~IRouter();
+
+    virtual void calcRoute(const IGisItem::key_t& key) = 0;
+    virtual int calcRoute(const QPointF& p1, const QPointF& p2, QPolygonF& coords) = 0;
+    virtual bool hasFastRouting()
+    {
+        return fastRouting;
+    }
+
+    virtual QString getOptions() = 0;
+
+    virtual void routerSelected() {}
+
+private:
+    bool fastRouting;
+};
+
+#endif //IROUTER_H
+
diff --git a/src/qmapshack/gis/rte/router/IRouterBRouter.ui b/src/qmapshack/gis/rte/router/IRouterBRouter.ui
new file mode 100644
index 0000000..32a0b53
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/IRouterBRouter.ui
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRouterBRouter</class>
+ <widget class="QWidget" name="IRouterBRouter">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>433</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QFormLayout" name="formLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Profile</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Alternative</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="comboAlternative">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QComboBox" name="comboProfile">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="toolProfileInfo">
+         <property name="toolTip">
+          <string>display selected routing profile</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset resource="../../../resources.qrc">
+           <normaloff>:/icons/32x32/Help.png</normaloff>:/icons/32x32/Help.png</iconset>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QCheckBox" name="checkFastRecalc">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="text">
+        <string>on-the-fly routing</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QLabel" name="labelBRouter">
+       <property name="text">
+        <string>BRouter: </string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelStatus">
+       <property name="text">
+        <string>not running</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolToggleBRouter">
+       <property name="toolTip">
+        <string>start/stop BRouter</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../../resources.qrc">
+         <normaloff>:/icons/32x32/Off.png</normaloff>:/icons/32x32/Off.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolConsole">
+       <property name="toolTip">
+        <string>show BRouter console</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../../resources.qrc">
+         <normaloff>:/icons/32x32/TextLeft.png</normaloff>:/icons/32x32/TextLeft.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolSetup">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>Setup</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelBRouterWarning">
+     <property name="text">
+      <string>Caution! BRouter is listening on all ports for connections.</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QTextBrowser" name="textBRouterOutput">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QTextBrowser" name="textBRouterError"/>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_4">
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushBRouterError">
+       <property name="text">
+        <string>Dismiss</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelCopyrightBRouter">
+     <property name="text">
+      <string><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelCopyrightBRouterWeb">
+     <property name="text">
+      <string><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelCopyrightOSM">
+     <property name="text">
+      <string><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/rte/router/IRouterMapQuest.ui b/src/qmapshack/gis/rte/router/IRouterMapQuest.ui
new file mode 100644
index 0000000..b7bd8c3
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/IRouterMapQuest.ui
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRouterMapQuest</class>
+ <widget class="QWidget" name="IRouterMapQuest">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="3" column="0">
+      <widget class="QCheckBox" name="checkMQAvoidLimAccess">
+       <property name="text">
+        <string>Highways</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QCheckBox" name="checkMQAvoidSeasonal">
+       <property name="text">
+        <string>Seasonal</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Language</string>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="1">
+      <widget class="QCheckBox" name="checkMQAvoidCountryBorder">
+       <property name="text">
+        <string>Country Border</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="comboMQLanguage"/>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Profile</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Avoid:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="0">
+      <widget class="QCheckBox" name="checkMQAvoidFerry">
+       <property name="text">
+        <string>Ferry</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QCheckBox" name="checkMQAvoidTollRoads">
+       <property name="text">
+        <string>Toll Road</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QComboBox" name="comboMQPreference"/>
+     </item>
+     <item row="4" column="1">
+      <widget class="QCheckBox" name="checkMQAvoidUnpaved">
+       <property name="text">
+        <string>Unpaved</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>123</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelCopyrightMapQuest">
+     <property name="text">
+      <string><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></string>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/rte/router/IRouterRoutino.ui b/src/qmapshack/gis/rte/router/IRouterRoutino.ui
new file mode 100644
index 0000000..6887bd0
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/IRouterRoutino.ui
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRouterRoutino</class>
+ <widget class="QWidget" name="IRouterRoutino">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="3" column="1">
+      <widget class="QComboBox" name="comboDatabase"/>
+     </item>
+     <item row="0" column="1">
+      <widget class="QComboBox" name="comboProfile"/>
+     </item>
+     <item row="2" column="1">
+      <widget class="QComboBox" name="comboMode"/>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Profile</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Mode</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string>Database</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="2">
+      <widget class="QToolButton" name="toolSetupPaths">
+       <property name="toolTip">
+        <string>Add paths with Routino database.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../../resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_6">
+       <property name="text">
+        <string>Language</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QComboBox" name="comboLanguage"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QFrame" name="frameHelp">
+       <property name="frameShape">
+        <enum>QFrame::NoFrame</enum>
+       </property>
+       <property name="frameShadow">
+        <enum>QFrame::Plain</enum>
+       </property>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <property name="spacing">
+         <number>3</number>
+        </property>
+        <property name="leftMargin">
+         <number>3</number>
+        </property>
+        <property name="topMargin">
+         <number>3</number>
+        </property>
+        <property name="rightMargin">
+         <number>3</number>
+        </property>
+        <property name="bottomMargin">
+         <number>3</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label_3">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="text">
+           <string/>
+          </property>
+          <property name="pixmap">
+           <pixmap resource="../../../resources.qrc">:/icons/48x48/Help.png</pixmap>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_4">
+          <property name="text">
+           <string>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignJustify|Qt::AlignTop</set>
+          </property>
+          <property name="wordWrap">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/rte/router/IRouterSetup.ui b/src/qmapshack/gis/rte/router/IRouterSetup.ui
new file mode 100644
index 0000000..29e8880
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/IRouterSetup.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRouterSetup</class>
+ <widget class="QWidget" name="IRouterSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>302</width>
+    <height>382</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QComboBox" name="comboRouter"/>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QStackedWidget" name="stackedWidget"/>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/gis/rte/router/brouter/CRouterBRouterInfo.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterInfo.cpp
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterInfo.cpp
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterInfo.cpp
diff --git a/src/gis/rte/router/brouter/CRouterBRouterInfo.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterInfo.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterInfo.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterInfo.h
diff --git a/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.cpp
new file mode 100644
index 0000000..1c6ca86
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.cpp
@@ -0,0 +1,628 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "gis/rte/router/brouter/CRouterBRouterSetup.h"
+
+#include "helpers/CSettings.h"
+#include "setup/IAppSetup.h"
+#include <QMessageBox>
+#include <QWebFrame>
+#include <QWebPage>
+#include <QtScript>
+#include <QtWebKit>
+
+CRouterBRouterSetup::CRouterBRouterSetup(QObject *parent)
+    : QObject(parent)
+{
+    networkAccessManager = new QNetworkAccessManager(this);
+    profilesWebPage = new QWebPage(this);
+    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouterSetup::slotOnlineRequestFinished);
+    connect(profilesWebPage, &QWebPage::loadFinished, this, &CRouterBRouterSetup::slotLoadOnlineProfilesRequestFinished);
+}
+
+CRouterBRouterSetup::~CRouterBRouterSetup()
+{
+}
+
+void CRouterBRouterSetup::load()
+{
+    SETTINGS;
+    cfg.beginGroup("Route/brouter");
+    installMode = modeFromString(cfg.value("installMode",stringFromMode(defaultInstallMode)).toString());
+    expertMode = cfg.value("expertMode",defaultExpertMode).toBool();
+    onlineWebUrl = cfg.value("onlineWebUrl", defaultOnlineWebUrl).toString();
+    onlineServiceUrl = cfg.value("onlineServiceUrl", defaultOnlineServiceUrl).toString();
+    onlineProfilesUrl = cfg.value("onlineProfilesUrl", defaultOnlineProfilesUrl).toString();
+    localDir = cfg.value("localDir", defaultLocalDir).toString();
+    localJavaExecutable = cfg.value("localJava",findJava()).toString();
+    localProfileDir = cfg.value("localProfileDir", defaultLocalProfileDir).toString();
+    localCustomProfileDir = cfg.value("localCustomProfileDir", defaultLocalCustomProfileDir).toString();
+    localSegmentsDir = cfg.value("localSegmentsDir", defaultLocalSegmentsDir).toString();
+    localHost = cfg.value("localHost", defaultLocalHost).toString();
+    localPort = cfg.value("localPort", defaultLocalPort).toString();
+    localBindLocalonly = cfg.value("localBindLocalonly", defaultLocalBindLocalonly).toBool();
+    localNumberThreads = cfg.value("localNumberThreads", defaultLocalNumberThreads).toString();
+    localMaxRunningTime = cfg.value("localMaxRunningTime", defaultLocalMaxRunningTime).toString();
+    localJavaOpts = cfg.value("localJavaOpts", defaultLocalJavaOpts).toString();
+    binariesUrl = cfg.value("binariesUrl",defaultBinariesUrl).toString();
+    segmentsUrl = cfg.value("segmentsUrl",defaultSegmentsUrl).toString();
+    onlineProfiles.clear();
+    int size = cfg.beginReadArray("online");
+    for (int i=0; i < size; i++)
+    {
+        cfg.setArrayIndex(i);
+        onlineProfiles << cfg.value("profile").toString();
+    }
+    cfg.endArray();
+    localProfiles.clear();
+    size = cfg.beginReadArray("local");
+    for (int i=0; i < size; i++)
+    {
+        cfg.setArrayIndex(i);
+        localProfiles << cfg.value("profile").toString();
+    }
+    cfg.endArray();
+    cfg.endGroup();
+
+    if (installMode == eModeLocal)
+    {
+        readLocalProfiles();
+    }
+    else if (installMode == eModeOnline)
+    {
+        loadOnlineConfig();
+    }
+    else
+    {
+        onInvalidSetup();
+    }
+}
+
+void CRouterBRouterSetup::save()
+{
+    SETTINGS;
+    cfg.beginGroup("Route/brouter");
+    cfg.setValue("expertMode",expertMode);
+    cfg.setValue("installMode", stringFromMode(installMode));
+    cfg.setValue("onlineWebUrl", onlineWebUrl);
+    cfg.setValue("onlineServiceUrl", onlineServiceUrl);
+    cfg.setValue("onlineProfilesUrl", onlineProfilesUrl);
+    cfg.setValue("localDir", localDir);
+    cfg.setValue("localJava", localJavaExecutable);
+    cfg.setValue("localProfileDir", localProfileDir);
+    cfg.setValue("localCustomProfileDir", localCustomProfileDir);
+    cfg.setValue("localSegmentsDir", localSegmentsDir);
+    cfg.setValue("localHost", localHost);
+    cfg.setValue("localPort", localPort);
+    cfg.setValue("localBindLocalonly", localBindLocalonly);
+    cfg.setValue("localNumberThreads", localNumberThreads);
+    cfg.setValue("localMaxRunningTime", localMaxRunningTime);
+    cfg.setValue("localJavaOpts", localJavaOpts);
+    cfg.setValue("binariesUrl", binariesUrl);
+    cfg.setValue("segmentsUrl", segmentsUrl);
+    cfg.beginWriteArray("online");
+    for (int i=0; i < onlineProfiles.size(); i++)
+    {
+        cfg.setArrayIndex(i);
+        cfg.setValue("profile", onlineProfiles.at(i));
+    }
+    cfg.endArray();
+    cfg.beginWriteArray("local");
+    for (int i=0; i < localProfiles.size(); i++)
+    {
+        cfg.setArrayIndex(i);
+        cfg.setValue("profile",localProfiles.at(i));
+    }
+    cfg.endArray();
+    cfg.endGroup();
+}
+
+void CRouterBRouterSetup::resetAll()
+{
+    resetInstallMode();
+    resetOnlineWebUrl();
+    resetOnlineServiceUrl();
+    resetOnlineProfilesUrl();
+    resetLocalProfileDir();
+    resetLocalCustomProfileDir();
+    resetLocalSegmentsDir();
+    resetLocalHost();
+    resetLocalPort();
+    resetLocalBindLocalonly();
+    resetLocalNumberThreads();
+    resetLocalMaxRunningTime();
+    resetLocalJavaOpts();
+    resetBinariesUrl();
+    resetSegmentsUrl();
+}
+
+CRouterBRouterSetup::mode_e CRouterBRouterSetup::modeFromString(const QString& mode) const
+{
+    if (mode == "online")
+    {
+        return eModeOnline;
+    }
+    else if (mode == "local")
+    {
+        return eModeLocal;
+    }
+    else
+    {
+        return eModeIllegal;
+    }
+}
+
+QString CRouterBRouterSetup::stringFromMode(const mode_e mode) const
+{
+    if (mode == eModeLocal)
+    {
+        return "local";
+    }
+    else
+    {
+        Q_ASSERT(mode == eModeOnline);
+        return "online";
+    }
+}
+
+void CRouterBRouterSetup::addProfile(const QString &profile)
+{
+    if (installMode == eModeLocal)
+    {
+        loadOnlineProfileAsync(profile, eProfileInstall);
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        if (!onlineProfiles.contains(profile))
+        {
+            onlineProfiles << profile;
+            emit sigProfilesChanged();
+        }
+    }
+}
+
+void CRouterBRouterSetup::deleteProfile(const QString &profile)
+{
+    if (installMode == eModeLocal)
+    {
+        const QString &filename = getProfileDir(eModeLocal).absoluteFilePath(profile + ".brf");
+        QFile file(filename);
+        if (file.exists())
+        {
+            file.remove();
+        }
+        if (localProfiles.contains(profile))
+        {
+            localProfiles.removeAt(localProfiles.indexOf(profile));
+            emit sigProfilesChanged();
+        }
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        onlineProfiles.removeAt(onlineProfiles.indexOf(profile));
+        emit sigProfilesChanged();
+    }
+}
+
+void CRouterBRouterSetup::profileUp(const QString &profile)
+{
+    if (installMode == eModeLocal)
+    {
+        int index = localProfiles.indexOf(profile);
+        if (index > 0)
+        {
+            localProfiles.removeAt(index);
+            localProfiles.insert(index-1,profile);
+            emit sigProfilesChanged();
+        }
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        int index = onlineProfiles.indexOf(profile);
+        if (index > 0)
+        {
+            onlineProfiles.removeAt(index);
+            onlineProfiles.insert(index-1,profile);
+            emit sigProfilesChanged();
+        }
+    }
+}
+
+void CRouterBRouterSetup::profileDown(const QString &profile)
+{
+    if (installMode == eModeLocal)
+    {
+        int index = localProfiles.indexOf(profile);
+        if (index > -1 && index < localProfiles.size()-1)
+        {
+            localProfiles.removeAt(index);
+            localProfiles.insert(index+1,profile);
+            emit sigProfilesChanged();
+        }
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        int index = onlineProfiles.indexOf(profile);
+        if (index > -1 && index < onlineProfiles.size()-1)
+        {
+            onlineProfiles.removeAt(index);
+            onlineProfiles.insert(index+1,profile);
+            emit sigProfilesChanged();
+        }
+    }
+}
+
+void CRouterBRouterSetup::readLocalProfiles()
+{
+    bool changed(false);
+    const QDir& dir = getProfileDir(eModeLocal);
+    QStringList installedProfiles;
+    if (dir.exists())
+    {
+        for(const QString &profile : dir.entryList())
+        {
+            if (profile.endsWith(".brf"))
+            {
+                installedProfiles << profile.left(profile.length()-4);
+            }
+        }
+    }
+    const QStringList localProfilesTmp(localProfiles);
+    for (const QString &profile : localProfilesTmp)
+    {
+        if (!installedProfiles.contains(profile))
+        {
+            localProfiles.removeAt(localProfiles.indexOf(profile));
+            changed = true;
+        }
+    }
+    for (const QString &profile : installedProfiles)
+    {
+        if (!localProfiles.contains(profile))
+        {
+            localProfiles << profile;
+            changed = true;
+        }
+    }
+    if (changed)
+    {
+        emit sigProfilesChanged();
+    }
+}
+
+QDir CRouterBRouterSetup::getProfileDir(const mode_e mode) const
+{
+    if (mode == eModeLocal)
+    {
+        return QDir(QDir(localDir).absoluteFilePath(localProfileDir));
+    }
+    else
+    {
+        Q_ASSERT(mode == eModeOnline);
+        QDir brouterDir(QDir(IAppSetup::getPlatformInstance()->defaultCachePath()).absoluteFilePath(onlineCacheDir));
+        if (!brouterDir.exists())
+        {
+            brouterDir.mkpath(brouterDir.absolutePath());
+        }
+        return brouterDir;
+    }
+}
+
+QStringList CRouterBRouterSetup::getProfiles() const
+{
+    if (installMode == eModeLocal)
+    {
+        return localProfiles;
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        return onlineProfiles;
+    }
+}
+
+void CRouterBRouterSetup::loadLocalOnlineProfiles() const
+{
+    profilesWebPage->mainFrame()->load(QUrl(onlineProfilesUrl));
+}
+
+void CRouterBRouterSetup::loadOnlineConfig() const
+{
+    const QUrl configUrl(onlineWebUrl + "config.js");
+    const QString &configHost = configUrl.host();
+
+    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(configUrl));
+    reply->setProperty("configHost",configHost);
+    reply->setProperty("type",eTypeConfig);
+}
+
+void CRouterBRouterSetup::slotOnlineRequestFinished(QNetworkReply *reply)
+{
+    const request_e type = request_e(reply->property("type").toInt());
+    if (type == eTypeConfig)
+    {
+        loadOnlineConfigFinished(reply);
+    }
+    else
+    {
+        Q_ASSERT(type ==  eTypeProfile);
+        loadOnlineProfileFinished(reply);
+    }
+}
+
+void CRouterBRouterSetup::loadOnlineConfigFinished(QNetworkReply *reply)
+{
+    reply->deleteLater();
+
+    if (reply->error() != QNetworkReply::NoError)
+    {
+        emitNetworkError(reply->errorString());
+        return;
+    }
+    else
+    {
+        QString configHost = reply->property("configHost").toString();
+
+        const QString jsConfig(reply->readAll());
+
+        QScriptEngine engine;
+
+        const QString &jsSetup = QString( \
+            "(function(){\
+                       window = {};\
+                       window.location = {};\
+                       window.location.hostname = '%1';\
+                       window.location.search = {};\
+                       window.location.search.slice = function() {};\
+                       URLSearchParams = function() {};\
+                       BR = {};\
+                      })();").arg(configHost);
+
+        engine.evaluate(jsSetup).toString();
+        engine.evaluate(jsConfig).toString();
+        if (engine.hasUncaughtException())
+        {
+            emitOnlineConfigScriptError(engine.uncaughtException());
+            return;
+        }
+
+        const QScriptValue &br = engine.globalObject().property("BR");
+        if (!br.isValid() || br.isError())
+        {
+            emitOnlineConfigScriptError(br);
+            return;
+        }
+        const QScriptValue &conf = br.property("conf");
+        if (!conf.isValid() || conf.isError())
+        {
+            emitOnlineConfigScriptError(conf);
+            return;
+        }
+
+        const QScriptValue &host = conf.property("host").toString();
+        if (!host.isValid() || host.isError())
+        {
+            emitOnlineConfigScriptError(host);
+            return;
+        }
+        if (onlineServiceUrl != host.toString())
+        {
+            onlineServiceUrl = host.toString();
+        }
+        const QScriptValue &url = conf.property("profilesUrl").toString();
+        if (!url.isValid() || url.isError())
+        {
+            emitOnlineConfigScriptError(url);
+            return;
+        }
+        if (onlineProfilesUrl != url.toString())
+        {
+            onlineProfilesUrl = url.toString();
+        }
+
+        const QScriptValue &profiles = conf.property("profiles");
+        if (!profiles.isValid() || profiles.isError())
+        {
+            emitOnlineConfigScriptError(profiles);
+            return;
+        }
+        const qint32 len = profiles.property("length").toInt32();
+
+        QStringList onlineProfilesLoaded;
+        for(qint32 i=0; i<len; i++)
+        {
+            const QScriptValue &profile = profiles.property(i);
+            if (!profile.isValid() || profile.isError())
+            {
+                emitOnlineConfigScriptError(profile);
+                return;
+            }
+            onlineProfilesLoaded << profile.toString();
+        }
+
+        mergeOnlineProfiles(onlineProfilesLoaded);
+
+        const QStringList onlineProfilesTmp(onlineProfiles);
+        for (const QString &profile : onlineProfilesTmp)
+        {
+            if (!onlineProfilesAvailable.contains(profile))
+            {
+                onlineProfiles.removeAt(onlineProfiles.indexOf(profile));
+            }
+        }
+
+        emit sigProfilesChanged();
+        emit sigOnlineConfigLoaded();
+    }
+}
+
+void CRouterBRouterSetup::slotLoadOnlineProfilesRequestFinished(bool ok)
+{
+    if (!ok)
+    {
+        emitNetworkError(tr("%1 not accessible").arg(onlineProfilesUrl));
+        return;
+    }
+    else
+    {
+        const QWebElement &htmlElement = profilesWebPage->mainFrame()->documentElement();
+        const QWebElementCollection &anchorElements = htmlElement.findAll("table tr td a");
+
+        if (anchorElements.count() == 0)
+        {
+            emitNetworkError(tr("%1 invalid result").arg(onlineProfilesUrl));
+            return;
+        }
+
+        const QRegExp rxProfileName("(\\S+)\\.brf");
+
+        QStringList onlineProfilesLoaded;
+        for (const QWebElement &anchorElement : anchorElements)
+        {
+            const QString &profileName = anchorElement.toPlainText();
+            //only anchors matching the desired pattern
+            if (rxProfileName.indexIn(profileName) > -1)
+            {
+                onlineProfilesLoaded << rxProfileName.cap(1);
+            }
+        }
+
+        mergeOnlineProfiles(onlineProfilesLoaded);
+
+        emit sigProfilesChanged();
+    }
+}
+
+void CRouterBRouterSetup::mergeOnlineProfiles(const QStringList &onlineProfilesLoaded)
+{
+    const QStringList onlineProfilesAvailableTmp(onlineProfilesAvailable);
+    for (const QString &profile : onlineProfilesAvailableTmp)
+    {
+        if (!onlineProfilesLoaded.contains(profile))
+        {
+            onlineProfilesAvailable.removeAt(onlineProfilesAvailable.indexOf(profile));
+        }
+    }
+    for (const QString &profile : onlineProfilesLoaded)
+    {
+        if (!onlineProfilesAvailable.contains(profile))
+        {
+            onlineProfilesAvailable << profile;
+        }
+    }
+}
+
+void CRouterBRouterSetup::emitOnlineConfigScriptError(const QScriptValue &error) const
+{
+    emit sigError(tr("Error parsing online-config:"),error.toString());
+}
+
+void CRouterBRouterSetup::emitNetworkError(QString error) const
+{
+    emit sigError(tr("Network error:"),error);
+}
+
+void CRouterBRouterSetup::displayProfileAsync(const QString &profile) const
+{
+    if (installMode == eModeLocal)
+    {
+        QFile file(getProfileDir(eModeLocal).absoluteFilePath(profile + ".brf"));
+        if (file.exists())
+        {
+            file.open(QIODevice::ReadOnly);
+            const QByteArray &content = file.readAll();
+            file.close();
+            emit sigDisplayOnlineProfileFinished(profile, QString(content));
+        }
+    }
+    else
+    {
+        Q_ASSERT(installMode == eModeOnline);
+        loadOnlineProfileAsync(profile, eProfileDisplay);
+    }
+}
+
+void CRouterBRouterSetup::displayOnlineProfileAsync(const QString &profile) const
+{
+    loadOnlineProfileAsync(profile, eProfileDisplay);
+}
+
+void CRouterBRouterSetup::loadOnlineProfileAsync(const QString &profile, const profileRequest_e mode) const
+{
+    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(QUrl(onlineProfilesUrl + profile +".brf")));
+    reply->setProperty("type",eTypeProfile);
+    reply->setProperty("profile", profile);
+    reply->setProperty("request", mode);
+}
+
+void CRouterBRouterSetup::loadOnlineProfileFinished(QNetworkReply * reply)
+{
+    reply->deleteLater();
+    if (reply->error() != QNetworkReply::NoError)
+    {
+        emitNetworkError(reply->errorString());
+    }
+    else
+    {
+        const QString &profile = reply->property("profile").toString();
+        const profileRequest_e mode = profileRequest_e(reply->property("request").toInt());
+
+        const QByteArray &content = reply->readAll();
+        if (mode == eProfileInstall)
+        {
+            const QDir dir = getProfileDir(eModeLocal);
+            const QString filename = dir.absoluteFilePath(profile + ".brf");
+            QFile file(filename);
+            file.open(QIODevice::WriteOnly);
+            file.write(content);
+            file.close();
+            readLocalProfiles();
+        }
+        else
+        {
+            Q_ASSERT(mode == eProfileDisplay);
+            emit sigDisplayOnlineProfileFinished(profile, QString(content));
+        }
+    }
+}
+
+bool CRouterBRouterSetup::isLocalBRouterInstalled() const
+{
+    const QDir dir(localDir);
+    return QFile(dir.absoluteFilePath("brouter.jar")).exists() && QDir(dir.absoluteFilePath(localProfileDir)).exists();
+}
+
+QString CRouterBRouterSetup::findJava() const
+{
+    return IAppSetup::getPlatformInstance()->findExecutable("java");
+}
+
+void CRouterBRouterSetup::onInvalidSetup()
+{
+    QMessageBox msgBox;
+    msgBox.setIcon(QMessageBox::Warning);
+    msgBox.setText("BRouter config is inconsistent!");
+    msgBox.setInformativeText("Resetting to default values");
+    msgBox.setStandardButtons(QMessageBox::Ok);
+    msgBox.exec();
+    resetAll();
+}
diff --git a/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.h
new file mode 100644
index 0000000..878d1be
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetup.h
@@ -0,0 +1,151 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CROUTERBROUTERSETUP_H
+#define CROUTERBROUTERSETUP_H
+
+#include <QScriptValue>
+#include <QWebPage>
+#include <QtCore>
+
+class CRouterBRouterSetup : public QObject
+{
+    Q_OBJECT
+public:
+    CRouterBRouterSetup(QObject * parent);
+    ~CRouterBRouterSetup();
+
+    enum mode_e { eModeLocal, eModeOnline, eModeIllegal };
+    struct tile_t { QPoint tile; QDateTime date; qreal size; };
+
+    void load();
+    void save();
+
+    void resetAll();
+    void resetInstallMode() { installMode = defaultInstallMode; }
+    void resetOnlineWebUrl() { onlineWebUrl = defaultOnlineWebUrl; }
+    void resetOnlineServiceUrl() { onlineServiceUrl = defaultOnlineServiceUrl; }
+    void resetOnlineProfilesUrl() { onlineProfilesUrl = defaultOnlineProfilesUrl; }
+    void resetLocalProfileDir() { localProfileDir = defaultLocalProfileDir; }
+    void resetLocalCustomProfileDir() { localCustomProfileDir = defaultLocalCustomProfileDir; }
+    void resetLocalSegmentsDir() { localSegmentsDir = defaultLocalSegmentsDir; }
+    void resetLocalHost() { localHost = defaultLocalHost; }
+    void resetLocalPort() { localPort = defaultLocalPort; }
+    void resetLocalBindLocalonly() { localBindLocalonly = defaultLocalBindLocalonly; }
+    void resetLocalNumberThreads() { localNumberThreads = defaultLocalNumberThreads; }
+    void resetLocalMaxRunningTime() { localMaxRunningTime = defaultLocalMaxRunningTime; }
+    void resetLocalJavaOpts() { localJavaOpts = defaultLocalJavaOpts; }
+    void resetBinariesUrl() { binariesUrl = defaultBinariesUrl; }
+    void resetSegmentsUrl() { segmentsUrl = defaultSegmentsUrl; }
+
+    QStringList getProfiles() const;
+
+    void addProfile(const QString &profile);
+    void deleteProfile(const QString &profile);
+    void profileUp(const QString &profile);
+    void profileDown(const QString &profile);
+
+    void readLocalProfiles();
+
+    void loadOnlineConfig() const;
+    void loadLocalOnlineProfiles() const;
+    void displayProfileAsync(const QString &profile) const;
+    void displayOnlineProfileAsync(const QString &profile) const;
+
+    QString findJava() const;
+    bool isLocalBRouterInstalled() const;
+
+    void onInvalidSetup();
+
+signals:
+    void sigOnlineConfigLoaded() const;
+    void sigProfilesChanged() const;
+    void sigDisplayOnlineProfileFinished(const QString profile, const QString content) const;
+    void sigError(const QString error, const QString details) const;
+
+private slots:
+    void slotOnlineRequestFinished(QNetworkReply *reply);
+    void slotLoadOnlineProfilesRequestFinished(bool ok);
+
+private:
+    enum request_e { eTypeConfig, eTypeProfile };
+    enum profileRequest_e { eProfileInstall, eProfileDisplay };
+
+    QDir getProfileDir(const mode_e mode) const;
+    void loadOnlineProfileAsync(const QString &profile, const profileRequest_e mode) const;
+    void loadOnlineConfigFinished(QNetworkReply* reply);
+    void loadOnlineProfileFinished(QNetworkReply * reply);
+    void mergeOnlineProfiles(const QStringList &profilesLoaded);
+    void emitOnlineConfigScriptError(const QScriptValue &error) const;
+    void emitNetworkError(QString error) const;
+    mode_e modeFromString(const QString &mode) const;
+    QString stringFromMode(const mode_e mode) const;
+
+    QStringList onlineProfiles;
+    QStringList localProfiles;
+
+    QNetworkAccessManager * networkAccessManager;
+    QWebPage * profilesWebPage;
+
+    bool expertMode;
+    mode_e installMode;
+    QString onlineWebUrl;
+    QString onlineServiceUrl;
+    QString onlineProfilesUrl;
+    QStringList onlineProfilesAvailable;
+    QString localDir;
+    QString localJavaExecutable;
+    QString localProfileDir;
+    QString localCustomProfileDir;
+    QString localSegmentsDir;
+    QString localHost;
+    QString localPort;
+    bool localBindLocalonly;
+    QString localNumberThreads;
+    QString localMaxRunningTime;
+    QString localJavaOpts;
+    QString binariesUrl;
+    QString segmentsUrl;
+
+    const bool defaultExpertMode = false;
+    const mode_e defaultInstallMode = eModeOnline;
+    const QString defaultOnlineWebUrl = "http://brouter.de/brouter-web/";
+    const QString defaultOnlineServiceUrl = "http://h2096617.stratoserver.net:443";
+    const QString defaultOnlineProfilesUrl = "http://brouter.de/brouter/profiles2/";
+    const QString defaultLocalDir = ".";
+    const QString defaultLocalProfileDir = "profiles2";
+    const QString defaultLocalCustomProfileDir = "customprofiles";
+    const QString defaultLocalSegmentsDir = "segments4";
+    const QString defaultLocalHost = "127.0.0.1";
+    const QString defaultLocalPort = "17777";
+    const bool defaultLocalBindLocalonly = true;
+    const QString defaultLocalNumberThreads = "1";
+    const QString defaultLocalMaxRunningTime = "300";
+    const QString defaultLocalJavaOpts = "-Xmx128M -Xms128M -Xmn8M";
+    const QString defaultBinariesUrl = "http://brouter.de/brouter_bin/";
+    const QString defaultSegmentsUrl = "http://brouter.de/brouter/segments4/";
+
+    const QString onlineCacheDir = "BRouter";
+
+    friend class CRouterBRouter;
+    friend class CRouterBRouterSetupPage;
+    friend class CRouterBRouterSetupWizard;
+    friend class CRouterBRouterTilesSelect;
+};
+
+#endif
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetupPage.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupPage.cpp
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterSetupPage.cpp
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupPage.cpp
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetupPage.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupPage.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterSetupPage.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupPage.h
diff --git a/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
new file mode 100644
index 0000000..b1d3a6d
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp
@@ -0,0 +1,955 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/rte/router/brouter/CRouterBRouterSetup.h"
+#include "gis/rte/router/brouter/CRouterBRouterSetupWizard.h"
+#include "setup/IAppSetup.h"
+#include <JlCompress.h>
+#include <QFileDialog>
+#include <QMessageBox>
+#include <QNetworkReply>
+#include <QNetworkRequest>
+#include <proj_api.h>
+
+CRouterBRouterSetupWizard::CRouterBRouterSetupWizard()
+    : QWizard(CMainWindow::getBestWidgetForParent())
+{
+    setupUi(this);
+
+    setup = new CRouterBRouterSetup(this);
+
+    setButtonText(QWizard::CustomButton1, tr("Restore Default Values"));
+    connect(this, &CRouterBRouterSetupWizard::currentIdChanged, this, &CRouterBRouterSetupWizard::slotCurrentIdChanged);
+    connect(this, &CRouterBRouterSetupWizard::customButtonClicked, this, &CRouterBRouterSetupWizard::slotCustomButtonClicked);
+
+    connect(radioLocal,  &QRadioButton::clicked, this, &CRouterBRouterSetupWizard::slotRadioLocalClicked);
+    connect(radioOnline, &QRadioButton::clicked, this, &CRouterBRouterSetupWizard::slotRadioOnlineClicked);
+    connect(checkExpert, &QCheckBox::clicked,    this, &CRouterBRouterSetupWizard::slotCheckExpertClicked);
+
+    connect(lineLocalProfilesUrl, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged);
+    connect(lineLocalProfilesUrl, &QLineEdit::editingFinished, this, &CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged);
+    connect(toolLocalDir, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalToolSelectDirectory);
+    connect(toolJavaExecutable, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalToolSelectJava);
+    connect(pushLocalFindJava, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalPushFindJava);
+    connect(lineLocalDir, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalDirectoryCursonPositionChanged);
+    connect(lineJavaExecutable, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotLocalJavaExecutableCursorPositionChanged);
+
+    connect(pushCreateOrUpdateLocalInstall, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotCreateOrUpdateLocalInstallClicked);
+
+    connect(pushLocalInstall, &QPushButton::clicked, this, &CRouterBRouterSetupWizard::slotLocalDownloadButtonClicked);
+
+    connect(listProfiles, &QListView::clicked, this, &CRouterBRouterSetupWizard::slotProfileClicked);
+    connect(listAvailableProfiles, &QListView::clicked, this, &CRouterBRouterSetupWizard::slotAvailableProfileClicked);
+    connect(toolAddProfile, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotAddProfileClicked);
+    connect(toolDeleteProfile, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotDelProfileClicked);
+    connect(toolProfileUp, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotProfileUpClicked);
+    connect(toolProfileDown, &QToolButton::clicked, this, &CRouterBRouterSetupWizard::slotProfileDownClicked);
+
+    connect(lineOnlineUrl, &QLineEdit::cursorPositionChanged, this, &CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged);
+    connect(lineOnlineUrl, &QLineEdit::editingFinished, this, &CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged);
+
+    connect(setup, &CRouterBRouterSetup::sigOnlineConfigLoaded, this, &CRouterBRouterSetupWizard::slotOnlineConfigLoaded);
+    connect(setup, &CRouterBRouterSetup::sigDisplayOnlineProfileFinished, this, &CRouterBRouterSetupWizard::slotDisplayProfile);
+    connect(setup, &CRouterBRouterSetup::sigProfilesChanged, this, &CRouterBRouterSetupWizard::slotOnlineProfilesLoaded);
+    connect(setup, &CRouterBRouterSetup::sigError, this, &CRouterBRouterSetupWizard::slotSetupError);
+
+    QStringListModel *profilesModel = new QStringListModel();
+    listProfiles->setModel(profilesModel);
+
+    QStringListModel *availableProfiles = new QStringListModel();
+    listAvailableProfiles->setModel(availableProfiles);
+
+    networkAccessManager = new QNetworkAccessManager(this);
+    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRouterBRouterSetupWizard::slotLocalDownloadButtonFinished);
+
+    setup->load();
+}
+
+CRouterBRouterSetupWizard::~CRouterBRouterSetupWizard()
+{
+}
+
+int CRouterBRouterSetupWizard::nextId() const
+{
+    switch(currentId())
+    {
+    case ePageChooseMode:
+    {
+        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+        {
+            return ePageLocalDirectory;
+        }
+        if (setup->expertMode) //ModeOnline
+        {
+            return ePageOnlineUrl;
+        }
+        return ePageProfiles;
+    }
+
+    case ePageLocalDirectory:
+    {
+        if (setup->expertMode)
+        {
+            return ePageOnlineUrl;
+        }
+        if (doLocalInstall)
+        {
+            return ePageLocalInstallation;
+        }
+        return ePageProfiles;
+    }
+
+    case ePageLocalInstallation:
+    {
+        if (setup->expertMode)
+        {
+            return ePageLocalDetails;
+        }
+        return ePageProfiles;
+    }
+
+    case ePageProfiles:
+    {
+        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+        {
+            return ePageLocalTiles;
+        }
+        break;
+    }
+
+    case ePageLocalTiles:
+    {
+        break;
+    }
+
+    case ePageOnlineDetails:
+    {
+        return ePageProfiles;
+    }
+
+    case ePageOnlineUrl:
+    {
+        if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+        {
+            if (doLocalInstall)
+            {
+                return ePageLocalInstallation;
+            }
+            if (setup->expertMode)
+            {
+                return ePageLocalDetails;
+            }
+            return ePageProfiles;
+        }
+        else if (setup->installMode == CRouterBRouterSetup::eModeOnline)
+        {
+            return ePageOnlineDetails;
+        }
+        break;
+    }
+
+    case ePageLocalDetails:
+    {
+        return ePageProfiles;
+    }
+    }
+
+    return -1;
+}
+
+void CRouterBRouterSetupWizard::initializePage(const int id)
+{
+    switch(id)
+    {
+    case ePageLocalDirectory:
+    {
+        initLocalDirectory();
+        break;
+    }
+
+    case ePageLocalInstallation:
+    {
+        initLocalInstall();
+        break;
+    }
+
+    case ePageLocalTiles:
+    {
+        initLocalTiles();
+        break;
+    }
+    }
+}
+
+bool CRouterBRouterSetupWizard::validateCurrentPage()
+{
+    switch(currentId())
+    {
+    case ePageOnlineDetails:
+    {
+        return validateOnlineDetails();
+    }
+
+    case ePageLocalDetails:
+    {
+        return validateLocalDetails();
+    }
+    }
+
+    return true;
+}
+
+void CRouterBRouterSetupWizard::slotCurrentIdChanged(const int id)
+{
+    switch(id)
+    {
+    case ePageChooseMode:
+    {
+        beginChooseMode();
+        break;
+    }
+
+    case ePageLocalDirectory:
+    {
+        beginLocalDirectory();
+        break;
+    }
+
+    case ePageLocalInstallation:
+    {
+        beginLocalInstall();
+        break;
+    }
+
+    case ePageProfiles:
+    {
+        beginProfiles();
+        break;
+    }
+
+    case ePageLocalTiles:
+    {
+        beginLocalTiles();
+        break;
+    }
+
+    case ePageOnlineDetails:
+    {
+        beginOnlineDetails();
+        break;
+    }
+
+    case ePageOnlineUrl:
+    {
+        beginOnlineUrl();
+        break;
+    }
+
+    case ePageLocalDetails:
+    {
+        beginLocalDetails();
+        break;
+    }
+    }
+}
+
+void CRouterBRouterSetupWizard::slotCustomButtonClicked(const int id)
+{
+    if (id == QWizard::CustomButton1)
+    {
+        const int page = currentId();
+        switch (page)
+        {
+        case ePageOnlineDetails:
+        {
+            resetOnlineDetails();
+            break;
+        }
+
+        case ePageOnlineUrl:
+        {
+            resetOnlineUrl();
+            break;
+        }
+
+        case ePageLocalDetails:
+        {
+            resetLocalDetails();
+            break;
+        }
+        }
+    }
+}
+
+void CRouterBRouterSetupWizard::accept()
+{
+    setup->save();
+    QDialog::accept();
+}
+
+void CRouterBRouterSetupWizard::reject()
+{
+    if (!pageLocalTiles->isComplete())
+    {
+        if (pageLocalTiles->raiseWarning())
+        {
+            return;
+        }
+    }
+    QDialog::reject();
+}
+
+void CRouterBRouterSetupWizard::beginChooseMode()
+{
+    switch(setup->installMode)
+    {
+    case CRouterBRouterSetup::eModeLocal:
+    {
+        radioLocal->setChecked(true);
+        radioOnline->setChecked(false);
+        break;
+    }
+
+    case CRouterBRouterSetup::eModeOnline:
+    {
+        radioLocal->setChecked(false);
+        radioOnline->setChecked(true);
+        break;
+    }
+    }
+
+    checkExpert->setChecked(setup->expertMode);
+    setOption(QWizard::HaveCustomButton1, false);
+}
+
+void CRouterBRouterSetupWizard::slotRadioLocalClicked() const
+{
+    setup->installMode = CRouterBRouterSetup::eModeLocal;
+}
+
+void CRouterBRouterSetupWizard::slotRadioOnlineClicked() const
+{
+    setup->installMode = CRouterBRouterSetup::eModeOnline;
+}
+
+void CRouterBRouterSetupWizard::slotCheckExpertClicked() const
+{
+    setup->expertMode = checkExpert->isChecked();
+}
+
+void CRouterBRouterSetupWizard::initLocalDirectory()
+{
+    pageLocalDirectory->setSetup(setup);
+}
+
+void CRouterBRouterSetupWizard::beginLocalDirectory()
+{
+    updateLocalDirectory();
+    doLocalInstall = false;
+    setOption(QWizard::HaveCustomButton1, false);
+}
+
+void CRouterBRouterSetupWizard::slotLocalToolSelectDirectory()
+{
+    setup->localDir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),"", QFileDialog::ShowDirsOnly);
+    updateLocalDirectory();
+}
+
+void CRouterBRouterSetupWizard::slotLocalToolSelectJava()
+{
+    QFileDialog dialog(this,
+                       tr("select Java Executable"),
+                       QFileInfo(setup->localJavaExecutable).absolutePath(),
+                       "Java Executable (java*)");
+    dialog.setFileMode(QFileDialog::ExistingFile);
+    if (dialog.exec())
+    {
+        setup->localJavaExecutable = dialog.selectedFiles().first();
+        updateLocalDirectory();
+    }
+}
+
+void CRouterBRouterSetupWizard::slotLocalPushFindJava() const
+{
+    setup->localJavaExecutable = setup->findJava();
+    updateLocalDirectory();
+}
+
+void CRouterBRouterSetupWizard::slotLocalDirectoryCursonPositionChanged() const
+{
+    setup->localDir = lineLocalDir->text();
+    updateLocalDirectory();
+}
+
+void CRouterBRouterSetupWizard::slotLocalJavaExecutableCursorPositionChanged() const
+{
+    setup->localJavaExecutable = lineJavaExecutable->text();
+    updateLocalDirectory();
+}
+
+void CRouterBRouterSetupWizard::updateLocalDirectory() const
+{
+    textLocalDirectory->setVisible(false);
+    lineLocalDir->setText(setup->localDir);
+    lineJavaExecutable->setText(setup->localJavaExecutable);
+    if (setup->localDir.isEmpty())
+    {
+        labelLocalDirResult->setText(tr("please select BRouter installation directory"));
+        pushCreateOrUpdateLocalInstall->setVisible(false);
+    }
+    else if(!QDir(setup->localDir).exists())
+    {
+        labelLocalDirResult->setText(tr("selected directory does not exist"));
+        pushCreateOrUpdateLocalInstall->setText(tr("create directory and install BRouter there"));
+        pushCreateOrUpdateLocalInstall->setVisible(true);
+    }
+    else
+    {
+        if (setup->isLocalBRouterInstalled())
+        {
+            labelLocalDirResult->setText(tr("existing BRouter installation"));
+            pushCreateOrUpdateLocalInstall->setText(tr("update existing BRouter installation"));
+            pushCreateOrUpdateLocalInstall->setVisible(true);
+        }
+        else
+        {
+            labelLocalDirResult->setText(tr("empty directory, create new BRouter installation here"));
+            pushCreateOrUpdateLocalInstall->setText(tr("create new BRouter installation"));
+            pushCreateOrUpdateLocalInstall->setVisible(true);
+        }
+    }
+    if (QFile(setup->localJavaExecutable).exists())
+    {
+        if (QFileInfo(setup->localJavaExecutable).baseName().startsWith("java"))
+        {
+            labelLocalJavaResult->setText(tr("seems to be a valid Java-executable"));
+        }
+        else
+        {
+            labelLocalJavaResult->setText(tr("doesn't seem to be a valid Java-executable"));
+        }
+    }
+    else
+    {
+        labelLocalJavaResult->setText(tr("Java Executable not found"));
+        labelLocalJavaResult->setVisible(true);
+    }
+    pageLocalDirectory->emitCompleteChanged();
+}
+
+void CRouterBRouterSetupWizard::slotCreateOrUpdateLocalInstallClicked()
+{
+    QDir outDir(setup->localDir);
+    try
+    {
+        if(!outDir.exists())
+        {
+            if (!outDir.mkpath(outDir.absolutePath()))
+            {
+                throw tr("Error creating directory %1").arg(outDir.absolutePath());
+            }
+        }
+        doLocalInstall = true;
+        next();
+    }
+    catch (const QString &msg)
+    {
+        textLocalDirectory->setVisible(true);
+        textLocalDirectory->setTextColor(Qt::red);
+        textLocalDirectory->append(msg);
+    }
+}
+
+void CRouterBRouterSetupWizard::initLocalInstall()
+{
+    pageLocalInstallation->setSetup(setup);
+    connect(webLocalBRouterVersions, &QWebView::loadFinished, this, &CRouterBRouterSetupWizard::slotWebLocalBRouterVersionsLoadFinished);
+    webLocalBRouterVersions->load(QUrl(setup->binariesUrl));
+    QWebPage *localVersionsPage = webLocalBRouterVersions->page();
+    localVersionsPage->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
+    connect(localVersionsPage, &QWebPage::linkClicked, this, &CRouterBRouterSetupWizard::slotLocalDownloadLinkClicked);
+}
+
+void CRouterBRouterSetupWizard::slotWebLocalBRouterVersionsLoadFinished(bool ok)
+{
+    if (!ok)
+    {
+        textLocalInstall->setVisible(true);
+        textLocalInstall->setTextColor(Qt::red);
+        textLocalInstall->append(tr("Error loading installation-page at %1").arg(setup->binariesUrl));
+    }
+}
+
+void CRouterBRouterSetupWizard::beginLocalInstall()
+{
+    doLocalInstall = false;
+    textLocalInstall->setVisible(false);
+    textLocalInstall->clear();
+    labelLocalInstallLink->setText(tr("no brouter-version to install selected"));
+    pushLocalInstall->setEnabled(false);
+    setOption(QWizard::HaveCustomButton1, false);
+}
+
+void CRouterBRouterSetupWizard::slotLocalDownloadLinkClicked(const QUrl &url)
+{
+    downloadUrl = url;
+    labelLocalInstallLink->setText(QString(tr("selected %1 for download and installation")).arg(url.fileName()));
+    pushLocalInstall->setEnabled(true);
+}
+
+void CRouterBRouterSetupWizard::slotLocalDownloadButtonClicked()
+{
+    const QString& strUrl = downloadUrl.toString();
+
+    if(!strUrl.startsWith("https"))
+    {
+        QMessageBox mbox;
+        mbox.setWindowTitle(tr("Warning..."));
+        mbox.setIcon(QMessageBox::Warning);
+        mbox.setStandardButtons(QMessageBox::Ok|QMessageBox::Abort);
+        mbox.setDefaultButton(QMessageBox::Abort);
+
+        QString msg = tr("Download: %1<br/>"
+                         "<br/>"
+                         "This will download and install a zip file from a download location that is not secured "
+                         "by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is "
+                         "someone redirecting the request and sending you a replacement zip with malware. There "
+                         "is no way for QMapShack to detect this. <br/>"
+                         "If you do not understand this or if you are in doubt, do not proceed and abort. "
+                         "Use the Web version of BRouter instead."
+                         ).arg(strUrl);
+
+        mbox.setText(msg);
+
+        QCheckBox * checkAgree = new QCheckBox(tr("I understand the risk and wish to proceed."), &mbox);
+        mbox.setCheckBox(checkAgree);
+        connect(checkAgree, &QCheckBox::clicked, mbox.button(QMessageBox::Ok), &QPushButton::setEnabled);
+        mbox.button(QMessageBox::Ok)->setDisabled(true);
+
+        if(mbox.exec() != QMessageBox::Ok)
+        {
+            return;
+        }
+    }
+    textLocalInstall->setVisible(true);
+    textLocalInstall->setTextColor(Qt::darkGreen);
+    textLocalInstall->append(tr("download %1 started").arg(downloadUrl.toString()));
+    QNetworkReply * reply = networkAccessManager->get(QNetworkRequest(downloadUrl));
+    reply->setProperty("fileName",downloadUrl.fileName());
+}
+
+void CRouterBRouterSetupWizard::slotLocalDownloadButtonFinished(QNetworkReply * reply)
+{
+    reply->deleteLater();
+    try
+    {
+        if (reply->error() != QNetworkReply::NoError)
+        {
+            throw tr("Network Error: %1").arg(reply->errorString());
+        }
+        const QString &fileName = reply->property("fileName").toString();
+        QDir outDir(setup->localDir);
+        if (!outDir.exists())
+        {
+            throw tr("Error directory %1 does not exist").arg(outDir.absolutePath());
+        }
+        QFile outfile(outDir.absoluteFilePath(fileName));
+        try
+        {
+            if (!outfile.open(QIODevice::WriteOnly))
+            {
+                throw tr("Error creating file %1").arg(outfile.fileName());
+            }
+            if (outfile.write(reply->readAll()) < 0)
+            {
+                throw tr("Error writing to file %1").arg(outfile.fileName());
+            }
+            outfile.close();
+            textLocalInstall->setTextColor(Qt::darkGreen);
+            textLocalInstall->append(tr("download %1 finished").arg(outfile.fileName()));
+            const QStringList &unzippedNames = JlCompress::extractDir(outfile.fileName(),setup->localDir);
+            textLocalInstall->append(tr("unzipping:"));
+            for (const QString unzipped : unzippedNames)
+            {
+                textLocalInstall->append(unzipped);
+            }
+            textLocalInstall->append(tr("ready."));
+            pageLocalInstallation->emitCompleteChanged();
+            setup->readLocalProfiles();
+        }
+        catch (const QString &msg)
+        {
+            if (outfile.isOpen())
+            {
+                outfile.close();
+            }
+            if (outfile.exists())
+            {
+                outfile.remove();
+            }
+            throw msg;
+        }
+    }
+    catch (const QString &msg)
+    {
+        textLocalInstall->setTextColor(Qt::red);
+        textLocalInstall->append(tr("download of brouter failed: %1").arg(msg));
+    }
+}
+
+void CRouterBRouterSetupWizard::beginProfiles()
+{
+    isError = false;
+    updateProfiles();
+    if (setup->installMode == CRouterBRouterSetup::eModeLocal)
+    {
+        textProfileContent->setText(tr("retrieving available profiles from %1").arg(setup->onlineProfilesUrl));
+        setup->loadLocalOnlineProfiles();
+        setup->readLocalProfiles();
+    }
+    else
+    {
+        Q_ASSERT(setup->installMode == CRouterBRouterSetup::eModeOnline);
+        textProfileContent->setText(tr("retrieving available profiles from %1").arg(setup->onlineWebUrl));
+        setup->loadOnlineConfig();
+    }
+    setOption(QWizard::HaveCustomButton1, false);
+}
+
+void CRouterBRouterSetupWizard::slotProfileClicked(const QModelIndex & index) const
+{
+    const QString &profile = listProfiles->model()->data(index).toString();
+    listAvailableProfiles->clearSelection();
+    updateProfiles();
+    setup->displayProfileAsync(profile);
+}
+
+void CRouterBRouterSetupWizard::slotAvailableProfileClicked(const QModelIndex & index) const
+{
+    const QString &profile = listAvailableProfiles->model()->data(index).toString();
+    listProfiles->clearSelection();
+    updateProfiles();
+    setup->displayOnlineProfileAsync(profile);
+}
+
+void CRouterBRouterSetupWizard::slotDisplayProfile(const QString &profile, const QString content)
+{
+    labelProfileContent->setText(tr("content of profile"));
+    textProfileContent->setText(content);
+}
+
+void CRouterBRouterSetupWizard::slotAddProfileClicked() const
+{
+    for (const QString &profile : selectedProfiles(listAvailableProfiles))
+    {
+        setup->addProfile(profile);
+    }
+}
+
+void CRouterBRouterSetupWizard::slotDelProfileClicked() const
+{
+    for (const QString &profile : selectedProfiles(listProfiles))
+    {
+        setup->deleteProfile(profile);
+    }
+}
+
+void CRouterBRouterSetupWizard::slotProfileUpClicked() const
+{
+    for (const QString &profile : selectedProfiles(listProfiles))
+    {
+        setup->profileUp(profile);
+    }
+}
+
+void CRouterBRouterSetupWizard::slotProfileDownClicked() const
+{
+    for (const QString &profile : selectedProfiles(listProfiles))
+    {
+        setup->profileDown(profile);
+    }
+}
+
+void CRouterBRouterSetupWizard::slotOnlineProfilesLoaded()
+{
+    isError = false;
+    switch(currentId())
+    {
+    case ePageProfiles:
+    {
+        updateProfiles();
+        break;
+    }
+
+    case ePageLocalDetails:
+    {
+        updateLocalDetails();
+        break;
+    }
+    }
+}
+
+void CRouterBRouterSetupWizard::updateProfiles() const
+{
+    const QStringList &profiles = setup->getProfiles();
+    QStringList available;
+    for(const QString &profile:setup->onlineProfilesAvailable)
+    {
+        if (!profiles.contains(profile))
+        {
+            available << profile;
+        }
+    }
+
+    QList<int> selected = updateProfileView(listProfiles, profiles);
+    qSort(selected.begin(),selected.end());
+    toolDeleteProfile->setEnabled(!selected.isEmpty());
+    toolProfileUp->setEnabled(!selected.isEmpty() && selected.first() > 0);
+    toolProfileDown->setEnabled(!selected.isEmpty() && selected.last() < profiles.size()-1);
+    if (isError)
+    {
+        toolAddProfile->setEnabled(false);
+        labelProfileContent->setText(tr("Error:"));
+        textProfileContent->setText(error + ": "+ errorDetails);
+    }
+    else
+    {
+        toolAddProfile->setEnabled(!updateProfileView(listAvailableProfiles, available).isEmpty());
+        listAvailableProfiles->setVisible(true);
+        labelProfileContent->setText(tr("content of profile"));
+        textProfileContent->clear();
+    }
+    pageProfiles->emitCompleteChanged();
+}
+
+QStringList CRouterBRouterSetupWizard::selectedProfiles(const QListView * listView) const
+{
+    const QItemSelectionModel * selectModel = listView->selectionModel();
+    const QModelIndexList &selected = selectModel->selectedIndexes();
+    const QAbstractItemModel * model = listView->model();
+    QStringList selectedList;
+    for (int i = 0; i < selected.size(); i++)
+    {
+        selectedList << model->data(selected.at(i)).toString();
+    }
+    return selectedList;
+}
+
+QList<int> CRouterBRouterSetupWizard::updateProfileView(QListView * listView, const QStringList &values) const
+{
+    QList<int> selected;
+    const QStringList &selectedValues = selectedProfiles(listView);
+    QStringListModel * listModel = (dynamic_cast<QStringListModel*>(listView->model()));
+    QItemSelectionModel * selectModel = listView->selectionModel();
+    listModel->setStringList(values);
+    for (const QString &value : selectedValues)
+    {
+        if (values.contains(value))
+        {
+            int index = values.indexOf(value);
+            selectModel->select(listModel->index(index), QItemSelectionModel::Select);
+            selected << index;
+        }
+    }
+    return selected;
+}
+
+void CRouterBRouterSetupWizard::initLocalTiles() const
+{
+    pageLocalTiles->setSetup(setup);
+}
+
+void CRouterBRouterSetupWizard::beginLocalTiles()
+{
+    pageLocalTiles->beginPage();
+    setOption(QWizard::HaveCustomButton1, false);
+}
+
+void CRouterBRouterSetupWizard::beginOnlineDetails()
+{
+    setOption(QWizard::HaveCustomButton1, true);
+    updateOnlineDetails();
+}
+
+void CRouterBRouterSetupWizard::updateOnlineDetails() const
+{
+    lineOnlineProfileUrl->setText(setup->onlineProfilesUrl);
+    lineOnlineService->setText(setup->onlineServiceUrl);
+}
+
+bool CRouterBRouterSetupWizard::validateOnlineDetails() const
+{
+    setup->onlineProfilesUrl = lineOnlineProfileUrl->text();
+    setup->onlineServiceUrl = lineOnlineService->text();
+    return true;
+}
+
+void CRouterBRouterSetupWizard::resetOnlineDetails() const
+{
+    setup->resetOnlineProfilesUrl();
+    setup->resetOnlineServiceUrl();
+
+    updateOnlineDetails();
+}
+
+void CRouterBRouterSetupWizard::beginOnlineUrl()
+{
+    setOption(QWizard::HaveCustomButton1, true);
+    isError = false;
+    setup->loadOnlineConfig();
+}
+
+void CRouterBRouterSetupWizard::slotOnlineUrlCursorPositionChanged()
+{
+    setup->onlineWebUrl = lineOnlineUrl->text();
+    isError = false;
+    setup->loadOnlineConfig();
+}
+
+void CRouterBRouterSetupWizard::updateOnlineUrl()
+{
+    lineOnlineUrl->setText(setup->onlineWebUrl);
+    textOnlineUrl->setVisible(isError);
+    if (isError)
+    {
+        textOnlineUrl->setText(error + ": "+ errorDetails);
+    }
+}
+
+void CRouterBRouterSetupWizard::resetOnlineUrl()
+{
+    setup->resetOnlineWebUrl();
+    beginOnlineUrl();
+}
+
+void CRouterBRouterSetupWizard::updateLocalDetails() const
+{
+    lineLocalProfilesUrl->setText(setup->onlineProfilesUrl);
+    lineLocalHost->setText(setup->localHost);
+    lineLocalPort->setText(setup->localPort);
+    checkLocalBindLocalonly->setChecked(setup->localBindLocalonly);
+    lineLocalProfiles->setText(setup->localProfileDir);
+    lineLocalSegments->setText(setup->localSegmentsDir);
+    lineLocalCustomProfiles->setText(setup->localCustomProfileDir);
+    lineLocalMaxRuntime->setText(setup->localMaxRunningTime);
+    lineLocalNumberThreads->setText(setup->localNumberThreads);
+    lineLocalJavaOpts->setText(setup->localJavaOpts);
+    textLocalDetails->setVisible(isError);
+    if (isError)
+    {
+        textLocalDetails->setText(error + ": " + errorDetails);
+    }
+}
+
+void CRouterBRouterSetupWizard::beginLocalDetails()
+{
+    setOption(QWizard::HaveCustomButton1, true);
+    isError = false;
+    setup->loadLocalOnlineProfiles();
+}
+
+void CRouterBRouterSetupWizard::slotLocalProfilesUrlCursorPositionChanged()
+{
+    setup->onlineProfilesUrl = lineLocalProfilesUrl->text();
+    isError = false;
+    setup->loadLocalOnlineProfiles();
+}
+
+bool CRouterBRouterSetupWizard::validateLocalDetails() const
+{
+    setup->localHost = lineLocalHost->text();
+    setup->localPort = lineLocalPort->text();
+    setup->localBindLocalonly = checkLocalBindLocalonly->isChecked();
+    setup->localProfileDir = lineLocalProfiles->text();
+    setup->localSegmentsDir = lineLocalSegments->text();
+    setup->localCustomProfileDir = lineLocalCustomProfiles->text();
+    setup->localMaxRunningTime = lineLocalMaxRuntime->text();
+    setup->localNumberThreads = lineLocalNumberThreads->text();
+    setup->localJavaOpts = lineLocalJavaOpts->text();
+    return true;
+}
+
+void CRouterBRouterSetupWizard::resetLocalDetails() const
+{
+    setup->resetOnlineProfilesUrl();
+    setup->resetLocalHost();
+    setup->resetLocalPort();
+    setup->resetLocalBindLocalonly();
+    setup->resetLocalProfileDir();
+    setup->resetLocalSegmentsDir();
+    setup->resetLocalCustomProfileDir();
+    setup->resetLocalMaxRunningTime();
+    setup->resetLocalNumberThreads();
+    setup->resetLocalJavaOpts();
+    updateLocalDetails();
+}
+
+void CRouterBRouterSetupWizard::slotOnlineConfigLoaded()
+{
+    isError = false;
+    switch(currentId())
+    {
+    case ePageOnlineUrl:
+    {
+        updateOnlineUrl();
+        break;
+    }
+
+    case ePageOnlineDetails:
+    {
+        updateOnlineDetails();
+        break;
+    }
+
+    case ePageLocalDetails:
+    {
+        updateLocalDetails();
+        break;
+    }
+    }
+}
+
+void CRouterBRouterSetupWizard::slotSetupError(const QString &error, const QString &details)
+{
+    isError = true;
+    this->error = error;
+    this->errorDetails = details;
+
+    switch(currentId())
+    {
+    case ePageOnlineUrl:
+    {
+        updateOnlineUrl();
+        break;
+    }
+
+    case ePageLocalDetails:
+    {
+        updateLocalDetails();
+        break;
+    }
+
+    case ePageProfiles:
+    {
+        updateProfiles();
+        break;
+    }
+    }
+}
diff --git a/src/gis/rte/router/brouter/CRouterBRouterSetupWizard.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupWizard.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterSetupWizard.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterSetupWizard.h
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesPage.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesPage.cpp
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesPage.cpp
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesPage.cpp
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesPage.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesPage.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesPage.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesPage.h
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesSelect.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelect.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesSelect.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelect.h
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.cpp
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectArea.h
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesSelectLayout.h
diff --git a/src/gis/rte/router/brouter/CRouterBRouterTilesStatus.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesStatus.h
similarity index 100%
rename from src/gis/rte/router/brouter/CRouterBRouterTilesStatus.h
rename to src/qmapshack/gis/rte/router/brouter/CRouterBRouterTilesStatus.h
diff --git a/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.cpp b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.cpp
new file mode 100644
index 0000000..6e2ddf2
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.cpp
@@ -0,0 +1,100 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "CRouterBRouterToolShell.h"
+
+#include <QtWidgets>
+
+CRouterBRouterToolShell::CRouterBRouterToolShell(QTextBrowser *textBrowser, QWidget * parent)
+    : IToolShell(parent)
+{
+    setTextBrowser(textBrowser);
+    connect(&cmd, &QProcess::stateChanged, this, &CRouterBRouterToolShell::slotStateChanged);
+    connect(&cmd, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), this, &CRouterBRouterToolShell::slotError);
+    startupTimer = new QTimer(this);
+    startupTimer->setSingleShot(true);
+    connect(startupTimer, &QTimer::timeout, this, &CRouterBRouterToolShell::slotStartupTimer);
+}
+
+CRouterBRouterToolShell::~CRouterBRouterToolShell()
+{
+}
+
+void CRouterBRouterToolShell::start(const QString &dir, const QString &command, const QStringList &args)
+{
+    isBeingKilled = false;
+    isStarting = true;
+    stdOut("cd " + dir);
+    stdOut(command+" " + args.join(" ") + "\n");
+    cmd.setWorkingDirectory(dir);
+    startupTimer->start(200);
+    cmd.start(command,args);
+    cmd.waitForStarted();
+}
+
+void CRouterBRouterToolShell::stop()
+{
+    if (cmd.state() != QProcess::NotRunning)
+    {
+#ifdef USE_KILL_FOR_SHUTDOWN
+        isBeingKilled = true;
+        cmd.kill();
+#else
+        cmd.terminate();
+#endif
+    }
+}
+
+void CRouterBRouterToolShell::slotStateChanged(const QProcess::ProcessState newState) const
+{
+    if (newState == QProcess::NotRunning && isStarting)
+    {
+        emit sigProcessError(QProcess::FailedToStart, text->toPlainText());
+    }
+
+    emit sigProcessStateChanged(newState);
+}
+
+void CRouterBRouterToolShell::slotError(const QProcess::ProcessError error) const
+{
+    if (isBeingKilled)
+    {
+        return;
+    }
+    emit sigProcessError(error, cmd.errorString());
+}
+
+void CRouterBRouterToolShell::slotStartupTimer()
+{
+    isStarting = false;
+}
+
+void CRouterBRouterToolShell::finished(const int exitCode, const QProcess::ExitStatus status)
+{
+    if (status == QProcess::ExitStatus::NormalExit)
+    {
+        text->setTextColor(Qt::darkGreen);
+        text->append(tr("!!! done !!!\n"));
+    }
+    else
+    {
+        text->setTextColor(Qt::darkRed);
+        text->append(tr("!!! failed !!!\n"));
+    }
+}
diff --git a/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.h b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.h
new file mode 100644
index 0000000..cb75564
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/CRouterBRouterToolShell.h
@@ -0,0 +1,56 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsessr norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CROUTERBROUTERTOOLSHELL_H
+#define CROUTERBROUTERTOOLSHELL_H
+
+#include "tool/IToolShell.h"
+
+#if defined (Q_OS_WIN32)
+#define USE_KILL_FOR_SHUTDOWN
+#endif
+
+class CRouterBRouterToolShell : public IToolShell
+{
+    Q_OBJECT
+public:
+    CRouterBRouterToolShell(QTextBrowser *textBrowser, QWidget * parent);
+    virtual ~CRouterBRouterToolShell();
+
+    void start(const QString &dir, const QString &command, const QStringList &args);
+    void stop();
+
+signals:
+    void sigProcessStateChanged(const QProcess::ProcessState newState) const;
+    void sigProcessError(const QProcess::ProcessError error, const QString &errorString) const;
+
+private slots:
+    void slotStateChanged(const QProcess::ProcessState newState) const;
+    void slotError(const QProcess::ProcessError error) const;
+    void slotStartupTimer();
+
+private:
+    void finished(int exitCode, QProcess::ExitStatus status) override;
+
+    bool isBeingKilled { false };
+    bool isStarting { false };
+    QTimer * startupTimer { nullptr };
+};
+
+#endif //CROUTERBROUTERTOOLSHELL_H
+
diff --git a/src/gis/rte/router/brouter/IRouterBRouterInfo.ui b/src/qmapshack/gis/rte/router/brouter/IRouterBRouterInfo.ui
similarity index 100%
rename from src/gis/rte/router/brouter/IRouterBRouterInfo.ui
rename to src/qmapshack/gis/rte/router/brouter/IRouterBRouterInfo.ui
diff --git a/src/qmapshack/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui b/src/qmapshack/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
new file mode 100644
index 0000000..62f5c53
--- /dev/null
+++ b/src/qmapshack/gis/rte/router/brouter/IRouterBRouterSetupWizard.ui
@@ -0,0 +1,696 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRouterBRouterSetupWizard</class>
+ <widget class="QWizard" name="IRouterBRouterSetupWizard">
+  <property name="enabled">
+   <bool>true</bool>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>700</width>
+    <height>500</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>BRouter Setup</string>
+  </property>
+  <property name="options">
+   <set>QWizard::CancelButtonOnLeft|QWizard::HaveCustomButton1</set>
+  </property>
+  <widget class="QWizardPage" name="pageChooseMode">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">0</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_11">
+    <item>
+     <widget class="QGroupBox" name="groupRadioMode">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="title">
+       <string>choose which BRouter to use</string>
+      </property>
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <item>
+        <widget class="QRadioButton" name="radioOnline">
+         <property name="text">
+          <string>BRouter-Web (online)</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioLocal">
+         <property name="text">
+          <string>local Installation</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="checkExpert">
+         <property name="text">
+          <string>Expert Mode</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="CRouterBRouterSetupPage" name="pageLocalDirectory">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">1</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_3">
+    <item>
+     <widget class="QLabel" name="labelLocalDir">
+      <property name="text">
+       <string>local BRouter Installation directory:</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <item>
+       <widget class="QLineEdit" name="lineLocalDir"/>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolLocalDir">
+        <property name="toolTip">
+         <string>select installation directory</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../../../../resources.qrc">
+          <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QLabel" name="labelLocalDirResult">
+      <property name="text">
+       <string>labelLocalDirResult</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <item>
+       <widget class="QPushButton" name="pushCreateOrUpdateLocalInstall">
+        <property name="text">
+         <string>create or update installation</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_2">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_5">
+      <item>
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Java Executable</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineJavaExecutable"/>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolJavaExecutable">
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../../../../resources.qrc">
+          <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QLabel" name="labelLocalJavaResult">
+      <property name="text">
+       <string>labelLocalJavaResult</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_6">
+      <item>
+       <widget class="QPushButton" name="pushLocalFindJava">
+        <property name="text">
+         <string>search for installed java</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer_3">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <spacer name="verticalSpacer">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>269</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QTextBrowser" name="textLocalDirectory"/>
+    </item>
+   </layout>
+  </widget>
+  <widget class="CRouterBRouterSetupPage" name="pageLocalInstallation">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <property name="title">
+    <string/>
+   </property>
+   <property name="subTitle">
+    <string/>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">2</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_2">
+    <item>
+     <widget class="QLabel" name="labelLocalInstallTitle">
+      <property name="text">
+       <string>Download and install BRouter Version</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QWebView" name="webLocalBRouterVersions">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+      <property name="url">
+       <url>
+        <string>about:blank</string>
+       </url>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QLabel" name="labelLocalInstallLink">
+      <property name="text">
+       <string>File to install</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_3">
+      <item>
+       <widget class="QPushButton" name="pushLocalInstall">
+        <property name="text">
+         <string>Download and Install</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="horizontalSpacer">
+        <property name="orientation">
+         <enum>Qt::Horizontal</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>40</width>
+          <height>20</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QTextBrowser" name="textLocalInstall">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+        <horstretch>0</horstretch>
+        <verstretch>0</verstretch>
+       </sizepolicy>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="CRouterBRouterSetupPage" name="pageProfiles">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">3</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_4">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_2">
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_7">
+        <item>
+         <widget class="QLabel" name="labelAvailableProfiles">
+          <property name="text">
+           <string>available Profiles</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QListView" name="listAvailableProfiles">
+          <property name="editTriggers">
+           <set>QAbstractItemView::NoEditTriggers</set>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_5">
+        <item>
+         <widget class="QToolButton" name="toolAddProfile">
+          <property name="toolTip">
+           <string>install profile</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../../../../resources.qrc">
+            <normaloff>:/icons/32x32/Right.png</normaloff>:/icons/32x32/Right.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="toolDeleteProfile">
+          <property name="toolTip">
+           <string>remove profile</string>
+          </property>
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../../../../resources.qrc">
+            <normaloff>:/icons/32x32/Left.png</normaloff>:/icons/32x32/Left.png</iconset>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_6">
+        <item>
+         <widget class="QLabel" name="labelProfiles">
+          <property name="text">
+           <string>installed Profiles</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QListView" name="listProfiles">
+          <property name="editTriggers">
+           <set>QAbstractItemView::NoEditTriggers</set>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_12">
+        <item>
+         <widget class="QToolButton" name="toolProfileUp">
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../../../../resources.qrc">
+            <normaloff>:/icons/32x32/Up.png</normaloff>:/icons/32x32/Up.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QToolButton" name="toolProfileDown">
+          <property name="text">
+           <string>...</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../../../../resources.qrc">
+            <normaloff>:/icons/32x32/Down.png</normaloff>:/icons/32x32/Down.png</iconset>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <widget class="QLabel" name="labelProfileContent">
+      <property name="text">
+       <string>content of profile</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QTextBrowser" name="textProfileContent"/>
+    </item>
+   </layout>
+  </widget>
+  <widget class="CRouterBRouterTilesPage" name="pageLocalTiles">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">4</string>
+   </attribute>
+  </widget>
+  <widget class="QWizardPage" name="pageOnlineUrl">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">5</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_9">
+    <item>
+     <layout class="QHBoxLayout" name="horizontalLayout_7">
+      <item>
+       <widget class="QLabel" name="labelOnlineUrl">
+        <property name="text">
+         <string>BRouter-Web URL:</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLineEdit" name="lineOnlineUrl"/>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <spacer name="verticalSpacer_2">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QTextBrowser" name="textOnlineUrl">
+      <property name="enabled">
+       <bool>true</bool>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QWizardPage" name="pageOnlineDetails">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>1</horstretch>
+     <verstretch>1</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">6</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_8">
+    <item>
+     <layout class="QFormLayout" name="formLayout_2">
+      <property name="sizeConstraint">
+       <enum>QLayout::SetNoConstraint</enum>
+      </property>
+      <item row="0" column="0">
+       <widget class="QLabel" name="labelOnlineService">
+        <property name="text">
+         <string>Service-URL</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="lineOnlineService"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="labelOnlineProfileUrl">
+        <property name="text">
+         <string>Profile-URL</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="lineOnlineProfileUrl"/>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <spacer name="verticalSpacer_3">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QWizardPage" name="pageLocalDetails">
+   <property name="sizePolicy">
+    <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+     <horstretch>0</horstretch>
+     <verstretch>0</verstretch>
+    </sizepolicy>
+   </property>
+   <attribute name="pageId">
+    <string notr="true">7</string>
+   </attribute>
+   <layout class="QVBoxLayout" name="verticalLayout_13">
+    <item>
+     <layout class="QFormLayout" name="formLayout_3">
+      <item row="0" column="0">
+       <widget class="QLabel" name="labelLocalProfilesUrl">
+        <property name="text">
+         <string>Profiles Url</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="lineLocalProfilesUrl"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="labelLocalHost">
+        <property name="text">
+         <string>Hostname</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="lineLocalHost"/>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="labelLocalPort">
+        <property name="text">
+         <string>Port</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QLineEdit" name="lineLocalPort"/>
+      </item>
+      <item row="4" column="0">
+       <widget class="QLabel" name="labelLocalProfiles">
+        <property name="text">
+         <string>Profile directory</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1">
+       <widget class="QLineEdit" name="lineLocalProfiles"/>
+      </item>
+      <item row="5" column="0">
+       <widget class="QLabel" name="labelLocalSegments">
+        <property name="text">
+         <string>Segments directory</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1">
+       <widget class="QLineEdit" name="lineLocalSegments"/>
+      </item>
+      <item row="6" column="0">
+       <widget class="QLabel" name="labelLocalCustomProfiles">
+        <property name="text">
+         <string>Custom Profiles dir</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="1">
+       <widget class="QLineEdit" name="lineLocalCustomProfiles"/>
+      </item>
+      <item row="7" column="0">
+       <widget class="QLabel" name="labelLocalMaxRuntime">
+        <property name="text">
+         <string>Max Runtime</string>
+        </property>
+       </widget>
+      </item>
+      <item row="7" column="1">
+       <widget class="QLineEdit" name="lineLocalMaxRuntime"/>
+      </item>
+      <item row="8" column="0">
+       <widget class="QLabel" name="labelLocalNumberThreads">
+        <property name="text">
+         <string>Number Threads</string>
+        </property>
+       </widget>
+      </item>
+      <item row="8" column="1">
+       <widget class="QLineEdit" name="lineLocalNumberThreads"/>
+      </item>
+      <item row="9" column="0">
+       <widget class="QLabel" name="labelLocalJavaOpts">
+        <property name="text">
+         <string>Java Options</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="1">
+       <widget class="QLineEdit" name="lineLocalJavaOpts"/>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="labelLocalBindLocalonly">
+        <property name="text">
+         <string>Bind to hostname only</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QCheckBox" name="checkLocalBindLocalonly">
+        <property name="text">
+         <string notr="true"/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </item>
+    <item>
+     <spacer name="verticalSpacer_4">
+      <property name="orientation">
+       <enum>Qt::Vertical</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>20</width>
+        <height>40</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QTextBrowser" name="textLocalDetails"/>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>QWebView</class>
+   <extends>QWidget</extends>
+   <header>QtWebKitWidgets/QWebView</header>
+  </customwidget>
+  <customwidget>
+   <class>CRouterBRouterTilesPage</class>
+   <extends>QWizardPage</extends>
+   <header>gis/rte/router/brouter/CRouterBRouterTilesPage.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CRouterBRouterSetupPage</class>
+   <extends>QWizardPage</extends>
+   <header>gis/rte/router/brouter/CRouterBRouterSetupPage.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../../../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/gis/rte/router/routino/CRouterRoutinoPathSetup.cpp b/src/qmapshack/gis/rte/router/routino/CRouterRoutinoPathSetup.cpp
similarity index 100%
rename from src/gis/rte/router/routino/CRouterRoutinoPathSetup.cpp
rename to src/qmapshack/gis/rte/router/routino/CRouterRoutinoPathSetup.cpp
diff --git a/src/gis/rte/router/routino/CRouterRoutinoPathSetup.h b/src/qmapshack/gis/rte/router/routino/CRouterRoutinoPathSetup.h
similarity index 100%
rename from src/gis/rte/router/routino/CRouterRoutinoPathSetup.h
rename to src/qmapshack/gis/rte/router/routino/CRouterRoutinoPathSetup.h
diff --git a/src/gis/rte/router/routino/IRouterRoutinoPathSetup.ui b/src/qmapshack/gis/rte/router/routino/IRouterRoutinoPathSetup.ui
similarity index 100%
rename from src/gis/rte/router/routino/IRouterRoutinoPathSetup.ui
rename to src/qmapshack/gis/rte/router/routino/IRouterRoutinoPathSetup.ui
diff --git a/src/gis/search/CSearchGoogle.cpp b/src/qmapshack/gis/search/CSearchGoogle.cpp
similarity index 100%
rename from src/gis/search/CSearchGoogle.cpp
rename to src/qmapshack/gis/search/CSearchGoogle.cpp
diff --git a/src/gis/search/CSearchGoogle.h b/src/qmapshack/gis/search/CSearchGoogle.h
similarity index 100%
rename from src/gis/search/CSearchGoogle.h
rename to src/qmapshack/gis/search/CSearchGoogle.h
diff --git a/src/gis/slf/CSlfProject.cpp b/src/qmapshack/gis/slf/CSlfProject.cpp
similarity index 100%
rename from src/gis/slf/CSlfProject.cpp
rename to src/qmapshack/gis/slf/CSlfProject.cpp
diff --git a/src/gis/slf/CSlfProject.h b/src/qmapshack/gis/slf/CSlfProject.h
similarity index 100%
rename from src/gis/slf/CSlfProject.h
rename to src/qmapshack/gis/slf/CSlfProject.h
diff --git a/src/gis/slf/CSlfReader.cpp b/src/qmapshack/gis/slf/CSlfReader.cpp
similarity index 100%
rename from src/gis/slf/CSlfReader.cpp
rename to src/qmapshack/gis/slf/CSlfReader.cpp
diff --git a/src/gis/slf/CSlfReader.h b/src/qmapshack/gis/slf/CSlfReader.h
similarity index 100%
rename from src/gis/slf/CSlfReader.h
rename to src/qmapshack/gis/slf/CSlfReader.h
diff --git a/src/qmapshack/gis/summary/CGisSummary.cpp b/src/qmapshack/gis/summary/CGisSummary.cpp
new file mode 100644
index 0000000..43fa6d5
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummary.cpp
@@ -0,0 +1,141 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "gis/db/IDBFolder.h"
+#include "gis/summary/CGisSummary.h"
+#include "gis/summary/CGisSummaryDropZone.h"
+#include "gis/summary/CGisSummarySetup.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CGisSummary::CGisSummary(QWidget *parent)
+    : QWidget(parent)
+    , dropZones(eDropZoneMax)
+{
+    setupUi(this);
+    connect(toolSetup, &QToolButton::clicked, this, &CGisSummary::slotSetup);
+    // As it is not guaranteed that at this point the databases are up
+    // and running the setup of the drop zones at startup is delayed.
+    QTimer::singleShot(500, this, SLOT(slotStartup()));
+}
+
+CGisSummary::~CGisSummary()
+{
+    SETTINGS;
+    cfg.beginGroup("Database");
+    cfg.beginGroup("Summary");
+    cfg.remove("");
+
+    int cnt = 1;
+    for(dropzone_t& dropZone : dropZones)
+    {
+        const QString& name = QString("DropZone%1").arg(cnt++);
+        cfg.beginGroup(name);
+        cfg.setValue("name", dropZone.name);
+        const int N = dropZone.folders.size();
+        cfg.setValue("numberOfFolders",N);
+        for(int n = 0; n < N; n++)
+        {
+            cfg.beginGroup(QString("Folder%1").arg(n));
+            const folder_t& folder = dropZone.folders[n];
+            cfg.setValue("id", folder.id);
+            cfg.setValue("db", folder.db);
+            cfg.endGroup(); // Folder%1
+        }
+        cfg.endGroup(); // "Dropzone%1"
+    }
+    cfg.endGroup(); // Summary
+    cfg.endGroup(); // Database
+}
+
+void CGisSummary::slotStartup()
+{
+    bool restoreComplete = true;
+
+    SETTINGS;
+    cfg.beginGroup("Database");
+    cfg.beginGroup("Summary");
+    int cnt = 1;
+    for(dropzone_t& dropZone : dropZones)
+    {
+        const QString& name = QString("DropZone%1").arg(cnt++);
+        cfg.beginGroup(name);
+        dropZone.name = cfg.value("name", name).toString();
+        const int N = cfg.value("numberOfFolders",0).toInt();
+        for(int n = 0; n < N; n++)
+        {
+            cfg.beginGroup(QString("Folder%1").arg(n));
+            folder_t folder;
+            folder.id   = cfg.value("id", 0).toULongLong();
+            folder.db   = cfg.value("db", "").toString();
+            folder.name = IDBFolder::getNameEx(folder.db, folder.id);
+            if(!folder.name.isEmpty())
+            {
+                dropZone.folders << folder;
+            }
+            else
+            {
+                restoreComplete = false;
+            }
+            cfg.endGroup(); // Folder%1
+        }
+        cfg.endGroup(); // "Dropzone%1"
+    }
+    cfg.endGroup(); // Summary
+    cfg.endGroup(); // Database
+
+    setupDropZones();
+
+    if(!restoreComplete)
+    {
+        const QString& msg = tr("Failed to restore all folders in the summary drop zones. "
+                                "Probably the folder or database has been removed. Please "
+                                "check summary drop zone setup.");
+
+        QMessageBox::critical(this, tr("Failed...."), msg, QMessageBox::Ok);
+    }
+}
+
+void CGisSummary::slotSetup()
+{
+    CGisSummarySetup dlg(*this);
+    dlg.exec();
+    setupDropZones();
+}
+
+void CGisSummary::setupDropZones()
+{
+    QLayout * theLayout = layout();
+
+    bool isEmpty = true;
+    for(dropzone_t& dropZone : dropZones)
+    {
+        delete dropZone.zone;
+        dropZone.zone = nullptr;
+
+        if(!dropZone.folders.isEmpty())
+        {
+            dropZone.zone = new CGisSummaryDropZone(dropZone,this);
+            theLayout->addWidget(dropZone.zone);
+            isEmpty = false;
+        }
+    }
+
+    labelDrop->setVisible(isEmpty);
+}
diff --git a/src/qmapshack/gis/summary/CGisSummary.h b/src/qmapshack/gis/summary/CGisSummary.h
new file mode 100644
index 0000000..d7c409c
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummary.h
@@ -0,0 +1,71 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISSUMMARY_H
+#define CGISSUMMARY_H
+
+#include "ui_IGisSummary.h"
+
+class CGisSummaryDropZone;
+
+class CGisSummary : public QWidget, private Ui::IGisSummary
+{
+    Q_OBJECT
+public:
+    CGisSummary(QWidget * parent);
+    virtual ~CGisSummary();
+
+    enum dropzone_e
+    {
+        eDropZone1 = 0
+        ,eDropZone2 = 1
+        ,eDropZone3 = 2
+        ,eDropZone4 = 3
+        ,eDropZoneMax = 4
+    };
+
+    struct folder_t
+    {
+        QString name;
+        QString db;
+        quint64 id = 0;
+    };
+
+    struct dropzone_t
+    {
+        QString name;
+        QList<folder_t> folders;
+        CGisSummaryDropZone * zone = nullptr;
+    };
+
+    dropzone_t& getDropZone(dropzone_e dropzone)
+    {
+        return dropZones[dropzone];
+    }
+
+private slots:
+    void slotStartup();
+    void slotSetup();
+
+private:
+    void setupDropZones();
+    QVector<dropzone_t> dropZones;
+};
+
+#endif //CGISSUMMARY_H
+
diff --git a/src/qmapshack/gis/summary/CGisSummaryDropZone.cpp b/src/qmapshack/gis/summary/CGisSummaryDropZone.cpp
new file mode 100644
index 0000000..40cfe88
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummaryDropZone.cpp
@@ -0,0 +1,132 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "gis/CGisListWks.h"
+#include "gis/db/CDBProject.h"
+#include "gis/summary/CGisSummaryDropZone.h"
+#include "helpers/CSelectCopyAction.h"
+
+#include <QtWidgets>
+
+CGisSummaryDropZone::CGisSummaryDropZone(const CGisSummary::dropzone_t &dropZone, QWidget *parent)
+    : QLabel(parent)
+    , folders(dropZone.folders)
+{
+    setText(dropZone.name);
+
+    QStringList folderNames;
+    for(const CGisSummary::folder_t& folder : folders)
+    {
+        folderNames << folder.name;
+    }
+
+    setToolTip(folderNames.join("\n") + "\n\n" + tr("Drag-n-drop items from the workspace into this drop zone."));
+    setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
+    setAutoFillBackground(true);
+    setBackgroundRole(QPalette::Mid);
+    setForegroundRole(QPalette::Text);
+    setAcceptDrops(true);
+}
+
+void CGisSummaryDropZone::setHighlighted(bool yes)
+{
+    setBackgroundRole(yes ? QPalette::Dark : QPalette::Mid);
+}
+
+void CGisSummaryDropZone::dragEnterEvent(QDragEnterEvent  * e)
+{
+    QObject * source = e->source();
+    if(source == nullptr || source->objectName() != "treeWks")
+    {
+        return QLabel::dragEnterEvent(e);
+    }
+
+    setHighlighted(true);
+    e->setDropAction(Qt::CopyAction);
+    if(e->proposedAction() == Qt::CopyAction)
+    {
+        e->acceptProposedAction();
+    }
+}
+
+void CGisSummaryDropZone::dragMoveEvent(QDragMoveEvent  * e)
+{
+    QObject * source = e->source();
+    if(source == nullptr || source->objectName() != "treeWks")
+    {
+        return QLabel::dragMoveEvent(e);
+    }
+
+
+    e->setDropAction(Qt::CopyAction);
+    if(e->proposedAction() == Qt::CopyAction)
+    {
+        e->acceptProposedAction();
+    }
+}
+
+void CGisSummaryDropZone::dragLeaveEvent(QDragLeaveEvent *e)
+{
+    setHighlighted(false);
+    e->accept();
+}
+
+void CGisSummaryDropZone::dropEvent(QDropEvent  * e)
+{
+    e->setDropAction(Qt::CopyAction);
+    if(e->proposedAction() == Qt::CopyAction)
+    {
+        setHighlighted(false);
+        e->acceptProposedAction();
+    }
+    else
+    {
+        return QLabel::dropEvent(e);
+    }
+
+
+    CGisListWks * wks = dynamic_cast<CGisListWks*>(e->source());
+    if(wks == nullptr)
+    {
+        return QLabel::dropEvent(e);
+    }
+
+    QList<IGisItem*> gisItems;
+    QList<QTreeWidgetItem*> items = wks->selectedItems();
+    for(QTreeWidgetItem * item : items)
+    {
+        IGisItem * gisItem = dynamic_cast<IGisItem*>(item);
+        if(gisItem != nullptr)
+        {
+            gisItems << gisItem;
+        }
+    }
+
+    int lastResult = CSelectCopyAction::eResultSkip;
+    for(const CGisSummary::folder_t& folder : folders)
+    {
+        CDBProject * project = new CDBProject(folder.db, folder.id, nullptr);
+        for(IGisItem * gisItem : gisItems)
+        {
+            project->insertCopyOfItem(gisItem, -1, lastResult);
+        }
+
+        project->save(lastResult);
+        delete project;
+    }
+}
diff --git a/src/qmapshack/gis/summary/CGisSummaryDropZone.h b/src/qmapshack/gis/summary/CGisSummaryDropZone.h
new file mode 100644
index 0000000..1cb7ec2
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummaryDropZone.h
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISSUMMARYDROPZONE_H
+#define CGISSUMMARYDROPZONE_H
+
+#include "gis/summary/CGisSummary.h"
+
+#include <QLabel>
+
+class CGisSummaryDropZone : public QLabel
+{
+    Q_OBJECT
+public:
+    CGisSummaryDropZone(const CGisSummary::dropzone_t& dropZone, QWidget * parent);
+    virtual ~CGisSummaryDropZone() = default;
+
+protected:
+    void dragEnterEvent(QDragEnterEvent *e) override;
+    void dragMoveEvent(QDragMoveEvent *e) override;
+    void dragLeaveEvent(QDragLeaveEvent *e) override;
+    void dropEvent(QDropEvent *e) override;
+
+private:
+    void setHighlighted(bool yes);
+
+    const QList<CGisSummary::folder_t>& folders;
+};
+
+#endif //CGISSUMMARYDROPZONE_H
+
diff --git a/src/qmapshack/gis/summary/CGisSummarySetup.cpp b/src/qmapshack/gis/summary/CGisSummarySetup.cpp
new file mode 100644
index 0000000..bd9ac58
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummarySetup.cpp
@@ -0,0 +1,139 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "gis/CGisDatabase.h"
+#include "gis/db/CSelectDBFolder.h"
+#include "gis/db/IDBFolder.h"
+#include "gis/summary/CGisSummary.h"
+#include "gis/summary/CGisSummarySetup.h"
+
+#include <QtWidgets>
+#include <functional>
+
+using std::bind;
+
+CGisSummarySetup::CGisSummarySetup(CGisSummary &parent)
+    : QDialog(&parent)
+    , summary(parent)
+{
+    setupUi(this);
+
+    setupSignals(CGisSummary::eDropZone1, lineName1, listWidget1, toolAdd1, toolDel1);
+    setupSignals(CGisSummary::eDropZone2, lineName2, listWidget2, toolAdd2, toolDel2);
+    setupSignals(CGisSummary::eDropZone3, lineName3, listWidget3, toolAdd3, toolDel3);
+    setupSignals(CGisSummary::eDropZone4, lineName4, listWidget4, toolAdd4, toolDel4);
+
+    labelHelp->setText(tr("<b>What is this about?</b><br/>"
+                          "When using the database GIS items can be referenced by several projects. "
+                          "A common use-case is to store tour data in it's own project folder. Additionally "
+                          "the items are copied (referenced) into folders summarizing items of a certain "
+                          "time span, e.g. monthly, yearly, total. You can do this manually by loading the "
+                          "summary projects into the workspace, coping the items and saving the changes. Or "
+                          "you use this dialog to define project folders in the database as summary folders "
+                          "and copy the items by dragging them into the drag-n-drop area."
+                          ));
+
+
+    adjustSize();
+}
+
+void CGisSummarySetup::setupSignals(CGisSummary::dropzone_e number, QLineEdit * lineName, QListWidget * listWidget, QToolButton * toolAdd, QToolButton * toolDel)
+{
+    auto func1 = std::bind(&CGisSummarySetup::slotAdd, this, listWidget);
+    auto func2 = std::bind(&CGisSummarySetup::slotDel, this, listWidget);
+    auto func3 = std::bind(&CGisSummarySetup::slotItemSelectionChanged, this, listWidget, toolDel);
+
+    connect(toolAdd, &QToolButton::clicked, this, func1);
+    connect(toolDel, &QToolButton::clicked, this, func2);
+    connect(listWidget, &QListWidget::itemSelectionChanged, this, func3);
+
+    CGisSummary::dropzone_t& dropzone = summary.getDropZone(number);
+    for(const CGisSummary::folder_t& folder : dropzone.folders)
+    {
+        addFolder(folder.id, folder.db, listWidget);
+    }
+
+    lineName->setText(dropzone.name);
+}
+
+void CGisSummarySetup::accept()
+{
+    writeResults(CGisSummary::eDropZone1, lineName1, listWidget1);
+    writeResults(CGisSummary::eDropZone2, lineName2, listWidget2);
+    writeResults(CGisSummary::eDropZone3, lineName3, listWidget3);
+    writeResults(CGisSummary::eDropZone4, lineName4, listWidget4);
+    QDialog::accept();
+}
+
+void CGisSummarySetup::writeResults(CGisSummary::dropzone_e number, QLineEdit *lineName, QListWidget * listWidget) const
+{
+    CGisSummary::dropzone_t& dropzone = summary.getDropZone(number);
+
+    dropzone.name = lineName->text();
+    dropzone.folders.clear();
+    const int N = listWidget->count();
+    for(int n = 0; n < N; n++)
+    {
+        QListWidgetItem * item = listWidget->item(n);
+
+        CGisSummary::folder_t folder;
+        folder.name = item->text();
+        folder.id   = item->data(eDataId).toULongLong();
+        folder.db   = item->data(eDataDb).toString();
+
+        dropzone.folders << folder;
+    }
+}
+
+void CGisSummarySetup::slotAdd(QListWidget * listWidget)
+{
+    quint64 id;
+    QString db;
+    QString host;
+
+    CSelectDBFolder dlg(id, db, host, this);
+    dlg.setWindowTitle(tr("Select summary project..."));
+    dlg.setProjectsOnly(true);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+
+    addFolder(id, db, listWidget);
+}
+
+void CGisSummarySetup::slotDel(QListWidget * listWidget)
+{
+    QList<QListWidgetItem*> items = listWidget->selectedItems();
+    qDeleteAll(items);
+}
+
+void CGisSummarySetup::slotItemSelectionChanged(QListWidget * listWidget, QToolButton * toolDel)
+{
+    bool items = !listWidget->selectedItems().isEmpty();
+    toolDel->setEnabled(items);
+}
+
+void CGisSummarySetup::addFolder(quint64 id, const QString& db, QListWidget * listWidget)
+{
+    const QString& name = IDBFolder::getNameEx(db, id);
+
+    QListWidgetItem * item = new QListWidgetItem(name, listWidget);
+    item->setData(eDataId, id);
+    item->setData(eDataDb, db);
+}
diff --git a/src/qmapshack/gis/summary/CGisSummarySetup.h b/src/qmapshack/gis/summary/CGisSummarySetup.h
new file mode 100644
index 0000000..17cf74d
--- /dev/null
+++ b/src/qmapshack/gis/summary/CGisSummarySetup.h
@@ -0,0 +1,58 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISSUMMARYSETUP_H
+#define CGISSUMMARYSETUP_H
+
+#include "ui_IGisSummarySetup.h"
+
+#include <QListWidgetItem>
+
+class CGisSummary;
+
+class CGisSummarySetup : public QDialog, private Ui::IGisSummarySetup
+{
+    Q_OBJECT
+public:
+    CGisSummarySetup(CGisSummary& parent);
+    virtual ~CGisSummarySetup() = default;
+
+public slots:
+    void accept() override;
+
+private slots:
+    void slotAdd(QListWidget *listWidget);
+    void slotDel(QListWidget *listWidget);
+    void slotItemSelectionChanged(QListWidget *listWidget, QToolButton *toolDel);
+
+private:
+    void setupSignals(CGisSummary::dropzone_e number, QLineEdit *lineName, QListWidget * listWidget, QToolButton * toolAdd, QToolButton * toolDel);
+    void addFolder(quint64 id, const QString& db, QListWidget *listWidget);
+    void writeResults(CGisSummary::dropzone_e number, QLineEdit *lineName, QListWidget * listWidget) const;
+
+    enum data_e
+    {
+        eDataId = Qt::UserRole
+        , eDataDb = Qt::UserRole + 1
+    };
+
+    CGisSummary& summary;
+};
+
+#endif //CGISSUMMARYSETUP_H
+
diff --git a/src/qmapshack/gis/summary/IGisSummary.ui b/src/qmapshack/gis/summary/IGisSummary.ui
new file mode 100644
index 0000000..17b38ad
--- /dev/null
+++ b/src/qmapshack/gis/summary/IGisSummary.ui
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGisSummary</class>
+ <widget class="QWidget" name="IGisSummary">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>42</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QToolButton" name="toolSetup">
+     <property name="toolTip">
+      <string>Setup summary drop zones.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../../resources.qrc">
+       <normaloff>:/icons/32x32/SetupSummary.png</normaloff>:/icons/32x32/SetupSummary.png</iconset>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelDrop">
+     <property name="text">
+      <string>Needs setup...</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/summary/IGisSummarySetup.ui b/src/qmapshack/gis/summary/IGisSummarySetup.ui
new file mode 100644
index 0000000..a84dacf
--- /dev/null
+++ b/src/qmapshack/gis/summary/IGisSummarySetup.ui
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGisSummarySetup</class>
+ <widget class="QDialog" name="IGisSummarySetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>702</width>
+    <height>230</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup summary projects...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string>-</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tab">
+      <attribute name="title">
+       <string>Drop Zone 1</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout">
+       <item row="1" column="0">
+        <widget class="QListWidget" name="listWidget1">
+         <property name="selectionMode">
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <item>
+          <widget class="QToolButton" name="toolAdd1">
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/Add.png</normaloff>:/icons/32x32/Add.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="toolDel1">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="verticalSpacer_2">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item row="0" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <item>
+          <widget class="QLabel" name="label">
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="lineName1"/>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_2">
+      <attribute name="title">
+       <string>Drop Zone 2</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_2">
+       <item row="1" column="0">
+        <widget class="QListWidget" name="listWidget2">
+         <property name="selectionMode">
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <layout class="QVBoxLayout" name="verticalLayout_3">
+         <item>
+          <widget class="QToolButton" name="toolAdd2">
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/Add.png</normaloff>:/icons/32x32/Add.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="toolDel2">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="verticalSpacer">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item row="0" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout_2">
+         <item>
+          <widget class="QLabel" name="label_2">
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="lineName2"/>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_3">
+      <attribute name="title">
+       <string>Drop Zone 3</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_4">
+       <item row="0" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <item>
+          <widget class="QLabel" name="label_3">
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="lineName3"/>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0">
+        <widget class="QListWidget" name="listWidget3">
+         <property name="selectionMode">
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <layout class="QVBoxLayout" name="verticalLayout_4">
+         <item>
+          <widget class="QToolButton" name="toolAdd3">
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/Add.png</normaloff>:/icons/32x32/Add.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="toolDel3">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="verticalSpacer_3">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_4">
+      <attribute name="title">
+       <string>Drop Zone 4</string>
+      </attribute>
+      <layout class="QGridLayout" name="gridLayout_3">
+       <item row="0" column="0">
+        <layout class="QHBoxLayout" name="horizontalLayout_4">
+         <item>
+          <widget class="QLabel" name="label_4">
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLineEdit" name="lineName4"/>
+         </item>
+        </layout>
+       </item>
+       <item row="1" column="0">
+        <widget class="QListWidget" name="listWidget4">
+         <property name="selectionMode">
+          <enum>QAbstractItemView::ExtendedSelection</enum>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <layout class="QVBoxLayout" name="verticalLayout_5">
+         <item>
+          <widget class="QToolButton" name="toolAdd4">
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/Add.png</normaloff>:/icons/32x32/Add.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QToolButton" name="toolDel4">
+           <property name="enabled">
+            <bool>false</bool>
+           </property>
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="icon">
+            <iconset resource="../../resources.qrc">
+             <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="verticalSpacer_4">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </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>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>IGisSummarySetup</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>IGisSummarySetup</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/suunto/CLogProject.cpp b/src/qmapshack/gis/suunto/CLogProject.cpp
similarity index 100%
rename from src/gis/suunto/CLogProject.cpp
rename to src/qmapshack/gis/suunto/CLogProject.cpp
diff --git a/src/gis/suunto/CLogProject.h b/src/qmapshack/gis/suunto/CLogProject.h
similarity index 100%
rename from src/gis/suunto/CLogProject.h
rename to src/qmapshack/gis/suunto/CLogProject.h
diff --git a/src/gis/suunto/CSmlProject.cpp b/src/qmapshack/gis/suunto/CSmlProject.cpp
similarity index 100%
rename from src/gis/suunto/CSmlProject.cpp
rename to src/qmapshack/gis/suunto/CSmlProject.cpp
diff --git a/src/gis/suunto/CSmlProject.h b/src/qmapshack/gis/suunto/CSmlProject.h
similarity index 100%
rename from src/gis/suunto/CSmlProject.h
rename to src/qmapshack/gis/suunto/CSmlProject.h
diff --git a/src/gis/suunto/ISuuntoProject.cpp b/src/qmapshack/gis/suunto/ISuuntoProject.cpp
similarity index 100%
rename from src/gis/suunto/ISuuntoProject.cpp
rename to src/qmapshack/gis/suunto/ISuuntoProject.cpp
diff --git a/src/gis/suunto/ISuuntoProject.h b/src/qmapshack/gis/suunto/ISuuntoProject.h
similarity index 100%
rename from src/gis/suunto/ISuuntoProject.h
rename to src/qmapshack/gis/suunto/ISuuntoProject.h
diff --git a/src/gis/tcx/CTcxProject.cpp b/src/qmapshack/gis/tcx/CTcxProject.cpp
similarity index 100%
rename from src/gis/tcx/CTcxProject.cpp
rename to src/qmapshack/gis/tcx/CTcxProject.cpp
diff --git a/src/gis/tcx/CTcxProject.h b/src/qmapshack/gis/tcx/CTcxProject.h
similarity index 100%
rename from src/gis/tcx/CTcxProject.h
rename to src/qmapshack/gis/tcx/CTcxProject.h
diff --git a/src/gis/tcx/serialization.cpp b/src/qmapshack/gis/tcx/serialization.cpp
similarity index 100%
rename from src/gis/tcx/serialization.cpp
rename to src/qmapshack/gis/tcx/serialization.cpp
diff --git a/src/gis/tnv/CTwoNavProject.cpp b/src/qmapshack/gis/tnv/CTwoNavProject.cpp
similarity index 100%
rename from src/gis/tnv/CTwoNavProject.cpp
rename to src/qmapshack/gis/tnv/CTwoNavProject.cpp
diff --git a/src/gis/tnv/CTwoNavProject.h b/src/qmapshack/gis/tnv/CTwoNavProject.h
similarity index 100%
rename from src/gis/tnv/CTwoNavProject.h
rename to src/qmapshack/gis/tnv/CTwoNavProject.h
diff --git a/src/gis/tnv/serialization.cpp b/src/qmapshack/gis/tnv/serialization.cpp
similarity index 100%
rename from src/gis/tnv/serialization.cpp
rename to src/qmapshack/gis/tnv/serialization.cpp
diff --git a/src/gis/trk/CActivityTrk.cpp b/src/qmapshack/gis/trk/CActivityTrk.cpp
similarity index 100%
rename from src/gis/trk/CActivityTrk.cpp
rename to src/qmapshack/gis/trk/CActivityTrk.cpp
diff --git a/src/gis/trk/CActivityTrk.h b/src/qmapshack/gis/trk/CActivityTrk.h
similarity index 100%
rename from src/gis/trk/CActivityTrk.h
rename to src/qmapshack/gis/trk/CActivityTrk.h
diff --git a/src/qmapshack/gis/trk/CCombineTrk.cpp b/src/qmapshack/gis/trk/CCombineTrk.cpp
new file mode 100644
index 0000000..68b5d70
--- /dev/null
+++ b/src/qmapshack/gis/trk/CCombineTrk.cpp
@@ -0,0 +1,226 @@
+/**********************************************************************************************
+    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 "gis/CGisWorkspace.h"
+#include "gis/trk/CCombineTrk.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "plot/CPlotTrack.h"
+
+#include <QtWidgets>
+
+CCombineTrk::CCombineTrk(const QList<IGisItem::key_t> &keys, const QList<IGisItem::key_t> &keysPreSel, QWidget * parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    CGisWorkspace& gis = CGisWorkspace::self();
+    for(const IGisItem::key_t& key : keys)
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
+        if(nullptr == trk)
+        {
+            continue;
+        }
+
+        QListWidgetItem * item = new QListWidgetItem(keysPreSel.contains(key) ? listSelected : listAvailable);
+        item->setText(trk->getName());
+        item->setIcon(trk->getDisplayIcon());
+        item->setData(Qt::UserRole + 1, key.item);
+        item->setData(Qt::UserRole + 2, key.project);
+        item->setData(Qt::UserRole + 3, key.device);
+    }
+
+    connect(listAvailable, &QListWidget::itemSelectionChanged, this, &CCombineTrk::slotSelectionChanged);
+    connect(listSelected,  &QListWidget::itemSelectionChanged, this, &CCombineTrk::slotSelectionChanged);
+    connect(toolSelect,    &QToolButton::clicked,              this, &CCombineTrk::slotSelect);
+    connect(toolRemove,    &QToolButton::clicked,              this, &CCombineTrk::slotRemove);
+    connect(toolUp,        &QToolButton::clicked,              this, &CCombineTrk::slotUp);
+    connect(toolDown,      &QToolButton::clicked,              this, &CCombineTrk::slotDown);
+
+    listAvailable->setCurrentItem(nullptr);
+    listSelected->setCurrentItem(nullptr);
+
+    slotSelectionChanged();
+    updatePreview();
+}
+
+CCombineTrk::~CCombineTrk()
+{
+}
+
+void CCombineTrk::accept()
+{
+    CGisWorkspace& gis = CGisWorkspace::self();
+
+    // get name of first track in list
+    IGisItem::key_t key;
+    key.item    = listSelected->item(0)->data(Qt::UserRole + 1).toString();
+    key.project = listSelected->item(0)->data(Qt::UserRole + 2).toString();
+    key.device  = listSelected->item(0)->data(Qt::UserRole + 3).toString();
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
+    if(nullptr == trk)
+    {
+        return;
+    }
+
+    QList<IGisItem::key_t> keys;
+    // copy the segments of all tracks to new track
+    for(int i = 0; i < listSelected->count(); i++)
+    {
+        IGisItem::key_t key;
+        key.item    = listSelected->item(i)->data(Qt::UserRole + 1).toString();
+        key.project = listSelected->item(i)->data(Qt::UserRole + 2).toString();
+        key.device  = listSelected->item(i)->data(Qt::UserRole + 3).toString();
+
+        keys << key;
+    }
+
+    trk->combine(keys);
+
+    QDialog::accept();
+}
+
+void CCombineTrk::slotSelectionChanged()
+{
+    QListWidgetItem * item = listAvailable->currentItem();
+    toolSelect->setEnabled(item != nullptr);
+
+    item = listSelected->currentItem();
+    toolRemove->setEnabled(item != nullptr);
+    toolUp->setEnabled(item != nullptr);
+    toolDown->setEnabled(item != nullptr);
+
+    if(item)
+    {
+        if(listSelected->row(item) == 0)
+        {
+            toolUp->setEnabled(false);
+        }
+        if(listSelected->row(item) == (listSelected->count() - 1))
+        {
+            toolDown->setEnabled(false);
+        }
+    }
+
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(listSelected->count() > 1);
+}
+
+void CCombineTrk::slotSelect()
+{
+    QListWidgetItem *item = listAvailable->currentItem();
+
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    listAvailable->takeItem(listAvailable->row(item));
+    listSelected->addItem(item);
+
+    slotSelectionChanged();
+    updatePreview();
+}
+
+void CCombineTrk::slotRemove()
+{
+    QListWidgetItem *item = listSelected->currentItem();
+
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    IGisItem::key_t key;
+    key.item    = item->data(Qt::UserRole + 1).toString();
+    key.project = item->data(Qt::UserRole + 2).toString();
+    key.device  = item->data(Qt::UserRole + 3).toString();
+
+
+    listSelected->takeItem(listSelected->row(item));
+    listAvailable->addItem(item);
+
+    slotSelectionChanged();
+    updatePreview();
+}
+
+void CCombineTrk::slotUp()
+{
+    QListWidgetItem * item = listSelected->currentItem();
+    if(item)
+    {
+        int row = listSelected->row(item);
+        if(row == 0)
+        {
+            return;
+        }
+        listSelected->takeItem(row);
+        row = row - 1;
+        listSelected->insertItem(row,item);
+        listSelected->setCurrentItem(item);
+    }
+    updatePreview();
+}
+
+void CCombineTrk::slotDown()
+{
+    QListWidgetItem * item = listSelected->currentItem();
+    if(item)
+    {
+        int row = listSelected->row(item);
+        if(row == (listSelected->count() - 1))
+        {
+            return;
+        }
+        listSelected->takeItem(row);
+        row = row + 1;
+        listSelected->insertItem(row,item);
+        listSelected->setCurrentItem(item);
+    }
+
+    updatePreview();
+}
+
+void CCombineTrk::updatePreview()
+{
+    CGisWorkspace& gis = CGisWorkspace::self();
+
+    QPolygonF line;
+    for(int i = 0; i < listSelected->count(); i++)
+    {
+        IGisItem::key_t key;
+        key.item    = listSelected->item(i)->data(Qt::UserRole + 1).toString();
+        key.project = listSelected->item(i)->data(Qt::UserRole + 2).toString();
+        key.device  = listSelected->item(i)->data(Qt::UserRole + 3).toString();
+
+
+        CGisItemTrk *trk1 = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
+        if(nullptr == trk1)
+        {
+            continue;
+        }
+        QPolygonF line1;
+        trk1->getPolylineFromData(line1);
+
+        line += line1;
+    }
+
+    plotTrack->setTrack(line);
+    plotTrack->update();
+}
diff --git a/src/gis/trk/CCombineTrk.h b/src/qmapshack/gis/trk/CCombineTrk.h
similarity index 100%
rename from src/gis/trk/CCombineTrk.h
rename to src/qmapshack/gis/trk/CCombineTrk.h
diff --git a/src/gis/trk/CCutTrk.cpp b/src/qmapshack/gis/trk/CCutTrk.cpp
similarity index 100%
rename from src/gis/trk/CCutTrk.cpp
rename to src/qmapshack/gis/trk/CCutTrk.cpp
diff --git a/src/gis/trk/CCutTrk.h b/src/qmapshack/gis/trk/CCutTrk.h
similarity index 100%
rename from src/gis/trk/CCutTrk.h
rename to src/qmapshack/gis/trk/CCutTrk.h
diff --git a/src/qmapshack/gis/trk/CDetailsTrk.cpp b/src/qmapshack/gis/trk/CDetailsTrk.cpp
new file mode 100644
index 0000000..42a2965
--- /dev/null
+++ b/src/qmapshack/gis/trk/CDetailsTrk.cpp
@@ -0,0 +1,701 @@
+/**********************************************************************************************
+    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 "gis/trk/CDetailsTrk.h"
+#include "gis/trk/CKnownExtension.h"
+#include "gis/trk/CPropertyTrk.h"
+#include "gis/trk/filter/CFilterDelete.h"
+#include "gis/trk/filter/CFilterDeleteExtension.h"
+#include "gis/trk/filter/CFilterDouglasPeuker.h"
+#include "gis/trk/filter/CFilterInterpolateElevation.h"
+#include "gis/trk/filter/CFilterInvalid.h"
+#include "gis/trk/filter/CFilterMedian.h"
+#include "gis/trk/filter/CFilterNewDate.h"
+#include "gis/trk/filter/CFilterObscureDate.h"
+#include "gis/trk/filter/CFilterOffsetElevation.h"
+#include "gis/trk/filter/CFilterReplaceElevation.h"
+#include "gis/trk/filter/CFilterReset.h"
+#include "gis/trk/filter/CFilterSpeed.h"
+#include "gis/trk/filter/CFilterSplitSegment.h"
+#include "gis/trk/filter/CFilterSubPt2Pt.h"
+#include "gis/trk/filter/CFilterTerrainSlope.h"
+#include "helpers/CLinksDialog.h"
+#include "helpers/CSettings.h"
+#include "helpers/Signals.h"
+#include "plot/CPlot.h"
+#include "plot/CPlotProfile.h"
+#include "units/IUnit.h"
+#include "widgets/CTextEditWidget.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+#include <functional>
+
+using std::bind;
+
+/* base case: add the filter specified in template parameter */
+template<typename filter>
+static void addFilters(QTreeWidgetItem *itemGroup, CGisItemTrk& trk)
+{
+    QTreeWidgetItem *item = new QTreeWidgetItem(itemGroup);
+    itemGroup->treeWidget()->setItemWidget(item, /* column = */ 0, new filter(trk, itemGroup->treeWidget()));
+}
+
+template<typename filter1, typename filter2, typename ... remainingFilters>
+static void addFilters(QTreeWidgetItem *itemGroup, CGisItemTrk& trk)
+{
+    addFilters<filter1>(itemGroup, trk);
+    addFilters<filter2, remainingFilters ...>(itemGroup, trk);
+}
+
+template<typename ... filters>
+static void addFilterGroup(QTreeWidget *widget, CGisItemTrk& trk, const QString &groupText, const QString &groupIcon)
+{
+    QTreeWidgetItem *itemGroup = new QTreeWidgetItem(widget);
+    itemGroup->setIcon(/* column = */ 0, QIcon(groupIcon));
+    itemGroup->setText(/* column = */ 0, groupText);
+
+    addFilters<filters ...>(itemGroup, trk);
+}
+
+CDetailsTrk::CDetailsTrk(CGisItemTrk& trk, QWidget *parent)
+    : QWidget(parent)
+    , INotifyTrk(CGisItemTrk::eVisualDetails)
+    , trk(trk)
+{
+    setupUi(this);
+
+    QPixmap icon(14,14);
+
+    for(int i=0; i < TRK_N_COLORS; ++i)
+    {
+        icon.fill(IGisItem::colorMap[i].color);
+        comboColor->addItem(icon, IGisItem::colorMap[i].name, IGisItem::colorMap[i].color);
+    }
+
+    widgetColorLayout->setAlignment(Qt::AlignTop);
+
+    widgetColorActivity->setTrack(&trk);
+
+    updateData();
+
+    treeWidget->setTrack(&trk);
+
+    plot1 = new CPlotProfile(&trk, trk.limitsGraph1, IPlot::eModeNormal, this);
+    plot2 = new CPlot(&trk, trk.limitsGraph2, this);
+    plot3 = new CPlot(&trk, trk.limitsGraph3, this);
+
+    for(IPlot *plot : { static_cast<IPlot*>(plot1), static_cast<IPlot*>(plot2), static_cast<IPlot*>(plot3) })
+    {
+        plot->setMinimumSize(QSize(0, 100));
+        plot->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding);
+        plot->show();
+        layoutPlot->addWidget(plot);
+    }
+
+    if(trk.isOnDevice())
+    {
+        toolLock->setDisabled(true);
+    }
+
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    checkGraph1->setChecked(cfg.value("showGraph1", true).toBool());
+    checkGraph2->setChecked(cfg.value("showGraph2", true).toBool());
+    checkGraph3->setChecked(cfg.value("showGraph3", true).toBool());
+    splitter->restoreState (cfg.value("splitterSizes").toByteArray());
+    tabWidget->setCurrentIndex(cfg.value("visibleTab", 0).toInt());
+    cfg.endGroup();
+
+    connect(checkGraph1,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
+    connect(checkGraph2,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
+    connect(checkGraph3,      &QCheckBox::clicked,                 this, &CDetailsTrk::slotShowPlots);
+
+    connect(toolLock,         &QToolButton::toggled,               this, &CDetailsTrk::slotChangeReadOnlyMode);
+    connect(textCmtDesc,      &QTextBrowser::anchorClicked,        this, &CDetailsTrk::slotLinkActivated);
+
+    connect(pushSetActivities,    &QPushButton::clicked, this, &CDetailsTrk::slotSetActivities);
+
+    connect(lineName,         &QLineEdit::textEdited,              this, &CDetailsTrk::slotNameChanged);
+    connect(lineName,         &QLineEdit::editingFinished,         this, &CDetailsTrk::slotNameChangeFinished);
+
+    connect(plot1,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
+    connect(plot2,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
+    connect(plot3,            &CPlot::sigMouseClickState,          this, &CDetailsTrk::slotMouseClickState);
+
+    connect(spinLineWidth,    static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), this, &CDetailsTrk::slotLineWidth);
+    connect(checkWithArrows,  &QCheckBox::toggled, this, &CDetailsTrk::slotWithArrows);
+
+    setupStyleLimits(trk.colorSourceLimit, toolLimitAutoStyle, toolLimitUsrStyle, toolLimitSysStyle, spinLimitLow, spinLimitHigh);
+
+    connect(toolUserLineWith, &QToolButton::toggled, this, &CDetailsTrk::slotLineWidthMode);
+    connect(toolUserArrow,    &QToolButton::toggled, this, &CDetailsTrk::slotWithArrowsMode);
+
+    connect(listHistory,      &CHistoryListWidget::sigChanged, this, &CDetailsTrk::updateData);
+
+    connect(comboColor,       static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotColorChanged);
+    connect(comboColorSource, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotColorSourceChanged);
+    connect(comboGraph2,      static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotSetupGraph);
+    connect(comboGraph3,      static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CDetailsTrk::slotSetupGraph);
+
+    setupGraphLimits(trk.limitsGraph1, toolLimitAutoGraph1, toolLimitUsrGraph1, toolLimitSysGraph1, spinMinGraph1, spinMaxGraph1);
+    setupGraphLimits(trk.limitsGraph2, toolLimitAutoGraph2, toolLimitUsrGraph2, toolLimitSysGraph2, spinMinGraph2, spinMaxGraph2);
+    setupGraphLimits(trk.limitsGraph3, toolLimitAutoGraph3, toolLimitUsrGraph3, toolLimitSysGraph3, spinMinGraph3, spinMaxGraph3);
+
+    // setting up the graph properties will trigger the signals
+    // this is good because the signals are connected at this point
+    // invoking the slots
+    loadGraphSource(comboGraph2, 2, CKnownExtension::internalSpeedDist);
+    loadGraphSource(comboGraph3, 3, CKnownExtension::internalProgress);
+
+    addFilterGroup<CFilterDouglasPeuker, CFilterInvalid, CFilterReset, CFilterDelete>
+        (treeFilter, trk, tr("Reduce visible track points"), "://icons/48x48/PointHide.png");
+
+    addFilterGroup<CFilterMedian, CFilterInterpolateElevation, CFilterReplaceElevation, CFilterOffsetElevation>
+        (treeFilter, trk, tr("Change elevation of track points"), "://icons/48x48/SetEle.png");
+
+    addFilterGroup<CFilterNewDate, CFilterObscureDate, CFilterSpeed>
+        (treeFilter, trk, tr("Change timestamp of track points"), "://icons/48x48/Time.png");
+
+    addFilterGroup<CFilterDeleteExtension, CFilterSplitSegment, CFilterSubPt2Pt, CFilterTerrainSlope>
+        (treeFilter, trk, tr("Miscellaneous"), "://icons/48x48/CSrcUnknown.png");
+
+
+    slotShowPlots();
+}
+
+CDetailsTrk::~CDetailsTrk()
+{
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    cfg.setValue("showGraph1",    checkGraph1->isChecked());
+    cfg.setValue("showGraph2",    checkGraph2->isChecked());
+    cfg.setValue("showGraph3",    checkGraph3->isChecked());
+    cfg.setValue("splitterSizes", splitter->saveState());
+    cfg.setValue("visibleTab",    tabWidget->currentIndex());
+    cfg.endGroup();
+
+    saveGraphSource(comboGraph2, 2);
+    saveGraphSource(comboGraph3, 3);
+}
+
+void CDetailsTrk::slotSetLimitModeStyle(CLimit::mode_e mode, bool on)
+{
+    if(!on)
+    {
+        return;
+    }
+
+    CLimit &limit = trk.colorSourceLimit;
+    limit.setMode(mode);
+
+    widgetColorLabel->setMinimum(limit.getMin());
+    widgetColorLabel->setMaximum(limit.getMax());
+
+    trk.updateHistory(CGisItemTrk::eVisualColorLegend | CGisItemTrk::eVisualDetails);
+}
+
+void CDetailsTrk::setupGraphLimits(CLimit& limit, QToolButton * toolLimitAutoGraph, QToolButton * toolLimitUsrGraph, QToolButton * toolLimitSysGraph, QDoubleSpinBox * spinMinGraph, QDoubleSpinBox * spinMaxGraph)
+{
+    bool isAutoMode = (limit.getMode() == CLimit::eModeAuto);
+
+    spinMinGraph->setDisabled(isAutoMode);
+    spinMinGraph->setSuffix(limit.getUnit());
+    spinMinGraph->setValue(limit.getMin());
+
+    spinMaxGraph->setDisabled(isAutoMode);
+    spinMaxGraph->setSuffix(limit.getUnit());
+    spinMaxGraph->setValue(limit.getMax());
+
+    switch(limit.getMode())
+    {
+    case CLimit::eModeUser:
+        toolLimitUsrGraph->setChecked(true);
+        break;
+
+    case CLimit::eModeAuto:
+        toolLimitAutoGraph->setChecked(true);
+        break;
+
+    case CLimit::eModeSys:
+        toolLimitSysGraph->setChecked(true);
+        break;
+    }
+
+    connect(toolLimitAutoGraph, &QToolButton::toggled, spinMinGraph, &QDoubleSpinBox::setDisabled);
+    connect(toolLimitAutoGraph, &QToolButton::toggled, spinMaxGraph, &QDoubleSpinBox::setDisabled);
+
+    /* creates "lambdas" which look like:
+     *   (bool on) { slotSetLimitModeGraph(CLimit::eModeAuto, &limit, spinMinGraph, spinMaxGraph, on); }
+     */
+    auto limitAutoFunc = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeAuto, &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
+    auto limitUserFunc = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeUser, &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
+    auto limitSysFunc  = bind(&CDetailsTrk::slotSetLimitModeGraph, this, CLimit::eModeSys,  &limit, spinMinGraph, spinMaxGraph, std::placeholders::_1);
+
+    connect(toolLimitAutoGraph, &QToolButton::toggled, this, limitAutoFunc);
+    connect(toolLimitUsrGraph,  &QToolButton::toggled, this, limitUserFunc);
+    connect(toolLimitSysGraph,  &QToolButton::toggled, this, limitSysFunc);
+
+    connect(spinMinGraph, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), &limit, &CLimit::setMin);
+    connect(spinMaxGraph, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged), &limit, &CLimit::setMax);
+
+    auto limitChangedFunc = bind(&CDetailsTrk::setupLimits, this, &limit, spinMinGraph, spinMaxGraph);
+    connect(&limit, &CLimit::sigChanged, this, limitChangedFunc);
+}
+
+void CDetailsTrk::setupStyleLimits(CLimit& limit, QToolButton *toolLimitAuto, QToolButton *toolLimitUsr, QToolButton *toolLimitSys, CDoubleSpinBox *spinMin, CDoubleSpinBox *spinMax)
+{
+    bool isAutoMode = (limit.getMode() == CLimit::eModeAuto);
+
+    spinMin->setDisabled(isAutoMode);
+    spinMin->setSuffix(limit.getUnit());
+    spinMin->setValue(limit.getMin());
+
+    spinMax->setDisabled(isAutoMode);
+    spinMax->setSuffix(limit.getUnit());
+    spinMax->setValue(limit.getMax());
+
+    switch(limit.getMode())
+    {
+    case CLimit::eModeUser:
+        toolLimitUsr->setChecked(true);
+        break;
+
+    case CLimit::eModeAuto:
+        toolLimitAuto->setChecked(true);
+        break;
+
+    case CLimit::eModeSys:
+        toolLimitSys->setChecked(true);
+        break;
+    }
+
+    connect(toolLimitAuto, &QToolButton::toggled, spinMax, &QDoubleSpinBox::setDisabled);
+    connect(toolLimitAuto, &QToolButton::toggled, spinMin, &QDoubleSpinBox::setDisabled);
+
+    connect(toolLimitAuto, &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeAuto, std::placeholders::_1));
+    connect(toolLimitUsr,  &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeUser, std::placeholders::_1));
+    connect(toolLimitSys,  &QToolButton::toggled, bind(&CDetailsTrk::slotSetLimitModeStyle, this, CLimit::eModeSys,  std::placeholders::_1));
+
+    connect(spinMax,       &CDoubleSpinBox::valueChangedByStep, this, &CDetailsTrk::slotColorLimitHighChanged);
+    connect(spinMax,       &CDoubleSpinBox::editingFinished,    this, &CDetailsTrk::slotColorLimitHighChanged);
+    connect(spinMin,       &CDoubleSpinBox::valueChangedByStep, this, &CDetailsTrk::slotColorLimitLowChanged);
+    connect(spinMin,       &CDoubleSpinBox::editingFinished,    this, &CDetailsTrk::slotColorLimitLowChanged);
+
+    auto limitChangedFunc = bind(&CDetailsTrk::setupLimits, this, &limit, spinMin, spinMax);
+    connect(&limit,        &CLimit::sigChanged, this, limitChangedFunc);
+}
+
+void CDetailsTrk::loadGraphSource(QComboBox * comboBox, qint32 n, const QString cfgDefault)
+{
+    const CPropertyTrk * p = trk.getPropertyHandler();
+    if(p == nullptr)
+    {
+        return;
+    }
+
+    comboBox->blockSignals(true);
+    p->fillComboBox(comboBox);
+    comboBox->blockSignals(false);
+
+    // try to restore last graph setup
+    // signals are unblocked by now changing the combobox will trigger a graph update
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    int i = comboBox->findData(cfg.value(QString("propGraph%1").arg(n),cfgDefault).toString());
+    if(i != NOIDX)
+    {
+        comboBox->setCurrentIndex(i);
+    }
+    cfg.endGroup();
+}
+
+void CDetailsTrk::saveGraphSource(QComboBox * comboBox, qint32 n)
+{
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    if(comboBox->currentIndex() != 0)
+    {
+        cfg.setValue(QString("propGraph%1").arg(n), comboBox->currentData().toString());
+    }
+    cfg.endGroup();
+}
+
+
+void CDetailsTrk::updateData()
+{
+    if(originator)
+    {
+        return;
+    }
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "CDetailsTrk::updateData");
+    originator = true;
+
+    bool isReadOnly = trk.isReadOnly();
+    bool isNogo = trk.isNogo();
+
+    tabWidget->widget(eTabFilter)->setEnabled(!isReadOnly);
+
+    labelTainted->setVisible(trk.isTainted());
+
+    labelInfo->setText(trk.getInfo(IGisItem::eFeatureNone));
+    comboColor->setCurrentIndex(trk.getColorIdx());
+    toolLock->setChecked(isReadOnly);
+    labelNogo->setVisible(isNogo);
+
+    lineName->setText(trk.getName());
+    lineName->setReadOnly(isReadOnly);
+
+    textCmtDesc->document()->clear();
+    textCmtDesc->append(IGisItem::createText(isReadOnly, trk.getComment(), trk.getDescription(), trk.getLinks()));
+    textCmtDesc->moveCursor (QTextCursor::Start);
+    textCmtDesc->ensureCursorVisible();
+
+    QString str;
+    trk.getActivities().printSummary(str);
+    labelActivityInfo->setText(str);
+
+    quint32 flags = trk.getActivities().getAllFlags();
+    bool hasActivity = 0 != (flags & CTrackData::trkpt_t::eActMask);
+    labelActivityHelp->setVisible(!hasActivity);
+    labelActivityInfo->setVisible(hasActivity);
+    pushSetActivities->setEnabled(!isReadOnly);
+
+    plotTrack->setTrack(&trk);
+    listHistory->setupHistory(trk);
+
+    QTabWidget * tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
+    if(nullptr != tabWidget)
+    {
+        int idx = tabWidget->indexOf(this);
+        if(idx != NOIDX)
+        {
+            setObjectName(trk.getName());
+            tabWidget->setTabText(idx, trk.getName());
+        }
+    }
+
+    X______________BlockAllSignals______________X(this);
+
+    spinLineWidth->setValue(trk.lineScale.val().toDouble());
+    toolUserLineWith->setChecked(trk.lineScale.getMode() == CValue::eModeUser);
+
+    checkWithArrows->setEnabled(!isNogo);
+    checkWithArrows->setChecked(!isNogo && trk.showArrows.val().toBool());
+    toolUserArrow->setEnabled(!isNogo);
+    toolUserArrow->setChecked(!isNogo && trk.showArrows.getMode() == CValue::eModeUser);
+    toolDefArrow->setEnabled(!isNogo);
+
+    comboColorSource->clear();
+    // the first entry `solid color`, it is always available
+    comboColorSource->addItem(QIcon("://icons/32x32/CSrcSolid.png"), tr("Color"));
+    comboColorSource->addItem(QIcon("://icons/32x32/Activity.png"), tr("Activity"), "activity");
+    for(const QString &key : trk.getExistingDataSources())
+    {
+        const CKnownExtension &ext = CKnownExtension::get(key);
+        QIcon icon(ext.icon);
+        comboColorSource->addItem(icon, ext.known ? ext.nameLongText : key, key);
+    }
+    int currentIdx = comboColorSource->findData(trk.getColorizeSource());
+    if(-1 == currentIdx)
+    {
+        trk.setColorizeSource(QString());
+        currentIdx = 0;
+    }
+    comboColorSource->setCurrentIndex(currentIdx);
+
+    QString source = comboColorSource->currentData().toString();
+    bool enabledColorize = !source.isEmpty() && (source != "activity");
+    bool enabledActivity = source == "activity";
+
+    comboColor->setVisible(!(enabledColorize||enabledActivity));
+    widgetColorLabel->setVisible(enabledColorize);
+    widgetColorLabel->setEnabled(enabledColorize);
+    toolLimitAutoStyle->setEnabled(enabledColorize);
+    toolLimitUsrStyle->setEnabled(enabledColorize);
+    toolLimitSysStyle->setEnabled(enabledColorize);
+
+    if(enabledColorize)
+    {
+        const CKnownExtension &ext = CKnownExtension::get(comboColorSource->itemData(currentIdx).toString());
+
+        spinLimitLow->setMinimum(ext.minimum);
+        spinLimitLow->setMaximum(ext.maximum);
+        spinLimitLow->setSuffix (ext.unit);
+        spinLimitLow->setValue  (trk.getColorizeLimitLow());
+
+        spinLimitHigh->setMinimum(ext.minimum);
+        spinLimitHigh->setMaximum(ext.maximum);
+        spinLimitHigh->setSuffix (ext.unit);
+        spinLimitHigh->setValue  (trk.getColorizeLimitHigh());
+
+        widgetColorLabel->setMinimum(spinLimitLow->value());
+        widgetColorLabel->setMaximum(spinLimitHigh->value());
+        widgetColorLabel->setUnit(ext.unit);
+    }
+
+    widgetColorActivity->updateData();
+    widgetColorActivity->setVisible(enabledActivity);
+    widgetColorActivity->setEnabled(enabledActivity);
+
+    X_____________UnBlockAllSignals_____________X(this);
+
+    // refill comboboxes to select track property to be displayed by graphs
+    loadGraphSource(comboGraph2, 2, CKnownExtension::internalSpeedDist);
+    loadGraphSource(comboGraph3, 3, CKnownExtension::internalProgress);
+
+    CFilterDeleteExtension *filter = treeFilter->findChild<CFilterDeleteExtension*>();
+    if(nullptr != filter)
+    {
+        filter->update();
+    }
+
+    CFilterSpeed *filterSpeed = tabWidget->findChild<CFilterSpeed *>("IFilterSpeed");
+    if(nullptr != filterSpeed)
+    {
+        filterSpeed->setElevationValid();
+    }
+
+    originator = false;
+    CCanvas::restoreOverrideCursor("CDetailsTrk::updateData");
+}
+
+void CDetailsTrk::setMouseFocus(const CTrackData::trkpt_t * pt)
+{
+    if(nullptr != pt)
+    {
+        plotTrack->setMouseFocus(pt->lon, pt->lat);
+        labelInfoTrkPt->setText(trk.getInfoTrkPt(*pt));
+        labelInfoProgress->setText(trk.getInfoProgress(*pt));
+    }
+    else
+    {
+        labelInfoTrkPt->setText("-\n-");
+        labelInfoProgress->setText("-\n-");
+    }
+}
+
+void CDetailsTrk::setMouseRangeFocus(const CTrackData::trkpt_t *pt1, const CTrackData::trkpt_t *pt2)
+{
+    labelInfoRange->setText( (pt1 && pt2) ? trk.getInfoRange(*pt1, *pt2) : "-\n-" );
+}
+
+void CDetailsTrk::setMouseClickFocus(const CTrackData::trkpt_t *pt)
+{
+    if(nullptr != pt)
+    {
+        treeWidget->blockSignals(true);
+        treeWidget->setCurrentItem(treeWidget->topLevelItem(pt->idxTotal));
+        treeWidget->blockSignals(false);
+    }
+}
+
+void CDetailsTrk::slotMouseClickState(int s)
+{
+    if(s == IPlot::eMouseClickIdle)
+    {
+        labelInfoRange->setText("-\n-");
+        plot3->setMouseRangeFocus(0, 0);
+        plot1->setMouseRangeFocus(0, 0);
+        plot2->setMouseRangeFocus(0, 0);
+    }
+}
+
+void CDetailsTrk::slotNameChanged(const QString &name)
+{
+    QTabWidget *tabWidget = dynamic_cast<QTabWidget*>(parentWidget() ? parentWidget()->parentWidget() : nullptr);
+    if(nullptr != tabWidget)
+    {
+        int idx = tabWidget->indexOf(this);
+        if(idx != NOIDX)
+        {
+            const QString shownName = name.isEmpty() ? CGisItemTrk::noName : QString(name).replace('&', "&&");
+            setObjectName(shownName);
+            tabWidget->setTabText(idx, shownName);
+        }
+    }
+}
+
+void CDetailsTrk::slotNameChangeFinished()
+{
+    lineName->clearFocus();
+
+    const QString& name = lineName->text();
+    slotNameChanged(name);
+
+    if(name != trk.getName())
+    {
+        trk.setName(name);
+        updateData();
+    }
+}
+
+
+void CDetailsTrk::slotShowPlots()
+{
+    plot1->setVisible(checkGraph1->isChecked());
+    plot2->setVisible(checkGraph2->isChecked());
+    plot3->setVisible(checkGraph3->isChecked());
+}
+
+void CDetailsTrk::slotColorChanged(int idx)
+{
+    if(trk.getColorIdx() != idx)
+    {
+        trk.setColor(idx);
+    }
+}
+
+void CDetailsTrk::slotColorSourceChanged(int idx)
+{
+    trk.setColorizeSource(comboColorSource->itemData(idx).toString());
+    updateData();
+}
+
+void CDetailsTrk::slotColorLimitHighChanged()
+{
+    const double val = spinLimitHigh->value();
+    trk.setColorizeLimitHigh(val);
+    widgetColorLabel->setMaximum(val);
+}
+
+void CDetailsTrk::slotColorLimitLowChanged()
+{
+    const double val = spinLimitLow->value();
+    trk.setColorizeLimitLow(val);
+    widgetColorLabel->setMinimum(val);
+}
+
+void CDetailsTrk::slotChangeReadOnlyMode(bool on)
+{
+    trk.setReadOnlyMode(on);
+    // as setReadOnlyMode() is a method of IGisItem it will bypass updateHistory() of the track
+    // Therefore we have to call updateVisuals() explicitly.
+    trk.updateVisuals(CGisItemTrk::eVisualProject, "CDetailsTrk::slotChangeReadOnlyMode()");
+    updateData();
+}
+
+void CDetailsTrk::slotLinkActivated(const QUrl& url)
+{
+    if(url.toString() == "comment")
+    {
+        CTextEditWidget dlg(trk.getComment(), this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            trk.setComment(dlg.getHtml());
+        }
+        updateData();
+    }
+    else if(url.toString() == "description")
+    {
+        CTextEditWidget dlg(trk.getDescription(), this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            trk.setDescription(dlg.getHtml());
+        }
+        updateData();
+    }
+    else if(url.toString() == "links")
+    {
+        QList<IGisItem::link_t> links = trk.getLinks();
+        CLinksDialog dlg(links, this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            trk.setLinks(links);
+        }
+        updateData();
+    }
+    else
+    {
+        QDesktopServices::openUrl(url);
+    }
+}
+
+void CDetailsTrk::slotSetActivities()
+{
+    quint32 flags = CActivityTrk::selectActivity(this);
+    if(0xFFFFFFFF != flags)
+    {
+        trk.setActivity(flags);
+    }
+}
+
+void CDetailsTrk::setupGraph(CPlot * plot, const CLimit& limit, const QString& source, QDoubleSpinBox * spinMin, QDoubleSpinBox * spinMax)
+{
+    trk.getPropertyHandler()->setupPlot(plot, source);
+    spinMin->setSuffix(limit.getUnit());
+    spinMax->setSuffix(limit.getUnit());
+    spinMin->setValue(limit.getMin());
+    spinMax->setValue(limit.getMax());
+}
+
+void CDetailsTrk::slotSetupGraph(int idx)
+{
+    QObject *s = sender();
+    if(s == comboGraph2)
+    {
+        saveGraphSource(comboGraph2, 2);
+        setupGraph(plot2, trk.limitsGraph2, comboGraph2->itemData(idx).toString(), spinMinGraph2, spinMaxGraph2);
+    }
+    else if(s == comboGraph3)
+    {
+        saveGraphSource(comboGraph3, 3);
+        setupGraph(plot3, trk.limitsGraph3, comboGraph3->itemData(idx).toString(), spinMinGraph3, spinMaxGraph3);
+    }
+}
+
+void CDetailsTrk::slotSetLimitModeGraph(CLimit::mode_e mode, CLimit *limit, QDoubleSpinBox *spinMin, QDoubleSpinBox *spinMax, bool on)
+{
+    if(!on)
+    {
+        return;
+    }
+
+    limit->setMode(mode);
+    spinMin->setValue(limit->getMin());
+    spinMax->setValue(limit->getMax());
+}
+
+void CDetailsTrk::setupLimits(CLimit *limit, QDoubleSpinBox * spinMin, QDoubleSpinBox * spinMax)
+{
+    spinMin->setValue(limit->getMin());
+    spinMax->setValue(limit->getMax());
+}
+
+void CDetailsTrk::slotLineWidthMode(bool isUser)
+{
+    trk.lineScale.setMode(isUser ? CValue::eModeUser : CValue::eModeSys);
+    spinLineWidth->setValue(trk.lineScale.val().toDouble());
+}
+
+void CDetailsTrk::slotLineWidth(qreal f)
+{
+    trk.lineScale = f;
+}
+
+void CDetailsTrk::slotWithArrowsMode(bool isUser)
+{
+    trk.showArrows.setMode(isUser ? CValue::eModeUser : CValue::eModeSys);
+    checkWithArrows->setChecked(trk.showArrows.val().toBool());
+}
+
+void CDetailsTrk::slotWithArrows(bool yes)
+{
+    trk.showArrows = yes;
+}
diff --git a/src/gis/trk/CDetailsTrk.h b/src/qmapshack/gis/trk/CDetailsTrk.h
similarity index 100%
rename from src/gis/trk/CDetailsTrk.h
rename to src/qmapshack/gis/trk/CDetailsTrk.h
diff --git a/src/qmapshack/gis/trk/CGisItemTrk.cpp b/src/qmapshack/gis/trk/CGisItemTrk.cpp
new file mode 100644
index 0000000..4f5b2a6
--- /dev/null
+++ b/src/qmapshack/gis/trk/CGisItemTrk.cpp
@@ -0,0 +1,2696 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/trk/CCutTrk.h"
+#include "gis/trk/CDetailsTrk.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/trk/CKnownExtension.h"
+#include "gis/trk/CPropertyTrk.h"
+#include "gis/trk/CScrOptTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CDraw.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+#include <QtXml>
+#include <proj_api.h>
+
+#define DEFAULT_COLOR       4
+#define MIN_DIST_CLOSE_TO   10
+#define MIN_DIST_FOCUS      200
+
+#define WPT_FOCUS_DIST_IN   (50*50)
+#define WPT_FOCUS_DIST_OUT  (200*200)
+
+struct trkwpt_t
+{
+    QString name;
+    qreal x = 0;
+    qreal y = 0;
+    IGisItem::key_t key;
+};
+
+IGisItem::key_t CGisItemTrk::keyUserFocus;
+
+
+CGisItemTrk::CGisItemTrk(const QString &name, qint32 idx1, qint32 idx2, const CTrackData& srctrk, IGisProject * project)
+    : IGisItem(project, eTypeTrk, NOIDX), trk(name, srctrk, idx1, idx2)
+{
+    flags = eFlagCreatedInQms;
+
+    deriveSecondaryData();
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+CGisItemTrk::CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject *project, int idx, bool clone)
+    : IGisItem(project, eTypeTrk, idx)
+{
+    // copy track via history
+    history = parentTrk.history;
+    loadHistory(history.histIdxCurrent);
+
+    // if track should be a clone clear history and key and
+    // build new ones.
+    if(clone)
+    {
+        trk.name += tr("_Clone");
+        key.clear();
+        history.events.clear();
+        setupHistory();
+    }
+
+    if(parentTrk.isOnDevice() || !parentTrk.isReadOnly())
+    {
+        flags |= eFlagWriteAllowed;
+    }
+    else
+    {
+        flags &= ~eFlagWriteAllowed;
+    }
+
+    deriveSecondaryData();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+
+CGisItemTrk::CGisItemTrk(const SGisLine& l, const QString& name, IGisProject * project, int idx)
+    : IGisItem(project, eTypeTrk, idx)
+{
+    trk.name = name;
+    readTrackDataFromGisLine(l);
+
+    flags |= eFlagCreatedInQms | eFlagWriteAllowed;
+    setColor(str2color(""));
+
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+CGisItemTrk::CGisItemTrk(const QDomNode& xml, IGisProject *project)
+    : IGisItem(project, eTypeTrk, project->childCount())
+{
+    // --- start read and process data ----
+    setColor(penForeground.color());
+    readTrk(xml, trk);
+    // --- stop read and process data ----
+
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+
+    if((cntInvalidPoints != 0) && (cntInvalidPoints < cntVisiblePoints))
+    {
+        int res = QMessageBox::question(CMainWindow::self().getBestWidgetForParent(), tr("Invalid points...."),
+                                        tr("The track '%1' has %2 invalid points out of %3 visible points. "
+                                           "Do you want to hide invalid points now?").arg(getName()).arg(cntInvalidPoints).arg(cntVisiblePoints),
+                                        QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
+        if(res == QMessageBox::Yes)
+        {
+            filterRemoveInvalidPoints();
+        }
+    }
+}
+
+CGisItemTrk::CGisItemTrk(const QString& filename, IGisProject * project)
+    : IGisItem(project, eTypeTrk, project->childCount())
+{
+    // --- start read and process data ----
+    setColor(penForeground.color());
+    if(!readTwoNav(filename))
+    {
+        throw -1;
+    }
+    // --- stop read and process data ----
+
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemTrk::CGisItemTrk(const history_t& hist, const QString &dbHash, IGisProject * project)
+    : IGisItem(project, eTypeTrk, project->childCount())
+{
+    history = hist;
+    loadHistory(hist.histIdxCurrent);
+    if(!dbHash.isEmpty())
+    {
+        lastDatabaseHash = dbHash;
+    }
+}
+
+CGisItemTrk::CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project)
+    : IGisItem(project, eTypeTrk, NOIDX)
+{
+    loadFromDb(id, db);
+}
+
+CGisItemTrk::CGisItemTrk(CTrackData& trkdata, IGisProject *project)
+    : IGisItem(project, eTypeTrk, NOIDX)
+    , trk(std::move(trkdata))
+{
+    setupHistory();
+    deriveSecondaryData();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemTrk::CGisItemTrk(CFitStream& stream, IGisProject * project)
+    : IGisItem(project, eTypeTrk, project->childCount())
+{
+    // --- start read and process data ----
+    setColor(penForeground.color());
+    readTrkFromFit(stream);
+    // --- stop read and process data ----
+
+    setupHistory();
+    deriveSecondaryData();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+
+CGisItemTrk::~CGisItemTrk()
+{
+    // reset user focus if focused on this track
+    if(key == keyUserFocus)
+    {
+        keyUserFocus.clear();
+    }
+
+    /*
+        Delete all registered INotifyTrk as they can't exist without the item.
+        As the INotifyTrk objects will unregister via unregisterVisual() in their
+        destructor things will get a bit complicated here. Better create
+        a copy of the list before we start to delete.
+     */
+    qDeleteAll(registeredVisuals.toList());
+
+    // now it is save to destroy the details dialog
+    delete dlgDetails;
+
+    // delete it after the detail dialog as it is used by the detail dialog
+    delete propHandler;
+}
+
+template<typename T>
+static inline bool isInRange(const T &val, const T &rangeStart, const T &rangeEnd)
+{
+    return (rangeStart <= val) && (val <= rangeEnd);
+}
+
+IGisItem * CGisItemTrk::createClone()
+{
+    int idx = -1;
+    IGisProject * project = getParentProject();
+    if(project)
+    {
+        idx = project->indexOfChild(this);
+    }
+    return new CGisItemTrk(*this, project, idx, true);
+}
+
+void CGisItemTrk::updateFromDB(quint64 id, QSqlDatabase& db)
+{
+    IGisItem::updateFromDB(id, db);
+
+    /*
+        as this will change the line significantly we better stop
+        all focus operations and close the detail dialog.
+     */
+    resetInternalData();
+}
+
+
+void CGisItemTrk::setSymbol()
+{
+    setColor(str2color(trk.color));
+}
+
+
+void CGisItemTrk::setDataFromPolyline(const SGisLine &l)
+{
+    QMutexLocker lock(&mutexItems);
+
+    /*
+        as this will change the line significantly we better stop
+        all focus operations and close the detail dialog.
+     */
+    resetInternalData();
+
+    readTrackDataFromGisLine(l);
+
+    flags |= eFlagTainted;
+    changed(tr("Changed trackpoints, sacrificed all previous data."), "://icons/48x48/LineMove.png");
+}
+
+void CGisItemTrk::getPolylineFromData(QPolygonF &l) const
+{
+    QMutexLocker lock(&mutexItems);
+    trk.getPolyline(l);
+}
+
+void CGisItemTrk::getPolylineFromData(SGisLine &l) const
+{
+    QMutexLocker lock(&mutexItems);
+    trk.getPolyline(l);
+}
+
+void CGisItemTrk::getPolylineDegFromData(QPolygonF &l) const
+{
+    QMutexLocker lock(&mutexItems);
+    trk.getPolylineDeg(l);
+}
+
+void CGisItemTrk::readTrackDataFromGisLine(const SGisLine &l)
+{
+    QMutexLocker lock(&mutexItems);
+    trk.readFrom(l);
+    deriveSecondaryData();
+}
+
+void CGisItemTrk::registerVisual(INotifyTrk * visual)
+{
+    registeredVisuals << visual;
+}
+
+void CGisItemTrk::unregisterVisual(INotifyTrk * visual)
+{
+    registeredVisuals.remove(visual);
+}
+
+static void addRowLimit(QString& str, const QString& name, const QString& min, const QString& max)
+{
+    str += "<tr>";
+    str += "<td align='left'>" + name + "</td>";
+    str += "<td align='right'>" + min + "</td>";
+    str += "<td align='right'>" + max + "</td>";
+    str += "</tr>";
+}
+
+static bool sortByName(const QString& item1, const QString& item2)
+{
+    static QCollator collator;
+    // this will set collator to natural sorting mode (instead of lexical)
+    collator.setNumericMode(true);
+    return collator.compare(item1, item2) < 0;
+}
+
+
+QString CGisItemTrk::getInfoLimits() const
+{
+    QString str = "<table width='100%'>";
+
+    str += "<tr><th align='left'></th><th align='right'>" + tr("min.") + "</th><th align='right'>" + tr("max.") + "</th></tr>";
+
+    QStringList keys = extrema.keys();
+    qSort(keys.begin(), keys.end(), sortByName);
+
+    for(const QString& key : keys)
+    {
+        const CKnownExtension& ext = CKnownExtension::get(key);
+        const limits_t& limit = extrema[key];
+
+        const QString& labelMin = ext.toString(limit.min, false, key);
+        const QString& labelMax = ext.toString(limit.max, false, key);
+
+        if(!labelMin.isEmpty() && !labelMax.isEmpty())
+        {
+            addRowLimit(str, ext.getName(key), labelMin, labelMax);
+        }
+    }
+
+    str += "</table>";
+    return str;
+}
+
+QString CGisItemTrk::getInfo(quint32 feature) const
+{
+    QString val1, unit1, val2, unit2;
+
+    if(cntVisiblePoints == 0)
+    {
+        return feature ? QString("<div><b>%1</b></div>").arg(getName()) : QString("<div></div>");
+    }
+
+    bool timeIsValid = (allValidFlags & CTrackData::trkpt_t::eInvalidTime) == 0;
+    bool eleIsValid  = (allValidFlags & CTrackData::trkpt_t::eInvalidEle) == 0;
+
+
+    QString str = "<div>";
+
+    qint32 actCnt       = activities.getActivityCount();
+    quint32 actFlags    = activities.getAllFlags();
+
+    if(feature & eFeatureShowName)
+    {
+        if((actCnt == 1) && actFlags)
+        {
+            const CActivityTrk::desc_t& desc = activities.getDescriptor(actFlags);
+            str += QString("<img src='%1'/> ").arg(desc.iconSmall);
+        }
+        str += "<b>" + getName() + "</b>";
+    }
+
+    if((feature & eFeatureShowActivity) && (actCnt > 1))
+    {
+        str += "<br/>";
+        activities.printSummary(str);
+        str += "<br/>";
+    }
+    else
+    {
+        str += "<br/>";
+        IUnit::self().meter2distance(totalDistance, val1, unit1);
+        str += tr("Length: %1%2").arg(val1).arg(unit1);
+
+        if(eleIsValid && totalAscent != NOFLOAT && totalDescent != NOFLOAT)
+        {
+            IUnit::self().meter2elevation(totalAscent,  val1, unit1);
+            IUnit::self().meter2elevation(totalDescent, val2, unit2);
+
+            str += tr(", %1%2%3, %4%5%6").arg(QChar(0x2197)).arg(val1).arg(unit1).arg(QChar(0x2198)).arg(val2).arg(unit2);
+        }
+        else
+        {
+            str += tr(", %1-, %2-").arg(QChar(0x2197)).arg(QChar(0x2198));
+        }
+        str += "<br />";
+
+        if(timeIsValid && (totalElapsedSeconds != NOTIME))
+        {
+            IUnit::self().seconds2time(totalElapsedSeconds, val1, unit1);
+            IUnit::self().meter2speed(totalDistance / totalElapsedSeconds, val2, unit2);
+            str += tr("Time: %1%2, Speed: %3%4").arg(val1).arg(unit1).arg(val2).arg(unit2);
+        }
+        else
+        {
+            str += tr("Time: -, Speed: -");
+        }
+        str += "<br />";
+
+        if(timeIsValid && (totalElapsedSecondsMoving != NOTIME))
+        {
+            IUnit::self().seconds2time(totalElapsedSecondsMoving, val1, unit1);
+            IUnit::self().meter2speed(totalDistance / totalElapsedSecondsMoving, val2, unit2);
+            str += tr("Moving: %1%2, Speed: %3%4").arg(val1).arg(unit1).arg(val2).arg(unit2);
+        }
+        else
+        {
+            str += tr("Moving: -, Speed: -");
+        }
+        str += "<br />";
+    }
+
+    str += "<br/>";
+
+    if(timeIsValid && timeStart.isValid())
+    {
+        str += tr("Start: %1").arg(IUnit::datetime2string(timeStart, false, boundingRect.center()));
+    }
+    else
+    {
+        str += tr("Start: -");
+    }
+    str += "<br />";
+
+    if(timeIsValid && timeEnd.isValid())
+    {
+        str += tr("End: %1").arg(IUnit::datetime2string(timeEnd, false, boundingRect.center()));
+    }
+    else
+    {
+        str += tr("End: -");
+    }
+    str += "<br />";
+
+    str += tr("Points: %1 (%2)").arg(cntVisiblePoints).arg(cntTotalPoints) + "<br />";
+
+    if((allValidFlags & (CTrackData::trkpt_t::eValidEle|CTrackData::trkpt_t::eInvalidEle)) == (CTrackData::trkpt_t::eValidEle|CTrackData::trkpt_t::eInvalidEle))
+    {
+        str += "<b style='color: red;'>" + tr("Invalid elevations!") + "</b><br/>";
+    }
+
+    if((allValidFlags & (CTrackData::trkpt_t::eValidTime|CTrackData::trkpt_t::eInvalidTime)) == (CTrackData::trkpt_t::eValidTime|CTrackData::trkpt_t::eInvalidTime))
+    {
+        str += "<b style='color: red;'>" + tr("Invalid timestamps!") + "</b><br/>";
+    }
+
+    if((allValidFlags & (CTrackData::trkpt_t::eValidPos|CTrackData::trkpt_t::eInvalidPos)) == (CTrackData::trkpt_t::eValidPos|CTrackData::trkpt_t::eInvalidPos))
+    {
+        str += "<b style='color: red;'>" + tr("Invalid positions!") + "</b><br/>";
+    }
+
+    if((allValidFlags & (CTrackData::trkpt_t::eValidSlope|CTrackData::trkpt_t::eInvalidSlope)) == (CTrackData::trkpt_t::eValidSlope|CTrackData::trkpt_t::eInvalidSlope))
+    {
+        str += "<b style='color: red;'>" + tr("Invalid slopes!") + "</b><br/>";
+    }
+
+    if(feature & eFeatureShowFullText)
+    {
+        QStringList actNames;
+        activities.getActivityNames(actNames);
+        if(!actNames.isEmpty())
+        {
+            str += "</div><div>" + tr("Activities: %1").arg(actNames.join(", "));
+        }
+
+        QString desc = removeHtml(trk.desc).simplified();
+        if(desc.count())
+        {
+            if(!str.isEmpty())
+            {
+                str += "<br/>\n";
+            }
+            str += desc;
+        }
+
+        QString cmt = removeHtml(trk.cmt).simplified();
+        if((cmt != desc) && cmt.count())
+        {
+            if(!str.isEmpty())
+            {
+                str += "<br/>\n";
+            }
+            str += cmt;
+        }
+    }
+
+
+    return str + "</div>";
+}
+
+QString CGisItemTrk::getInfoRange() const
+{
+    qreal tmp, slope1;
+    QString str, val, unit;
+    if((mouseRange1 == nullptr) || (mouseRange2 == nullptr) || (mouseRange1 == mouseRange2))
+    {
+        return str;
+    }
+
+    const CTrackData::trkpt_t *pt1 = mouseRange1;
+    const CTrackData::trkpt_t *pt2 = mouseRange2;
+    if(mouseRange1->idxTotal >= mouseRange2->idxTotal)
+    {
+        pt1 = mouseRange2;
+        pt2 = mouseRange1;
+    }
+
+    for(; pt1->isHidden() && (pt1->idxTotal < (cntTotalPoints - 1)); ++pt1)
+    {
+    }
+    for(; pt2->isHidden() && (pt2->idxTotal > 0); --pt2)
+    {
+    }
+
+    bool timeIsValid = pt1->time.isValid() && pt2->time.isValid();
+    qreal deltaTime  = pt2->time.toTime_t() - pt1->time.toTime_t();
+
+    const qreal distance = pt2->distance - pt1->distance;
+
+    IUnit::self().meter2distance(distance, val, unit);
+    str += QString("%3 %1%2 ").arg(val).arg(unit).arg(QChar(0x21A6));
+    if(timeIsValid)
+    {
+        quint32 t  = pt2->time.toTime_t() - pt1->time.toTime_t();
+        quint32 hh =  t / 3600;
+        quint32 mm = (t % 3600) / 60;
+        quint32 ss =  t % 60;
+
+        str += QString("%4 %1:%2:%3").arg(hh, 2, 10, QChar('0')).arg(mm, 2, 10, QChar('0')).arg(ss, 2, 10, QChar('0')).arg(QChar(0x231a));
+
+        IUnit::self().meter2speed(distance/deltaTime, val, unit);
+        str += QString(", %3 %1%2").arg(val).arg(unit).arg(QChar(0x21A3));
+    }
+    str += "\n";
+
+    qreal deltaAscent  = pt2->ascent  - pt1->ascent;
+    qreal deltaDescent = pt2->descent - pt1->descent;
+
+    tmp    = qAtan(deltaAscent / distance);
+    slope1 = qAbs(tmp * 360.0 / (2 * M_PI));
+    QString val2, unit2;
+    IUnit::self().slope2string(slope1, val2, unit2);
+
+
+    IUnit::self().meter2elevation(deltaAscent, val, unit);
+    str += QString("%3 %1%2 (%4%5)").arg(val).arg(unit).arg(QChar(0x2197)).arg(val2).arg(unit2);
+    if(timeIsValid)
+    {
+        IUnit::self().meter2speed(deltaAscent/deltaTime, val, unit);
+        str += QString(", %1%2").arg(val).arg(unit);
+    }
+    str += "\n";
+
+    tmp    = qAtan(deltaDescent/distance);
+    slope1 = qAbs(tmp * 360.0/(2 * M_PI));
+    IUnit::self().slope2string(slope1, val2, unit2);
+
+    IUnit::self().meter2elevation(deltaDescent, val, unit);
+    str += QString("%3 %1%2 (%4%5)").arg(val).arg(unit).arg(QChar(0x2198)).arg(val2).arg(unit2);
+    if(timeIsValid)
+    {
+        IUnit::self().meter2speed(deltaDescent/deltaTime, val, unit);
+        str += QString(", %1%2").arg(val).arg(unit);
+    }
+
+    return str + "\n";
+}
+
+QString CGisItemTrk::getInfoTrkPt(const CTrackData::trkpt_t& pt) const
+{
+    QString str, val1, unit1;
+
+    if(pt.idxTotal == pt.idxVisible)
+    {
+        str += tr("Index: %1").arg(pt.idxVisible);
+    }
+    else
+    {
+        str += tr("Index: visible %1, total %2").arg(pt.idxVisible).arg(pt.idxTotal);
+    }
+    str += "\n";
+
+    if(totalElapsedSeconds != 0)
+    {
+        str += IUnit::datetime2string(pt.time, false, QPointF(pt.lon, pt.lat) * DEG_TO_RAD);
+        str += "\n";
+    }
+
+    IUnit::self().meter2elevation(pt.ele, val1, unit1);
+    str += tr("Ele.: %1%2").arg(val1).arg(unit1);
+    if(pt.slope1 != NOFLOAT)
+    {
+        IUnit::self().slope2string(pt.slope1, val1, unit1);
+        str += tr(", Slope: %1%2").arg(val1).arg(unit1);
+    }
+    if(pt.speed != NOFLOAT)
+    {
+        IUnit::self().meter2speed(pt.speed, val1, unit1);
+        str += tr(", Speed: %1%2").arg(val1).arg(unit1);
+    }
+
+    QStringList keys = pt.extensions.keys();
+    keys.sort();
+
+    qint32 more = keys.size() - 10;
+    if(more > 0)
+    {
+        keys = keys.mid(0, 10);
+    }
+
+    for(const QString &key : keys)
+    {
+        const CKnownExtension &ext = CKnownExtension::get(key);
+        if(ext.known)
+        {
+            str += "\n" + ext.nameLongText + ": " + QString("%1%2").arg(ext.valueFunc(pt)*ext.factor, 0, 'f', 1).arg(ext.unit);
+        }
+        else
+        {
+            QStringList tags = key.split("|");
+            str += "\n" + tags.last() + ": " + pt.extensions[key].toString();
+        }
+    }
+
+    if(more > 0)
+    {
+        str += "\n" + tr("... and %1 tags not displayed").arg(more);
+    }
+
+    return str;
+}
+
+QString CGisItemTrk::getInfoProgress(const CTrackData::trkpt_t& pt) const
+{
+    QString val, unit;
+
+    QString asc = tr("Ascent: - (-)");
+    QString dsc = tr("Descent: - (-)");
+    QString dst = tr("Distance: - (-)");
+    QString mov = tr("Moving: - (-)");
+
+    if(pt.ascent != NOFLOAT)
+    {
+        IUnit::self().meter2elevation(pt.ascent, val, unit);
+        asc = tr("Ascent: %1%2 (%3%)").arg(val).arg(unit).arg(pt.ascent * 100/totalAscent, 2, 'f', 0);
+    }
+
+    if(pt.descent != NOFLOAT)
+    {
+        IUnit::self().meter2elevation(pt.descent, val, unit);
+        dsc = tr(", Descent: %1%2 (%3%)").arg(val).arg(unit).arg(pt.descent * 100/totalDescent, 2, 'f', 0);
+    }
+
+    if(pt.distance != NOFLOAT)
+    {
+        IUnit::self().meter2distance(pt.distance, val, unit);
+        dst = tr("Distance: %1%2 (%3%)").arg(val).arg(unit).arg(pt.distance * 100/totalDistance, 2, 'f', 0);
+    }
+
+    if(pt.elapsedSeconds != NOFLOAT)
+    {
+        IUnit::self().seconds2time(pt.elapsedSecondsMoving, val, unit);
+        mov = tr(", Moving: %1%2 (%3%)").arg(val).arg(unit).arg(pt.elapsedSecondsMoving * 100/totalElapsedSecondsMoving, 2, 'f', 0);
+    }
+
+    return QString("%1%2\n%3%4").arg(asc).arg(dsc).arg(dst).arg(mov);
+}
+
+QString CGisItemTrk::getInfoRange(const CTrackData::trkpt_t& pt1, const CTrackData::trkpt_t& pt2) const
+{
+    QString val, unit;
+    qreal dt = NOFLOAT;
+
+    if(pt1.time.isValid() && pt2.time.isValid())
+    {
+        dt = pt2.time.toTime_t() - pt1.time.toTime_t();
+    }
+
+    QString asc = tr("Ascent: -");
+    QString dsc = tr("Descent: -");
+
+    if((pt1.ascent != NOFLOAT) && (pt2.ascent != NOFLOAT))
+    {
+        IUnit::self().meter2elevation(pt2.ascent - pt1.ascent, val, unit);
+        asc = tr("Ascent: %1%2").arg(val).arg(unit);
+
+        if(dt != NOFLOAT)
+        {
+            IUnit::self().meter2speed((pt2.ascent - pt1.ascent)/dt, val, unit);
+            asc += tr(", %1%2").arg(val).arg(unit);
+        }
+    }
+
+    if((pt1.descent != NOFLOAT) && (pt2.descent != NOFLOAT))
+    {
+        IUnit::self().meter2elevation(pt2.descent - pt1.descent, val, unit);
+        dsc = tr(", Descent: %1%2").arg(val).arg(unit);
+
+        if(dt != NOFLOAT)
+        {
+            IUnit::self().meter2speed((pt2.descent - pt1.descent)/dt, val, unit);
+            dsc += tr(", %1%2").arg(val).arg(unit);
+        }
+    }
+
+    IUnit::self().meter2distance(pt2.distance - pt1.distance, val, unit);
+    QString dsttme = tr("Distance: %1%2").arg(val).arg(unit);
+
+    if(dt != NOFLOAT)
+    {
+        IUnit::self().seconds2time(dt, val, unit);
+        dsttme += tr(", Time: %1%2").arg(val).arg(unit);
+    }
+
+    return QString("%1%2\n%3").arg(asc).arg(dsc).arg(dsttme);
+}
+
+qint32 CGisItemTrk::getElevation(qint32 idx) const
+{
+    const CTrackData::trkpt_t *trkpt = trk.getTrkPtByTotalIndex(idx);
+    return trkpt != nullptr ? trkpt->ele : NOINT;
+}
+
+IScrOpt * CGisItemTrk::getScreenOptions(const QPoint& origin, IMouse * mouse)
+{
+    if(scrOpt.isNull())
+    {
+        scrOpt = new CScrOptTrk(this, origin, mouse);
+    }
+    return scrOpt;
+}
+
+static qint32 getIdxPointCloseBy(const QPoint &pos, const QPolygonF &line)
+{
+    qint32 idx     = 0;
+    qint32 bestIdx = NOIDX;
+    qint32 bestDst = NOINT;
+    for(const QPointF &pt : line)
+    {
+        int dst = (pos - pt).manhattanLength();
+        if(dst < bestDst)
+        {
+            bestIdx = idx;
+            bestDst = dst;
+        }
+        ++idx;
+    }
+
+    return bestIdx;
+}
+
+QPointF CGisItemTrk::getPointCloseBy(const QPoint& screenPos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    qint32 bestIdx = getIdxPointCloseBy(screenPos, lineSimple);
+    return (NOIDX == bestIdx) ? NOPOINTF : lineSimple[bestIdx];
+}
+
+
+
+
+bool CGisItemTrk::isRangeSelected() const
+{
+    return mouseRange1 != mouseRange2;
+}
+
+static inline void updateExtrema(CGisItemTrk::limits_t &extrema, qreal val, const QPointF& pos)
+{
+    if(NOFLOAT != val)
+    {
+        extrema.setMin(val, pos);
+        extrema.setMax(val, pos);
+    }
+}
+
+void CGisItemTrk::updateExtremaAndExtensions()
+{
+    extrema = QHash<QString, limits_t>();
+    limits_t extremaSpeed;
+    limits_t extremaSlope;
+    limits_t extremaEle;
+    limits_t extremaProgress;
+
+
+    existingExtensions = QSet<QString>();
+    QSet<QString> nonRealExtensions;
+
+    for(const CTrackData::trkpt_t &pt : trk)
+    {
+        if(pt.isHidden())
+        {
+            continue;
+        }
+
+        existingExtensions.unite(pt.extensions.keys().toSet());
+
+        const QPointF& pos = {pt.lon, pt.lat};
+        for(const QString &key : pt.extensions.keys())
+        {
+            bool isReal = false;
+            qreal val = pt.extensions.value(key).toReal(&isReal);
+
+
+            if(isReal)
+            {
+                if(!extrema.contains(key))
+                {
+                    extrema[key] = limits_t();
+                }
+                updateExtrema(extrema[key], val, pos);
+            }
+            else
+            {
+                nonRealExtensions << key;
+            }
+        }
+
+        updateExtrema(extremaSpeed,    pt.speed, pos);
+        updateExtrema(extremaEle,      pt.ele, pos);
+        updateExtrema(extremaSlope,    pt.slope1, pos);
+        updateExtrema(extremaProgress, pt.distance, pos);
+    }
+
+    if(extremaEle.min < extremaEle.max)
+    {
+        existingExtensions << CKnownExtension::internalEle;
+        extrema[CKnownExtension::internalEle] = extremaEle;
+    }
+
+    if(extremaSlope.min < extremaSlope.max)
+    {
+        existingExtensions << CKnownExtension::internalSlope;
+        extrema[CKnownExtension::internalSlope] = extremaSlope;
+    }
+
+    if(numeric_limits<qreal>::max() != extremaSpeed.min)
+    {
+        existingExtensions << CKnownExtension::internalSpeedDist;
+        existingExtensions << CKnownExtension::internalSpeedTime;
+        extrema[CKnownExtension::internalSpeedDist] = extremaSpeed;
+    }
+
+    if(numeric_limits<qreal>::max() != extremaProgress.min)
+    {
+        existingExtensions << CKnownExtension::internalProgress;
+        extrema[CKnownExtension::internalProgress] = extremaProgress;
+    }
+
+    existingExtensions.subtract(nonRealExtensions);
+}
+
+void CGisItemTrk::resetInternalData()
+{
+    mouseClickFocus = nullptr;
+    mouseMoveFocus  = nullptr;
+    resetMouseRange();
+
+    delete dlgDetails;
+}
+
+void CGisItemTrk::verifyTrkPt(CTrackData::trkpt_t*& last, CTrackData::trkpt_t& trkpt)
+{
+    trkpt.valid = (trkpt.ele != NOINT) ? quint32(CTrackData::trkpt_t::eValidEle) : quint32(CTrackData::trkpt_t::eInvalidEle);
+    trkpt.valid |= (trkpt.lat < -90) || (trkpt.lat > 90) || (trkpt.lon < -180) || (trkpt.lon > 180) ? quint32(CTrackData::trkpt_t::eInvalidPos) : quint32(CTrackData::trkpt_t::eValidPos);
+
+    if(trkpt.time.isValid())
+    {
+        if(last != nullptr)
+        {
+            trkpt.valid |= (trkpt.time.toMSecsSinceEpoch() - last->time.toMSecsSinceEpoch()) < 0 ? quint32(CTrackData::trkpt_t::eInvalidTime) : quint32(CTrackData::trkpt_t::eValidTime);
+        }
+        else
+        {
+            trkpt.valid |= CTrackData::trkpt_t::eValidTime;
+        }
+
+        last = &trkpt;
+    }
+    else
+    {
+        trkpt.valid |= CTrackData::trkpt_t::eInvalidTime;
+    }
+
+    trkpt.valid |= (trkpt.slope1 == NOFLOAT) || (trkpt.slope2 == NOFLOAT) ? quint32(CTrackData::trkpt_t::eInvalidSlope) : quint32(CTrackData::trkpt_t::eValidSlope);
+}
+
+void CGisItemTrk::consolidatePoints()
+{
+    for(CTrackData::trkseg_t &seg : trk.segs)
+    {
+        if(seg.pts.empty())
+        {
+            continue;
+        }
+
+        seg.pts.first().unsetFlag(CTrackData::trkpt_t::eSubpt);
+        seg.pts.last().unsetFlag(CTrackData::trkpt_t::eSubpt);
+    }
+}
+
+void CGisItemTrk::deriveSecondaryData()
+{
+    consolidatePoints();
+
+    qreal north = -90;
+    qreal east  = -180;
+    qreal south =  90;
+    qreal west  =  180;
+
+    // reset all secondary data
+    allValidFlags             = 0;
+    cntInvalidPoints          = 0;
+    cntTotalPoints            = 0;
+    cntVisiblePoints          = 0;
+    timeStart                 = QDateTime();
+    timeEnd                   = QDateTime();
+    totalDistance             = NOFLOAT;
+    totalAscent               = NOFLOAT;
+    totalDescent              = NOFLOAT;
+    totalElapsedSeconds       = NOTIME;
+    totalElapsedSecondsMoving = NOTIME;
+
+    trk.removeEmptySegments();
+
+    // no data -> nothing to do
+    if(trk.isEmpty())
+    {
+        return;
+    }
+
+    CTrackData::trkpt_t * lastValid  = nullptr;
+    CTrackData::trkpt_t * lastTrkpt  = nullptr;
+    qreal timestampStart = NOFLOAT;
+    qint32 lastEle       = NOINT;
+
+
+    // linear list of pointers to visible track points
+    QVector<CTrackData::trkpt_t*> lintrk;
+
+    for(CTrackData::trkpt_t& trkpt : trk)
+    {
+        trkpt.idxTotal = cntTotalPoints++;
+
+        if(trkpt.isHidden())
+        {
+            trkpt.reset();
+            continue;
+        }
+
+
+        trkpt.idxVisible = cntVisiblePoints++;
+        lintrk << &trkpt;
+
+        west  = qMin(west,  trkpt.lon);
+        east  = qMax(east,  trkpt.lon);
+        south = qMin(south, trkpt.lat);
+        north = qMax(north, trkpt.lat);
+
+        if(lastTrkpt != nullptr)
+        {
+            trkpt.deltaDistance  = lastTrkpt->distanceTo(trkpt);
+            trkpt.distance       = lastTrkpt->distance + trkpt.deltaDistance;
+            trkpt.elapsedSeconds = trkpt.time.toMSecsSinceEpoch()/1000.0 - timestampStart;
+
+            // ascent descent
+            if(lastEle != NOINT)
+            {
+                qint32 delta  = trkpt.ele - lastEle;
+
+                trkpt.ascent  = lastTrkpt->ascent;
+                trkpt.descent = lastTrkpt->descent;
+
+                if(qAbs(delta) >= ASCENT_THRESHOLD)
+                {
+                    const qint32 step = (delta/ASCENT_THRESHOLD)*ASCENT_THRESHOLD;
+
+                    if(delta > 0)
+                    {
+                        trkpt.ascent  += step;
+                    }
+                    else
+                    {
+                        trkpt.descent -= step;
+                    }
+                    lastEle += step;
+                }
+            }
+
+            // time moving
+            trkpt.elapsedSecondsMoving = lastTrkpt->elapsedSecondsMoving;
+            qreal dt = (trkpt.time.toMSecsSinceEpoch() - lastTrkpt->time.toMSecsSinceEpoch()) / 1000.0;
+            if(dt > 0 && ((trkpt.deltaDistance / dt) > 0.2))
+            {
+                trkpt.elapsedSecondsMoving += dt;
+            }
+        }
+        else
+        {
+            timeStart      = trkpt.time;
+            timestampStart = timeStart.toMSecsSinceEpoch()/1000.0;
+            lastEle        = trkpt.ele;
+
+            trkpt.deltaDistance        = 0;
+            trkpt.distance             = 0;
+            trkpt.ascent               = 0;
+            trkpt.descent              = 0;
+            trkpt.elapsedSeconds       = 0;
+            trkpt.elapsedSecondsMoving = 0;
+        }
+
+        lastTrkpt = &trkpt;
+    }
+
+    boundingRect = QRectF(QPointF(west * DEG_TO_RAD, north * DEG_TO_RAD), QPointF(east * DEG_TO_RAD,south * DEG_TO_RAD));
+
+    for(int p = 0; p < lintrk.size(); p++)
+    {
+        CTrackData::trkpt_t& trkpt = *lintrk[p];
+
+        qreal d1 = trkpt.distance;
+        qreal e1 = trkpt.ele;
+        qreal t1 = trkpt.time.toMSecsSinceEpoch() / 1000.0;
+        for(int n = p; n > 0; --n)
+        {
+            CTrackData::trkpt_t & trkpt2 = *lintrk[n];
+            if(trkpt2.ele == NOINT)
+            {
+                continue;
+            }
+
+            if(trkpt.distance - trkpt2.distance >= 25)
+            {
+                d1 = trkpt2.distance;
+                e1 = trkpt2.ele;
+                t1 = trkpt2.time.toMSecsSinceEpoch()/1000.0;
+                break;
+            }
+        }
+
+        qreal d2 = trkpt.distance;
+        qreal e2 = trkpt.ele;
+        qreal t2 = trkpt.time.toMSecsSinceEpoch() / 1000.0;
+        for(int n = p; n < lintrk.size(); ++n)
+        {
+            CTrackData::trkpt_t & trkpt2 = *lintrk[n];
+            if(trkpt2.ele == NOINT)
+            {
+                continue;
+            }
+
+            if(trkpt2.distance - trkpt.distance >= 25)
+            {
+                d2 = trkpt2.distance;
+                e2 = trkpt2.ele;
+                t2 = trkpt2.time.toMSecsSinceEpoch() / 1000.0;
+                break;
+            }
+        }
+
+        if(d1 < d2)
+        {
+            qreal a      = qAtan((e2 - e1)/(d2 - d1));
+            trkpt.slope1 = a * 360.0/(2 * M_PI);
+            trkpt.slope2 = qTan(trkpt.slope1 * DEG_TO_RAD) * 100;
+        }
+        else
+        {
+            trkpt.slope1 = NOFLOAT;
+            trkpt.slope2 = NOFLOAT;
+        }
+
+        if(t1 < t2)
+        {
+            trkpt.speed = (d2 - d1) / (t2 - t1);
+        }
+        else
+        {
+            trkpt.speed = NOFLOAT;
+        }
+
+        // verify data
+        verifyTrkPt(lastValid, trkpt);
+        // add current status to allValidFlags
+        allValidFlags |= trkpt.valid;
+        if((trkpt.valid & 0xFFFF0000) != 0)
+        {
+            cntInvalidPoints++;
+        }
+    }
+
+    if(nullptr != lastTrkpt)
+    {
+        timeEnd                   = lastTrkpt->time;
+        totalDistance             = lastTrkpt->distance;
+        totalAscent               = lastTrkpt->ascent;
+        totalDescent              = lastTrkpt->descent;
+        totalElapsedSeconds       = lastTrkpt->elapsedSeconds;
+        totalElapsedSecondsMoving = lastTrkpt->elapsedSecondsMoving;
+    }
+
+    activities.update();
+
+    updateExtremaAndExtensions();
+    // make sure we have a graph properties object by now
+    if(propHandler == nullptr)
+    {
+        propHandler = new CPropertyTrk(*this);
+        limitsGraph1.setSource(CKnownExtension::internalEle);
+    }
+    else
+    {
+        propHandler->setupData();
+    }
+
+    setupInterpolation(interp.valid, interp.Q);
+
+    updateVisuals(eVisualPlot|eVisualDetails|eVisualProject|eVisualColorAct|eVisualTrkTable, "deriveSecondaryData()");
+
+//    qDebug() << "--------------" << getName() << "------------------";
+//    qDebug() << "allValidFlags" << hex << allValidFlags;
+//    qDebug() << "totalDistance" << totalDistance;
+//    qDebug() << "totalAscent" << totalAscent;
+//    qDebug() << "totalDescent" << totalDescent;
+//    qDebug() << "totalElapsedSeconds" << totalElapsedSeconds;
+//    qDebug() << "totalElapsedSecondsMoving" << totalElapsedSecondsMoving;
+}
+
+
+void CGisItemTrk::findWaypointsCloseBy(CProgressDialog& progress, quint32& current)
+{
+    IGisProject * project = getParentProject();
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    quint32 lastCurrent = current;
+
+    bool withDoubles = project->getSortingRoadbook() != IGisProject::eSortRoadbookTrackWithoutDouble;
+
+    QVector<pointDP> line;
+    // combine all segments to a single line
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.keyWpt.clear();
+        if(pt.isHidden())
+        {
+            continue;
+        }
+        pointDP dp(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD, 0);
+        dp.idx = pt.idxVisible;
+        line << dp;
+    }
+
+    if(line.isEmpty())
+    {
+        return;
+    }
+
+    // convert coordinates of all waypoints into meter coordinates relative to the first track point
+    point3D pt0 = line[0];
+    QList<trkwpt_t> trkwpts;
+    for(int i=0; i < project->childCount(); i++)
+    {
+        CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(project->child(i));
+        if(wpt == nullptr)
+        {
+            continue;
+        }
+
+        if(!boundingRect.contains(wpt->getBoundingRect().topLeft()))
+        {
+            continue;
+        }
+
+        QPointF pos = wpt->getPosition();
+
+        qreal a1 = 0, a2 = 0;
+        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pos.x() * DEG_TO_RAD, pos.y() * DEG_TO_RAD, a1, a2);
+
+        trkwpt_t trkwpt;
+        trkwpt.x    = qCos(a1 * DEG_TO_RAD) * d;
+        trkwpt.y    = qSin(a1 * DEG_TO_RAD) * d;
+        trkwpt.name = wpt->getName();
+        trkwpt.key  = wpt->getKey();
+
+        trkwpts << trkwpt;
+    }
+
+    // convert all coordinates into meter relative to the first track point.
+    for(pointDP& pt1 : line)
+    {
+        qreal a1 = 0, a2 = 0;
+        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pt1.x, pt1.y, a1, a2);
+
+        pt1.x = qCos(a1 * DEG_TO_RAD) * d;
+        pt1.y = qSin(a1 * DEG_TO_RAD) * d;
+    }
+
+    numberOfAttachedWpt = 0;
+    for(const trkwpt_t &trkwpt : trkwpts)
+    {
+        qreal minD   = WPT_FOCUS_DIST_IN;
+        qint32 index = NOIDX;
+
+        for(const pointDP &pt : line)
+        {
+            ++current;
+            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(withDoubles && (d > WPT_FOCUS_DIST_OUT))
+            {
+                CTrackData::trkpt_t * trkpt = const_cast<CTrackData::trkpt_t*>(trk.getTrkPtByVisibleIndex(index));
+                if(trkpt)
+                {
+                    ++numberOfAttachedWpt;
+                    trkpt->keyWpt = trkwpt.key;
+                }
+
+                index = NOIDX;
+                minD  = WPT_FOCUS_DIST_IN;
+            }
+
+            if(current - lastCurrent > 100)
+            {
+                lastCurrent = current;
+                PROGRESS(current, return );
+            }
+        }
+
+        if(index != NOIDX)
+        {
+            CTrackData::trkpt_t * trkpt = const_cast<CTrackData::trkpt_t*>(trk.getTrkPtByVisibleIndex(index));
+            if(trkpt)
+            {
+                ++numberOfAttachedWpt;
+                trkpt->keyWpt = trkwpt.key;
+            }
+        }
+    }
+
+    updateVisuals(eVisualDetails|eVisualPlot, "findWaypointsCloseBy()");
+}
+
+bool CGisItemTrk::isCloseTo(const QPointF& pos)
+{
+    QMutexLocker lock(&mutexItems);
+
+    return GPS_Math_DistPointPolyline(lineSimple, pos) < 20;
+}
+
+bool CGisItemTrk::isWithin(const QRectF& area, selflags_t flags)
+{
+    return (flags & eSelectionTrk) ? IGisItem::isWithin(area, flags, lineSimple) : false;
+}
+
+
+void CGisItemTrk::gainUserFocus(bool yes)
+{
+    keyUserFocus = yes ? key : key_t();
+    widthInfoBox = MIN_WIDTH_INFO_BOX;
+}
+
+void CGisItemTrk::looseUserFocus()
+{
+    if(keyUserFocus == key)
+    {
+        keyUserFocus.clear();
+    }
+}
+
+
+void CGisItemTrk::edit()
+{
+    if(dlgDetails.isNull())
+    {
+        dlgDetails = new CDetailsTrk(*this, nullptr);
+        dlgDetails->setObjectName(getName());
+    }
+
+    CMainWindow::self().addWidgetToTab(dlgDetails);
+}
+
+
+bool CGisItemTrk::cut()
+{
+    if(nullptr == mouseClickFocus)
+    {
+        return false;
+    }
+
+    CCutTrk dlg(CMainWindow::getBestWidgetForParent());
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return false;
+    }
+
+    qint32 idxMouse             = mouseClickFocus->idxTotal;
+    CCutTrk::mode_e mode        = dlg.getMode();
+    CCutTrk::cutmode_e cutMode  = dlg.getCutMode();
+
+    // if the cut action results into cloning a track, the calling method should
+    // ask if the original track should be removed. As a track can't delete itself
+    // this has to be done from the outside of this method.
+    bool askToDeleteOriginal = dlg.createClone() || (mode == CCutTrk::eModeKeepBoth);
+
+    // askToDeleteOriginal = store result as clone
+    if(askToDeleteOriginal)
+    {
+        // clone first part?
+        if((mode & (CCutTrk::eModeKeepBoth|CCutTrk::eModeKeepFirst)) != 0)
+        {
+            int idx = cutMode == CCutTrk::eCutMode1 ? idxMouse  - 1 : idxMouse;
+            if(idx < 0)
+            {
+                idx = 0;
+            }
+
+            QString name = getName() + QString(" (%1 - %2)").arg(0).arg(idx);
+            IGisProject *project = nullptr;
+            if(!getNameAndProject(name, project, tr("track")))
+            {
+                return false;
+            }
+
+            new CGisItemTrk(name, 0, idx, trk, project);
+        }
+
+        // clone second part?
+        if((mode & (CCutTrk::eModeKeepBoth|CCutTrk::eModeKeepSecond)) != 0)
+        {
+            QString name = getName() + QString(" (%1 - %2)").arg(idxMouse).arg(cntTotalPoints-1);
+            IGisProject *project = nullptr;
+            if(!getNameAndProject(name, project, tr("track")))
+            {
+                return false;
+            }
+
+            new CGisItemTrk(name, idxMouse, cntTotalPoints-1, trk, project);
+        }
+    }
+    else
+    {
+        // if the result is not a clone, the track's list of segments and trackpoints
+        // has to be reduced. This is done by copying points into a new trackpoint list
+        // that replaces the original one.
+        int removeStart = ((mode & CCutTrk::eModeKeepFirst) != 0) ? idxMouse + 1   : 0;
+        int removeEnd   = ((mode & CCutTrk::eModeKeepFirst) != 0) ? cntTotalPoints : idxMouse - 1;
+
+        for(CTrackData::trkseg_t& seg : trk.segs)
+        {
+            if(seg.isEmpty())
+            {
+                continue;
+            }
+
+            if(removeStart <= seg.pts.first().idxTotal && seg.pts.last().idxTotal <= removeEnd)
+            {
+                // remove all points for segments, that are completely in [removeStart; removeEnd]
+                seg.pts.clear();
+            }
+            else if( isInRange(removeStart, seg.pts.first().idxTotal, seg.pts.last().idxTotal)
+                     || isInRange(removeEnd,   seg.pts.first().idxTotal, seg.pts.last().idxTotal) )
+            {
+                QVector<CTrackData::trkpt_t> pts;
+
+                for(const CTrackData::trkpt_t& pt : seg.pts)
+                {
+                    if(!(removeStart <= pt.idxTotal && pt.idxTotal <= removeEnd) )
+                    {
+                        pts << pt;
+                    }
+                }
+
+                seg.pts = pts;
+            }
+            // else: keep any segments, that are not in [removeStart; removeEnd]
+        }
+        deriveSecondaryData();
+        changed(tr("Permanently removed points %1..%2").arg(removeStart).arg(removeEnd), "://icons/48x48/TrkCut.png");
+    }
+
+    return askToDeleteOriginal;
+}
+
+void CGisItemTrk::reverse()
+{
+    QString name = getName() + "_rev";
+    IGisProject *project = nullptr;
+    if(!getNameAndProject(name, project, tr("track")))
+    {
+        return;
+    }
+
+    // start with a 1:1 copy of the first track
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, project, NOIDX, false);
+    trk1->trk.name = name;
+    /*
+        clear track data, item key and history. To clear the history is important as
+        the original track's history would restore the original key
+
+     */
+    trk1->trk.segs.clear();
+    trk1->key.clear();
+    trk1->history.events.clear();
+
+    for(const CTrackData::trkseg_t &seg : trk.segs)
+    {
+        CTrackData::trkseg_t seg1;
+        for(const CTrackData::trkpt_t &pt : seg.pts)
+        {
+            CTrackData::trkpt_t pt1 = pt;
+            pt1.time    = QDateTime();
+
+            seg1.pts.push_front(pt1);
+        }
+        trk1->trk.segs.push_front(seg1);
+    }
+    // restore secondary data and create a new history
+    trk1->deriveSecondaryData();
+    trk1->setupHistory();
+    trk1->updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void CGisItemTrk::combine(const QList<IGisItem::key_t>& keys)
+{
+    if(keys.isEmpty())
+    {
+        return;
+    }
+
+    QString name = getName() + " & other";
+    IGisProject *projectNew = nullptr;
+    if(!getNameAndProject(name, projectNew, tr("track")))
+    {
+        return;
+    }
+
+    // start with a 1:1 copy of the first track
+    CGisItemTrk * trk1 = new CGisItemTrk(*this, projectNew, NOIDX, false);
+    // replace name
+    trk1->trk.name = name;
+
+    /*
+        clear track data, item key and history. To clear the history is important as
+        the original track's history would restore the original key
+
+     */
+    trk1->trk.segs.clear();
+    trk1->key.clear();
+    trk1->history.events.clear();
+
+    // copy the segments of all tracks to new track
+    CGisWorkspace& gis = CGisWorkspace::self();
+    for(const IGisItem::key_t &key : keys)
+    {
+        CGisItemTrk * trk2 = dynamic_cast<CGisItemTrk*>(gis.getItemByKey(key));
+        if(nullptr == trk2)
+        {
+            continue;
+        }
+
+        trk1->trk.segs += trk2->trk.segs;
+    }
+
+    // restore secondary data and create a new history
+    trk1->deriveSecondaryData();
+    trk1->setupHistory();
+    trk1->updateDecoration(eMarkChanged, eMarkNone);
+}
+
+void CGisItemTrk::hideSelectedPoints()
+{
+    if(!setReadOnlyMode(false))
+    {
+        return;
+    }
+
+    // read start/stop indices
+    qint32 idx1, idx2;
+    getMouseRange(idx1, idx2, true);
+
+    if(NOIDX == idx1)
+    {
+        return;
+    }
+
+
+    // if first index is the first point adjust index to hide it, too
+    if(trk.isTrkPtFirstVisible(idx1))
+    {
+        idx1--;
+    }
+    // if second index is the last point adjust index to hide it, too
+    if(trk.isTrkPtLastVisible(idx2))
+    {
+        idx2++;
+    }
+
+    // abort if there is no point between idx1 and idx2
+    if(idx1 + 1 == idx2)
+    {
+        return;
+    }
+
+    // special case for a single point
+    if(idx1 == idx2)
+    {
+        --idx1;
+        ++idx2;
+    }
+
+    // iterate over all segments and delete points between idx1 and idx2
+    for(CTrackData::trkpt_t& trkpt : trk)
+    {
+        if((idx1 < trkpt.idxTotal) && (trkpt.idxTotal < idx2))
+        {
+            trkpt.setFlag(CTrackData::trkpt_t::eHidden);
+        }
+    }
+    resetMouseRange();
+    deriveSecondaryData();
+    if(idx1 + 1 == idx2 - 1)
+    {
+        changed(tr("Hide point %1.").arg(idx1 + 1), "://icons/48x48/PointHide.png");
+    }
+    else
+    {
+        changed(tr("Hide points %1..%2.").arg(idx1 + 1).arg(idx2 - 1), "://icons/48x48/PointHide.png");
+    }
+}
+
+void CGisItemTrk::showSelectedPoints()
+{
+    if(!setReadOnlyMode(false))
+    {
+        return;
+    }
+
+    qint32 idx1, idx2;
+    getMouseRange(idx1, idx2, true);
+
+    if(NOIDX == idx1)
+    {
+        return;
+    }
+
+    for(CTrackData::trkpt_t& trkpt : trk)
+    {
+        if(isInRange(trkpt.idxTotal, idx1, idx2))
+        {
+            trkpt.unsetFlag(CTrackData::trkpt_t::eHidden);
+        }
+    }
+
+    resetMouseRange();
+    deriveSecondaryData();
+    changed(tr("Show points."), "://icons/48x48/PointShow.png");
+}
+
+void CGisItemTrk::copySelectedPoints() const
+{
+    qint32 idx1, idx2;
+    getMouseRange(idx1, idx2, true);
+
+    if(NOIDX == idx1)
+    {
+        return;
+    }
+
+    QString name = getName() + QString(" (%1 - %2)").arg(idx1).arg(idx2);
+    IGisProject *project = nullptr;
+    if(!getNameAndProject(name, project, tr("track")))
+    {
+        return;
+    }
+
+    new CGisItemTrk(name, idx1, idx2, trk, project);
+}
+
+void CGisItemTrk::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
+{
+    QMutexLocker lock(&mutexItems);
+
+    lineSimple.clear();
+    lineFull.clear();
+
+    if(!isVisible(boundingRect, viewport,gis))
+    {
+        return;
+    }
+
+    if(trk.segs.isEmpty())
+    {
+        return;
+    }
+
+    QPointF pt1;
+    QPointF p1 = viewport[0];
+    QPointF p2 = viewport[2];
+    gis->convertRad2Px(p1);
+    gis->convertRad2Px(p2);
+    QRectF extViewport(p1,p2);
+
+    if(mode == eModeNormal)
+    {
+        // in normal mode the trackline without points marked as deleted is drawn
+        for(const CTrackData::trkpt_t &pt : trk)
+        {
+            if(pt.isHidden())
+            {
+                continue;
+            }
+
+            pt1.setX(pt.lon);
+            pt1.setY(pt.lat);
+            pt1 *= DEG_TO_RAD;
+            lineSimple << pt1;
+        }
+    }
+    else
+    {
+        // in full mode the complete track including points marked as deleted
+        // is drawn as gray line first. Then the track without points marked as
+        // deleted is drawn with it's configured color
+        for(const CTrackData::trkpt_t &pt : trk)
+        {
+            pt1.setX(pt.lon);
+            pt1.setY(pt.lat);
+            pt1 *= DEG_TO_RAD;
+
+            lineFull << pt1;
+
+            if(pt.isHidden())
+            {
+                continue;
+            }
+
+            lineSimple << pt1;
+        }
+    }
+    gis->convertRad2Px(lineSimple);
+    gis->convertRad2Px(lineFull);
+
+    // draw the full line first
+    if(mode == eModeRange)
+    {
+        QList<QPolygonF> lines;
+        splitLineToViewport(lineFull, extViewport, lines);
+
+        p.setPen(QPen(Qt::lightGray, penWidthBg, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+
+        for(const QPolygonF &l : lines)
+        {
+            p.drawPolyline(l);
+        }
+
+        QPixmap bullet("://icons/8x8/bullet_dark_gray.png");
+        for(const QPolygonF &l : lines)
+        {
+            for(const QPointF &pt : l)
+            {
+                p.drawPixmap(pt.x() - 3, pt.y() - 3, bullet);
+            }
+        }
+    }
+    // -------------------------
+
+    // draw the reduced track line
+    QList<QPolygonF> lines;
+    splitLineToViewport(lineSimple, extViewport, lines);
+
+    if(key == keyUserFocus)
+    {
+        p.setPen(QPen(Qt::red, penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+        for(const QPolygonF &l : lines)
+        {
+            p.drawPolyline(l);
+        }
+    }
+
+    p.setBrush(color);
+    p.setPen(penBackground);
+    for(const QPolygonF &l : lines)
+    {
+        p.drawPolyline(l);
+        if(!isNogo() && showArrows.val().toBool())
+        {
+            CDraw::arrows(l, extViewport, p, 10, 80, lineScale.val().toDouble());
+        }
+    }
+
+    if(getColorizeSource().isEmpty())
+    {
+        // use the track's ordinary color
+        penForeground.setColor(color);
+        p.setPen(penForeground);
+        for(const QPolygonF &l : lines)
+        {
+            p.drawPolyline(l);
+        }
+    }
+    else if(getColorizeSource() == "activity")
+    {
+        drawColorizedByActivity(p);
+    }
+    else
+    {
+        drawColorized(p);
+    }
+
+    if (isNogo())
+    {
+        for(const QPolygonF &l : lines)
+        {
+            CDraw::nogos(l, extViewport, p, 80);
+        }
+    }
+
+    // -------------------------
+
+    // draw min/max labels
+    if(CMainWindow::self().isMinMaxTrackValues())
+    {
+        if(!keyUserFocus.item.isEmpty() && (key != keyUserFocus))
+        {
+            return;
+        }
+
+        for(const QString& key : extrema.keys())
+        {
+            if(key == CKnownExtension::internalProgress)
+            {
+                continue;
+            }
+
+            const limits_t& limit = extrema[key];
+            QPointF posMin = limit.posMin * DEG_TO_RAD;
+            QPointF posMax = limit.posMax * DEG_TO_RAD;
+
+            gis->convertRad2Px(posMin);
+            gis->convertRad2Px(posMax);
+
+            p.setPen(Qt::white);
+            p.setBrush(Qt::darkGreen);
+            p.drawEllipse(posMin, 5, 5);
+            p.setBrush(Qt::darkRed);
+            p.drawEllipse(posMax, 5, 5);
+        }
+    }
+}
+
+
+void CGisItemTrk::drawLimitLabels(limit_type_e type, const QString& label, const QPointF& pos, QPainter& p, const QFontMetricsF& fm, QList<QRectF>& blockedAreas)
+{
+    const QString& fullLabel = (type == eLimitTypeMin ? tr("min.") : tr("max.")) + " " + label;
+    QRectF rect = fm.boundingRect(fullLabel);
+    rect.moveBottomLeft(pos.toPoint() + QPoint(10,-10));
+    rect.adjust(-4,-2,4,2);
+
+    qint32 baseWidth    = 10;
+    qint32 basePos      = 10;
+
+
+    if(CDraw::doesOverlap(blockedAreas, rect))
+    {
+        rect.moveBottomRight(pos.toPoint() + QPoint(-10,-10));
+        basePos = rect.width() - 10;
+
+        if(CDraw::doesOverlap(blockedAreas, rect))
+        {
+            rect.moveTopLeft(pos.toPoint() + QPoint(10,10));
+            basePos = 10;
+
+            if(CDraw::doesOverlap(blockedAreas, rect))
+            {
+                rect.moveTopRight(pos.toPoint() + QPoint(-10,10));
+                basePos = rect.width() - 10;
+
+                if(CDraw::doesOverlap(blockedAreas, rect))
+                {
+                    return;
+                }
+            }
+        }
+    }
+
+    CDraw::bubble(p, rect.toRect(), pos.toPoint(), baseWidth, basePos, (key == keyUserFocus) ? CDraw::penBorderRed : CDraw::penBorderGray);
+    CDraw::text(fullLabel, p, rect.toRect(), type == eLimitTypeMin ? Qt::darkGreen : Qt::darkRed);
+    blockedAreas << rect;
+}
+
+void CGisItemTrk::setPen(QPainter& p, QPen& pen, quint32 flag) const
+{
+    flag &= CTrackData::trkpt_t::eActMask;
+    pen.setColor((flag == 0) ? color : CActivityTrk::getDescriptor(flag).color);
+    p.setPen(pen);
+}
+
+void CGisItemTrk::drawColorizedByActivity(QPainter& p) const
+{
+    QPen pen;
+    pen.setWidth(penWidthFg);
+    pen.setCapStyle(Qt::RoundCap);
+
+    for(const CTrackData::trkseg_t &segment : trk.segs)
+    {
+        const CTrackData::trkpt_t *ptPrev = nullptr;
+
+        for(const CTrackData::trkpt_t &pt : segment.pts)
+        {
+            if(pt.isHidden())
+            {
+                continue;
+            }
+            if(nullptr == ptPrev)
+            {
+                setPen(p, pen, pt.flags);
+                ptPrev = &pt;
+                continue;
+            }
+
+            if((ptPrev->flags & CTrackData::trkpt_t::eActMask) != (pt.flags & CTrackData::trkpt_t::eActMask))
+            {
+                setPen(p, pen, pt.flags);
+            }
+
+            p.drawLine(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
+            ptPrev = &pt;
+        }
+    }
+}
+
+void CGisItemTrk::drawColorized(QPainter &p) const
+{
+    auto valueFunc = CKnownExtension::get(getColorizeSource()).valueFunc;
+
+    QImage colors(1, 256, QImage::Format_RGB888);
+    QPainter colorsPainter(&colors);
+
+    QLinearGradient colorsGradient(colors.rect().topLeft(), colors.rect().bottomLeft());
+    colorsGradient.setColorAt(1.0, QColor(  0,   0, 255)); // blue
+    colorsGradient.setColorAt(0.6, QColor(  0, 255,   0)); // green
+    colorsGradient.setColorAt(0.4, QColor(255, 255,   0)); // yellow
+    colorsGradient.setColorAt(0.0, QColor(255,   0,   0)); // red
+    colorsPainter.fillRect(colors.rect(), colorsGradient);
+
+    const qreal factor = CKnownExtension::get(getColorizeSource()).factor;
+
+    for(const CTrackData::trkseg_t &segment : trk.segs)
+    {
+        const CTrackData::trkpt_t *ptPrev = nullptr;
+        QColor colorStart;
+
+        for(const CTrackData::trkpt_t &pt : segment.pts)
+        {
+            if(pt.isHidden())
+            {
+                continue;
+            }
+            if(nullptr == ptPrev)
+            {
+                ptPrev = &pt;
+                continue;
+            }
+
+            float colorAt = ( factor * valueFunc(pt) - getColorizeLimitLow() ) / (getColorizeLimitHigh() - getColorizeLimitLow());
+            colorAt = qMin(qMax(colorAt, 0.f), 1.f);
+
+            const QColor &colorEnd = colors.pixel(0, ((1.f - colorAt) * 255.f));
+            if(!colorStart.isValid())
+            {
+                colorStart = colorEnd;
+            }
+
+            QLinearGradient grad(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
+            grad.setColorAt(0.f, colorStart);
+            grad.setColorAt(1.f, colorEnd);
+
+            QPen pen;
+            pen.setBrush(QBrush(grad));
+            pen.setWidth(penWidthFg);
+            pen.setCapStyle(Qt::RoundCap);
+
+            p.setPen(pen);
+            p.drawLine(lineSimple[ptPrev->idxVisible], lineSimple[pt.idxVisible]);
+
+            ptPrev = &pt;
+            colorStart = colorEnd;
+        }
+    }
+}
+
+
+qreal CGisItemTrk::getMin(const QString& source) const
+{
+    return extrema.value(source).min * CKnownExtension::get(source).factor;
+}
+
+qreal CGisItemTrk::getMax(const QString& source) const
+{
+    return extrema.value(source).max * CKnownExtension::get(source).factor;
+}
+
+qreal CGisItemTrk::getMinProp(const QString& source) const
+{
+    return propHandler == nullptr ? NOFLOAT : propHandler->propBySource(source).min;
+}
+
+qreal CGisItemTrk::getMaxProp(const QString& source) const
+{
+    return propHandler == nullptr ? NOFLOAT : propHandler->propBySource(source).max;
+}
+
+QString CGisItemTrk::getUnitProp(const QString& source) const
+{
+    return propHandler == nullptr ? QString()
+           : propHandler->propBySource(source).unit;
+}
+
+
+QStringList CGisItemTrk::getExistingDataSources() const
+{
+    QStringList known;
+    QStringList unknown;
+
+    for(const QString &key : existingExtensions)
+    {
+        if(CKnownExtension::isKnown(key))
+        {
+            known << key;
+        }
+        else
+        {
+            unknown << key;
+        }
+    }
+
+    auto stringSort = [] (const QString &s1, const QString &s2)
+                      {
+                          return s1.toLower() < s2.toLower();
+                      };
+
+    qSort(known.begin(),   known.end(),   stringSort);
+    qSort(unknown.begin(), unknown.end(), stringSort);
+
+    return known + unknown;
+}
+
+void CGisItemTrk::setColorizeSource(QString src)
+{
+    if(src != getColorizeSource())
+    {
+        colorSourceLimit.setSource(src);
+        updateHistory(eVisualColorLegend|eVisualDetails);
+    }
+}
+
+void CGisItemTrk::setColorizeLimitLow(qreal limit)
+{
+    colorSourceLimit.setMin(limit);
+    updateHistory(eVisualColorLegend|eVisualDetails);
+}
+
+void CGisItemTrk::setColorizeLimitHigh(qreal limit)
+{
+    colorSourceLimit.setMax(limit);
+    updateHistory(eVisualColorLegend|eVisualDetails);
+}
+
+QString CGisItemTrk::getColorizeUnit() const
+{
+    return CKnownExtension::get(getColorizeSource()).unit;
+}
+
+
+void CGisItemTrk::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+{
+    QMutexLocker lock(&mutexItems);
+
+    if(trk.segs.isEmpty())
+    {
+        return;
+    }
+
+    if(hasUserFocus() && mouseMoveFocus && (mode != eModeRange))
+    {
+        // derive anchor
+        QPointF anchor(mouseMoveFocus->lon, mouseMoveFocus->lat);
+        anchor *= DEG_TO_RAD;
+        gis->convertRad2Px(anchor);
+
+        // create trackpoint info text
+        QString str = getInfoTrkPt(*mouseMoveFocus);
+
+        // calculate bounding box of text
+        QFont f = CMainWindow::self().getMapFont();
+        QFontMetrics fm(f);
+        QRect rectText = fm.boundingRect(QRect(0, 0, 500, 0), Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
+
+        // The initial minimum size of the box will be MIN_WIDTH_INFO_BOX.
+        // If a larger box is needed the minimum grows. By that the width
+        // of the box will only grow but not jump between sizes
+        if(rectText.width() < widthInfoBox)
+        {
+            rectText.setWidth(widthInfoBox);
+        }
+        else
+        {
+            widthInfoBox = rectText.width();
+        }
+
+        // create info box
+        int w = rectText.width()  + 5 + 5;
+        int h = rectText.height() + 5 + (fm.height() + 8);
+        if(totalElapsedSeconds != 0)
+        {
+            h += 5 + fm.height() + 8;
+        }
+
+        p.setFont(f);
+
+        // draw the bubble
+        QRect box(0, 0, w, h);
+        box.moveBottomLeft(anchor.toPoint() + QPoint(-50, -50));
+        CDraw::bubble(p, box, anchor.toPoint(), 18 /* px */, 21 /* px */);
+
+        p.save();
+        p.translate(box.topLeft());
+
+        QColor pbarBlue(150, 150, 255);
+        QColor pbarGreen(150, 255, 150);
+
+        // draw progress bar distance
+        p.translate(5, 5);
+        QRect rectBar1(0, 0, rectText.width(), fm.height());
+        p.setPen(pbarBlue);
+        p.setBrush(pbarBlue);
+        p.drawRect(rectBar1);
+        qreal d = mouseMoveFocus->distance * rectBar1.width() / totalDistance;
+        p.setPen(pbarGreen);
+        p.setBrush(pbarGreen);
+        p.drawRect(0, 0, d, fm.height());
+
+        QString val1, unit1, val2, unit2;
+        IUnit::self().meter2distance(mouseMoveFocus->distance, val1, unit1);
+        IUnit::self().meter2distance(totalDistance - mouseMoveFocus->distance, val2, unit2);
+        p.setPen(Qt::darkBlue);
+        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignLeft, QString("%1%2").arg(val1).arg(unit1));
+        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignCenter, QString("%1%").arg(mouseMoveFocus->distance * 100 / totalDistance, 0, 'f', 0));
+        p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignRight, QString("%1%2").arg(val2).arg(unit2));
+
+        // draw progress bar time
+        if(totalElapsedSeconds != 0)
+        {
+            p.translate(0, fm.height() + 5);
+            QRect rectBar2(0, 0, rectText.width(), fm.height());
+            p.setPen(pbarBlue);
+            p.setBrush(pbarBlue);
+            p.drawRect(rectBar2);
+            qreal t = mouseMoveFocus->elapsedSecondsMoving * rectBar2.width() / totalElapsedSecondsMoving;
+            p.setPen(pbarGreen);
+            p.setBrush(pbarGreen);
+            p.drawRect(0, 0, t, fm.height());
+
+            IUnit::self().seconds2time(mouseMoveFocus->elapsedSecondsMoving, val1, unit1);
+            IUnit::self().seconds2time(totalElapsedSecondsMoving - mouseMoveFocus->elapsedSecondsMoving, val2, unit2);
+            p.setPen(Qt::darkBlue);
+            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignLeft, QString("%1%2").arg(val1).arg(unit1));
+            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignCenter, QString("%1%").arg(mouseMoveFocus->elapsedSecondsMoving * 100 / totalElapsedSecondsMoving, 0, 'f', 0));
+            p.drawText(QRect(0, 1, rectBar1.width(), fm.height()), Qt::AlignVCenter|Qt::AlignRight, QString("%1%2").arg(val2).arg(unit2));
+        }
+
+        // draw text
+        p.translate(0, fm.height() + 8);
+        p.setPen(Qt::darkBlue);
+        p.drawText(rectText, Qt::AlignLeft|Qt::AlignTop|Qt::TextWordWrap, str);
+
+        p.restore();
+    }
+
+    if(!scrOpt.isNull() && mouseClickFocus)
+    {
+        QPointF anchor(mouseClickFocus->lon, mouseClickFocus->lat);
+        anchor *= DEG_TO_RAD;
+        gis->convertRad2Px(anchor);
+
+        p.drawPixmap(anchor - QPointF(4, 4), QPixmap(IGisItem::colorMap[colorIdx].bullet));
+    }
+
+    drawRange(p);
+}
+
+void CGisItemTrk::drawLabel(QPainter& p, const QPolygonF&, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw* gis)
+{
+    if(!keyUserFocus.item.isEmpty() && (key != keyUserFocus))
+    {
+        return;
+    }
+
+    if(CMainWindow::self().isMinMaxTrackValues())
+    {
+        for(const QString& key : extrema.keys())
+        {
+            const CKnownExtension& ext = CKnownExtension::get(key);
+            const limits_t& limit = extrema[key];
+            QPointF posMin = limit.posMin * DEG_TO_RAD;
+            QPointF posMax = limit.posMax * DEG_TO_RAD;
+
+            gis->convertRad2Px(posMin);
+            gis->convertRad2Px(posMax);
+
+            QString labelMin = ext.toString(limit.min, true, key);
+            QString labelMax = ext.toString(limit.max, true, key);
+
+            if(!labelMin.isEmpty())
+            {
+                drawLimitLabels(eLimitTypeMin, labelMin, posMin, p, fm, blockedAreas);
+            }
+
+            if(!labelMax.isEmpty())
+            {
+                drawLimitLabels(eLimitTypeMax, labelMax, posMax, p, fm, blockedAreas);
+            }
+        }
+    }
+}
+
+
+void CGisItemTrk::drawHighlight(QPainter& p)
+{
+    QMutexLocker lock(&mutexItems);
+
+    if(lineSimple.isEmpty() || hasUserFocus())
+    {
+        return;
+    }
+
+
+    // draw the reduced track line
+    QList<QPolygonF> lines;
+    splitLineToViewport(lineSimple, p.viewport(), lines);
+
+    p.setPen(QPen(QColor(255,0,0,100), penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+
+    for(const QPolygonF &line : lines)
+    {
+        p.drawPolyline(line);
+    }
+}
+
+void CGisItemTrk::drawRange(QPainter& p)
+{
+    QMutexLocker lock(&mutexItems);
+
+    int idx1, idx2;
+    getMouseRange(idx1, idx2, mode == eModeRange);
+
+    if(NOIDX == idx1)
+    {
+        return;
+    }
+
+    const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
+
+    QPolygonF seg = line.mid(idx1, idx2 - idx1 + 1);
+
+    p.setPen(QPen(Qt::darkGreen, penWidthHi, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolyline(seg);
+
+    p.setPen(QPen(Qt::green, penWidthFg, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolyline(seg);
+}
+
+bool CGisItemTrk::setMode(mode_e m, const QString& owner)
+{
+    if(!mouseFocusOwner.isEmpty() && owner != mouseFocusOwner)
+    {
+        return false;
+    }
+
+    mode = m;
+    // always reset the range statemachine
+    resetMouseRange();
+    mouseFocusOwner = (mode == eModeRange) ? owner : "";
+
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+    return true;
+}
+
+void CGisItemTrk::setName(const QString& str)
+{
+    setText(CGisListWks::eColumnName, str);
+    trk.name = str;
+    changed(tr("Changed name"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemTrk::setComment(const QString& str)
+{
+    trk.cmt = str;
+    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemTrk::setDescription(const QString& str)
+{
+    trk.desc = str;
+    changed(tr("Changed description"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemTrk::setLinks(const QList<link_t>& links)
+{
+    trk.links = links;
+    changed(tr("Changed links"), "://icons/48x48/Link.png");
+}
+
+void CGisItemTrk::setElevation(qint32 idx, qint32 ele)
+{
+    auto condition = [idx](const CTrackData::trkpt_t &pt) { return pt.idxTotal == idx; };
+    CTrackData::trkpt_t * trkpt = trk.getTrkPtByCondition(condition);
+    if((trkpt != nullptr) && (trkpt->ele != ele))
+    {
+        trkpt->ele = ele;
+        deriveSecondaryData();
+        changed(tr("Changed elevation of point %1 to %2 %3").arg(idx).arg(ele).arg(IUnit::self().baseunit), "://icons/48x48/SetEle.png");
+    }
+}
+
+void CGisItemTrk::setColor(int idx)
+{
+    if(idx < TRK_N_COLORS)
+    {
+        setColor(IGisItem::colorMap[idx].color);
+        updateHistory(eVisualColorLegend|eVisualDetails);
+    }
+}
+
+void CGisItemTrk::setActivity(quint32 flag)
+{
+    for(CTrackData::trkpt_t& trkpt : trk)
+    {
+        trkpt.unsetFlag(CTrackData::trkpt_t::eActMask);
+        trkpt.setFlag((enum CTrackData::trkpt_t::flag_e) flag);
+    }
+
+    deriveSecondaryData();
+
+    const CActivityTrk::desc_t &desc = CActivityTrk::getDescriptor(flag);
+    changed(tr("Changed activity to '%1' for complete track.").arg(desc.name), desc.iconLarge);
+}
+
+void CGisItemTrk::setActivityRange(quint32 flags)
+{
+    if(!setReadOnlyMode(false))
+    {
+        return;
+    }
+
+    const CActivityTrk::desc_t &desc = CActivityTrk::getDescriptor(flags);
+
+    // read start/stop indices
+    qint32 idx1, idx2;
+    getMouseRange(idx1, idx2, true);
+
+    if(NOIDX == idx1)
+    {
+        return;
+    }
+
+    // special case for a single point
+    if(idx1 == idx2)
+    {
+        --idx1;
+    }
+
+    // iterate over all segments and set activity flag for points between idx1 and idx2
+    for(CTrackData::trkpt_t& trkpt : trk)
+    {
+        if((idx1 <= trkpt.idxTotal) && (trkpt.idxTotal < idx2))
+        {
+            trkpt.unsetFlag(CTrackData::trkpt_t::eActMask);
+            trkpt.setFlag((enum CTrackData::trkpt_t::flag_e) flags);
+        }
+    }
+
+    resetMouseRange();
+    deriveSecondaryData();
+    changed(tr("Changed activity to '%1' for range(%2..%3).").arg(desc.name).arg(idx1).arg(idx2), desc.iconLarge);
+}
+
+void CGisItemTrk::setColor(const QColor& c)
+{
+    colorIdx = DEFAULT_COLOR;
+    for(int n = 0; n < TRK_N_COLORS; n++)
+    {
+        if(c == IGisItem::colorMap[n].color)
+        {
+            colorIdx = n;
+            break;
+        }
+    }
+
+    color  = IGisItem::colorMap[colorIdx].color;
+    bullet = QPixmap(IGisItem::colorMap[colorIdx].bullet);
+
+    setIcon(color2str(color));
+}
+
+void CGisItemTrk::setIcon(const QString& iconColor)
+{
+    trk.color = iconColor;
+    QPixmap icon = QPixmap("://icons/48x48/Track.png");
+
+    QPixmap mask( icon.size() );
+    mask.fill( str2color(iconColor) );
+    mask.setMask( icon.createMaskFromColor( Qt::transparent ) );
+    IGisItem::setIcon(mask.scaled(22,22, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+}
+
+bool CGisItemTrk::setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString &owner)
+{
+    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
+
+    if(dist != NOFLOAT)
+    {
+        qreal delta = totalDistance;
+
+        /// @todo: optimize search by single out segment and then do a binary search
+
+        for(const CTrackData::trkpt_t &pt : trk)
+        {
+            if(pt.isHidden())
+            {
+                continue;
+            }
+
+            qreal d = qAbs(pt.distance - dist);
+            if(d <= delta)
+            {
+                newPointOfFocus = &pt;
+                delta = d;
+            }
+            else
+            {
+                break;
+            }
+        }
+    }
+
+    return publishMouseFocus(newPointOfFocus, fmode, owner);
+}
+
+bool CGisItemTrk::setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString &owner)
+{
+    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
+
+    if(time != NOTIME)
+    {
+        /// @todo: optimize search by single out segment and then do a binary search
+
+        qreal delta = totalElapsedSeconds;
+
+        for(const CTrackData::trkpt_t &pt : trk)
+        {
+            if(pt.isHidden())
+            {
+                continue;
+            }
+
+            qreal d = qAbs(qreal(pt.time.toTime_t()) - qreal(time));
+            if(d <= delta)
+            {
+                newPointOfFocus = &pt;
+                delta = d;
+            }
+            else
+            {
+                break;
+            }
+        }
+    }
+
+    return publishMouseFocus(newPointOfFocus, fmode, owner);
+}
+
+QPointF CGisItemTrk::setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString &owner)
+{
+    QMutexLocker lock(&mutexItems);
+
+    const CTrackData::trkpt_t * newPointOfFocus = nullptr;
+    quint32 idx = 0;
+
+    const QPolygonF& line = (mode == eModeRange) ? lineFull : lineSimple;
+
+    if(pt != NOPOINT && GPS_Math_DistPointPolyline(line, pt) < MIN_DIST_FOCUS)
+    {
+        /*
+            Iterate over the polyline used to draw the track as it contains screen
+            coordinates. The polyline is a linear representation of the segments in the
+            track. That is why the index into the polyline can't be used directly.
+            In a second step we have to iterate over all segments and points of the CTrackData object
+            until the index is reached. This is done by either getTrkPtByVisibleIndex(), or
+            getTrkPtByTotalIndex(). Depending on the current mode.
+         */
+
+        idx = getIdxPointCloseBy(pt, line);
+        newPointOfFocus = (mode == eModeRange) ? trk.getTrkPtByTotalIndex(idx) : trk.getTrkPtByVisibleIndex(idx);
+    }
+    if(!publishMouseFocus(newPointOfFocus, fmode, owner))
+    {
+        newPointOfFocus = nullptr;
+    }
+
+    /*
+       Test for line size before applying index. This fixes random assertions because
+       of an invalid index. The reason for this is unknown.
+     */
+    return newPointOfFocus ? ((int)idx < line.size() ? line[idx] : NOPOINTF) : NOPOINTF;
+}
+
+
+bool CGisItemTrk::setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString &owner)
+{
+    const CTrackData::trkpt_t *newPointOfFocus = trk.getTrkPtByTotalIndex(idx);
+    if(nullptr != newPointOfFocus)
+    {
+        return publishMouseFocus(newPointOfFocus, fmode, owner);
+    }
+
+    return false;
+}
+
+
+void CGisItemTrk::resetMouseRange()
+{
+    mouseRange1 = nullptr;
+    mouseRange2 = nullptr;
+    rangeState  = eRangeStateIdle;
+}
+
+bool CGisItemTrk::publishMouseFocus(const CTrackData::trkpt_t * pt, focusmode_e fmode, const QString& owner)
+{
+    if(mode == eModeRange)
+    {
+        if(mouseFocusOwner != owner)
+        {
+            return false;
+        }
+
+        publishMouseFocusRangeMode(pt, fmode);
+    }
+    else
+    {
+        publishMouseFocusNormalMode(pt, fmode);
+    }
+
+    return true;
+}
+
+void CGisItemTrk::publishMouseFocusRangeMode(const CTrackData::trkpt_t * pt, focusmode_e fmode)
+{
+    switch(rangeState)
+    {
+    case eRangeStateIdle:
+    {
+        if((fmode == eFocusMouseClick) && (pt != nullptr))
+        {
+            mouseRange1 = pt;
+            rangeState  = eRangeState1st;
+        }
+        break;
+    }
+
+    case eRangeState1st:
+    {
+        mouseRange2 = pt;
+        if((fmode == eFocusMouseClick) && (pt != nullptr))
+        {
+            rangeState = eRangeState2nd;
+        }
+        break;
+    }
+
+    case eRangeState2nd:
+    {
+        if(fmode == eFocusMouseClick)
+        {
+            resetMouseRange();
+        }
+        break;
+    }
+    }
+
+    setMouseFocusVisuals(pt);
+    setMouseRangeFocusVisuals(mouseRange1, mouseRange2);
+}
+void CGisItemTrk::publishMouseFocusNormalMode(const CTrackData::trkpt_t * pt, focusmode_e fmode)
+{
+    switch(fmode)
+    {
+    case eFocusMouseMove:
+        if(pt != mouseMoveFocus)
+        {
+            mouseMoveFocus = pt;
+            setMouseFocusVisuals(pt);
+            setMouseRangeFocusVisuals(0, 0);
+        }
+        break;
+
+    case eFocusMouseClick:
+        if(pt != mouseClickFocus)
+        {
+            mouseClickFocus = pt;
+            setMouseClickFocusVisuals(pt);
+        }
+    }
+}
+
+void CGisItemTrk::changed(const QString& what, const QString& icon)
+{
+    IGisItem::changed(what, icon);
+    updateVisuals(eVisualAll, "changed()");
+}
+
+void CGisItemTrk::updateHistory(quint32 visuals)
+{
+    IGisItem::updateHistory();
+    updateVisuals(visuals, "updateHistory()");
+}
+
+
+void CGisItemTrk::updateVisuals(quint32 visuals, const QString& who)
+{
+    qDebug() << "CGisItemTrk::updateVisuals()" << getName() << who;
+
+    if(!dlgDetails.isNull() && (visuals & eVisualDetails))
+    {
+        dlgDetails->updateData();
+    }
+
+    for(INotifyTrk * visual : registeredVisuals)
+    {
+        if(visuals & visual->mask)
+        {
+            visual->updateData();
+        }
+    }
+}
+
+void CGisItemTrk::setMouseFocusVisuals(const CTrackData::trkpt_t * pt)
+{
+    if(!dlgDetails.isNull())
+    {
+        dlgDetails->setMouseFocus(pt);
+    }
+
+    for(INotifyTrk * visual : registeredVisuals)
+    {
+        visual->setMouseFocus(pt);
+    }
+}
+
+void CGisItemTrk::setMouseRangeFocusVisuals(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2)
+{
+    if(!dlgDetails.isNull())
+    {
+        dlgDetails->setMouseRangeFocus(pt1, pt2);
+    }
+
+    for(INotifyTrk * visual : registeredVisuals)
+    {
+        visual->setMouseRangeFocus(pt1, pt2);
+    }
+}
+
+void CGisItemTrk::setMouseClickFocusVisuals(const CTrackData::trkpt_t * pt)
+{
+    if(!dlgDetails.isNull())
+    {
+        dlgDetails->setMouseClickFocus(pt);
+    }
+
+    for(INotifyTrk * visual : registeredVisuals)
+    {
+        visual->setMouseClickFocus(pt);
+    }
+}
+
+void CGisItemTrk::setupInterpolation(bool on, qint32 q)
+{
+    interp.valid = on;
+    interp.Q     = (quality_e)q;
+
+    if(!on)
+    {
+        updateVisuals(eVisualPlot, "setupInterpolation()");
+        return;
+    }
+
+    const qint32 N = getNumberOfVisiblePoints();
+    alglib::real_1d_array x,y;
+    x.setlength(N);
+    y.setlength(N);
+
+    qreal basefactor = IUnit::self().basefactor;
+    for(const CTrackData::trkpt_t& trkpt : trk)
+    {
+        if(trkpt.isHidden())
+        {
+            continue;
+        }
+
+        if(trkpt.ele == NOINT)
+        {
+            continue;
+        }
+
+        x[trkpt.idxVisible] = trkpt.distance;
+        y[trkpt.idxVisible] = trkpt.ele * basefactor;
+    }
+
+    /// @todo find a better way to scale the algorithm
+    interp.m = interp.Q*50;
+    if(N < 400)
+    {
+        interp.m = N / (16/interp.Q);
+    }
+
+    interp.m &= 0xFFFFFFFE;
+
+    try
+    {
+        alglib::spline1dfitcubic(x, y, interp.m, interp.info, interp.p, interp.rep);
+    }
+    catch(const alglib::ap_error& e)
+    {
+        qWarning() << "Error from alglib: " << e.msg.c_str();
+    }
+
+    interp.valid = interp.info > 0;
+
+    updateVisuals(eVisualPlot, "setupInterpolation()");
+}
+
+qreal CGisItemTrk::getElevationInterpolated(qreal d)
+{
+    try
+    {
+        return alglib::spline1dcalc(interp.p, d);
+    }
+    catch(const alglib::ap_error& e)
+    {
+        qWarning() << "Error from alglib: " << e.msg.c_str();
+        interp.valid = false;
+    }
+
+    return NOFLOAT;
+}
+
+
+void CGisItemTrk::getMouseRange(int &idx1, int &idx2, bool total) const
+{
+    if(nullptr == mouseRange1 || nullptr == mouseRange2)
+    {
+        idx1 = NOIDX;
+        idx2 = NOIDX;
+    }
+    else
+    {
+        idx1 = total ? mouseRange1->idxTotal : mouseRange1->idxVisible;
+        idx2 = total ? mouseRange2->idxTotal : mouseRange2->idxVisible;
+
+        if(idx1 > idx2)
+        {
+            qSwap(idx1, idx2);
+        }
+    }
+}
+
diff --git a/src/qmapshack/gis/trk/CGisItemTrk.h b/src/qmapshack/gis/trk/CGisItemTrk.h
new file mode 100644
index 0000000..af28d0e
--- /dev/null
+++ b/src/qmapshack/gis/trk/CGisItemTrk.h
@@ -0,0 +1,928 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISITEMTRK_H
+#define CGISITEMTRK_H
+
+#include "gis/IGisItem.h"
+#include "gis/IGisLine.h"
+#include "gis/trk/CActivityTrk.h"
+#include "gis/trk/CTrackData.h"
+#include "gis/trk/filter/CFilterSpeed.h"
+#include "helpers/CLimit.h"
+#include "helpers/CValue.h"
+
+#include <QDebug>
+#include <QPen>
+#include <QPointer>
+#include <functional>
+#include <interpolation.h>
+
+using std::numeric_limits;
+
+class QDomNode;
+class IGisProject;
+class INotifyTrk;
+class CDetailsTrk;
+class CScrOptTrk;
+class QSqlDatabase;
+class CQlgtTrack;
+class IQlgtOverlay;
+class CProgressDialog;
+class CPropertyTrk;
+class CFitStream;
+
+#define TRK_N_COLORS          17
+#define ASCENT_THRESHOLD       5
+#define MIN_WIDTH_INFO_BOX   300
+
+class CGisItemTrk : public IGisItem, public IGisLine
+{
+    Q_DECLARE_TR_FUNCTIONS(CGisItemTrk)
+public:
+    enum focusmode_e
+    {
+        eFocusMouseMove
+        ,eFocusMouseClick
+    };
+
+    enum mode_e
+    {
+        eModeNormal
+        , eModeRange
+    };
+
+    enum visual_e
+    {
+        eVisualNone          = 0
+        , eVisualColorLegend = 0x01
+        , eVisualPlot        = 0x02
+        , eVisualDetails     = 0x04
+        , eVisualProject     = 0x08
+        , eVisualColorAct    = 0x10
+        , eVisualTrkTable    = 0x20
+        , eVisualAll         = -1
+    };
+
+    /** @brief Used to create a new track from a part of an existing track */
+    CGisItemTrk(const QString& name, qint32 idx1, qint32 idx2, const CTrackData &srctrk, IGisProject *project);
+
+    /** @brief Used to create a copy of track with new parent */
+    CGisItemTrk(const CGisItemTrk& parentTrk, IGisProject * project, int idx, bool clone);
+
+    /** @brief Used to restore a track from a line of coordinates */
+    CGisItemTrk(const SGisLine &l, const QString &name, IGisProject *project, int idx);
+
+    /** @brief Used to create track from GPX file */
+    CGisItemTrk(const QDomNode &xml, IGisProject *project);
+
+    /** @brief Used to restore track from history structure */
+    CGisItemTrk(const history_t& hist, const QString& dbHash, IGisProject * project);
+
+    /** @brief Used to restore track from database */
+    CGisItemTrk(quint64 id, QSqlDatabase& db, IGisProject * project);
+
+    /** @brief Clone QLandkarte GT track */
+    CGisItemTrk(const CQlgtTrack& trk1, IGisProject *project = nullptr);
+
+    /** @brief Load track from file (e.g. TwoNav *trk) */
+    CGisItemTrk(const QString& filename, IGisProject * project);
+
+    CGisItemTrk(const IQlgtOverlay& ovl, IGisProject *project = nullptr);
+
+    /**
+       @brief Creates a new track via provided trkdata
+       @param trkdata  The track's new data (will be moved, don't use your "copy" after construction!
+       @param project  The project this track belongs to
+     */
+    CGisItemTrk(CTrackData& trkdata, IGisProject *project);
+
+    CGisItemTrk(CFitStream& stream, IGisProject * project);
+
+    virtual ~CGisItemTrk();
+
+    /**
+       @brief Overide IGisItem::updateHistory() method
+
+        same as changed();
+
+     */
+    void updateHistory(quint32 visuals);
+
+    /**
+       @brief Update all registered visuals via the INotifyTrk interface
+       @param a bit field of visuals to be updated
+       @param who a string for debug purposes
+     */
+    void updateVisuals(quint32 visuals, const QString &who);
+
+    /**
+       @brief Create a cloned copy of this track
+       @return The cloned item a pointer
+     */
+    IGisItem * createClone() override;
+
+    /**
+       @brief Save track to GPX tree
+       @param gpx   The <gpx> node to append by the track
+     */
+    void save(QDomNode& gpx, bool strictGpx11) override;
+
+    /**
+       @brief Save track to TwoNav track file
+       @param dir   the path to store the file
+     */
+    bool saveTwoNav(const QString& filename);
+
+    /**
+       @brief Save track as TCX course (including correlated course points)
+       @param coursesNode   The node to append by the course
+     */
+    void saveTCXcourse(QDomNode& coursesNode);
+
+
+    /**
+       @brief Save track as TCX activity
+       @param activitiesNode   The node to append by the activity
+     */
+    void saveTCXactivity(QDomNode& activitiesNode);
+
+
+    /**
+       @brief Read serialized track from a binary data stream
+       @param stream  the data stream to read from
+       @return A reference to the stream
+     */
+    QDataStream& operator<<(QDataStream& stream) override;
+    /**
+       @brief Serialize track into a binary data stream
+       @param stream  the data stream to write to.
+       @return A reference to the stream
+     */
+    QDataStream& operator>>(QDataStream& stream) const override;
+
+    /// get name of track
+    const QString& getName() const override
+    {
+        return trk.name.isEmpty() ? noName : trk.name;
+    }
+
+    /// returns "true" when trk has no time-related invalid points
+    bool isTrkTimeValid() { return (allValidFlags & CTrackData::trkpt_t::eInvalidTime) == 0;  }
+    bool isTrkElevationInvalid() { return allValidFlags & CTrackData::trkpt_t::eInvalidEle; }
+
+    QDateTime getTimestamp() const override {return getTimeStart(); }
+
+    /// get the track color as index into the Garmin color table
+    int getColorIdx() const { return colorIdx; }
+
+    /// get the track color a Qt color object
+    const QColor& getColor() const { return color; }
+
+    /**
+       @brief get a summary of the track
+       @param showName  if true the track name is shown
+       @return
+     */
+    QString getInfo(quint32 feature) const override;
+    /// get a summary of a selected range
+    QString getInfoRange() const;
+    /// get a summary of a selected range defined by two track points
+    QString getInfoRange(const CTrackData::trkpt_t& pt1, const CTrackData::trkpt_t& pt2) const;
+    /// get a summary for a track point
+    QString getInfoTrkPt(const CTrackData::trkpt_t& pt) const;
+    /// get a progress summary for a selected track point
+    QString getInfoProgress(const CTrackData::trkpt_t& pt) const;
+
+    QString getInfoLimits() const;
+
+    quint32 getTotalElapsedSeconds()       const { return totalElapsedSeconds;       }
+    quint32 getTotalElapsedSecondsMoving() const { return totalElapsedSecondsMoving; }
+
+    qreal getTotalAscent()   const { return totalAscent;   }
+    qreal getTotalDescent()  const { return totalDescent;  }
+    qreal getTotalDistance() const { return totalDistance; }
+
+    const QString&       getComment()     const override { return trk.cmt;   }
+    const QString&       getDescription() const override { return trk.desc;  }
+    const QList<link_t>& getLinks()       const override { return trk.links; }
+
+    qint32 getCntTotalPoints() const { return cntTotalPoints; }
+
+    const QDateTime& getTimeStart()           const { return timeStart;        }
+    qint32 getNumberOfVisiblePoints()         const { return cntVisiblePoints; }
+    const CActivityTrk& getActivities()       const { return activities;       }
+    const CPropertyTrk * getPropertyHandler() const { return propHandler;      }
+    const CTrackData::trkpt_t * getMouseMoveFocusPoint()  const { return mouseMoveFocus;   }
+    quint32 getAllValidFlags()                const { return allValidFlags;    }
+
+
+    /// get the track as a simple coordinate polyline
+    void getPolylineFromData(QPolygonF &l) const;
+    /// get the track as polyline with elevation, pixel and GIS coordinates.
+    void getPolylineFromData(SGisLine& l) const override;
+    void getPolylineDegFromData(QPolygonF &l) const override;
+
+    /**
+       @brief Get the elevation of a track point
+       @param idx   The total index of the point
+       @return The elevation or NOINT if the index is invalid, or the track point has no elevation value.
+     */
+    qint32 getElevation(qint32 idx) const;
+
+    void getMouseRange(int &idx1, int &idx2, bool total) const;
+
+    /** @defgroup ColorSource Stuff related to coloring tracks using data from different sources
+
+        @{
+     */
+public:
+    static const struct ColorizeSource unknownColorizeSource;
+
+    /** @brief Set the colorize source to the source specified.
+
+        @param src  The new source to use.
+     */
+    void setColorizeSource(QString src);
+
+    /** @brief Get the current colorize source.
+
+        @return  The new source to use.
+     */
+    QString getColorizeSource() const
+    {
+        return colorSourceLimit.getSource();
+    }
+
+    QStringList getExistingDataSources() const;
+
+    void setColorizeLimitLow(qreal limit);
+    qreal getColorizeLimitLow() const
+    {
+        return colorSourceLimit.getMin();
+    }
+
+    void setColorizeLimitHigh(qreal limit);
+    qreal getColorizeLimitHigh() const
+    {
+        return colorSourceLimit.getMax();
+    }
+
+    QString getColorizeUnit() const;
+
+    qreal getMin(const QString& source) const;
+    qreal getMax(const QString& source) const;
+
+private:
+    void drawColorized(QPainter &p) const;
+    void drawColorizedByActivity(QPainter& p) const;
+    void setPen(QPainter& p, QPen& pen, quint32 flag) const;
+    /**@}*/
+
+
+public:
+    bool isRangeSelected() const;
+
+    void setName(const QString& str);
+    void setColor(int idx);
+    /// set the width of the inner track line by factor
+    bool setMode(mode_e m, const QString &owner);
+    void setComment(const QString& str)         override;
+    void setDescription(const QString& str)     override;
+    void setLinks(const QList<link_t>& links)   override;
+    void setDataFromPolyline(const SGisLine &l) override;
+    quint32 getNumberOfAttachedWpt()
+    {
+        return numberOfAttachedWpt;
+    }
+
+    /**
+       @brief Manually set the elevation value of a single track point
+       @param idx   the total index of the track point
+       @param ele   the new elevation value
+     */
+    void setElevation(qint32 idx, qint32 ele);
+
+    /**
+       @brief display the track screen options
+
+       @param origin    the point on screen to anchor the options
+       @param mouse     the mouse object causing the request
+       @return          a pointer to the screen option widget
+     */
+    IScrOpt * getScreenOptions(const QPoint &origin, IMouse * mouse) override;
+    /**
+       @brief Get a screen pixel of the track close to the given position on the screen
+       @param screenPos Screen position as pixel coordinate
+       @return The screen coordinates as pixel of a track point close by
+     */
+    QPointF getPointCloseBy(const QPoint& screenPos) override;
+    /**
+       @brief isCloseTo
+       @param pos Screen position as pixel coordinate
+       @return True if point is considered close enough
+     */
+    bool isCloseTo(const QPointF& pos) override;
+
+    bool isWithin(const QRectF& area, selflags_t flags) override;
+
+    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
+    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
+    void drawLabel(QPainter&p, const QPolygonF&, QList<QRectF>&blockedAreas, const QFontMetricsF&fm, CGisDraw*gis) override;
+    void drawHighlight(QPainter& p) override;
+    void drawRange(QPainter& p);
+
+    /**
+       @brief Switch user focus on and off.
+
+       If the focus is switched on any other track having the focus will loose it.
+
+       @param yes   set true to gain focus.
+     */
+    void gainUserFocus(bool yes) override;
+    /**
+       @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
+     */
+    void edit() override;
+
+    /**
+       @brief Cut track at mouseClickFocus
+       @return Return true on success.
+     */
+    bool cut();
+
+    /**
+       @brief Reverse the complete track
+
+       @note All timestamps will be removed
+     */
+    void reverse();
+
+    /**
+       @brief Combine this track with several others.
+
+       @param keysPreSel list of pre-selected track item keys
+
+       Handle the complete process of selecting tracks, choosing the order and
+       the final name with dialogs.
+     */
+    void combine(const QList<key_t> &keys);
+
+    /**
+       @brief Set the CTrackData::trkpt_t::eHidden flag
+
+       The flag is set for all track points between mouseClickFocus and mouseMoveFocus,
+       regardless of their previous state.
+
+     */
+    void hideSelectedPoints();
+
+    /**
+       @brief Reset the CTrackData::trkpt_t::eHidden flag
+
+       The flag is reset for all track points between mouseClickFocus and mouseMoveFocus,
+       regardless of their previous state.
+
+     */
+    void showSelectedPoints();
+
+    /**
+       @brief Set the activity flag for all track points
+       @param flag  one of CTrackData::trkpt_t::flag_e::eAct...
+     */
+    void setActivity(quint32 flags);
+
+    /**
+       @brief Sets the activity flag for a selected range of track points
+
+       The range has to be selected already. The activity will be selected by a dialog displayed
+       in this method.
+     */
+    void setActivityRange(quint32 flags);
+
+    /**
+       @brief Copy a section into a new track object
+
+       The section is defined by mouseClickFocus and mouseMoveFocus, All points are copied,
+       including the hidden (CTrackData::trkpt_t::eHidden) ones.
+
+     */
+    void copySelectedPoints() const;
+
+    /**
+       @brief Check for user focus
+
+       @return True if the track has user focus
+     */
+    bool hasUserFocus() const override
+    {
+        return key == keyUserFocus;
+    }
+
+    /**
+       @brief Get the key of the current track with user focus
+
+       @return If no track has the focus an empty string is returned
+     */
+    static const key_t& getKeyUserFocus()
+    {
+        return keyUserFocus;
+    }
+
+    /**
+       @brief Each plot widget that operates on the track must register during it's construction
+
+       see registeredPlots for a detailed discussion
+
+       @param plot
+     */
+    void registerVisual(INotifyTrk * visual);
+
+    /**
+       @brief Each plot widget that operates on the track must unregister during it's destruction
+
+       see registeredPlots for a detailed discussion
+
+       @param plot
+     */
+    void unregisterVisual(INotifyTrk * visual);
+
+    /**
+       @brief Use point with the distance from start matching best the given distance.
+
+       @param dist      the distance in [m]
+     */
+    bool setMouseFocusByDistance(qreal dist, focusmode_e fmode, const QString& owner);
+
+    /**
+       @brief Use point with time from start matching best the given time delta
+
+       @param time      a time delta in [s] relative to the start time
+     */
+    bool setMouseFocusByTime(quint32 time, focusmode_e fmode, const QString& owner);
+
+    /**
+       @brief Use the point that is closest to the given point on the screen.
+
+       @param pt        a point on the screen in pixel.
+     */
+    QPointF setMouseFocusByPoint(const QPoint& pt, focusmode_e fmode, const QString& owner);
+
+    /**
+       @brief Use point with given index counter
+       @param idx
+     */
+    bool setMouseFocusByTotalIndex(qint32 idx, focusmode_e fmode, const QString& owner);
+
+
+    /** @defgroup Filter All filters implemented by CGisItemTrks.
+
+        @note All filter implementations are found in src/gis/trk/filter/filter.cpp
+
+        @{
+     */
+    /**
+       @brief Reduce the amount of visible track points with the help of the Douglas Peuker algorithm
+
+       @param dist the Douglas Peuker distance in meters
+     */
+    void filterReducePoints(qreal dist);
+
+    /** @brief Remove track points without valid location at the beginning of the track */
+    void filterRemoveInvalidPoints();
+
+    /** @param points  size of Median filter */
+    void filterSmoothProfile(int points);
+
+    /** @param offset elevation offset in meters */
+    void filterOffsetElevation(int offset);
+
+    /** @param date new date for start of track */
+    void filterNewDate(const QDateTime& date);
+
+    /** @param delta interval to increase timestamps in seconds a*/
+    void filterObscureDate(int delta);
+
+    /** @param speed speed in meter per seconds */
+    void filterSpeed(qreal speed);
+    void filterSpeed(const CFilterSpeed::cycling_type_t &cyclingType);
+    void filterGetSlopeLimits(qreal &minSlope, qreal &maxSlope);
+
+    void filterTerrainSlope();
+    void filterReplaceElevation();
+    void filterInterpolateElevation();
+    void filterReset();
+    void filterDelete();
+    void filterSplitSegment();
+    void filterDeleteExtension(const QString &ext);
+    void filterSubPt2Pt();
+    /** @} */
+
+    /**
+       @brief Correlate waypoints with the track points
+
+       If a waypoint correlates with a trackpoint it's key is written to
+       CTrackData::trkpt_t::keyWpt.
+
+       @param progress  a progress dialog as this operation can take quite some time
+       @param current   the current progress if the operation is done for several tracks
+     */
+    void findWaypointsCloseBy(CProgressDialog &progress, quint32 &current);
+
+private:
+    /// no don't really use it, use CGisItemTrk(quint32 visuals) instead
+    void updateHistory() override
+    {
+        updateHistory(eVisualAll);
+    }
+
+    void setSymbol() override;
+    /**
+       @brief Read track data from section in GPX file
+       @param xml   The XML <trk> section
+       @param trk   The track structure to fill
+     */
+    void readTrk(const QDomNode& xml, CTrackData& trk);
+
+    /**
+       @brief Restore track from TwoNav *trk file
+       @param filename
+     */
+    bool readTwoNav(const QString& filename);
+    /**
+       @brief Read serialized track data from a FIT file stream
+       @param stream
+     */
+    void readTrkFromFit(CFitStream &stream);
+
+    /**
+       @brief Consolidate points and subpoints
+     */
+    void consolidatePoints();
+
+    /**
+       @brief Derive secondary data from the track data
+
+       This has to be called each time the track data is changed.
+     */
+    void deriveSecondaryData();
+
+    /**
+     * @brief Reset internal data like range selection and details dialog
+     */
+    void resetInternalData();
+
+    void verifyTrkPt(CTrackData::trkpt_t *&last, CTrackData::trkpt_t& trkpt);
+
+    /** @defgroup ExtremaExtensions Stuff related to calculation of extrema/extensions
+
+        @{
+     */
+public:
+    struct limits_t
+    {
+        void setMin(qreal val, const QPointF& pos)
+        {
+            if(min > val)
+            {
+                min     = val;
+                posMin  = pos;
+            }
+        }
+
+        void setMax(qreal val, const QPointF& pos)
+        {
+            if(max < val)
+            {
+                max     = val;
+                posMax  = pos;
+            }
+        }
+
+        qreal min     = numeric_limits<qreal>::max();
+        QPointF posMin  = NOPOINTF;
+
+        qreal max     = numeric_limits<qreal>::lowest();
+        QPointF posMax  = NOPOINTF;
+    };
+    /**@}*/
+
+private:
+    QSet<QString> existingExtensions;
+    QHash<QString, limits_t> extrema;
+    void updateExtremaAndExtensions();
+
+    enum limit_type_e
+    {
+        eLimitTypeMin
+        , eLimitTypeMax
+    };
+    void drawLimitLabels(limit_type_e type, const QString &label, const QPointF& pos, QPainter& p, const QFontMetricsF &fm, QList<QRectF> &blockedAreas);
+
+    /**
+       @brief Tell the point of focus to all plots and the detail dialog
+
+       @param pt        A pointer to the point itself
+       @param fmode     The reason for the focus
+       @param owner     A string to identify owner of the operation
+     */
+    bool publishMouseFocus(const CTrackData::trkpt_t * pt, focusmode_e fmode, const QString &owner);
+    void publishMouseFocusNormalMode(const CTrackData::trkpt_t * pt, focusmode_e fmode);
+    void publishMouseFocusRangeMode(const CTrackData::trkpt_t * pt, focusmode_e fmode);
+    void resetMouseRange();
+
+    /**
+       @brief Replace all trackpoints by the coordinates stored in the polyline
+
+       The DEM layer will be queried for elevation data. All other data is lost.
+
+       @param l     A polyline with coordinates [rad]
+     */
+    void readTrackDataFromGisLine(const SGisLine &l);
+    /**
+       @brief Override IGisItem::changed() method
+
+       As the CDetailsTrk is no modal dialog that blocks the GUI from any other input the track
+       can be changed while the widget is visible. Therefore it needs some feedback to update the
+       CDetailsTrk widget. Usually this would be a signal. However CGisItemTrk is a QTreeWidgetItem
+       and therefor no QObject. Fortunately there the dlgDetails pointer. So CDetailsTrk::setupGui()
+       can be called from changed()
+
+       @param what  The reason string
+       @param icon  An icon string
+     */
+    void changed(const QString& what, const QString& icon) override;
+
+    /// setup colorIdx, color, bullet and icon
+    void setColor(const QColor& c);
+    /// setup track icon by color
+    void setIcon(const QString& iconColor);
+
+    void setMouseFocusVisuals(const CTrackData::trkpt_t * pt);
+    void setMouseRangeFocusVisuals(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2);
+    void setMouseClickFocusVisuals(const CTrackData::trkpt_t * pt);
+
+public:
+    /**
+       @brief Read only access to the track data.
+       @return
+     */
+    const CTrackData& getTrackData() const
+    {
+        return trk;
+    }
+
+    void updateFromDB(quint64 id, QSqlDatabase& db) override;
+
+private:
+    fGetLimit _getMin = [this](const QString& source)
+                        {
+                            return getMin(source);
+                        };
+
+    fGetLimit _getMax = [this](const QString& source)
+                        {
+                            return getMax(source);
+                        };
+
+    qreal   getMinProp(const QString& source) const;
+    qreal   getMaxProp(const QString& source) const;
+    QString getUnitProp(const QString& source) const;
+
+    fGetLimit _getMinProp = [this](const QString& source)
+                            {
+                                return getMinProp(source);
+                            };
+
+    fGetLimit _getMaxProp = [this](const QString& source)
+                            {
+                                return getMaxProp(source);
+                            };
+
+    fGetUnit _getUnitProp = [this](const QString& source)
+                            {
+                                return getUnitProp(source);
+                            };
+
+    fMarkChanged _markChanged = [this]()
+                                {
+                                    updateHistory(eVisualNone);
+                                };
+
+public:
+    CLimit limitsGraph1 {"TrackDetails/Graph1", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
+    CLimit limitsGraph2 {"TrackDetails/Graph2", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
+    CLimit limitsGraph3 {"TrackDetails/Graph3", _getMin, _getMax, _getMinProp, _getMaxProp, _getUnitProp, _markChanged};
+
+    CLimit colorSourceLimit {"TrackDetails/Style", _getMin, _getMax, _getMin, _getMax, _getUnitProp, _markChanged};
+
+private:
+    /// this is the GPX structure oriented data of the track
+    CTrackData trk;
+
+    /// the key of the track having the user focus.
+    static key_t keyUserFocus;
+    /// drawing and mouse interaction is dependent on the mode
+    mode_e mode = eModeNormal;
+
+    /**
+       \defgroup TrackStatistics Some statistical values over the complete track
+     */
+    /**@{*/
+    quint32 allValidFlags   = 0;
+    qint32 cntInvalidPoints = 0;
+    qint32 cntTotalPoints   = 0;
+    qint32 cntVisiblePoints = 0;
+    QDateTime timeStart;
+    QDateTime timeEnd;
+    qreal totalDistance = 0;
+    qreal totalAscent   = 0;
+    qreal totalDescent  = 0;
+    qreal totalElapsedSeconds = 0;
+    qreal totalElapsedSecondsMoving = 0;
+    quint32 numberOfAttachedWpt = 0;
+    /**@}*/
+
+    /**
+        \defgroup DrawUtilies Objects used to draw the track
+     */
+    /**@{*/
+
+    unsigned colorIdx = 4;  //< the track line color by index
+    QColor color;           //< the track line color
+
+    QPixmap bullet;         //< the trackpoint bullet icon
+    QPolygonF lineSimple;   //< the current track line as screen pixel coordinates
+    QPolygonF lineFull;     //< visible and invisible points
+
+    qint32 penWidthFg = 3;  //< inner trackline width
+    qint32 penWidthBg = 5;  //< outer trackline width
+    qint32 penWidthHi = 11; //< highlighted trackline width
+
+    qint32 widthInfoBox = MIN_WIDTH_INFO_BOX;
+
+    /// the pen with the actual track color
+    QPen penForeground {Qt::blue, qreal(penWidthFg), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+    /// background (border) color of all tracks
+    QPen penBackground {Qt::white, qreal(penWidthBg), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin};
+
+
+    fValueOnChange onChange = [this](const QVariant& val)
+                              {
+                                  int w = qRound(3.0 * val.toDouble());
+
+                                  penWidthFg = w;
+                                  penWidthBg = w + 2;
+                                  penWidthHi = w + 8;
+
+                                  penForeground.setWidth(penWidthFg);
+                                  penBackground.setWidth(penWidthBg);
+                              };
+
+public:
+    CValue lineScale     {"TrackDetails/lineScale", 1.0, _markChanged, onChange};
+    CValue showArrows    {"TrackDetails/showArrows", true, _markChanged};
+private:
+    /**@}*/
+
+
+    /**
+        A list of INotifyTrk objects that need to get informed on any change in data.
+
+        @note This is necessary because QTreeWidgetItem is not derived from QObject.
+              Thus no signals and slots can be handled. Probably this is because the
+              signal/slot system would be a huge overhead on treewidgets with a large
+              amount of items.
+
+              Anyway we need some kind of signaling between the track object and the
+              INotifyTrk objects displaying the data. And we have to keep in mind that
+              the track can be delete by the user at any time. That is why no other
+              object is allowed to save a pointer to the track. It must store the
+              key. But accessing the track via key is expensive.
+
+              That is why we make an exception here. As the track will delete all
+              registered INotifyTrk objects upon destruction, it should be ok to store
+              the track object in the INotifyTrk object, too. By that INotifyTrk and track can
+              easily communicate with each other.
+
+        @note CDetailsTrk is an INotifyTrk, too. But it is a bit special as it has to be destroyed
+              right after all other INotifyTrk have been destroyed. That is why it is not part of
+              that set.
+     */
+    QSet<INotifyTrk*> registeredVisuals;
+
+    /**
+        \defgroup FocusRange Variables to handle mouse focus and range selection
+     */
+    /**@{*/
+    enum rangestate_e
+    {
+        eRangeStateIdle
+        , eRangeState1st
+        , eRangeState2nd
+    };
+
+    /// state variable for range selection
+    rangestate_e rangeState = eRangeStateIdle;
+
+    /**
+        @brief Identify source of current range selection
+
+        Each range selection operation has to provide an owner string.
+        If mouseFocusOwner is not empty and different to the passed
+        owner string the operation must be rejected.
+
+     */
+    QString mouseFocusOwner;
+
+    const CTrackData::trkpt_t *mouseMoveFocus  = nullptr; //< the current track point selected by mouse movement
+    const CTrackData::trkpt_t *mouseClickFocus = nullptr; //< the last track point the user clicked on
+    const CTrackData::trkpt_t *mouseRange1     = nullptr; //< the first point of a range selection
+    const CTrackData::trkpt_t *mouseRange2     = nullptr; //< the second point of a range selection
+    /**@}*/
+
+    QPointer<CDetailsTrk> dlgDetails; //< the track's details dialog if any
+    QPointer<CScrOptTrk>  scrOpt;     //< the track's screen option if visible
+
+    /// all function concerning track activities have been moved to CActivityTrk
+    CActivityTrk activities = {this};
+
+    /// all functions and data concerning graphs
+    CPropertyTrk * propHandler = nullptr;
+
+    /**
+        \defgroup Data and API related to track interpolation
+     */
+    /**@{*/
+public:
+    enum quality_e
+    {
+        eQualityFine = 8
+        , eQualityMedium = 4
+        , eQualityCoarse = 2
+    };
+
+    void setupInterpolation(bool on, qint32 q);
+    bool isInterpolationEnabled() const
+    {
+        return interp.valid;
+    }
+
+    qreal getElevationInterpolated(qreal d);
+
+private:
+    struct interpolate_t
+    {
+        bool valid      = false;
+        quality_e Q     = eQualityCoarse;
+        alglib::ae_int_t info = -1;
+        alglib::ae_int_t m = 0;
+        alglib::spline1dinterpolant p;
+        alglib::spline1dfitreport rep;
+    };
+
+    interpolate_t interp;
+
+    /**@}*/
+};
+
+class INotifyTrk
+{
+public:
+    INotifyTrk(CGisItemTrk::visual_e mask) : mask(mask){}
+    virtual ~INotifyTrk() = default;
+
+    virtual void updateData() = 0;
+    virtual void setMouseFocus(const CTrackData::trkpt_t * pt) = 0;
+    virtual void setMouseRangeFocus(const CTrackData::trkpt_t * pt1, const CTrackData::trkpt_t * pt2) = 0;
+    virtual void setMouseClickFocus(const CTrackData::trkpt_t * pt) = 0;
+
+    const CGisItemTrk::visual_e mask;
+};
+
+using fTrkPtGetVal = std::function<qreal(const CTrackData::trkpt_t&)>;
+
+#endif //CGISITEMTRK_H
diff --git a/src/gis/trk/CKnownExtension.cpp b/src/qmapshack/gis/trk/CKnownExtension.cpp
similarity index 100%
rename from src/gis/trk/CKnownExtension.cpp
rename to src/qmapshack/gis/trk/CKnownExtension.cpp
diff --git a/src/gis/trk/CKnownExtension.h b/src/qmapshack/gis/trk/CKnownExtension.h
similarity index 100%
rename from src/gis/trk/CKnownExtension.h
rename to src/qmapshack/gis/trk/CKnownExtension.h
diff --git a/src/gis/trk/CPropertyTrk.cpp b/src/qmapshack/gis/trk/CPropertyTrk.cpp
similarity index 100%
rename from src/gis/trk/CPropertyTrk.cpp
rename to src/qmapshack/gis/trk/CPropertyTrk.cpp
diff --git a/src/gis/trk/CPropertyTrk.h b/src/qmapshack/gis/trk/CPropertyTrk.h
similarity index 100%
rename from src/gis/trk/CPropertyTrk.h
rename to src/qmapshack/gis/trk/CPropertyTrk.h
diff --git a/src/qmapshack/gis/trk/CScrOptTrk.cpp b/src/qmapshack/gis/trk/CScrOptTrk.cpp
new file mode 100644
index 0000000..73fce5c
--- /dev/null
+++ b/src/qmapshack/gis/trk/CScrOptTrk.cpp
@@ -0,0 +1,188 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/trk/CScrOptTrk.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+
+CScrOptTrk::CScrOptTrk(CGisItemTrk * trk, const QPoint& point, IMouse *parent)
+    : IScrOpt(parent)
+    , key(trk->getKey())
+{
+    setupUi(this);
+    setOrigin(point);
+    label->setFont(CMainWindow::self().getMapFont());
+    label->setText(trk->getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowActivity));
+    adjustSize();
+
+    toolProfile->setChecked(trk->hasUserFocus());
+
+    bool isOnDevice = trk->isOnDevice();
+    toolCut->setDisabled(isOnDevice);
+    toolEdit->setDisabled(isOnDevice);
+    toolReverse->setDisabled(isOnDevice);
+    toolRange->setDisabled(isOnDevice);
+    toolCopyWithWpt->setEnabled(trk->getNumberOfAttachedWpt() != 0);
+    toolNogo->setChecked(trk->isNogo());
+
+    IGisProject * project = trk->getParentProject();
+    if(project != nullptr)
+    {
+        toolCombine->setEnabled(project->getItemCountByType(IGisItem::eTypeTrk) > 1);
+    }
+
+    anchor = trk->getPointCloseBy(point);
+    if((anchor - point).manhattanLength() > 50)
+    {
+        anchor = point;
+        toolCut->setEnabled(false);
+    }
+
+    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+    show();
+
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolProfile,     &QToolButton::toggled, this, &CScrOptTrk::hide);
+    connect(toolCut,         &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolReverse,     &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolCombine,     &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolRange,       &QToolButton::clicked, this, &CScrOptTrk::hide);
+    connect(toolEditDetails, &QToolButton::clicked, this, &CScrOptTrk::slotEditDetails);
+    connect(toolDelete,      &QToolButton::clicked, this, &CScrOptTrk::slotDelete);
+    connect(toolCopy,        &QToolButton::clicked, this, &CScrOptTrk::slotCopy);
+    connect(toolProfile,     &QToolButton::toggled, this, &CScrOptTrk::slotProfile);
+    connect(toolCut,         &QToolButton::clicked, this, &CScrOptTrk::slotCut);
+    connect(toolEdit,        &QToolButton::clicked, this, &CScrOptTrk::slotEdit);
+    connect(toolReverse,     &QToolButton::clicked, this, &CScrOptTrk::slotReverse);
+    connect(toolCombine,     &QToolButton::clicked, this, &CScrOptTrk::slotCombine);
+    connect(toolRange,       &QToolButton::clicked, this, &CScrOptTrk::slotRange);
+    connect(toolActivity,    &QToolButton::clicked, this, &CScrOptTrk::slotActivity);
+    connect(toolColor,       &QToolButton::clicked, this, &CScrOptTrk::slotColor);
+    connect(toolCopyWithWpt, &QToolButton::clicked, this, &CScrOptTrk::slotCopyWithWpt);
+    connect(toolNogo,        &QToolButton::clicked, this, &CScrOptTrk::slotNogo);
+
+    // reset user focus if the track has it
+    trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CScrOptTrk");
+    trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CScrOptTrk");
+}
+
+CScrOptTrk::~CScrOptTrk()
+{
+}
+
+void CScrOptTrk::slotDelete()
+{
+    CGisWorkspace::self().delItemByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotCopy()
+{
+    CGisWorkspace::self().copyItemByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotEditDetails()
+{
+    CGisWorkspace::self().editItemByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotProfile(bool on)
+{
+    CGisWorkspace::self().focusTrkByKey(on, key);
+    close();
+}
+
+void CScrOptTrk::slotCut()
+{
+    CGisWorkspace::self().cutTrkByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotEdit()
+{
+    CGisWorkspace::self().editTrkByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotReverse()
+{
+    CGisWorkspace::self().reverseTrkByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotCombine()
+{
+    CGisWorkspace::self().combineTrkByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotRange()
+{
+    CGisWorkspace::self().rangeTrkByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotActivity()
+{
+    QList<IGisItem::key_t> keys;
+    keys << key;
+    CGisWorkspace::self().activityTrkByKey(keys);
+    close();
+}
+
+void CScrOptTrk::slotColor()
+{
+    QList<IGisItem::key_t> keys;
+    keys << key;
+    CGisWorkspace::self().colorTrkByKey(keys);
+    close();
+}
+
+void CScrOptTrk::slotCopyWithWpt()
+{
+    CGisWorkspace::self().copyTrkWithWptByKey(key);
+    close();
+}
+
+void CScrOptTrk::slotNogo()
+{
+    CGisWorkspace::self().toggleNogoItem(key);
+    close();
+}
+
+void CScrOptTrk::draw(QPainter& p)
+{
+    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
+    if(nullptr == item)
+    {
+        close();
+        return;
+    }
+    item->drawHighlight(p);
+
+    CDraw::bubble(p, geometry(), anchor.toPoint());
+}
diff --git a/src/qmapshack/gis/trk/CScrOptTrk.h b/src/qmapshack/gis/trk/CScrOptTrk.h
new file mode 100644
index 0000000..e4bf05c
--- /dev/null
+++ b/src/qmapshack/gis/trk/CScrOptTrk.h
@@ -0,0 +1,60 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CSCROPTTRK_H
+#define CSCROPTTRK_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IScrOpt.h"
+#include "ui_IScrOptTrk.h"
+
+class CGisItemTrk;
+class IMouse;
+
+class CScrOptTrk : public IScrOpt, private Ui::IScrOptTrk
+{
+    Q_OBJECT
+public:
+    CScrOptTrk(CGisItemTrk * trk, const QPoint &point, IMouse *parent);
+    virtual ~CScrOptTrk();
+
+    void draw(QPainter& p) override;
+
+private slots:
+    void slotDelete();
+    void slotCopy();
+    void slotEditDetails();
+    void slotProfile(bool on);
+    void slotCut();
+    void slotEdit();
+    void slotReverse();
+    void slotCombine();
+    void slotRange();
+    void slotActivity();
+    void slotColor();
+    void slotCopyWithWpt();
+    void slotNogo();
+
+
+private:
+    IGisItem::key_t key;
+    QPointF anchor;
+};
+
+#endif //CSCROPTTRK_H
+
diff --git a/src/gis/trk/CSelectActivityColor.cpp b/src/qmapshack/gis/trk/CSelectActivityColor.cpp
similarity index 100%
rename from src/gis/trk/CSelectActivityColor.cpp
rename to src/qmapshack/gis/trk/CSelectActivityColor.cpp
diff --git a/src/gis/trk/CSelectActivityColor.h b/src/qmapshack/gis/trk/CSelectActivityColor.h
similarity index 100%
rename from src/gis/trk/CSelectActivityColor.h
rename to src/qmapshack/gis/trk/CSelectActivityColor.h
diff --git a/src/qmapshack/gis/trk/CTableTrk.cpp b/src/qmapshack/gis/trk/CTableTrk.cpp
new file mode 100644
index 0000000..cc90250
--- /dev/null
+++ b/src/qmapshack/gis/trk/CTableTrk.cpp
@@ -0,0 +1,205 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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 "gis/trk/CTableTrk.h"
+#include "helpers/CElevationDialog.h"
+#include "helpers/CSettings.h"
+#include "units/IUnit.h"
+
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+CTableTrk::CTableTrk(QWidget *parent)
+    : QTreeWidget(parent)
+    , INotifyTrk(CGisItemTrk::eVisualTrkTable)
+{
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    header()->restoreState(cfg.value("trackPointListState").toByteArray());
+    cfg.endGroup();
+
+    connect(this, &CTableTrk::itemSelectionChanged, this, &CTableTrk::slotItemSelectionChanged);
+    connect(this, &CTableTrk::itemDoubleClicked, this, &CTableTrk::slotItemDoubleClicked);
+}
+
+CTableTrk::~CTableTrk()
+{
+    SETTINGS;
+    cfg.beginGroup("TrackDetails");
+    cfg.setValue("trackPointListState", header()->saveState());
+    cfg.endGroup();
+
+    if(trk != nullptr)
+    {
+        trk->unregisterVisual(this);
+    }
+}
+
+void CTableTrk::setTrack(CGisItemTrk * track)
+{
+    if(trk != nullptr)
+    {
+        trk->unregisterVisual(this);
+    }
+
+    clear();
+    trk = track;
+
+    if(trk != nullptr)
+    {
+        trk->registerVisual(this);
+        updateData();
+    }
+}
+
+void CTableTrk::updateData()
+{
+    if(trk == nullptr)
+    {
+        return;
+    }
+
+    // use all valid flags as invalid mask. By that only
+    // invalid flags for properties with valid points count
+    quint32 invalidMask = (trk->getAllValidFlags() & CTrackData::trkpt_t::eValidMask) << 16;
+
+    QList<QTreeWidgetItem*> items;
+    const CTrackData& t = trk->getTrackData();
+    for(const CTrackData::trkpt_t& trkpt : t)
+    {
+        QString val, unit;
+
+        QTreeWidgetItem * item = new QTreeWidgetItem();
+        item->setTextAlignment(eColNum,     Qt::AlignLeft);
+        item->setTextAlignment(eColEle,     Qt::AlignRight);
+        item->setTextAlignment(eColDelta,   Qt::AlignRight);
+        item->setTextAlignment(eColDist,    Qt::AlignRight);
+        item->setTextAlignment(eColAscent,  Qt::AlignRight);
+        item->setTextAlignment(eColDescent, Qt::AlignRight);
+        item->setTextAlignment(eColSpeed,   Qt::AlignRight);
+
+        if(!trk->isReadOnly())
+        {
+            item->setToolTip(eColEle, tr("Double click to edit elevation value"));
+        }
+
+        QBrush bg = item->background(0);
+        if(trkpt.isInvalid(CTrackData::trkpt_t::invalid_e(invalidMask)) && !trkpt.isHidden())
+        {
+            bg = QColor(255, 100, 100);
+        }
+
+        QBrush fg( trkpt.isHidden() ? Qt::gray : Qt::black );
+        for(int i = 0; i < eColMax; i++)
+        {
+            item->setBackground(i, bg);
+            item->setForeground(i, fg);
+        }
+
+        item->setText(eColNum,QString::number(trkpt.idxTotal));
+
+        item->setText(eColTime, trkpt.time.isValid()
+                      ? IUnit::self().datetime2string(trkpt.time, true, QPointF(trkpt.lon, trkpt.lat)*DEG_TO_RAD)
+                      : "-"
+                      );
+
+        if(trkpt.ele != NOINT)
+        {
+            IUnit::self().meter2elevation(trkpt.ele, val, unit);
+            item->setText(eColEle, tr("%1%2").arg(val).arg(unit));
+        }
+        else
+        {
+            item->setText(eColEle, "-");
+        }
+
+        IUnit::self().meter2distance(trkpt.deltaDistance, val, unit);
+        item->setText(eColDelta, tr("%1%2").arg(val).arg(unit));
+
+        IUnit::self().meter2distance(trkpt.distance, val, unit);
+        item->setText(eColDist, tr("%1%2").arg(val).arg(unit));
+
+        if(trkpt.speed != NOFLOAT)
+        {
+            IUnit::self().meter2speed(trkpt.speed, val, unit);
+            item->setText(eColSpeed, tr("%1%2").arg(val).arg(unit));
+        }
+        else
+        {
+            item->setText(eColSpeed, "-");
+        }
+
+        IUnit::self().slope2string(trkpt.slope1, val, unit);
+        item->setText(eColSlope, (trkpt.slope1 != NOFLOAT)
+                      ? QString("%1%2").arg(val).arg(unit)
+                      : "-"
+                      );
+
+        IUnit::self().meter2elevation(trkpt.ascent, val, unit);
+        item->setText(eColAscent, tr("%1%2").arg(val).arg(unit));
+        IUnit::self().meter2elevation(trkpt.descent, val, unit);
+        item->setText(eColDescent, tr("%1%2").arg(val).arg(unit));
+
+        // position
+        QString str;
+        IUnit::degToStr(trkpt.lon, trkpt.lat, str);
+        item->setText(eColPosition,str);
+
+        items << item;
+    }
+
+    clear();
+    addTopLevelItems(items);
+    header()->resizeSections(QHeaderView::ResizeToContents);
+}
+
+
+void CTableTrk::slotItemSelectionChanged()
+{
+    QTreeWidgetItem * item = currentItem();
+    if(nullptr != item)
+    {
+        quint32 idx = item->text(eColNum).toUInt();
+        trk->setMouseFocusByTotalIndex(idx, CGisItemTrk::eFocusMouseMove, "CTableTrk");
+    }
+}
+
+void CTableTrk::slotItemDoubleClicked(QTreeWidgetItem * item, int column)
+{
+    if(trk->isReadOnly())
+    {
+        return;
+    }
+
+    qint32 idx = item->text(eColNum).toInt();
+    qint32 ele = trk->getElevation(idx);
+    qreal lon, lat;
+    IUnit::strToDeg(item->text(eColPosition), lon, lat);
+
+    if((column == eColEle) && (lon != NOFLOAT) && (lat != NOFLOAT))
+    {
+        QVariant var(ele);
+        CElevationDialog dlg(this, var, QVariant(ele), QPointF(lon, lat));
+
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            trk->setElevation(idx, var.toInt());
+        }
+    }
+}
diff --git a/src/gis/trk/CTableTrk.h b/src/qmapshack/gis/trk/CTableTrk.h
similarity index 100%
rename from src/gis/trk/CTableTrk.h
rename to src/qmapshack/gis/trk/CTableTrk.h
diff --git a/src/qmapshack/gis/trk/CTrackData.cpp b/src/qmapshack/gis/trk/CTrackData.cpp
new file mode 100644
index 0000000..975d740
--- /dev/null
+++ b/src/qmapshack/gis/trk/CTrackData.cpp
@@ -0,0 +1,193 @@
+#include "gis/IGisLine.h"
+#include "gis/trk/CTrackData.h"
+
+CTrackData::CTrackData(const QString &name, const CTrackData &other, qint32 rangeStart, qint32 rangeEnd) : name(name)
+{
+    for(const trkseg_t &oseg : other.segs)
+    {
+        trkseg_t seg;
+        for(const trkpt_t &opt : oseg.pts)
+        {
+            if(opt.idxTotal < rangeStart)
+            {
+                continue;
+            }
+            if(opt.idxTotal > rangeEnd)
+            {
+                break;
+            }
+
+            seg.pts << opt;
+        }
+
+        if(!seg.isEmpty())
+        {
+            segs << seg;
+        }
+    }
+
+    cmt    = other.cmt;
+    desc   = other.desc;
+    src    = other.src;
+    links  = other.links;
+    number = other.number;
+    type   = other.type;
+}
+
+void CTrackData::removeEmptySegments()
+{
+    QVector<trkseg_t>::iterator it = segs.begin();
+    while(it != segs.end())
+    {
+        if(it->pts.isEmpty())
+        {
+            it = segs.erase(it);
+        }
+        else
+        {
+            ++it;
+        }
+    }
+}
+
+void CTrackData::readFrom(const SGisLine &l)
+{
+    segs.clear();
+    segs.resize(1);
+    trkseg_t& seg = segs.first();
+
+    for(int i = 0; i < l.size(); i++)
+    {
+        seg.pts << trkpt_t();
+
+        trkpt_t& trkpt    = seg.pts.last();
+        const IGisLine::point_t& pt = l[i];
+
+        trkpt.lon = pt.coord.x() * RAD_TO_DEG;
+        trkpt.lat = pt.coord.y() * RAD_TO_DEG;
+        trkpt.ele = pt.ele;
+
+        for(int n = 0; n < pt.subpts.size(); n++)
+        {
+            seg.pts << trkpt_t();
+
+            trkpt_t& trkpt = seg.pts.last();
+            const IGisLine::subpt_t& sub = pt.subpts[n];
+
+            trkpt.lon = sub.coord.x() * RAD_TO_DEG;
+            trkpt.lat = sub.coord.y() * RAD_TO_DEG;
+            trkpt.ele = sub.ele;
+            trkpt.setFlag(trkpt_t::eSubpt);
+        }
+    }
+}
+
+
+void CTrackData::getPolyline(SGisLine &l) const
+{
+    l.clear();
+    for(const trkpt_t &pt : *this)
+    {
+        if(!pt.isHidden())
+        {
+            if(pt.hasFlag(trkpt_t::eSubpt))
+            {
+                l.last().subpts << IGisLine::subpt_t(pt.radPoint());
+            }
+            else
+            {
+                l << IGisLine::point_t(pt.radPoint());
+            }
+        }
+    }
+}
+
+void CTrackData::getPolyline(QPolygonF &l) const
+{
+    l.clear();
+    for(const trkpt_t &pt : *this)
+    {
+        if(!pt.isHidden())
+        {
+            l << pt.radPoint();
+        }
+    }
+}
+
+void CTrackData::getPolylineDeg(QPolygonF &l) const
+{
+    l.clear();
+    for(const trkpt_t &pt : *this)
+    {
+        if(!pt.isHidden())
+        {
+            l << QPointF(pt.lon,pt.lat);
+        }
+    }
+}
+
+bool CTrackData::isTrkPtFirstVisible(qint32 idxTotal) const
+{
+    for(const trkpt_t &pt : *this)
+    {
+        if((pt.idxTotal < idxTotal))
+        {
+            if(!pt.isHidden())
+            {
+                return false;
+            }
+        }
+        else
+        {
+            return true;
+        }
+    }
+    return true;
+}
+
+const CTrackData::trkpt_t* CTrackData::getTrkPtByVisibleIndex(qint32 idx) const
+{
+    if(idx == NOIDX)
+    {
+        return nullptr;
+    }
+
+    auto condition = [idx](const trkpt_t &pt) { return pt.idxVisible == idx;  };
+    return getTrkPtByCondition(condition);
+}
+
+const CTrackData::trkpt_t* CTrackData::getTrkPtByTotalIndex(qint32 idx) const
+{
+    auto condition = [idx](const trkpt_t &pt) { return pt.idxTotal == idx;  };
+    return getTrkPtByCondition(condition);
+}
+
+bool CTrackData::isTrkPtLastVisible(qint32 idxTotal) const
+{
+    auto condition = [idxTotal](const trkpt_t &pt) { return (pt.idxTotal > idxTotal) && !pt.isHidden();  };
+    return nullptr == getTrkPtByCondition(condition);
+}
+
+const CTrackData::trkpt_t* CTrackData::getTrkPtByCondition(std::function<bool(const CTrackData::trkpt_t&)> cond) const
+{
+    for(const trkpt_t &pt : *this)
+    {
+        if(cond(pt))
+        {
+            return &pt;
+        }
+    }
+    return nullptr;
+}
+
+CTrackData::trkpt_t* CTrackData::getTrkPtByCondition(std::function<bool(const CTrackData::trkpt_t&)> cond)
+{
+    for(trkpt_t &pt : *this)
+    {
+        if(cond(pt))
+        {
+            return &pt;
+        }
+    }
+    return nullptr;
+}
diff --git a/src/qmapshack/gis/trk/CTrackData.h b/src/qmapshack/gis/trk/CTrackData.h
new file mode 100644
index 0000000..cdeb70f
--- /dev/null
+++ b/src/qmapshack/gis/trk/CTrackData.h
@@ -0,0 +1,273 @@
+#ifndef TRACKDATA_H
+#define TRACKDATA_H
+
+#include "GeoMath.h"
+#include "gis/IGisItem.h"
+#include <QPoint>
+#include <QtWidgets>
+#include <functional>
+#include <proj_api.h>
+
+
+struct SGisLine;
+
+class CTrackData
+{
+public:
+    struct trkpt_t : public IGisItem::wpt_t
+    {
+        trkpt_t()
+        {
+            reset();
+        }
+
+        void reset()
+        {
+            deltaDistance   = NOFLOAT;
+            distance        = NOFLOAT;
+            ascent          = NOFLOAT;
+            descent         = NOFLOAT;
+            elapsedSeconds  = NOFLOAT;
+            elapsedSecondsMoving = NOFLOAT;
+            slope1          = NOFLOAT;
+            slope2          = NOFLOAT;
+            speed           = NOFLOAT;
+            idxVisible      = NOIDX;
+            valid           = 0;
+        }
+
+        enum flag_e
+        {
+            eHidden     = 0x00000004      ///< mark point as deleted
+            ,eSubpt     = 0x00000008
+                          // activity flags
+            ,eActNone   = 0x00000000
+            ,eActFoot   = 0x80000000
+            ,eActCycle  = 0x40000000
+            ,eActBike   = 0x20000000
+            ,eActCar    = 0x10000000
+            ,eActCable  = 0x08000000
+            ,eActSwim   = 0x04000000
+            ,eActShip   = 0x02000000
+            ,eActAero   = 0x01000000
+            ,eActSki    = 0x00800000
+            ,eActTrain  = 0x00400000
+            ,eActMask   = 0xFFC00000    ///< mask for activity flags
+            ,eActMaxNum = 10            ///< maximum number of activity flags. this is defined by the mask
+        };
+
+        enum valid_e
+        {
+            eValidTime  = 0x00000001
+            ,eValidEle  = 0x00000002
+            ,eValidPos  = 0x00000004
+            ,eValidSlope= 0x00000008
+            ,eValidMask = 0x0000FFFF
+        };
+
+        enum invalid_e
+        {
+            eInvalidTime  = eValidTime  << 16
+            ,eInvalidEle  = eValidEle   << 16
+            ,eInvalidPos  = eValidPos   << 16
+            ,eInvalidSlope= eValidSlope << 16
+            ,eInvalidMask = 0xFFFF0000
+        };
+
+
+        inline bool isHidden() const
+        {
+            return hasFlag(trkpt_t::eHidden);
+        }
+
+        inline bool hasFlag(enum flag_e flag) const
+        {
+            return flags & flag;
+        }
+
+        inline void setFlag(enum flag_e flag)
+        {
+            flags |= flag;
+        }
+
+        inline void unsetFlag(enum flag_e flag)
+        {
+            flags &= ~flag;
+        }
+
+        inline bool isValid(valid_e flag) const
+        {
+            return (valid & flag) != 0;
+        }
+
+        inline bool isInvalid(invalid_e flag) const
+        {
+            return (valid & flag) != 0;
+        }
+
+        inline QPointF radPoint() const
+        {
+            return QPointF(lon * DEG_TO_RAD, lat * DEG_TO_RAD);
+        }
+
+        inline qreal distanceTo(const trkpt_t &other)
+        {
+            return GPS_Math_Distance(lon * DEG_TO_RAD, lat * DEG_TO_RAD, other.lon * DEG_TO_RAD, other.lat * DEG_TO_RAD);
+        }
+
+        quint32 flags = 0;
+        quint32 valid = 0;
+        qint32 idxTotal = NOIDX;            //< index within the complete track
+        qint32 idxVisible;                  //< offset into lineSimple
+        qreal deltaDistance;                //< the distance to the last point
+        qreal distance;                     //< the distance from the start of the track
+        qreal ascent;                       //< the ascent from the start of the track
+        qreal descent;                      //< the descent from the start of the track
+        qreal slope1;                       //< the slope [°] over several points close by
+        qreal slope2;                       //< the slope [%] over several points close by
+        qreal speed;                        //< the speed over several points close by
+        qreal elapsedSeconds;               //< the seconds since the start of the track
+        qreal elapsedSecondsMoving;         //< the seconds since the start of the track with moving speed
+        IGisItem::key_t keyWpt;             //< the key of an attached waypoint
+        QHash<QString,QVariant> extensions; //< track point extensions
+    };
+
+    struct trkseg_t
+    {
+        QVector<trkpt_t> pts;
+
+        bool isEmpty() const
+        {
+            return pts.isEmpty();
+        }
+    };
+
+
+
+    CTrackData() {}
+
+    CTrackData(const QString &name, const CTrackData &other, qint32 rangeStart, qint32 rangeEnd);
+
+    // -- all gpx tags - start
+    QString name;
+    QString cmt;
+    QString desc;
+    QString src;
+    QList<IGisItem::link_t> links;
+    quint64 number = 0;
+    QString type;
+    QVector<trkseg_t> segs;
+    // -- all gpx tags - stop
+
+    QString color;
+
+    void removeEmptySegments();
+
+    void readFrom(const SGisLine &l);
+    void getPolyline(SGisLine  &l) const;
+    void getPolyline(QPolygonF &l) const;
+    void getPolylineDeg(QPolygonF &l) const;
+
+    bool isEmpty() const
+    {
+        return segs.isEmpty();
+    }
+
+    /**
+       @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) const;
+
+    const trkpt_t* getTrkPtByCondition(std::function<bool(const trkpt_t&)> cond) const;
+    trkpt_t* getTrkPtByCondition(std::function<bool(const trkpt_t&)> cond);
+
+
+    /**
+       @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 returned.
+
+       @param idx The index into all visible points
+       @return A null pointer of no point is found.
+     */
+    const trkpt_t *getTrkPtByVisibleIndex(qint32 idx) const;
+    /**
+       @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) const;
+
+    /**
+       @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) const;
+
+
+    template<typename T1, typename T2>
+    class iterator : public std::iterator<std::forward_iterator_tag, T2>
+    {
+        T1 &trk;
+        int seg = 0;
+        int pt  = 0;
+
+public:
+        explicit iterator(T1 &trk, int seg, int pt) : trk(trk), seg(seg), pt(pt) {}
+
+        iterator& operator++()
+        {
+            Q_ASSERT(seg < trk.segs.count());
+            ++pt;
+
+            if(this->trk.segs[seg].pts.count() <= pt)
+            {
+                pt = 0;
+                ++seg;
+            }
+
+            return *this;
+        }
+
+        iterator operator++(int)
+        {
+            iterator prev = *this;
+            ++(*this);
+            return prev;
+        }
+
+        bool operator==(iterator other) const
+        {
+            return (&trk == &other.trk) && (seg == other.seg) && (pt == other.pt);
+        }
+
+        bool operator!=(iterator other) const
+        {
+            return !(*this == other);
+        }
+
+        T2& operator*()
+        {
+            return this->trk.segs[seg].pts[pt];
+        }
+    };
+
+    iterator<CTrackData, trkpt_t> begin() { return iterator<CTrackData, trkpt_t>(*this,            0, 0); }
+    iterator<CTrackData, trkpt_t> end()   { return iterator<CTrackData, trkpt_t>(*this, segs.count(), 0); }
+
+    iterator<const CTrackData, const trkpt_t> begin() const { return iterator<const CTrackData, const trkpt_t>(*this,            0, 0); }
+    iterator<const CTrackData, const trkpt_t> end()   const { return iterator<const CTrackData, const trkpt_t>(*this, segs.count(), 0); }
+};
+
+QDataStream& operator<<(QDataStream& stream, const CTrackData::trkpt_t& pt);
+QDataStream& operator>>(QDataStream& stream, CTrackData::trkpt_t& pt);
+
+#endif /* TRACKDATA_H */
diff --git a/src/gis/trk/ICombineTrk.ui b/src/qmapshack/gis/trk/ICombineTrk.ui
similarity index 100%
rename from src/gis/trk/ICombineTrk.ui
rename to src/qmapshack/gis/trk/ICombineTrk.ui
diff --git a/src/gis/trk/ICutTrk.ui b/src/qmapshack/gis/trk/ICutTrk.ui
similarity index 100%
rename from src/gis/trk/ICutTrk.ui
rename to src/qmapshack/gis/trk/ICutTrk.ui
diff --git a/src/qmapshack/gis/trk/IDetailsTrk.ui b/src/qmapshack/gis/trk/IDetailsTrk.ui
new file mode 100644
index 0000000..ee9f15a
--- /dev/null
+++ b/src/qmapshack/gis/trk/IDetailsTrk.ui
@@ -0,0 +1,1678 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IDetailsTrk</class>
+ <widget class="QWidget" name="IDetailsTrk">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>992</width>
+    <height>404</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_5">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <widget class="QSplitter" name="splitter">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <widget class="QWidget" name="layoutWidget">
+      <layout class="QVBoxLayout" name="layoutPlot">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <property name="spacing">
+          <number>3</number>
+         </property>
+         <item>
+          <widget class="QLabel" name="labelInfoTrkPt">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>-
+-
+-</string>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="Line" name="line">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLabel" name="labelInfoProgress">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>-
+-</string>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="Line" name="line_2">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <widget class="QLabel" name="labelInfoRange">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>-
+-</string>
+           </property>
+           <property name="alignment">
+            <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Expanding</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="layoutWidget1">
+      <layout class="QHBoxLayout" name="horizontalLayout_6">
+       <property name="spacing">
+        <number>3</number>
+       </property>
+       <item>
+        <widget class="QFrame" name="frame">
+         <property name="frameShape">
+          <enum>QFrame::StyledPanel</enum>
+         </property>
+         <property name="frameShadow">
+          <enum>QFrame::Raised</enum>
+         </property>
+         <layout class="QVBoxLayout" name="verticalLayout_7">
+          <property name="spacing">
+           <number>3</number>
+          </property>
+          <property name="leftMargin">
+           <number>3</number>
+          </property>
+          <property name="topMargin">
+           <number>3</number>
+          </property>
+          <property name="rightMargin">
+           <number>3</number>
+          </property>
+          <property name="bottomMargin">
+           <number>3</number>
+          </property>
+          <item>
+           <layout class="QHBoxLayout" name="horizontalLayout_8">
+            <item>
+             <widget class="CLineEdit" name="lineName">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="palette">
+               <palette>
+                <active>
+                 <colorrole role="Base">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                 <colorrole role="Window">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                </active>
+                <inactive>
+                 <colorrole role="Base">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                 <colorrole role="Window">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                </inactive>
+                <disabled>
+                 <colorrole role="Base">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                 <colorrole role="Window">
+                  <brush brushstyle="SolidPattern">
+                   <color alpha="0">
+                    <red>0</red>
+                    <green>0</green>
+                    <blue>0</blue>
+                   </color>
+                  </brush>
+                 </colorrole>
+                </disabled>
+               </palette>
+              </property>
+              <property name="font">
+               <font>
+                <weight>75</weight>
+                <bold>true</bold>
+               </font>
+              </property>
+              <property name="focusPolicy">
+               <enum>Qt::ClickFocus</enum>
+              </property>
+              <property name="frame">
+               <bool>false</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLabel" name="labelTainted">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>25</width>
+                <height>25</height>
+               </size>
+              </property>
+              <property name="toolTip">
+               <string>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="pixmap">
+               <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
+              </property>
+              <property name="scaledContents">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QLabel" name="labelNogo">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="maximumSize">
+               <size>
+                <width>22</width>
+                <height>22</height>
+               </size>
+              </property>
+              <property name="toolTip">
+               <string>This Track is a NoGo-Line</string>
+              </property>
+              <property name="text">
+               <string/>
+              </property>
+              <property name="pixmap">
+               <pixmap resource="../../resources.qrc">:/icons/32x32/NoGo.png</pixmap>
+              </property>
+              <property name="scaledContents">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QToolButton" name="toolLock">
+              <property name="sizePolicy">
+               <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+                <horstretch>0</horstretch>
+                <verstretch>0</verstretch>
+               </sizepolicy>
+              </property>
+              <property name="toolTip">
+               <string>Toggle read only mode. You have to open the lock to edit the item.</string>
+              </property>
+              <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>
+              <property name="autoRaise">
+               <bool>true</bool>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <widget class="QLabel" name="labelInfo">
+            <property name="text">
+             <string>-</string>
+            </property>
+            <property name="alignment">
+             <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+            </property>
+            <property name="textInteractionFlags">
+             <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer name="verticalSpacer">
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>20</width>
+              <height>40</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item>
+        <widget class="QTabWidget" name="tabWidget">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="currentIndex">
+          <number>1</number>
+         </property>
+         <widget class="QWidget" name="tab_3">
+          <attribute name="title">
+           <string>Info</string>
+          </attribute>
+          <layout class="QHBoxLayout" name="horizontalLayout_5">
+           <property name="spacing">
+            <number>3</number>
+           </property>
+           <property name="leftMargin">
+            <number>0</number>
+           </property>
+           <property name="topMargin">
+            <number>0</number>
+           </property>
+           <property name="rightMargin">
+            <number>0</number>
+           </property>
+           <property name="bottomMargin">
+            <number>0</number>
+           </property>
+           <item>
+            <widget class="CPlotTrack" name="plotTrack" native="true"/>
+           </item>
+           <item>
+            <widget class="QTextBrowser" name="textCmtDesc">
+             <property name="openLinks">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tabStyle">
+          <attribute name="title">
+           <string>Style</string>
+          </attribute>
+          <layout class="QHBoxLayout" name="tabStyleLayout">
+           <item>
+            <layout class="QVBoxLayout" name="widgetColorLayout">
+             <item>
+              <widget class="CColorLegend" name="widgetColorLabel" native="true">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Minimum" vsizetype="MinimumExpanding">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="minimumSize">
+                <size>
+                 <width>100</width>
+                 <height>0</height>
+                </size>
+               </property>
+               <property name="maximumSize">
+                <size>
+                 <width>300</width>
+                 <height>16777215</height>
+                </size>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <layout class="QVBoxLayout" name="verticalLayout_2">
+             <item>
+              <layout class="QGridLayout" name="gridLayout">
+               <item row="0" column="0">
+                <widget class="QLabel" name="label">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Source</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="7" column="0">
+                <widget class="QLabel" name="label_5">
+                 <property name="text">
+                  <string>Width</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="0" column="1">
+                <widget class="QComboBox" name="comboColorSource"/>
+               </item>
+               <item row="8" column="2">
+                <layout class="QHBoxLayout" name="horizontalLayout_4">
+                 <property name="spacing">
+                  <number>0</number>
+                 </property>
+                 <item>
+                  <widget class="QToolButton" name="toolUserArrow">
+                   <property name="toolTip">
+                    <string>Use/edit user defined visibility of arrows for this track</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/ArrowUser.png</normaloff>:/icons/32x32/ArrowUser.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                   <attribute name="buttonGroup">
+                    <string notr="true">buttonGroupArrow</string>
+                   </attribute>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QToolButton" name="toolDefArrow">
+                   <property name="toolTip">
+                    <string>Use/edit system's visibility of arrows for all tracks</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/ArrowDef.png</normaloff>:/icons/32x32/ArrowDef.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="checked">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                   <attribute name="buttonGroup">
+                    <string notr="true">buttonGroupArrow</string>
+                   </attribute>
+                  </widget>
+                 </item>
+                 <item>
+                  <spacer name="horizontalSpacer_6">
+                   <property name="orientation">
+                    <enum>Qt::Horizontal</enum>
+                   </property>
+                   <property name="sizeType">
+                    <enum>QSizePolicy::Maximum</enum>
+                   </property>
+                   <property name="sizeHint" stdset="0">
+                    <size>
+                     <width>25</width>
+                     <height>20</height>
+                    </size>
+                   </property>
+                  </spacer>
+                 </item>
+                </layout>
+               </item>
+               <item row="4" column="1">
+                <widget class="CDoubleSpinBox" name="spinLimitHigh">
+                 <property name="decimals">
+                  <number>1</number>
+                 </property>
+                 <property name="minimum">
+                  <double>-100.000000000000000</double>
+                 </property>
+                </widget>
+               </item>
+               <item row="4" column="2">
+                <layout class="QHBoxLayout" name="horizontalLayout_7">
+                 <property name="spacing">
+                  <number>0</number>
+                 </property>
+                 <item>
+                  <widget class="QToolButton" name="toolLimitUsrStyle">
+                   <property name="toolTip">
+                    <string>User defined limits for this track</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QToolButton" name="toolLimitAutoStyle">
+                   <property name="toolTip">
+                    <string>Automatic limits</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="checked">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QToolButton" name="toolLimitSysStyle">
+                   <property name="toolTip">
+                    <string>User defined limits for all tracks</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                  </widget>
+                 </item>
+                </layout>
+               </item>
+               <item row="4" column="0">
+                <widget class="QLabel" name="label_2">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Maximum</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="8" column="1">
+                <widget class="QCheckBox" name="checkWithArrows">
+                 <property name="text">
+                  <string>with arrows</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="7" column="1">
+                <widget class="QDoubleSpinBox" name="spinLineWidth">
+                 <property name="prefix">
+                  <string>x </string>
+                 </property>
+                 <property name="decimals">
+                  <number>1</number>
+                 </property>
+                 <property name="minimum">
+                  <double>1.000000000000000</double>
+                 </property>
+                 <property name="maximum">
+                  <double>4.000000000000000</double>
+                 </property>
+                 <property name="singleStep">
+                  <double>0.500000000000000</double>
+                 </property>
+                </widget>
+               </item>
+               <item row="5" column="1">
+                <widget class="CDoubleSpinBox" name="spinLimitLow">
+                 <property name="decimals">
+                  <number>1</number>
+                 </property>
+                 <property name="minimum">
+                  <double>-100.000000000000000</double>
+                 </property>
+                </widget>
+               </item>
+               <item row="5" column="2">
+                <layout class="QHBoxLayout" name="horizontalLayout_9">
+                 <property name="spacing">
+                  <number>0</number>
+                 </property>
+                </layout>
+               </item>
+               <item row="7" column="2">
+                <layout class="QHBoxLayout" name="horizontalLayout">
+                 <property name="spacing">
+                  <number>0</number>
+                 </property>
+                 <item>
+                  <widget class="QToolButton" name="toolUserLineWith">
+                   <property name="toolTip">
+                    <string>Use/edit user defined scale factor for this track</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/LineWidthUser.png</normaloff>:/icons/32x32/LineWidthUser.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                   <attribute name="buttonGroup">
+                    <string notr="true">buttonGroupLineWidth</string>
+                   </attribute>
+                  </widget>
+                 </item>
+                 <item>
+                  <widget class="QToolButton" name="toolDefLineWidth">
+                   <property name="toolTip">
+                    <string>Use/edit system's default factor for all tracks</string>
+                   </property>
+                   <property name="text">
+                    <string>...</string>
+                   </property>
+                   <property name="icon">
+                    <iconset resource="../../resources.qrc">
+                     <normaloff>:/icons/32x32/LineWidthDef.png</normaloff>:/icons/32x32/LineWidthDef.png</iconset>
+                   </property>
+                   <property name="iconSize">
+                    <size>
+                     <width>16</width>
+                     <height>16</height>
+                    </size>
+                   </property>
+                   <property name="checkable">
+                    <bool>true</bool>
+                   </property>
+                   <property name="checked">
+                    <bool>true</bool>
+                   </property>
+                   <property name="autoExclusive">
+                    <bool>true</bool>
+                   </property>
+                   <attribute name="buttonGroup">
+                    <string notr="true">buttonGroupLineWidth</string>
+                   </attribute>
+                  </widget>
+                 </item>
+                 <item>
+                  <spacer name="horizontalSpacer_5">
+                   <property name="orientation">
+                    <enum>Qt::Horizontal</enum>
+                   </property>
+                   <property name="sizeType">
+                    <enum>QSizePolicy::Maximum</enum>
+                   </property>
+                   <property name="sizeHint" stdset="0">
+                    <size>
+                     <width>25</width>
+                     <height>20</height>
+                    </size>
+                   </property>
+                  </spacer>
+                 </item>
+                </layout>
+               </item>
+               <item row="5" column="0">
+                <widget class="QLabel" name="label_3">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Minimum</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="6" column="0" colspan="3">
+                <widget class="Line" name="line_4">
+                 <property name="orientation">
+                  <enum>Qt::Horizontal</enum>
+                 </property>
+                </widget>
+               </item>
+               <item row="3" column="0">
+                <widget class="QLabel" name="label_4">
+                 <property name="sizePolicy">
+                  <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+                   <horstretch>0</horstretch>
+                   <verstretch>0</verstretch>
+                  </sizepolicy>
+                 </property>
+                 <property name="text">
+                  <string>Color</string>
+                 </property>
+                </widget>
+               </item>
+               <item row="3" column="1">
+                <layout class="QHBoxLayout" name="horizontalLayout_13">
+                 <item>
+                  <widget class="QComboBox" name="comboColor"/>
+                 </item>
+                 <item>
+                  <widget class="CSelectActivityColor" name="widgetColorActivity" native="true"/>
+                 </item>
+                </layout>
+               </item>
+              </layout>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_2">
+               <property name="orientation">
+                <enum>Qt::Vertical</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>40</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer_4">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tab_5">
+          <attribute name="title">
+           <string>Graphs</string>
+          </attribute>
+          <layout class="QGridLayout" name="gridLayout_2">
+           <item row="3" column="0">
+            <widget class="QCheckBox" name="checkGraph2">
+             <property name="text">
+              <string/>
+             </property>
+            </widget>
+           </item>
+           <item row="7" column="2">
+            <widget class="QLabel" name="label_12">
+             <property name="text">
+              <string>max.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="3">
+            <widget class="QDoubleSpinBox" name="spinMaxGraph1">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="2">
+            <widget class="QLabel" name="label_11">
+             <property name="text">
+              <string>max.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="4" column="3">
+            <widget class="QDoubleSpinBox" name="spinMaxGraph2">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="6" column="0">
+            <widget class="QCheckBox" name="checkGraph3">
+             <property name="text">
+              <string/>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="0">
+            <widget class="QCheckBox" name="checkGraph1">
+             <property name="text">
+              <string/>
+             </property>
+            </widget>
+           </item>
+           <item row="6" column="3">
+            <widget class="QDoubleSpinBox" name="spinMinGraph3">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="6" column="5">
+            <spacer name="horizontalSpacer_3">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item row="7" column="3">
+            <widget class="QDoubleSpinBox" name="spinMaxGraph3">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="8" column="0">
+            <spacer name="verticalSpacer_3">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>20</width>
+               <height>40</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item row="1" column="2">
+            <widget class="QLabel" name="label_8">
+             <property name="text">
+              <string>max.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="3">
+            <widget class="QDoubleSpinBox" name="spinMinGraph2">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="3">
+            <widget class="QDoubleSpinBox" name="spinMinGraph1">
+             <property name="enabled">
+              <bool>false</bool>
+             </property>
+             <property name="minimum">
+              <double>-1000000.000000000000000</double>
+             </property>
+             <property name="maximum">
+              <double>1000000.000000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item row="6" column="2">
+            <widget class="QLabel" name="label_10">
+             <property name="text">
+              <string>min.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="2">
+            <widget class="QLabel" name="label_9">
+             <property name="text">
+              <string>min.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="2" column="0" colspan="5">
+            <widget class="Line" name="line_5">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="2">
+            <widget class="QLabel" name="label_7">
+             <property name="text">
+              <string>min.</string>
+             </property>
+            </widget>
+           </item>
+           <item row="5" column="0" colspan="5">
+            <widget class="Line" name="line_6">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+            </widget>
+           </item>
+           <item row="0" column="1">
+            <widget class="QLabel" name="label_6">
+             <property name="text">
+              <string>Profile</string>
+             </property>
+            </widget>
+           </item>
+           <item row="3" column="1">
+            <widget class="QComboBox" name="comboGraph2"/>
+           </item>
+           <item row="6" column="1">
+            <widget class="QComboBox" name="comboGraph3"/>
+           </item>
+           <item row="0" column="4">
+            <layout class="QHBoxLayout" name="horizontalLayout_10">
+             <property name="spacing">
+              <number>0</number>
+             </property>
+             <item>
+              <widget class="QToolButton" name="toolLimitUsrGraph1">
+               <property name="toolTip">
+                <string>User defined limits for this track</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph1</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitAutoGraph1">
+               <property name="toolTip">
+                <string>Automatic limits</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph1</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitSysGraph1">
+               <property name="toolTip">
+                <string>User defined limits for all tracks</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph1</string>
+               </attribute>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item row="3" column="4">
+            <layout class="QHBoxLayout" name="horizontalLayout_11">
+             <property name="spacing">
+              <number>0</number>
+             </property>
+             <item>
+              <widget class="QToolButton" name="toolLimitUsrGraph2">
+               <property name="toolTip">
+                <string>User defined limits for this track</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph2</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitAutoGraph2">
+               <property name="toolTip">
+                <string>Automatic limits</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph2</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitSysGraph2">
+               <property name="toolTip">
+                <string>User defined limits for all tracks</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph2</string>
+               </attribute>
+              </widget>
+             </item>
+            </layout>
+           </item>
+           <item row="6" column="4">
+            <layout class="QHBoxLayout" name="horizontalLayout_12">
+             <property name="spacing">
+              <number>0</number>
+             </property>
+             <item>
+              <widget class="QToolButton" name="toolLimitUsrGraph3">
+               <property name="toolTip">
+                <string>User defined limits for this track</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitUsr.png</normaloff>:/icons/32x32/LimitUsr.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph3</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitAutoGraph3">
+               <property name="toolTip">
+                <string>Automatic limits</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/Limit.png</normaloff>:/icons/32x32/Limit.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="checked">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph3</string>
+               </attribute>
+              </widget>
+             </item>
+             <item>
+              <widget class="QToolButton" name="toolLimitSysGraph3">
+               <property name="toolTip">
+                <string>User defined limits for all tracks</string>
+               </property>
+               <property name="text">
+                <string>...</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/LimitSys.png</normaloff>:/icons/32x32/LimitSys.png</iconset>
+               </property>
+               <property name="iconSize">
+                <size>
+                 <width>16</width>
+                 <height>16</height>
+                </size>
+               </property>
+               <property name="checkable">
+                <bool>true</bool>
+               </property>
+               <property name="autoExclusive">
+                <bool>true</bool>
+               </property>
+               <attribute name="buttonGroup">
+                <string notr="true">buttonGroupGraph3</string>
+               </attribute>
+              </widget>
+             </item>
+            </layout>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tab_2">
+          <attribute name="title">
+           <string>Activity</string>
+          </attribute>
+          <layout class="QHBoxLayout" name="horizontalLayout_2">
+           <property name="spacing">
+            <number>3</number>
+           </property>
+           <property name="leftMargin">
+            <number>3</number>
+           </property>
+           <property name="topMargin">
+            <number>3</number>
+           </property>
+           <property name="rightMargin">
+            <number>3</number>
+           </property>
+           <property name="bottomMargin">
+            <number>3</number>
+           </property>
+           <item>
+            <layout class="QVBoxLayout" name="verticalLayout">
+             <item>
+              <widget class="QPushButton" name="pushSetActivities">
+               <property name="text">
+                <string>Set Track Activity</string>
+               </property>
+               <property name="icon">
+                <iconset resource="../../resources.qrc">
+                 <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <spacer name="verticalSpacer_4">
+               <property name="orientation">
+                <enum>Qt::Vertical</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>40</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <widget class="Line" name="line_3">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelActivityInfo">
+             <property name="text">
+              <string/>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelActivityHelp">
+             <property name="text">
+              <string>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+             </property>
+             <property name="wordWrap">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer_2">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tab">
+          <attribute name="title">
+           <string>Points</string>
+          </attribute>
+          <layout class="QVBoxLayout" name="verticalLayout_4">
+           <property name="spacing">
+            <number>0</number>
+           </property>
+           <property name="leftMargin">
+            <number>0</number>
+           </property>
+           <property name="topMargin">
+            <number>0</number>
+           </property>
+           <property name="rightMargin">
+            <number>0</number>
+           </property>
+           <property name="bottomMargin">
+            <number>0</number>
+           </property>
+           <item>
+            <widget class="CTableTrk" name="treeWidget">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="alternatingRowColors">
+              <bool>true</bool>
+             </property>
+             <property name="rootIsDecorated">
+              <bool>false</bool>
+             </property>
+             <property name="itemsExpandable">
+              <bool>false</bool>
+             </property>
+             <attribute name="headerCascadingSectionResizes">
+              <bool>false</bool>
+             </attribute>
+             <attribute name="headerDefaultSectionSize">
+              <number>50</number>
+             </attribute>
+             <column>
+              <property name="text">
+               <string notr="true">#</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Time</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Ele.</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Delta</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Dist.</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Speed</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Slope</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Ascent</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Descent</string>
+              </property>
+             </column>
+             <column>
+              <property name="text">
+               <string>Position</string>
+              </property>
+             </column>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tabFilter">
+          <attribute name="title">
+           <string>Filter</string>
+          </attribute>
+          <layout class="QVBoxLayout" name="verticalLayout_6">
+           <property name="spacing">
+            <number>0</number>
+           </property>
+           <property name="leftMargin">
+            <number>0</number>
+           </property>
+           <property name="topMargin">
+            <number>0</number>
+           </property>
+           <property name="rightMargin">
+            <number>0</number>
+           </property>
+           <property name="bottomMargin">
+            <number>0</number>
+           </property>
+           <item>
+            <widget class="QTreeWidget" name="treeFilter">
+             <property name="selectionMode">
+              <enum>QAbstractItemView::NoSelection</enum>
+             </property>
+             <attribute name="headerVisible">
+              <bool>false</bool>
+             </attribute>
+             <column>
+              <property name="text">
+               <string notr="true">1</string>
+              </property>
+             </column>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+         <widget class="QWidget" name="tab_4">
+          <attribute name="title">
+           <string>Hist.</string>
+          </attribute>
+          <layout class="QVBoxLayout" name="verticalLayout_3">
+           <property name="spacing">
+            <number>0</number>
+           </property>
+           <property name="leftMargin">
+            <number>0</number>
+           </property>
+           <property name="topMargin">
+            <number>0</number>
+           </property>
+           <property name="rightMargin">
+            <number>0</number>
+           </property>
+           <property name="bottomMargin">
+            <number>0</number>
+           </property>
+           <item>
+            <widget class="CHistoryListWidget" name="listHistory">
+             <property name="iconSize">
+              <size>
+               <width>32</width>
+               <height>32</height>
+              </size>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </widget>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CHistoryListWidget</class>
+   <extends>QListWidget</extends>
+   <header>widgets/CHistoryListWidget.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>widgets/CLineEdit.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CPlotTrack</class>
+   <extends>QWidget</extends>
+   <header>plot/CPlotTrack.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CDoubleSpinBox</class>
+   <extends>QDoubleSpinBox</extends>
+   <header>widgets/CDoubleSpinBox.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CColorLegend</class>
+   <extends>QWidget</extends>
+   <header>widgets/CColorLegend.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CSelectActivityColor</class>
+   <extends>QWidget</extends>
+   <header>gis/trk/CSelectActivityColor.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CTableTrk</class>
+   <extends>QTreeWidget</extends>
+   <header>gis/trk/CTableTrk.h</header>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+ <buttongroups>
+  <buttongroup name="buttonGroupGraph3"/>
+  <buttongroup name="buttonGroupGraph2"/>
+  <buttongroup name="buttonGroupGraph1"/>
+  <buttongroup name="buttonGroupArrow"/>
+  <buttongroup name="buttonGroupLineWidth"/>
+ </buttongroups>
+</ui>
diff --git a/src/qmapshack/gis/trk/IScrOptTrk.ui b/src/qmapshack/gis/trk/IScrOptTrk.ui
new file mode 100644
index 0000000..bb3e429
--- /dev/null
+++ b/src/qmapshack/gis/trk/IScrOptTrk.ui
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptTrk</class>
+ <widget class="QWidget" name="IScrOptTrk">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>369</width>
+    <height>65</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolEditDetails">
+       <property name="toolTip">
+        <string>View details and edit properties of track.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy track into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelete">
+       <property name="toolTip">
+        <string>Delete track from project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolProfile">
+       <property name="toolTip">
+        <string>Show on-screen profile and detailed information about points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/TrkProfile.png</normaloff>:/icons/32x32/TrkProfile.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRange">
+       <property name="toolTip">
+        <string>Select a range of points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/SelectRange.png</normaloff>:/icons/32x32/SelectRange.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolEdit">
+       <property name="toolTip">
+        <string>Edit position of track points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/LineMove.png</normaloff>:/icons/32x32/LineMove.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolReverse">
+       <property name="toolTip">
+        <string>Reverse track.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Reverse.png</normaloff>:/icons/32x32/Reverse.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCombine">
+       <property name="toolTip">
+        <string>Combine tracks.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Combine.png</normaloff>:/icons/32x32/Combine.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCut">
+       <property name="toolTip">
+        <string>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/TrkCut.png</normaloff>:/icons/32x32/TrkCut.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolActivity">
+       <property name="toolTip">
+        <string>Set an activity for the complete track.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolColor">
+       <property name="toolTip">
+        <string>Change the color of the track.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCopyWithWpt">
+       <property name="toolTip">
+        <string>Copy track together with all attached waypoints into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/CopyTrkWithWpt.png</normaloff>:/icons/32x32/CopyTrkWithWpt.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolNogo">
+       <property name="toolTip">
+        <string>Toggle Nogo-Line</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/NoGo.png</normaloff>:/icons/32x32/NoGo.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/gis/trk/ISelectActivityColor.ui b/src/qmapshack/gis/trk/ISelectActivityColor.ui
similarity index 100%
rename from src/gis/trk/ISelectActivityColor.ui
rename to src/qmapshack/gis/trk/ISelectActivityColor.ui
diff --git a/src/gis/trk/filter/CFilterDelete.cpp b/src/qmapshack/gis/trk/filter/CFilterDelete.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterDelete.cpp
rename to src/qmapshack/gis/trk/filter/CFilterDelete.cpp
diff --git a/src/gis/trk/filter/CFilterDelete.h b/src/qmapshack/gis/trk/filter/CFilterDelete.h
similarity index 100%
rename from src/gis/trk/filter/CFilterDelete.h
rename to src/qmapshack/gis/trk/filter/CFilterDelete.h
diff --git a/src/gis/trk/filter/CFilterDeleteExtension.cpp b/src/qmapshack/gis/trk/filter/CFilterDeleteExtension.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterDeleteExtension.cpp
rename to src/qmapshack/gis/trk/filter/CFilterDeleteExtension.cpp
diff --git a/src/gis/trk/filter/CFilterDeleteExtension.h b/src/qmapshack/gis/trk/filter/CFilterDeleteExtension.h
similarity index 100%
rename from src/gis/trk/filter/CFilterDeleteExtension.h
rename to src/qmapshack/gis/trk/filter/CFilterDeleteExtension.h
diff --git a/src/gis/trk/filter/CFilterDouglasPeuker.cpp b/src/qmapshack/gis/trk/filter/CFilterDouglasPeuker.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterDouglasPeuker.cpp
rename to src/qmapshack/gis/trk/filter/CFilterDouglasPeuker.cpp
diff --git a/src/gis/trk/filter/CFilterDouglasPeuker.h b/src/qmapshack/gis/trk/filter/CFilterDouglasPeuker.h
similarity index 100%
rename from src/gis/trk/filter/CFilterDouglasPeuker.h
rename to src/qmapshack/gis/trk/filter/CFilterDouglasPeuker.h
diff --git a/src/gis/trk/filter/CFilterInterpolateElevation.cpp b/src/qmapshack/gis/trk/filter/CFilterInterpolateElevation.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterInterpolateElevation.cpp
rename to src/qmapshack/gis/trk/filter/CFilterInterpolateElevation.cpp
diff --git a/src/gis/trk/filter/CFilterInterpolateElevation.h b/src/qmapshack/gis/trk/filter/CFilterInterpolateElevation.h
similarity index 100%
rename from src/gis/trk/filter/CFilterInterpolateElevation.h
rename to src/qmapshack/gis/trk/filter/CFilterInterpolateElevation.h
diff --git a/src/gis/trk/filter/CFilterInvalid.cpp b/src/qmapshack/gis/trk/filter/CFilterInvalid.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterInvalid.cpp
rename to src/qmapshack/gis/trk/filter/CFilterInvalid.cpp
diff --git a/src/gis/trk/filter/CFilterInvalid.h b/src/qmapshack/gis/trk/filter/CFilterInvalid.h
similarity index 100%
rename from src/gis/trk/filter/CFilterInvalid.h
rename to src/qmapshack/gis/trk/filter/CFilterInvalid.h
diff --git a/src/gis/trk/filter/CFilterMedian.cpp b/src/qmapshack/gis/trk/filter/CFilterMedian.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterMedian.cpp
rename to src/qmapshack/gis/trk/filter/CFilterMedian.cpp
diff --git a/src/gis/trk/filter/CFilterMedian.h b/src/qmapshack/gis/trk/filter/CFilterMedian.h
similarity index 100%
rename from src/gis/trk/filter/CFilterMedian.h
rename to src/qmapshack/gis/trk/filter/CFilterMedian.h
diff --git a/src/gis/trk/filter/CFilterNewDate.cpp b/src/qmapshack/gis/trk/filter/CFilterNewDate.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterNewDate.cpp
rename to src/qmapshack/gis/trk/filter/CFilterNewDate.cpp
diff --git a/src/gis/trk/filter/CFilterNewDate.h b/src/qmapshack/gis/trk/filter/CFilterNewDate.h
similarity index 100%
rename from src/gis/trk/filter/CFilterNewDate.h
rename to src/qmapshack/gis/trk/filter/CFilterNewDate.h
diff --git a/src/gis/trk/filter/CFilterObscureDate.cpp b/src/qmapshack/gis/trk/filter/CFilterObscureDate.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterObscureDate.cpp
rename to src/qmapshack/gis/trk/filter/CFilterObscureDate.cpp
diff --git a/src/gis/trk/filter/CFilterObscureDate.h b/src/qmapshack/gis/trk/filter/CFilterObscureDate.h
similarity index 100%
rename from src/gis/trk/filter/CFilterObscureDate.h
rename to src/qmapshack/gis/trk/filter/CFilterObscureDate.h
diff --git a/src/gis/trk/filter/CFilterOffsetElevation.cpp b/src/qmapshack/gis/trk/filter/CFilterOffsetElevation.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterOffsetElevation.cpp
rename to src/qmapshack/gis/trk/filter/CFilterOffsetElevation.cpp
diff --git a/src/gis/trk/filter/CFilterOffsetElevation.h b/src/qmapshack/gis/trk/filter/CFilterOffsetElevation.h
similarity index 100%
rename from src/gis/trk/filter/CFilterOffsetElevation.h
rename to src/qmapshack/gis/trk/filter/CFilterOffsetElevation.h
diff --git a/src/gis/trk/filter/CFilterReplaceElevation.cpp b/src/qmapshack/gis/trk/filter/CFilterReplaceElevation.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterReplaceElevation.cpp
rename to src/qmapshack/gis/trk/filter/CFilterReplaceElevation.cpp
diff --git a/src/gis/trk/filter/CFilterReplaceElevation.h b/src/qmapshack/gis/trk/filter/CFilterReplaceElevation.h
similarity index 100%
rename from src/gis/trk/filter/CFilterReplaceElevation.h
rename to src/qmapshack/gis/trk/filter/CFilterReplaceElevation.h
diff --git a/src/gis/trk/filter/CFilterReset.cpp b/src/qmapshack/gis/trk/filter/CFilterReset.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterReset.cpp
rename to src/qmapshack/gis/trk/filter/CFilterReset.cpp
diff --git a/src/gis/trk/filter/CFilterReset.h b/src/qmapshack/gis/trk/filter/CFilterReset.h
similarity index 100%
rename from src/gis/trk/filter/CFilterReset.h
rename to src/qmapshack/gis/trk/filter/CFilterReset.h
diff --git a/src/qmapshack/gis/trk/filter/CFilterSpeed.cpp b/src/qmapshack/gis/trk/filter/CFilterSpeed.cpp
new file mode 100644
index 0000000..36635ef
--- /dev/null
+++ b/src/qmapshack/gis/trk/filter/CFilterSpeed.cpp
@@ -0,0 +1,295 @@
+/**********************************************************************************************
+    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 "canvas/CCanvas.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/trk/filter/CFilterSpeed.h"
+#include "helpers/CSettings.h"
+
+CFilterSpeed::CFilterSpeed(CGisItemTrk &trk, QWidget *parent)
+    : QWidget(parent), trk(trk), noOfFixTypes(4), noOfCustomTypes(3)
+{
+    setupUi(this);
+
+    labelWarning->setText("");
+    constantSpeed->setSuffix(IUnit::self().speedunit);
+    plainSpeed->setSuffix(IUnit::self().speedunit);
+    minSpeed->setSuffix(IUnit::self().speedunit);
+    maxSpeed->setSuffix(IUnit::self().speedunit);
+
+    QString val, slopeUnit;
+    IUnit::self().slope2string(0, val, slopeUnit);
+    slopeAtMaxSpeed->setSuffix(slopeUnit);
+    slopeAtMinSpeed->setSuffix(slopeUnit);
+
+    // 4 fix and 3 custom cycling types has be defined as default!
+    const QList<cycling_type_t> cyclingTypeDefaults =
+    {
+        {
+            tr("City")          // name           Fix
+            , 15                // plainSpeed
+            , 5                 // minSpeed
+            , 5                 // slopeAtMinSpeed
+            , 35                // maxSpeed
+            , -5                // slopeAtMaxSpeed
+        },
+        {
+            tr("Trekking"), 20, 5, 8, 40, -5   // Fix
+        },
+        {
+            tr("Sportive"), 27, 7, 10, 60, -8  // Fix
+        },
+        {
+            tr("Mountain"), 15, 4, 15, 40, -15 // Fix
+        },
+        {
+            tr("Custom 0"), 20, 5, 8, 40, -5 // Custom
+        },
+        {
+            tr("Custom 1"), 20, 5, 8, 40, -5 // Custom
+        },
+        {
+            tr("Custom 2"), 20, 5, 8, 40, -5 // Custom
+        }
+    };
+
+    cycling_type_t cyclingType;
+    for (int i = 0; i < noOfFixTypes; ++i)
+    {
+        const cycling_type_t &cyclingTypeDefault = cyclingTypeDefaults[i];
+        cyclingType.name = cyclingTypeDefault.name;
+        cyclingType.plainSpeed = cyclingTypeDefault.plainSpeed;
+        cyclingType.minSpeed = cyclingTypeDefault.minSpeed;
+        cyclingType.slopeAtMinSpeed = cyclingTypeDefault.slopeAtMinSpeed;
+        cyclingType.maxSpeed = cyclingTypeDefault.maxSpeed;
+        cyclingType.slopeAtMaxSpeed = cyclingTypeDefault.slopeAtMaxSpeed;
+
+        comboCyclingType->addItem(cyclingType.name);
+        cyclingTypes << cyclingType;
+    }
+
+    SETTINGS;
+    cfg.beginReadArray("TrackDetails/Filter/Speed/CustomCyclingTypes");
+    for (int i = 0; i < noOfCustomTypes; ++i)
+    {
+        const cycling_type_t &cyclingTypeDefault = cyclingTypeDefaults[noOfFixTypes + i];
+        cfg.setArrayIndex(i);
+        cyclingType.name = cyclingTypeDefault.name;
+        cyclingType.plainSpeed = cfg.value("plainSpeed", cyclingTypeDefault.plainSpeed).toDouble();
+        cyclingType.minSpeed = cfg.value("minSpeed", cyclingTypeDefault.minSpeed).toDouble();
+        cyclingType.slopeAtMinSpeed = cfg.value("slopeAtMinSpeed", cyclingTypeDefault.slopeAtMinSpeed).toDouble();
+        cyclingType.maxSpeed = cfg.value("maxSpeed", cyclingTypeDefault.maxSpeed).toDouble();
+        cyclingType.slopeAtMaxSpeed = cfg.value("slopeAtMaxSpeed", cyclingTypeDefault.slopeAtMaxSpeed).toDouble();
+
+        comboCyclingType->addItem(cyclingType.name);
+        cyclingTypes << cyclingType;
+    }
+    cfg.endArray();
+
+    comboActivityType->setCurrentIndex(cfg.value("TrackDetails/Filter/Speed/activityType", 0).toInt());
+    slotSetActivityType(comboActivityType->currentIndex());
+    connect(comboActivityType, SIGNAL(activated(int)), this, SLOT(slotSetActivityType(int)));
+
+    comboCyclingType->setCurrentIndex(cfg.value("TrackDetails/Filter/Speed/cyclingType", 0).toInt());
+    slotSetCyclingType(comboCyclingType->currentIndex());
+    connect(comboCyclingType, SIGNAL(activated(int)), this, SLOT(slotSetCyclingType(int)));
+
+    constantSpeed->setValue(cfg.value("TrackDetails/Filter/Speed/speed", 18.0).toDouble());
+
+    connect(plainSpeed, SIGNAL(valueChanged(double)), this, SLOT(slotSetPlainSpeed(double)));
+    connect(minSpeed, SIGNAL(valueChanged(double)), this, SLOT(slotSetMinSpeed(double)));
+    connect(slopeAtMinSpeed, SIGNAL(valueChanged(double)), this, SLOT(slotSetSlopeAtMinSpeed(double)));
+    connect(maxSpeed, SIGNAL(valueChanged(double)), this, SLOT(slotSetMaxSpeed(double)));
+    connect(slopeAtMaxSpeed, SIGNAL(valueChanged(double)), this, SLOT(slotSetSlopeAtMaxSpeed(double)));
+
+    connect(toolApply, &QToolButton::clicked, this, &CFilterSpeed::slotApply);
+
+    connect(pushSetMinMaxSlope, SIGNAL(clicked(bool)), this, SLOT(slotSetMinMaxSlopes(bool)));
+}
+
+CFilterSpeed::~CFilterSpeed()
+{
+    SETTINGS;
+    cfg.beginWriteArray("TrackDetails/Filter/Speed/CustomCyclingTypes");
+    for (int i = 0; i < noOfCustomTypes; ++i)
+    {
+        const cycling_type_t &cyclingType = cyclingTypes[noOfFixTypes + i];
+        cfg.setArrayIndex(i);
+        cfg.setValue("name", cyclingType.name);
+        cfg.setValue("plainSpeed", cyclingType.plainSpeed);
+        cfg.setValue("minSpeed", cyclingType.minSpeed);
+        cfg.setValue("slopeAtMinSpeed", cyclingType.slopeAtMinSpeed);
+        cfg.setValue("maxSpeed", cyclingType.maxSpeed);
+        cfg.setValue("slopeAtMaxSpeed", cyclingType.slopeAtMaxSpeed);
+    }
+    cfg.endArray();
+
+    cfg.setValue("TrackDetails/Filter/Speed/activityType", comboActivityType->currentIndex());
+    cfg.setValue("TrackDetails/Filter/Speed/cyclingType", comboCyclingType->currentIndex());
+    cfg.setValue("TrackDetails/Filter/Speed/speed", constantSpeed->value());
+}
+
+void CFilterSpeed::slotApply()
+{
+    CCanvas::setOverrideCursor(Qt::WaitCursor, "CFilterSpeed");
+
+    switch (comboActivityType->currentIndex())
+    {
+    case 0:
+        trk.filterSpeed(constantSpeed->value()/IUnit::self().speedfactor);
+        break;
+
+    case 1:
+    {
+        trk.filterSpeed(cyclingTypes[comboCyclingType->currentIndex()]);
+        break;
+    }
+
+    default:
+        break;
+    }
+
+    CCanvas::restoreOverrideCursor("CFilterSpeed");
+}
+
+void CFilterSpeed::slotSetActivityType(int type)
+{
+    stackedWidget->setCurrentIndex(type);
+    setElevationValid();
+}
+
+void CFilterSpeed::setElevationValid()
+{
+    if(trk.isTrkElevationInvalid() && comboActivityType->currentIndex() == 1)
+    {
+        QString str = QString("<b style='color: red;'>" +
+                              tr("Track has no or invalid elevation data. Please correct or set constant speed!") +
+                              "</b><br/>");
+        labelWarning->setText(str);
+        pageCycling->setEnabled(false);
+        toolApply->setEnabled(false);
+        return;
+    }
+    else
+    {
+        labelWarning->setText("");
+        pageCycling->setEnabled(true);
+        toolApply->setEnabled(true);
+    }
+}
+
+void CFilterSpeed::slotSetCyclingType(int type)
+{
+    const cycling_type_t &cyclingType = cyclingTypes[type];
+
+    plainSpeed->setValue(cyclingType.plainSpeed);
+    maxSpeed->setMinimum(cyclingType.plainSpeed);
+    minSpeed->setMaximum(cyclingType.plainSpeed);
+
+    minSpeed->setValue(cyclingType.minSpeed);
+    plainSpeed->setMinimum(cyclingType.minSpeed);
+
+    maxSpeed->setValue(cyclingType.maxSpeed);
+    plainSpeed->setMaximum(cyclingType.maxSpeed);
+
+    if(IUnit::getSlopeMode() == IUnit::eSlopeDegrees)
+    {
+        qreal val = IUnit::slopeConvert(IUnit::eSlopePercent, cyclingType.slopeAtMinSpeed);
+        slopeAtMinSpeed->setValue(val);
+        val = IUnit::slopeConvert(IUnit::eSlopePercent, cyclingType.slopeAtMaxSpeed);
+        slopeAtMaxSpeed->setValue(val);
+    }
+    else if(IUnit::getSlopeMode() == IUnit::eSlopePercent)
+    {
+        slopeAtMinSpeed->setValue(cyclingType.slopeAtMinSpeed);
+        slopeAtMaxSpeed->setValue(cyclingType.slopeAtMaxSpeed);
+    }
+
+    if (type < 4)
+    {
+        frameCycling->setEnabled(false);
+    }
+    else
+    {
+        frameCycling->setEnabled(true);
+    }
+}
+
+void CFilterSpeed::slotSetPlainSpeed(double speed)
+{
+    cyclingTypes[comboCyclingType->currentIndex()].plainSpeed = speed;
+    maxSpeed->setMinimum(speed);
+    minSpeed->setMaximum(speed);
+}
+
+void CFilterSpeed::slotSetMinSpeed(double speed)
+{
+    cyclingTypes[comboCyclingType->currentIndex()].minSpeed = speed;
+    plainSpeed->setMinimum(speed);
+}
+
+void CFilterSpeed::slotSetSlopeAtMinSpeed(double slope)
+{
+    if(IUnit::getSlopeMode() == IUnit::eSlopeDegrees)
+    {
+        qreal val = IUnit::slopeConvert(IUnit::eSlopeDegrees, slope);
+        cyclingTypes[comboCyclingType->currentIndex()].slopeAtMinSpeed = val;
+    }
+    else if(IUnit::getSlopeMode() == IUnit::eSlopePercent)
+    {
+        cyclingTypes[comboCyclingType->currentIndex()].slopeAtMinSpeed = slope;
+    }
+}
+
+void CFilterSpeed::slotSetMaxSpeed(double speed)
+{
+    cyclingTypes[comboCyclingType->currentIndex()].maxSpeed = speed;
+    plainSpeed->setMaximum(speed);
+}
+
+void CFilterSpeed::slotSetSlopeAtMaxSpeed(double slope)
+{
+    if(IUnit::getSlopeMode() == IUnit::eSlopeDegrees)
+    {
+        qreal val = IUnit::slopeConvert(IUnit::eSlopeDegrees, slope);
+        cyclingTypes[comboCyclingType->currentIndex()].slopeAtMaxSpeed = val;
+    }
+    else if(IUnit::getSlopeMode() == IUnit::eSlopePercent)
+    {
+        cyclingTypes[comboCyclingType->currentIndex()].slopeAtMaxSpeed = slope;
+    }
+}
+
+void CFilterSpeed::slotSetMinMaxSlopes(bool)
+{
+    qreal minSlope, maxSlope;
+    trk.filterGetSlopeLimits(minSlope, maxSlope);
+
+    if(IUnit::getSlopeMode() == IUnit::eSlopePercent)
+    {
+        qreal val = IUnit::slopeConvert(IUnit::eSlopeDegrees, maxSlope);
+        slopeAtMinSpeed->setValue(val);
+        val = IUnit::slopeConvert(IUnit::eSlopeDegrees, minSlope);
+        slopeAtMaxSpeed->setValue(val);
+    }
+    else if(IUnit::getSlopeMode() == IUnit::eSlopeDegrees)
+    {
+        slopeAtMinSpeed->setValue(maxSlope);
+        slopeAtMaxSpeed->setValue(minSlope);
+    }
+}
diff --git a/src/qmapshack/gis/trk/filter/CFilterSpeed.h b/src/qmapshack/gis/trk/filter/CFilterSpeed.h
new file mode 100644
index 0000000..b1c1ed2
--- /dev/null
+++ b/src/qmapshack/gis/trk/filter/CFilterSpeed.h
@@ -0,0 +1,67 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CFILTERSPEED_H
+#define CFILTERSPEED_H
+
+#include "ui_IFilterSpeed.h"
+#include <QWidget>
+
+class CGisItemTrk;
+
+class CFilterSpeed : public QWidget, private Ui::IFilterSpeed
+{
+    Q_OBJECT
+public:
+    CFilterSpeed(CGisItemTrk& trk, QWidget * parent);
+    virtual ~CFilterSpeed();
+
+    void setElevationValid();
+
+    struct cycling_type_t
+    {
+        QString name;
+        qreal plainSpeed;
+        qreal minSpeed;
+        qreal slopeAtMinSpeed;
+        qreal maxSpeed;
+        qreal slopeAtMaxSpeed;
+    };
+
+private slots:
+    void slotApply();
+
+    void slotSetActivityType(int type);
+    void slotSetCyclingType(int type);
+    void slotSetPlainSpeed(double speed);
+    void slotSetMinSpeed(double speed);
+    void slotSetSlopeAtMinSpeed(double speed);
+    void slotSetMaxSpeed(double speed);
+    void slotSetSlopeAtMaxSpeed(double slope);
+    void slotSetMinMaxSlopes(bool);
+
+private:
+    CGisItemTrk& trk;
+    const qint32 noOfFixTypes;
+    const qint32 noOfCustomTypes;
+
+    QList <cycling_type_t> cyclingTypes;
+};
+
+#endif //CFILTERSPEED_H
+
diff --git a/src/gis/trk/filter/CFilterSplitSegment.cpp b/src/qmapshack/gis/trk/filter/CFilterSplitSegment.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterSplitSegment.cpp
rename to src/qmapshack/gis/trk/filter/CFilterSplitSegment.cpp
diff --git a/src/gis/trk/filter/CFilterSplitSegment.h b/src/qmapshack/gis/trk/filter/CFilterSplitSegment.h
similarity index 100%
rename from src/gis/trk/filter/CFilterSplitSegment.h
rename to src/qmapshack/gis/trk/filter/CFilterSplitSegment.h
diff --git a/src/gis/trk/filter/CFilterSubPt2Pt.cpp b/src/qmapshack/gis/trk/filter/CFilterSubPt2Pt.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterSubPt2Pt.cpp
rename to src/qmapshack/gis/trk/filter/CFilterSubPt2Pt.cpp
diff --git a/src/gis/trk/filter/CFilterSubPt2Pt.h b/src/qmapshack/gis/trk/filter/CFilterSubPt2Pt.h
similarity index 100%
rename from src/gis/trk/filter/CFilterSubPt2Pt.h
rename to src/qmapshack/gis/trk/filter/CFilterSubPt2Pt.h
diff --git a/src/gis/trk/filter/CFilterTerrainSlope.cpp b/src/qmapshack/gis/trk/filter/CFilterTerrainSlope.cpp
similarity index 100%
rename from src/gis/trk/filter/CFilterTerrainSlope.cpp
rename to src/qmapshack/gis/trk/filter/CFilterTerrainSlope.cpp
diff --git a/src/gis/trk/filter/CFilterTerrainSlope.h b/src/qmapshack/gis/trk/filter/CFilterTerrainSlope.h
similarity index 100%
rename from src/gis/trk/filter/CFilterTerrainSlope.h
rename to src/qmapshack/gis/trk/filter/CFilterTerrainSlope.h
diff --git a/src/gis/trk/filter/IFilterDelete.ui b/src/qmapshack/gis/trk/filter/IFilterDelete.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterDelete.ui
rename to src/qmapshack/gis/trk/filter/IFilterDelete.ui
diff --git a/src/gis/trk/filter/IFilterDeleteExtension.ui b/src/qmapshack/gis/trk/filter/IFilterDeleteExtension.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterDeleteExtension.ui
rename to src/qmapshack/gis/trk/filter/IFilterDeleteExtension.ui
diff --git a/src/gis/trk/filter/IFilterDouglasPeuker.ui b/src/qmapshack/gis/trk/filter/IFilterDouglasPeuker.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterDouglasPeuker.ui
rename to src/qmapshack/gis/trk/filter/IFilterDouglasPeuker.ui
diff --git a/src/gis/trk/filter/IFilterInterpolateElevation.ui b/src/qmapshack/gis/trk/filter/IFilterInterpolateElevation.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterInterpolateElevation.ui
rename to src/qmapshack/gis/trk/filter/IFilterInterpolateElevation.ui
diff --git a/src/gis/trk/filter/IFilterInvalid.ui b/src/qmapshack/gis/trk/filter/IFilterInvalid.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterInvalid.ui
rename to src/qmapshack/gis/trk/filter/IFilterInvalid.ui
diff --git a/src/gis/trk/filter/IFilterMedian.ui b/src/qmapshack/gis/trk/filter/IFilterMedian.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterMedian.ui
rename to src/qmapshack/gis/trk/filter/IFilterMedian.ui
diff --git a/src/gis/trk/filter/IFilterNewDate.ui b/src/qmapshack/gis/trk/filter/IFilterNewDate.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterNewDate.ui
rename to src/qmapshack/gis/trk/filter/IFilterNewDate.ui
diff --git a/src/gis/trk/filter/IFilterObscureDate.ui b/src/qmapshack/gis/trk/filter/IFilterObscureDate.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterObscureDate.ui
rename to src/qmapshack/gis/trk/filter/IFilterObscureDate.ui
diff --git a/src/gis/trk/filter/IFilterOffsetElevation.ui b/src/qmapshack/gis/trk/filter/IFilterOffsetElevation.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterOffsetElevation.ui
rename to src/qmapshack/gis/trk/filter/IFilterOffsetElevation.ui
diff --git a/src/gis/trk/filter/IFilterReplaceElevation.ui b/src/qmapshack/gis/trk/filter/IFilterReplaceElevation.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterReplaceElevation.ui
rename to src/qmapshack/gis/trk/filter/IFilterReplaceElevation.ui
diff --git a/src/gis/trk/filter/IFilterReset.ui b/src/qmapshack/gis/trk/filter/IFilterReset.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterReset.ui
rename to src/qmapshack/gis/trk/filter/IFilterReset.ui
diff --git a/src/qmapshack/gis/trk/filter/IFilterSpeed.ui b/src/qmapshack/gis/trk/filter/IFilterSpeed.ui
new file mode 100644
index 0000000..20df921
--- /dev/null
+++ b/src/qmapshack/gis/trk/filter/IFilterSpeed.ui
@@ -0,0 +1,643 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IFilterSpeed</class>
+ <widget class="QWidget" name="IFilterSpeed">
+  <property name="enabled">
+   <bool>true</bool>
+  </property>
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>913</width>
+    <height>120</height>
+   </rect>
+  </property>
+  <property name="maximumSize">
+   <size>
+    <width>16777215</width>
+    <height>16777215</height>
+   </size>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="sizeConstraint">
+    <enum>QLayout::SetDefaultConstraint</enum>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <item row="0" column="3" colspan="3">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QLabel" name="labelTitel">
+       <property name="text">
+        <string><b>Change Speed</b></string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelWarning">
+       <property name="text">
+        <string>labelWarning</string>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_4">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="6">
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <widget class="QToolButton" name="toolApply">
+       <property name="toolTip">
+        <string>Apply filter now.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../../resources.qrc">
+         <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="5">
+    <widget class="QStackedWidget" name="stackedWidget">
+     <property name="currentIndex">
+      <number>1</number>
+     </property>
+     <widget class="QWidget" name="pageConstant">
+      <layout class="QGridLayout" name="gridLayout_3">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <property name="spacing">
+        <number>3</number>
+       </property>
+       <item row="0" column="2">
+        <layout class="QVBoxLayout" name="verticalLayout_6">
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_2">
+           <item>
+            <widget class="QLabel" name="label_2">
+             <property name="text">
+              <string>Speed</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QDoubleSpinBox" name="constantSpeed">
+             <property name="suffix">
+              <string> km/h</string>
+             </property>
+             <property name="decimals">
+              <number>1</number>
+             </property>
+             <property name="minimum">
+              <double>0.100000000000000</double>
+             </property>
+             <property name="singleStep">
+              <double>0.100000000000000</double>
+             </property>
+             <property name="value">
+              <double>0.100000000000000</double>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer">
+             <property name="orientation">
+              <enum>Qt::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>40</width>
+               <height>20</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <spacer name="verticalSpacer_3">
+           <property name="orientation">
+            <enum>Qt::Vertical</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>20</width>
+             <height>40</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="pageCycling">
+      <layout class="QGridLayout" name="gridLayout_2">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <property name="spacing">
+        <number>3</number>
+       </property>
+       <item row="1" column="1">
+        <layout class="QHBoxLayout" name="horizontalLayout_3">
+         <property name="spacing">
+          <number>3</number>
+         </property>
+         <item>
+          <layout class="QVBoxLayout" name="verticalLayout_8">
+           <item>
+            <layout class="QHBoxLayout" name="horizontalLayout_4">
+             <item>
+              <widget class="QLabel" name="label_3">
+               <property name="text">
+                <string> Type</string>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+               </property>
+              </widget>
+             </item>
+             <item>
+              <widget class="QComboBox" name="comboCyclingType"/>
+             </item>
+            </layout>
+           </item>
+           <item>
+            <spacer name="verticalSpacer_4">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>20</width>
+               <height>40</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_6">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeType">
+            <enum>QSizePolicy::Fixed</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+         <item>
+          <widget class="QFrame" name="frameCycling">
+           <property name="frameShape">
+            <enum>QFrame::NoFrame</enum>
+           </property>
+           <property name="frameShadow">
+            <enum>QFrame::Raised</enum>
+           </property>
+           <property name="lineWidth">
+            <number>1</number>
+           </property>
+           <layout class="QGridLayout" name="gridLayout_5">
+            <property name="leftMargin">
+             <number>0</number>
+            </property>
+            <property name="topMargin">
+             <number>0</number>
+            </property>
+            <property name="rightMargin">
+             <number>0</number>
+            </property>
+            <property name="bottomMargin">
+             <number>0</number>
+            </property>
+            <property name="spacing">
+             <number>3</number>
+            </property>
+            <item row="3" column="1">
+             <widget class="QLabel" name="label_6">
+              <property name="text">
+               <string>Max Speed</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="0">
+             <widget class="QLabel" name="label_11">
+              <property name="text">
+               <string>Plain Level:</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="2">
+             <widget class="QDoubleSpinBox" name="plainSpeed">
+              <property name="suffix">
+               <string/>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="3">
+             <widget class="QLabel" name="label_5">
+              <property name="text">
+               <string>at positive Slope</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="1">
+             <widget class="QLabel" name="label_4">
+              <property name="text">
+               <string>Min Speed</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="0">
+             <widget class="QLabel" name="label_8">
+              <property name="text">
+               <string>Uphill:</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="0">
+             <widget class="QLabel" name="label_9">
+              <property name="text">
+               <string>Downhill:</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="1">
+             <widget class="QLabel" name="label_10">
+              <property name="text">
+               <string>Speed at zero Slope</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="4">
+             <widget class="QDoubleSpinBox" name="slopeAtMinSpeed">
+              <property name="suffix">
+               <string/>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="maximum">
+               <double>45.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="2">
+             <widget class="QDoubleSpinBox" name="maxSpeed">
+              <property name="suffix">
+               <string/>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="3">
+             <widget class="QLabel" name="label_7">
+              <property name="text">
+               <string>at negative Slope</string>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <item row="3" column="4">
+             <widget class="QDoubleSpinBox" name="slopeAtMaxSpeed">
+              <property name="suffix">
+               <string/>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>-45.000000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>0.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="2" column="2">
+             <widget class="QDoubleSpinBox" name="minSpeed">
+              <property name="suffix">
+               <string/>
+              </property>
+              <property name="decimals">
+               <number>1</number>
+              </property>
+              <property name="minimum">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="maximum">
+               <double>100.000000000000000</double>
+              </property>
+              <property name="singleStep">
+               <double>0.100000000000000</double>
+              </property>
+              <property name="value">
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item row="1" column="3" colspan="2">
+             <widget class="QPushButton" name="pushSetMinMaxSlope">
+              <property name="toolTip">
+               <string>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</string>
+              </property>
+              <property name="text">
+               <string>Set min/max slopes from Track</string>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_5">
+           <property name="orientation">
+            <enum>Qt::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>40</width>
+             <height>20</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="pageHiking">
+      <property name="enabled">
+       <bool>false</bool>
+      </property>
+      <layout class="QGridLayout" name="gridLayout_4">
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <property name="spacing">
+        <number>3</number>
+       </property>
+       <item row="1" column="0">
+        <widget class="QLabel" name="label">
+         <property name="text">
+          <string>not yet implemented</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item row="2" column="1" colspan="6">
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <layout class="QVBoxLayout" name="verticalLayout_2">
+     <item>
+      <widget class="QComboBox" name="comboActivityType">
+       <item>
+        <property name="text">
+         <string>Constant</string>
+        </property>
+       </item>
+       <item>
+        <property name="text">
+         <string>Cycling</string>
+        </property>
+       </item>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="0" column="2" rowspan="2">
+    <layout class="QVBoxLayout" name="verticalLayout_9">
+     <item>
+      <widget class="QLabel" name="labelTimePix">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../../resources.qrc">:/icons/48x48/Time.png</pixmap>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer_5">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>plainSpeed</tabstop>
+  <tabstop>minSpeed</tabstop>
+  <tabstop>slopeAtMinSpeed</tabstop>
+  <tabstop>maxSpeed</tabstop>
+  <tabstop>slopeAtMaxSpeed</tabstop>
+ </tabstops>
+ <resources>
+  <include location="../../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/gis/trk/filter/IFilterSplitSegment.ui b/src/qmapshack/gis/trk/filter/IFilterSplitSegment.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterSplitSegment.ui
rename to src/qmapshack/gis/trk/filter/IFilterSplitSegment.ui
diff --git a/src/gis/trk/filter/IFilterSubPt2Pt.ui b/src/qmapshack/gis/trk/filter/IFilterSubPt2Pt.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterSubPt2Pt.ui
rename to src/qmapshack/gis/trk/filter/IFilterSubPt2Pt.ui
diff --git a/src/gis/trk/filter/IFilterTerrainSlope.ui b/src/qmapshack/gis/trk/filter/IFilterTerrainSlope.ui
similarity index 100%
rename from src/gis/trk/filter/IFilterTerrainSlope.ui
rename to src/qmapshack/gis/trk/filter/IFilterTerrainSlope.ui
diff --git a/src/qmapshack/gis/trk/filter/filter.cpp b/src/qmapshack/gis/trk/filter/filter.cpp
new file mode 100644
index 0000000..fd457d6
--- /dev/null
+++ b/src/qmapshack/gis/trk/filter/filter.cpp
@@ -0,0 +1,468 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2016 Christian Eichler code at christian-eichler.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/trk/CKnownExtension.h"
+#include "gis/trk/CPropertyTrk.h"
+
+
+#include <QtMath>
+#include <proj_api.h>
+
+void CGisItemTrk::filterReducePoints(qreal dist)
+{
+    QVector<pointDP> line;
+    bool nothingDone = true;
+
+    for(const CTrackData::trkpt_t &pt : trk)
+    {
+        pointDP dp(pt.lon * DEG_TO_RAD, pt.lat * DEG_TO_RAD, pt.ele);
+        dp.used = !pt.isHidden();
+
+        line << dp;
+    }
+
+    if(line.size() < 3)
+    {
+        return;
+    }
+
+    point3D pt0 = line[0];
+
+    line[0].x = 0;
+    line[0].y = 0;
+    for(int i = 1; i < line.size(); i++)
+    {
+        pointDP& pt1 = line[i - 1];
+        pointDP& pt2 = line[i];
+
+        qreal a1, a2;
+        qreal d = GPS_Math_Distance(pt0.x, pt0.y, pt2.x, pt2.y, a1, a2);
+
+        pt0 = pt2;
+
+        pt2.x = pt1.x + qCos(a1 * DEG_TO_RAD) * d;
+        pt2.y = pt1.y + qSin(a1 * DEG_TO_RAD) * d;
+    }
+
+    GPS_Math_DouglasPeucker(line, dist);
+
+    int cnt = 0;
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        if(line[cnt].used)
+        {
+            pt.unsetFlag(CTrackData::trkpt_t::eHidden);
+        }
+        else
+        {
+            if(!pt.isHidden())
+            {
+                nothingDone = false;
+                pt.setFlag(CTrackData::trkpt_t::eHidden);
+            }
+        }
+
+        cnt++;
+    }
+
+    if(nothingDone)
+    {
+        return;
+    }
+
+    deriveSecondaryData();
+    QString val, unit;
+    IUnit::self().meter2distance(dist, val, unit);
+    changed(tr("Hide points by Douglas Peuker algorithm (%1%2)").arg(val).arg(unit), "://icons/48x48/PointHide.png");
+}
+
+void CGisItemTrk::filterRemoveInvalidPoints()
+{
+    bool nothingDone = true;
+
+    // use all valid flags as invalid mask. By that only
+    // invalid flags for properties with valid points count
+    quint32 invalidMask = (getAllValidFlags() & CTrackData::trkpt_t::eValidMask) << 16;
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        if(pt.isInvalid(CTrackData::trkpt_t::invalid_e(invalidMask)))
+        {
+            pt.setFlag(CTrackData::trkpt_t::eHidden);
+            nothingDone = false;
+        }
+    }
+
+    if(nothingDone)
+    {
+        return;
+    }
+
+    deriveSecondaryData();
+    changed(tr("Hide points with invalid data."), "://icons/48x48/PointHide.png");
+}
+
+void CGisItemTrk::filterReset()
+{
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.unsetFlag(CTrackData::trkpt_t::eHidden);
+    }
+    deriveSecondaryData();
+    changed(tr("Reset all hidden track points to visible"), "://icons/48x48/PointHide.png");
+}
+
+void CGisItemTrk::filterDelete()
+{
+    bool nothingDone = true;
+
+    for(CTrackData::trkseg_t& seg : trk.segs)
+    {
+        QVector<CTrackData::trkpt_t> pts;
+        for(const CTrackData::trkpt_t &pt : seg.pts)
+        {
+            if(pt.isHidden())
+            {
+                nothingDone = false;
+                continue;
+            }
+
+            pts << pt;
+        }
+
+        seg.pts = pts;
+    }
+
+    if(nothingDone)
+    {
+        return;
+    }
+
+    deriveSecondaryData();
+    changed(tr("Permanently removed all hidden track points"), "://icons/48x48/PointHide.png");
+}
+
+void CGisItemTrk::filterSmoothProfile(int points)
+{
+    QVector<int> window(points, 0);
+    QVector<int> ele1, ele2;
+
+    for(const CTrackData::trkpt_t &pt : trk)
+    {
+        ele1 << pt.ele;
+        ele2 << pt.ele;
+    }
+
+    if(ele1.size() < (points + 1))
+    {
+        return;
+    }
+
+    int d = points >> 1;
+    for(int i = d; i < ele1.size() - d; i++)
+    {
+        for(int n = i - d, m = 0; m < points; n++, m++)
+        {
+            window[m] = ele1[n];
+        }
+
+        qSort(window);
+        ele2[i] = window[d];
+    }
+
+    int cnt = 0;
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.ele = ele2[cnt++];
+    }
+    deriveSecondaryData();
+    changed(tr("Smoothed profile with a Median filter of size %1").arg(points), "://icons/48x48/SetEle.png");
+}
+
+void CGisItemTrk::filterTerrainSlope()
+{
+    QPolygonF line;
+    for(const CTrackData::trkpt_t &pt : trk)
+    {
+        line << pt.radPoint();
+    }
+
+    QPolygonF slope(line.size());
+    CMainWindow::self().getSlopeAt(line, slope);
+
+    int cnt = 0;
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.extensions[CKnownExtension::internalTerrainSlope] = slope[cnt].ry();
+        ++cnt;
+    }
+
+    deriveSecondaryData();
+    changed(tr("Added terrain slope from DEM file."), "://icons/48x48/CSrcSlope.png");
+}
+
+void CGisItemTrk::filterReplaceElevation()
+{
+    QPolygonF line;
+    for(const CTrackData::trkpt_t &pt : trk)
+    {
+        line << pt.radPoint();
+    }
+
+    QPolygonF ele(line.size());
+    CMainWindow::self().getElevationAt(line, ele);
+
+    int cnt = 0;
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.ele = (ele[cnt].y() == NOFLOAT) ? NOINT : ele[cnt].y();
+        ++cnt;
+    }
+
+    deriveSecondaryData();
+    changed(tr("Replaced elevation data with data from DEM files."), "://icons/48x48/SetEle.png");
+}
+
+void CGisItemTrk::filterInterpolateElevation()
+{
+    if(!interp.valid)
+    {
+        return;
+    }
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        qreal ele = getElevationInterpolated(pt.distance);
+        pt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
+    }
+
+    interp.valid = false;
+    deriveSecondaryData();
+    changed(tr("Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)").arg(interp.m).arg(interp.rep.rmserror), "://icons/48x48/SetEle.png");
+}
+
+void CGisItemTrk::filterOffsetElevation(int offset)
+{
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        if(pt.ele != NOINT)
+        {
+            pt.ele += offset;
+        }
+    }
+
+    QString val, unit;
+    IUnit::self().meter2elevation(offset, val, unit);
+    deriveSecondaryData();
+    changed(tr("Offset elevation data by %1%2.").arg(val).arg(unit), "://icons/48x48/SetEle.png");
+}
+
+void CGisItemTrk::filterNewDate(const QDateTime& date)
+{
+    qint64 delta = qint64(date.toTime_t()) - qint64(timeStart.toUTC().toTime_t());
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.time = pt.time.addSecs(delta);
+    }
+
+    deriveSecondaryData();
+    changed(tr("Changed start of track to %1.").arg(date.toString()), "://icons/48x48/Time.png");
+}
+
+void CGisItemTrk::filterObscureDate(int delta)
+{
+    if(delta == 0)
+    {
+        for(CTrackData::trkpt_t& pt : trk)
+        {
+            pt.time = QDateTime();
+        }
+
+        deriveSecondaryData();
+        changed(tr("Remove timestamps."), "://icons/48x48/Time.png");
+    }
+    else
+    {
+        QDateTime timestamp = timeStart;
+        if(!timestamp.isValid())
+        {
+            timestamp = QDateTime::currentDateTime().toUTC();
+        }
+
+        for(CTrackData::trkpt_t& pt : trk)
+        {
+            pt.time = timestamp;
+            timestamp = timestamp.addSecs(delta);
+        }
+
+        deriveSecondaryData();
+        changed(tr("Set artificial timestamps with delta of %1 sec.").arg(delta), "://icons/48x48/Time.png");
+    }
+}
+
+void CGisItemTrk::filterSpeed(const CFilterSpeed::cycling_type_t &cyclingType)
+{
+    qreal plainSpeed = cyclingType.plainSpeed / IUnit::self().speedfactor;
+    qreal minSpeed = cyclingType.minSpeed / IUnit::self().speedfactor;
+    qreal slopeAtMinSpeed = cyclingType.slopeAtMinSpeed;
+    qreal maxSpeed = cyclingType.maxSpeed / IUnit::self().speedfactor;
+    qreal slopeAtMaxSpeed = cyclingType.slopeAtMaxSpeed;
+
+    QDateTime timestamp = timeStart;
+    if(!timestamp.isValid())
+    {
+        timestamp = QDateTime::currentDateTime().toUTC();
+    }
+
+    qreal speed = 0;
+
+    QEasingCurve upHillCurve(QEasingCurve::OutQuad);
+    QEasingCurve downHillCurve(QEasingCurve::InQuad);
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        if(pt.isHidden())
+        {
+            continue;
+        }
+
+        // calculation based on slope2 (Percent)
+        qreal slope = pt.slope2;
+        if(IUnit::getSlopeMode() == IUnit::eSlopeDegrees)
+        {
+            slope = IUnit::slopeConvert(IUnit::eSlopeDegrees, pt.slope1);
+        }
+
+        if(slope < slopeAtMaxSpeed)
+        {
+            speed = maxSpeed;
+        }
+        else if(slope < 0 && slope >= slopeAtMaxSpeed)
+        {
+            speed = plainSpeed + (maxSpeed - plainSpeed) * downHillCurve.valueForProgress(slope / slopeAtMaxSpeed);
+        }
+        else if(slope == 0)
+        {
+            speed = plainSpeed;
+        }
+        else if(slope > 0 && slope <= slopeAtMinSpeed)
+        {
+            speed = plainSpeed + (minSpeed - plainSpeed) * upHillCurve.valueForProgress(slope / slopeAtMinSpeed);
+        }
+        else if(slope > slopeAtMinSpeed)
+        {
+            speed = minSpeed;
+        }
+
+        timestamp = speed == 0 ? timestamp : timestamp.addMSecs(qRound(1000 * pt.deltaDistance / speed));
+        pt.time   = timestamp;
+    }
+
+    deriveSecondaryData();
+
+    QString val, unit;
+    IUnit::self().meter2speed(totalDistance / totalElapsedSecondsMoving, val, unit);
+    changed(tr("Changed average moving speed depending on slope to %1%2.").arg(val).arg(unit), "://icons/48x48/Time.png");
+}
+
+void CGisItemTrk::filterSpeed(qreal speed)
+{
+    QDateTime timestamp = timeStart;
+    if(!timestamp.isValid())
+    {
+        timestamp = QDateTime::currentDateTime().toUTC();
+    }
+
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        if(pt.isHidden())
+        {
+            continue;
+        }
+
+        timestamp = speed == 0 ? QDateTime() : timestamp.addMSecs(qRound(1000 * pt.deltaDistance/speed));
+        pt.time   = timestamp;
+    }
+
+    deriveSecondaryData();
+    QString val, unit;
+    IUnit::self().meter2speed(speed, val, unit);
+    changed(tr("Changed speed to %1%2.").arg(val).arg(unit), "://icons/48x48/Time.png");
+}
+
+void CGisItemTrk::filterGetSlopeLimits(qreal &minSlope, qreal &maxSlope)
+{
+    const limits_t& limit = extrema["::ql:slope"];
+    minSlope = limit.min;
+    maxSlope = limit.max;
+}
+
+void CGisItemTrk::filterSplitSegment()
+{
+    IGisProject * project = CGisWorkspace::self().selectProject();
+    if(nullptr == project)
+    {
+        return;
+    }
+
+    int part = 0;
+    for(const CTrackData::trkseg_t &seg : trk.segs)
+    {
+        if(0 < seg.pts.count())
+        {
+            qint32 idx1 = seg.pts[                  0].idxTotal;
+            qint32 idx2 = seg.pts[seg.pts.count() - 1].idxTotal;
+
+            new CGisItemTrk(tr("%1 (Segment %2)").arg(trk.name).arg(part), idx1, idx2, trk, project);
+            ++part;
+        }
+    }
+}
+
+void CGisItemTrk::filterDeleteExtension(const QString &extStr)
+{
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.extensions.remove(extStr);
+    }
+
+    extrema.remove(extStr);
+    existingExtensions.remove(extStr);
+    propHandler->setupData();
+
+    const CKnownExtension &ext = CKnownExtension::get(extStr);
+    changed(tr("Removed extension %1 from all Track Points").arg(ext.nameLongText), "://icons/48x48/FilterModifyExtension.png");
+}
+
+void CGisItemTrk::filterSubPt2Pt()
+{
+    for(CTrackData::trkpt_t& pt : trk)
+    {
+        pt.unsetFlag(CTrackData::trkpt_t::eSubpt);
+    }
+    propHandler->setupData();
+
+    changed(tr("Converted subpoints from routing to track points"), "://icons/48x48/FilterSubPt2Pt.png");
+}
diff --git a/src/gis/wpt/CDetailsGeoCache.cpp b/src/qmapshack/gis/wpt/CDetailsGeoCache.cpp
similarity index 100%
rename from src/gis/wpt/CDetailsGeoCache.cpp
rename to src/qmapshack/gis/wpt/CDetailsGeoCache.cpp
diff --git a/src/gis/wpt/CDetailsGeoCache.h b/src/qmapshack/gis/wpt/CDetailsGeoCache.h
similarity index 100%
rename from src/gis/wpt/CDetailsGeoCache.h
rename to src/qmapshack/gis/wpt/CDetailsGeoCache.h
diff --git a/src/qmapshack/gis/wpt/CDetailsWpt.cpp b/src/qmapshack/gis/wpt/CDetailsWpt.cpp
new file mode 100644
index 0000000..4df3644
--- /dev/null
+++ b/src/qmapshack/gis/wpt/CDetailsWpt.cpp
@@ -0,0 +1,245 @@
+/**********************************************************************************************
+    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 "gis/wpt/CDetailsWpt.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CElevationDialog.h"
+#include "helpers/CInputDialog.h"
+#include "helpers/CLinksDialog.h"
+#include "helpers/CPositionDialog.h"
+#include "helpers/CWptIconDialog.h"
+#include "units/IUnit.h"
+#include "widgets/CTextEditWidget.h"
+
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+CDetailsWpt::CDetailsWpt(CGisItemWpt &wpt, QWidget *parent)
+    : QDialog(parent)
+    , wpt(wpt)
+{
+    setupUi(this);
+    photoAlbum->hide();
+
+    setupGui();
+
+    toolLock->setDisabled(wpt.isOnDevice());
+
+    connect(labelPosition,  &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
+    connect(labelElevation, &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
+    connect(labelProximity, &QLabel::linkActivated,          this,       static_cast<void (CDetailsWpt::*)(const QString&)>(&CDetailsWpt::slotLinkActivated));
+    connect(textCmtDesc,    &QTextBrowser::anchorClicked,    this,       static_cast<void (CDetailsWpt::*)(const QUrl&)   >(&CDetailsWpt::slotLinkActivated));
+
+    connect(lineName,       &CLineEdit::textEdited,          this,       &CDetailsWpt::slotNameChanged);
+    connect(lineName,       &CLineEdit::editingFinished,     this,       &CDetailsWpt::slotNameChangeFinished);
+    connect(toolIcon,       &QToolButton::clicked,           this,       &CDetailsWpt::slotChangeIcon);
+    connect(toolLock,       &QToolButton::toggled,           this,       &CDetailsWpt::slotChangeReadOnlyMode);
+
+    connect(listHistory,    &CHistoryListWidget::sigChanged, this,       &CDetailsWpt::setupGui);
+
+    connect(toolAddImage,   &QToolButton::clicked,           photoAlbum, &CPhotoAlbum::slotAddImage);
+    connect(toolDelImage,   &QToolButton::clicked,           photoAlbum, &CPhotoAlbum::slotDelImage);
+    connect(photoAlbum,     &CPhotoAlbum::sigChanged,        this,       &CDetailsWpt::slotChangedImages);
+}
+
+CDetailsWpt::~CDetailsWpt()
+{
+}
+
+
+void CDetailsWpt::setupGui()
+{
+    if(originator)
+    {
+        return;
+    }
+    originator = true;
+
+    setWindowTitle(wpt.getName());
+
+    QString val, unit;
+    QString strPos;
+    QPointF pos = wpt.getPosition();
+    IUnit::degToStr(pos.x(), pos.y(), strPos);
+
+    bool isReadOnly = wpt.isReadOnly();
+
+    toolIcon->setEnabled(!isReadOnly);
+    toolIcon->setIcon(wpt.getIcon());
+    toolIcon->setObjectName(wpt.getIconName());
+    lineName->setReadOnly(isReadOnly);
+    lineName->setText(wpt.getName());
+    labelPosition->setText(IGisItem::toLink(isReadOnly, "position", strPos, ""));
+
+    labelTainted->setVisible(wpt.isTainted());
+
+    QString elevationStr = "--";
+    if(wpt.getElevation() != NOINT)
+    {
+        IUnit::self().meter2elevation(wpt.getElevation(), val, unit);
+        elevationStr = QString("%1 %2").arg(val).arg(unit);
+    }
+    labelElevation->setText(IGisItem::toLink(isReadOnly, "elevation", elevationStr, ""));
+
+
+    QString proxStr = "--";
+    if(wpt.getProximity() != NOFLOAT)
+    {
+        IUnit::self().meter2elevation(wpt.getProximity(), val, unit);
+        proxStr = QString("%1 %2").arg(val).arg(unit);
+    }
+    labelProximity->setText(IGisItem::toLink(isReadOnly, "proximity", proxStr, ""));
+
+
+    if(wpt.getTime().isValid())
+    {
+        labelTime->setText(IUnit::datetime2string(wpt.getTime(), false, QPointF(pos.x()*DEG_TO_RAD, pos.y()*DEG_TO_RAD)));
+    }
+
+    textCmtDesc->document()->clear();
+    textCmtDesc->append(IGisItem::createText(isReadOnly, wpt.getComment(), wpt.getDescription(), wpt.getLinks()));
+    textCmtDesc->moveCursor (QTextCursor::Start);
+    textCmtDesc->ensureCursorVisible();
+
+    toolLock->setChecked(isReadOnly);
+    labelNogo->setVisible(wpt.isNogo());
+
+    listHistory->setupHistory(wpt);
+
+    const QList<CGisItemWpt::image_t>& images = wpt.getImages();
+    photoAlbum->reload(images);
+
+    toolAddImage->setVisible(!isReadOnly);
+    toolDelImage->setVisible(!isReadOnly && !images.isEmpty());
+
+    originator = false;
+}
+
+void CDetailsWpt::slotNameChanged(const QString &name)
+{
+    setWindowTitle(name);
+}
+
+void CDetailsWpt::slotNameChangeFinished()
+{
+    lineName->clearFocus();
+
+    const QString& name = lineName->text();
+    slotNameChanged(name);
+
+    if(name != wpt.getName())
+    {
+        wpt.setName(name);
+        setupGui();
+    }
+}
+
+void CDetailsWpt::slotLinkActivated(const QString& link)
+{
+    if(link == "elevation")
+    {
+        QVariant var(wpt.getElevation());
+        CElevationDialog dlg(this, var, QVariant(NOINT), wpt.getPosition());
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setElevation(var.toInt());
+        }
+    }
+    else if(link == "proximity")
+    {
+        QVariant var(wpt.getProximity());
+        CInputDialog dlg(this, tr("Enter new proximity range."), var, QVariant(NOFLOAT));
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setProximity(var.toDouble());
+        }
+    }
+    else if(link == "position")
+    {
+        QPointF pos = wpt.getPosition();
+        CPositionDialog dlg(this, pos);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setPosition(pos);
+        }
+    }
+
+    setupGui();
+}
+
+void CDetailsWpt::slotLinkActivated(const QUrl& url)
+{
+    if(url.toString() == "comment")
+    {
+        CTextEditWidget dlg(wpt.getComment(), this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setComment(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "description")
+    {
+        CTextEditWidget dlg(wpt.getDescription(), this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setDescription(dlg.getHtml());
+        }
+        setupGui();
+    }
+    else if(url.toString() == "links")
+    {
+        QList<IGisItem::link_t> links = wpt.getLinks();
+        CLinksDialog dlg(links, this);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setLinks(links);
+        }
+        setupGui();
+    }
+    else
+    {
+        QDesktopServices::openUrl(url);
+    }
+}
+
+void CDetailsWpt::slotChangeIcon()
+{
+    if(!wpt.isReadOnly())
+    {
+        CWptIconDialog dlg(toolIcon);
+        if(dlg.exec() == QDialog::Accepted)
+        {
+            wpt.setIcon(toolIcon->objectName());
+            setupGui();
+        }
+    }
+}
+
+void CDetailsWpt::slotChangeReadOnlyMode(bool on)
+{
+    wpt.setReadOnlyMode(on);
+    setupGui();
+}
+
+void CDetailsWpt::slotChangedImages(const QList<CGisItemWpt::image_t>& images)
+{
+    wpt.setImages(images);
+    setupGui();
+}
diff --git a/src/gis/wpt/CDetailsWpt.h b/src/qmapshack/gis/wpt/CDetailsWpt.h
similarity index 100%
rename from src/gis/wpt/CDetailsWpt.h
rename to src/qmapshack/gis/wpt/CDetailsWpt.h
diff --git a/src/qmapshack/gis/wpt/CGisItemWpt.cpp b/src/qmapshack/gis/wpt/CGisItemWpt.cpp
new file mode 100644
index 0000000..48d0d4d
--- /dev/null
+++ b/src/qmapshack/gis/wpt/CGisItemWpt.cpp
@@ -0,0 +1,934 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisListWks.h"
+#include "gis/WptIcons.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/wpt/CDetailsGeoCache.h"
+#include "gis/wpt/CDetailsWpt.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/wpt/CScrOptWpt.h"
+#include "gis/wpt/CScrOptWptRadius.h"
+#include "gis/wpt/CSetupNewWpt.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "mouse/IMouse.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+#include <QtXml>
+
+IGisItem::key_t CGisItemWpt::keyUserFocus;
+
+CGisItemWpt::CGisItemWpt(const QPointF &pos, qreal ele, const QDateTime &time, const QString &name, const QString &icon, IGisProject *project)
+    : IGisItem(project, eTypeWpt, NOIDX)
+{
+    wpt.name    = name;
+    wpt.sym     = icon;
+    wpt.lon     = pos.x();
+    wpt.lat     = pos.y();
+    wpt.ele     = (ele == NOFLOAT) ? NOINT : qRound(ele);
+    wpt.time    = time;
+
+    detBoundingRect();
+
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+/// used to add a new waypoint
+CGisItemWpt::CGisItemWpt(const QPointF& pos, const QString& name, const QString &icon, IGisProject *project)
+    : CGisItemWpt(pos, NOFLOAT, QDateTime::currentDateTimeUtc(), name, icon, project)
+{
+    flags = eFlagCreatedInQms|eFlagWriteAllowed;
+    qreal ele = CMainWindow::self().getElevationAt(pos * DEG_TO_RAD);
+    wpt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
+
+    detBoundingRect();
+
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+/// used to move a copy of waypoint
+CGisItemWpt::CGisItemWpt(const QPointF& pos, const CGisItemWpt& parentWpt, IGisProject *project)
+    : IGisItem(project, eTypeWpt, NOIDX)
+{
+    *this = parentWpt;
+    wpt.lon     = pos.x();
+    wpt.lat     = pos.y();
+    wpt.time    = QDateTime::currentDateTimeUtc();
+
+    key.clear();
+    history.events.clear();
+    flags = eFlagCreatedInQms|eFlagWriteAllowed;
+
+    qreal ele = CMainWindow::self().getElevationAt(pos * DEG_TO_RAD);
+    wpt.ele = (ele == NOFLOAT) ? NOINT : qRound(ele);
+
+    setNogoFlag(parentWpt.isNogo());
+
+    detBoundingRect();
+
+    setupHistory();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+/// used to create a copy of waypoint with new parent
+CGisItemWpt::CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone)
+    : IGisItem(project, eTypeWpt, idx)
+{
+    history = parentWpt.history;
+    loadHistory(history.histIdxCurrent);
+
+    if(clone)
+    {
+        wpt.name += tr("_Clone");
+        key.clear();
+        history.events.clear();
+        setupHistory();
+    }
+
+    if(parentWpt.isOnDevice() || !parentWpt.isReadOnly())
+    {
+        flags |= eFlagWriteAllowed;
+    }
+    else
+    {
+        flags &= ~eFlagWriteAllowed;
+    }
+
+    setNogoFlag(parentWpt.isNogo());
+
+    detBoundingRect();
+    updateDecoration(eMarkChanged, eMarkNone);
+}
+
+/// used to create waypoint from GPX file
+CGisItemWpt::CGisItemWpt(const QDomNode &xml, IGisProject *project)
+    : IGisItem(project, eTypeWpt, project->childCount())
+{
+    readGpx(xml);
+    detBoundingRect();
+
+    genKey();
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemWpt::CGisItemWpt(const history_t& hist, const QString &dbHash, IGisProject * project)
+    : IGisItem(project, eTypeWpt, project->childCount())
+{
+    history = hist;
+    loadHistory(hist.histIdxCurrent);
+    detBoundingRect();
+    if(!dbHash.isEmpty())
+    {
+        lastDatabaseHash = dbHash;
+    }
+}
+
+CGisItemWpt::CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project)
+    : IGisItem(project, eTypeWpt, NOIDX)
+{
+    loadFromDb(id, db);
+    detBoundingRect();
+}
+
+CGisItemWpt::CGisItemWpt(const CTwoNavProject::wpt_t &tnvWpt, IGisProject * project)
+    : IGisItem(project, eTypeWpt, NOIDX)
+{
+    readTwoNav(tnvWpt);
+    detBoundingRect();
+
+    genKey();
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemWpt::CGisItemWpt(CFitStream& stream, IGisProject * project)
+    : IGisItem(project, eTypeWpt, NOIDX)
+    , proximity(NOFLOAT)
+    , posScreen(NOPOINTF)
+{
+    readWptFromFit(stream);
+    detBoundingRect();
+
+    genKey();
+    setupHistory();
+    updateDecoration(eMarkNone, eMarkNone);
+}
+
+CGisItemWpt::~CGisItemWpt()
+{
+}
+
+IGisItem * CGisItemWpt::createClone()
+{
+    int idx = -1;
+    IGisProject * project = getParentProject();
+    if(project)
+    {
+        idx = project->indexOfChild(this);
+    }
+    return new CGisItemWpt(*this, project, idx, true);
+}
+
+
+void CGisItemWpt::setSymbol()
+{
+    setIcon();
+}
+
+bool CGisItemWpt::getNewWptData(QPointF& pt, QString& icon, QString& name)
+{
+    SETTINGS;
+    QString lastName = cfg.value("Waypoint/lastName", "wpt").toString();
+    QString lastIcon = cfg.value("Waypoint/lastIcon", "Waypoint").toString();
+
+    const int s = lastName.size();
+    if(s != 0)
+    {
+        int idx;
+        for(idx = s; idx > 0; idx--)
+        {
+            if(!lastName[idx - 1].isDigit())
+            {
+                break;
+            }
+        }
+
+        if(idx == 0)
+        {
+            lastName = QString::number(lastName.toInt() + 1);
+        }
+        else if(idx < s)
+        {
+            lastName = lastName.left(idx) + QString::number(lastName.mid(idx).toInt() + 1);
+        }
+    }
+
+    if(name.isEmpty())
+    {
+        name = lastName;
+    }
+    icon = lastIcon;
+
+    CSetupNewWpt dlg(pt, icon, name, CMainWindow::getBestWidgetForParent());
+    if(dlg.exec() != QDialog::Accepted)
+    {
+        return false;
+    }
+
+    cfg.setValue("Waypoint/lastName", name);
+    cfg.setValue("Waypoint/lastIcon", icon);
+
+    return true;
+}
+
+QString CGisItemWpt::getInfo(quint32 feature) const
+{
+    QString str = "<div>";
+    qint32 initialSize = str.size();
+
+    if(feature & eFeatureShowName)
+    {
+        str = "<b>" + getName() + "</b>";
+    }
+
+    if(geocache.hasData)
+    {
+        if(str.size() > initialSize)
+        {
+            str += "<br/>\n";
+        }
+
+        str += QString(" %4 (%1, D %2, T %3)").arg(geocache.container).arg(geocache.difficulty, 0,'f',1).arg(geocache.terrain, 0,'f',1).arg(geocache.name);
+    }
+
+    if(wpt.ele != NOINT)
+    {
+        if(str.size() > initialSize)
+        {
+            str += "<br/>\n";
+        }
+        QString val, unit;
+        IUnit::self().meter2elevation(wpt.ele, val, unit);
+        str += tr("Elevation: %1%2").arg(val).arg(unit);
+    }
+
+    if(proximity != NOFLOAT)
+    {
+        if(str.size() > initialSize)
+        {
+            str += "<br/>\n";
+        }
+        QString val, unit;
+        IUnit::self().meter2distance(proximity, val, unit);
+        str += tr("Proximity: %1%2").arg(val).arg(unit);
+    }
+
+    QString desc = removeHtml(wpt.desc).simplified();
+    if(desc.count())
+    {
+        if(str.size() > initialSize)
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || (desc.count() < 300))
+        {
+            str += desc;
+        }
+        else
+        {
+            str += desc.left(297) + "...";
+        }
+    }
+
+    QString cmt = removeHtml(wpt.cmt).simplified();
+    if((cmt != desc) && cmt.count())
+    {
+        if(str.size() > initialSize)
+        {
+            str += "<br/>\n";
+        }
+
+        if((feature & eFeatureShowFullText) || (cmt.count() < 300))
+        {
+            str += cmt;
+        }
+        else
+        {
+            str += cmt.left(297) + "...";
+        }
+    }
+    if(feature & eFeatureShowDateTime)
+    {
+        if(wpt.time.isValid())
+        {
+            if(str.size() > initialSize)
+            {
+                str += "<br/>\n";
+            }
+            str += tr("Created: %1").arg(IUnit::datetime2string(wpt.time, false, QPointF(wpt.lon*DEG_TO_RAD, wpt.lat*DEG_TO_RAD)));
+        }
+    }
+    return str + "</div>";
+}
+
+IScrOpt * CGisItemWpt::getScreenOptions(const QPoint& origin, IMouse * mouse)
+{
+    if (closeToRadius)
+    {
+        if(scrOptRadius.isNull())
+        {
+            scrOptRadius = new CScrOptWptRadius(this, origin, mouse);
+        }
+        return scrOptRadius;
+    }
+    else
+    {
+        if(scrOptWpt.isNull())
+        {
+            scrOptWpt = new CScrOptWpt(this, origin, mouse);
+        }
+        return scrOptWpt;
+    }
+}
+
+QPointF CGisItemWpt::getPointCloseBy(const QPoint& point)
+{
+    if (closeToRadius)
+    {
+        QPointF l = (QPointF(point) - posScreen);
+        return posScreen + l * (radius / sqrt(QPointF::dotProduct(l,l)));
+    }
+    else
+    {
+        return posScreen;
+    }
+}
+
+void CGisItemWpt::setIcon()
+{
+    if(geocache.hasData)
+    {
+        IGisItem::setIcon(getWptIconByName(geocache.type, focus));
+    }
+    else
+    {
+        IGisItem::setIcon(getWptIconByName(wpt.sym, focus));
+    }
+}
+
+void CGisItemWpt::setName(const QString& str)
+{
+    SETTINGS;
+    cfg.setValue("Waypoint/lastName", str);
+
+    setText(CGisListWks::eColumnName, str);
+
+    wpt.name = str;
+    changed(tr("Changed name"),"://icons/48x48/EditText.png");
+}
+
+void CGisItemWpt::setPosition(const QPointF& pos)
+{
+    wpt.lon = pos.x();
+    wpt.lat = pos.y();
+
+    detBoundingRect();
+
+    changed(tr("Changed position"),"://icons/48x48/WptMove.png");
+}
+
+void CGisItemWpt::setElevation(qint32 val)
+{
+    wpt.ele = val;
+    changed(tr("Changed elevation"),"://icons/48x48/SetEle.png");
+}
+
+void CGisItemWpt::setProximity(qreal val)
+{
+    if (val == NOFLOAT)
+    {
+        proximity = NOFLOAT;
+        setNogoFlag(false);
+        changed(tr("Removed proximity"),"://icons/48x48/WptDelProx.png");
+    }
+    else
+    {
+        proximity = qRound(val);
+        changed(tr("Changed proximity"),"://icons/48x48/WptEditProx.png");
+    }
+
+    detBoundingRect();
+
+    radius = NOFLOAT; //radius is proximity in set on redraw
+}
+
+void CGisItemWpt::setIcon(const QString& name)
+{
+    SETTINGS;
+    cfg.setValue("Waypoint/lastIcon", name);
+
+    wpt.sym  = name;
+
+    QPointF focus;
+    QString path;
+    getWptIconByName(name, focus, &path);
+
+    changed(tr("Changed icon"), path);
+}
+
+void CGisItemWpt::setComment(const QString& str)
+{
+    wpt.cmt = str;
+    changed(tr("Changed comment"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemWpt::setDescription(const QString& str)
+{
+    wpt.desc = str;
+    changed(tr("Changed description"), "://icons/48x48/EditText.png");
+}
+
+void CGisItemWpt::setLinks(const QList<link_t>& links)
+{
+    wpt.links = links;
+    changed(tr("Changed links"), "://icons/48x48/Link.png");
+}
+
+void CGisItemWpt::setImages(const QList<image_t>& imgs)
+{
+    images = imgs;
+    changed(tr("Changed images"), "://icons/48x48/Image.png");
+}
+
+void CGisItemWpt::addImage(const image_t& img)
+{
+    images.append(img);
+    changed(tr("Add image"), "://icons/48x48/Image.png");
+}
+
+
+bool CGisItemWpt::isCloseTo(const QPointF& pos)
+{
+    closeToRadius = false;
+
+    if(posScreen == NOPOINTF)
+    {
+        return false;
+    }
+
+    QPointF dist = (pos - posScreen);
+    if(dist.manhattanLength() < 22)
+    {
+        return true;
+    }
+    if (radius == NOFLOAT)
+    {
+        return false;
+    }
+
+    closeToRadius = abs(QPointF::dotProduct(dist,dist)/radius - radius) < 22;
+    return closeToRadius;
+}
+
+bool CGisItemWpt::isWithin(const QRectF& area, selflags_t flags)
+{
+    return (flags & eSelectionWpt) ? area.contains(posScreen) : false;
+}
+
+
+void CGisItemWpt::gainUserFocus(bool yes)
+{
+    keyUserFocus = yes ? key : key_t();
+}
+
+void CGisItemWpt::edit()
+{
+    if(geocache.hasData)
+    {
+        CDetailsGeoCache dlg(*this, CMainWindow::getBestWidgetForParent());
+        dlg.exec();
+    }
+    else
+    {
+        CDetailsWpt dlg(*this, CMainWindow::getBestWidgetForParent());
+        dlg.exec();
+    }
+}
+
+void CGisItemWpt::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF> &blockedAreas, CGisDraw *gis)
+{
+    posScreen = QPointF(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD);
+
+    if (proximity == NOFLOAT || proximity == 0. ? !isVisible(posScreen, viewport, gis) : !isVisible(boundingRect, viewport, gis))
+    {
+        rectBubble  = QRect();
+        posScreen   = NOPOINTF;
+        return;
+    }
+
+    gis->convertRad2Px(posScreen);
+
+    if(proximity == NOFLOAT)
+    {
+        radius = NOFLOAT;
+    }
+    else
+    {
+        //remember radius for isCloseTo-method
+        radius = calcRadius(QPointF(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD),posScreen,proximity,gis);
+
+        drawCircle(p, posScreen, radius, !hideArea && isNogo(), false);
+    }
+
+    drawBubble(p);
+
+    p.drawPixmap(posScreen - focus, icon);
+
+    blockedAreas << QRectF(posScreen - focus, icon.size());
+}
+
+void CGisItemWpt::drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis)
+{
+    if(mouseIsOverBubble && !doBubbleMove && !doBubbleSize && rectBubble.isValid() && !isReadOnly())
+    {
+        QPainterPath clip;
+        clip.addRoundedRect(rectBubble, RECT_RADIUS, RECT_RADIUS);
+        p.setClipPath(clip);
+
+        QRect barTop(rectBubble.topLeft(), QSize(rectBubble.width(), 26));
+        QRect barBottom(barTop);
+        barBottom.moveBottomLeft(rectBubble.bottomLeft());
+        barBottom.adjust(1,0,-1,-1);
+        barTop.adjust(1,1,-1,0);
+
+        p.setPen(Qt::NoPen);
+        p.setBrush(QColor(200,200,255,150));
+        p.drawRect(barTop);
+        p.drawRect(barBottom);
+
+        p.setBrush(Qt::white);
+        p.drawRoundedRect(rectBubbleMove.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
+        p.drawRoundedRect(rectBubbleEdit.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
+        p.drawRoundedRect(rectBubbleSize.adjusted(-2,-2,2,2), RECT_RADIUS, RECT_RADIUS);
+
+        p.drawPixmap(rectBubbleMove, QPixmap("://icons/32x32/MoveArrow.png"));
+        p.drawPixmap(rectBubbleEdit, QPixmap("://icons/32x32/EditDetails.png"));
+        p.drawPixmap(rectBubbleSize, QPixmap("://icons/32x32/SizeArrow.png"));
+    }
+}
+
+
+void CGisItemWpt::drawLabel(QPainter& p, const QPolygonF &viewport, QList<QRectF> &blockedAreas, const QFontMetricsF &fm, CGisDraw *gis)
+{
+    if(posScreen == NOPOINTF)
+    {
+        return;
+    }
+
+    QPointF pt = posScreen - focus;
+
+    QRectF rect = fm.boundingRect(wpt.name);
+    rect.adjust(-2,-2,2,2);
+
+    // place label on top
+    rect.moveCenter(pt + QPointF(icon.width()/2, -fm.height()));
+    if(CDraw::doesOverlap(blockedAreas, rect))
+    {
+        // place label on bottom
+        rect.moveCenter(pt + QPointF( icon.width()/2, +fm.height() + icon.height()));
+        if(CDraw::doesOverlap(blockedAreas, rect))
+        {
+            // place label on right
+            rect.moveCenter(pt + QPointF( icon.width() + rect.width()/2, +fm.height()));
+            if(CDraw::doesOverlap(blockedAreas, rect))
+            {
+                // place label on left
+                rect.moveCenter(pt + QPointF( -rect.width()/2, +fm.height()));
+                if(CDraw::doesOverlap(blockedAreas, rect))
+                {
+                    // failed to place label anywhere
+                    return;
+                }
+            }
+        }
+    }
+
+    CDraw::text(wpt.name,p,rect.toRect(), Qt::darkBlue);
+    blockedAreas << rect;
+}
+
+void CGisItemWpt::drawHighlight(QPainter& p)
+{
+    if(posScreen == NOPOINTF)
+    {
+        return;
+    }
+
+    if (closeToRadius)
+    {
+        drawCircle(p, posScreen, radius, false, true);
+    }
+    else
+    {
+        p.drawImage(posScreen - QPointF(31,31), QImage("://cursors/wptHighlightRed.png"));
+    }
+}
+
+void CGisItemWpt::drawBubble(QPainter& p)
+{
+    if(!(flags & eFlagWptBubble))
+    {
+        return;
+    }
+
+    QString str = QString("<b>%1</b>").arg(getName());
+
+    if(!removeHtml(wpt.desc).simplified().isEmpty())
+    {
+        str += QString("<p>%1</p>").arg(wpt.desc);
+    }
+
+    if(!removeHtml(wpt.cmt).simplified().isEmpty())
+    {
+        str += QString("<p>%1</p>").arg(wpt.cmt);
+    }
+
+    QTextDocument doc;
+    doc.setHtml(str);
+    doc.setTextWidth(widthBubble);
+
+    rectBubble.setWidth(widthBubble);
+    rectBubble.setHeight(doc.size().height());
+
+    QPoint posBubble = posScreen.toPoint() + offsetBubble;
+    rectBubble.moveTopLeft(posBubble);
+
+    rectBubbleMove.moveTopLeft(rectBubble.topLeft() + QPoint(5,5));
+    rectBubbleEdit.moveTopLeft(rectBubbleMove.topRight() + QPoint(7,0));
+    rectBubbleSize.moveBottomRight(rectBubble.bottomRight() - QPoint(5,5));
+
+    QPolygonF frame = makePolyline(posScreen, rectBubble);
+    p.setPen(CDraw::penBorderGray);
+    p.setBrush(CDraw::brushBackWhite);
+    p.drawPolygon(frame);
+
+    p.save();
+    p.translate(posBubble);
+    p.setPen(Qt::black);
+    doc.drawContents(&p);
+    p.restore();
+}
+
+void CGisItemWpt::drawCircle(QPainter& p, const QPointF& pos, const qreal& r, const bool& nogo, const bool& selected)
+{
+    QRect circle(pos.x() - r - 1, pos.y() - r - 1, 2*r + 1, 2*r + 1);
+    p.save();
+    p.setBrush(Qt::NoBrush);
+    if (selected)
+    {
+        p.setPen(QPen(Qt::red,3));
+    }
+    else
+    {
+        p.setPen(QPen(Qt::white,3));
+        p.drawEllipse(circle);
+        p.setPen(QPen(Qt::red,1));
+    }
+    p.drawEllipse(circle);
+    if (nogo)
+    {
+        p.setBrush(getNogoTextureBrush());
+        p.setPen(Qt::NoPen);
+        p.drawEllipse(circle);
+    }
+    p.restore();
+}
+
+qreal CGisItemWpt::calcRadius(const QPointF& posRad, const QPointF& posPx, const qreal& radiusRad, CGisDraw *gis)
+{
+    QPointF pt1 = posRad;
+    pt1 = GPS_Math_Wpt_Projection(pt1, radiusRad, 90 * DEG_TO_RAD);
+    gis->convertRad2Px(pt1);
+
+    return pt1.x() - posPx.x();
+}
+
+QPolygonF CGisItemWpt::makePolyline(const QPointF& anchor, const QRectF& r)
+{
+    QPolygonF poly1, poly2;
+    poly1 << r.topLeft() << r.topRight() << r.bottomRight() << r.bottomLeft();
+
+    if(!r.contains(anchor))
+    {
+        qreal w = rectBubble.width()>>1;
+        qreal h = rectBubble.height()>>1;
+
+        if(w > 30)
+        {
+            w = 30;
+        }
+        if(h > 30)
+        {
+            h = 30;
+        }
+
+        w = h = qMin(w,h);
+
+        if(anchor.x() < r.left())
+        {
+            poly2 << anchor << (r.center() + QPoint(0,-h)) << (r.center() + QPoint(0,h)) << anchor;
+        }
+        else if(r.right() < anchor.x())
+        {
+            poly2 << anchor << (r.center() + QPoint(0,-h)) << (r.center() + QPoint(0,h)) << anchor;
+        }
+        else if(anchor.y() < r.top())
+        {
+            poly2 << anchor << (r.center() + QPoint(-w,0)) << (r.center() + QPoint(w,0)) << anchor;
+        }
+        else if(r.bottom() < anchor.y())
+        {
+            poly2 << anchor << (r.center() + QPoint(-w,0)) << (r.center() + QPoint(w,0)) << anchor;
+        }
+
+        QPainterPath path1;
+        path1.addRoundedRect(r, RECT_RADIUS, RECT_RADIUS);
+        QPainterPath path2;
+        path2.addPolygon(poly2);
+
+        path1 = path1.united(path2);
+
+        poly1 = path1.toFillPolygon();
+    }
+
+    return poly1;
+}
+
+
+void CGisItemWpt::removeLinksByType(const QString& type)
+{
+    QList<IGisItem::link_t>::iterator link = wpt.links.begin();
+
+    while(link != wpt.links.end())
+    {
+        if(link->type == type)
+        {
+            link = wpt.links.erase(link);
+            continue;
+        }
+
+        ++link;
+    }
+}
+
+void CGisItemWpt::mouseMove(const QPointF& pos)
+{
+    if(!hasBubble() || isReadOnly())
+    {
+        return;
+    }
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(!canvas)
+    {
+        return;
+    }
+
+    if(mouseIsOverBubble)
+    {
+        processMouseOverBubble(pos.toPoint());
+        if(!rectBubble.contains(pos.toPoint()))
+        {
+            doBubbleMove = doBubbleSize = false;
+            canvas->resetMouse();
+            mouseIsOverBubble = false;
+        }
+    }
+    else
+    {
+        if(rectBubble.contains(pos.toPoint()))
+        {
+            doBubbleMove = doBubbleSize = false;
+            canvas->setMouseWptBubble(getKey());
+            mouseIsOverBubble = true;
+        }
+    }
+}
+
+void CGisItemWpt::mouseDragged(const QPoint& start, const QPoint& last, const QPoint& pos)
+{
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(!canvas)
+    {
+        return;
+    }
+    if (!doBubbleMove && !doBubbleSize)
+    {
+        if(rectBubbleMove.contains(pos))
+        {
+            offsetMouse = pos - rectBubble.topLeft();
+            doBubbleMove = true;
+        }
+        else if(rectBubbleSize.contains(pos))
+        {
+            offsetMouse = pos - rectBubble.bottomRight();
+            doBubbleSize = true;
+        }
+        else
+        {
+            return;
+        }
+    }
+    if(doBubbleMove)
+    {
+        offsetBubble  = pos - posScreen.toPoint();
+        offsetBubble -= offsetMouse;
+    }
+    else if(doBubbleSize)
+    {
+        qDebug() << offsetMouse;
+        int width  = pos.x() - rectBubble.left() - offsetMouse.x();
+        if(width > 50)
+        {
+            widthBubble = width;
+        }
+    }
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CGisItemWpt::dragFinished(const QPoint& pos)
+{
+    updateHistory();
+    doBubbleMove = doBubbleSize = false;
+}
+
+void CGisItemWpt::leftClicked(const QPoint& pos)
+{
+    if(rectBubbleEdit.contains(pos))
+    {
+        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+        if(canvas)
+        {
+            doBubbleMove = doBubbleSize = false;
+            canvas->resetMouse();
+        }
+        mouseIsOverBubble = false;
+        edit();
+    }
+}
+
+void CGisItemWpt::toggleBubble()
+{
+    if(flags & eFlagWptBubble)
+    {
+        flags &= ~eFlagWptBubble;
+    }
+    else
+    {
+        flags |= eFlagWptBubble;
+    }
+    updateHistory();
+}
+
+void CGisItemWpt::processMouseOverBubble(const QPoint &pos)
+{
+    if(rectBubbleMove.contains(pos) || rectBubbleEdit.contains(pos) || rectBubbleSize.contains(pos))
+    {
+        if(!doSpecialCursor)
+        {
+            CCanvas::setOverrideCursor(Qt::PointingHandCursor, "processMouseOverBubble");
+            doSpecialCursor = true;
+        }
+    }
+    else
+    {
+        if(doSpecialCursor)
+        {
+            CCanvas::restoreOverrideCursor("processMouseOverBubble");
+            doSpecialCursor = false;
+        }
+    }
+}
+
+void CGisItemWpt::detBoundingRect()
+{
+    if(proximity == NOFLOAT)
+    {
+        boundingRect = QRectF(QPointF(wpt.lon,wpt.lat)*DEG_TO_RAD,QPointF(wpt.lon,wpt.lat)*DEG_TO_RAD);
+    }
+    else
+    {
+        qreal diag = proximity * 1.414213562;
+        QPointF cent(wpt.lon * DEG_TO_RAD, wpt.lat * DEG_TO_RAD);
+
+        QPointF pt1 = GPS_Math_Wpt_Projection(cent, diag, 225 * DEG_TO_RAD);
+        QPointF pt2 = GPS_Math_Wpt_Projection(cent, diag, 45 * DEG_TO_RAD);
+
+        boundingRect = QRectF(pt1,pt2);
+    }
+}
diff --git a/src/qmapshack/gis/wpt/CGisItemWpt.h b/src/qmapshack/gis/wpt/CGisItemWpt.h
new file mode 100644
index 0000000..2082f6a
--- /dev/null
+++ b/src/qmapshack/gis/wpt/CGisItemWpt.h
@@ -0,0 +1,388 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CGISITEMWPT_H
+#define CGISITEMWPT_H
+
+#include "gis/IGisItem.h"
+#include "gis/tnv/CTwoNavProject.h"
+
+#include <QCoreApplication>
+#include <QPointer>
+
+class IGisProject;
+class QDomNode;
+class CScrOptWpt;
+class CScrOptWptRadius;
+class QSqlDatabase;
+class CQlgtWpt;
+class QTextEdit;
+class QDir;
+class CFitStream;
+class CGisItemWpt : public IGisItem
+{
+    Q_DECLARE_TR_FUNCTIONS(CGisItemWpt)
+public:
+    enum geocacheservice_e {eGC, eOC, eTC};
+
+    struct geocachelog_t
+    {
+        quint32 id = 0;
+        QDateTime date;
+        QString type;
+        QString finderId;
+        QString finder;
+        bool textIsHtml = false;
+        QString text;
+    };
+
+    struct geocache_t
+    {
+        geocacheservice_e service = eOC;
+        bool hasData = false;
+        quint32 id = 0;
+        bool available = true;
+        bool archived = false;
+        qreal difficulty = 0;
+        qreal terrain = 0;
+        QString status;
+        QString name;
+        QString owner;
+        QString ownerId;
+        QString type;
+        QString container;
+        bool shortDescIsHtml = false;
+        QString shortDesc;
+        bool longDescIsHtml = false;
+        QString longDesc;
+        QString hint;
+        QString country;
+        QString state;
+        QString locale;
+        QList<geocachelog_t> logs;
+    };
+
+    struct image_t
+    {
+        QImage pixmap;
+        qreal direction = 0;
+        QString info;
+        QString filePath;
+        QString fileName;
+    };
+
+    CGisItemWpt(const QPointF &pos, qreal ele, const QDateTime &time, const QString &name, const QString &icon, IGisProject *project);
+
+    /**
+       @brief Create a completely new waypoint
+       @param pos       the waypoint's position [°]
+       @param name      the waypoint's name
+       @param icon      the waypoint's icon
+       @param project   the project the waypoint is added to
+     */
+    CGisItemWpt(const QPointF& pos, const QString& name, const QString& icon, IGisProject * project);
+    /**
+       @brief Create a copy of an existing waypoint with a new position
+       @param pos       the waypoint's new position [°]
+       @param parentWpt the waypoint to copy
+       @param project   the project the waypoint is added to
+     */
+    CGisItemWpt(const QPointF& pos, const CGisItemWpt &parentWpt, IGisProject *project);
+    /**
+       @brief Create a 1:1 copy of an existing waypoint (with new key)
+       @param parentWpt the waypoint to copy
+       @param project   the project the waypoint is added to
+       @param idx       the index to insert the item. If -1 the item will be appended to it's group
+     */
+    CGisItemWpt(const CGisItemWpt &parentWpt, IGisProject *project, int idx, bool clone);
+    /**
+       @brief Create item from GPX.
+       @param xml       the GPX section containing the item
+       @param project   the project to append with item
+     */
+    CGisItemWpt(const QDomNode& xml, IGisProject * project);
+
+    /**
+       @brief Create item from list of changes
+       @param hist      the change history
+       @param project   the project to append with item
+     */
+    CGisItemWpt(const history_t& hist, const QString& dbHash, IGisProject * project);
+
+    /**
+       @brief Read item from database by it's database ID
+       @param id        the item's ID in the database
+       @param db        the database itself
+       @param project   the project to append with item
+     */
+    CGisItemWpt(quint64 id, QSqlDatabase& db, IGisProject * project);
+
+    /**
+       @brief Read item from text stream with TwoNav encoding
+       @param tnvWpt
+       @param project
+     */
+    CGisItemWpt(const CTwoNavProject::wpt_t& tnvWpt, IGisProject * project);
+
+    CGisItemWpt(const CQlgtWpt& wpt1, IGisProject *project = nullptr);
+
+    CGisItemWpt(CFitStream& stream, IGisProject * project);
+
+    virtual ~CGisItemWpt();
+
+    IGisItem * createClone() override;
+
+    /**
+       @brief Save waypoint to GPX tree
+       @param gpx   The <gpx> node to append by the waypoint
+     */
+    void save(QDomNode& gpx, bool strictGpx11) override;
+    /**
+       @brief Save waypoint to TwoNav waypoint file
+       @param out   the text stream to write to
+     */
+    void saveTwoNav(QTextStream &out, const QDir &dir);
+    /**
+       @brief Save waypoint to TCX file
+       @param  courseNode  The course node to append by the waypoint
+       @param  crsPtDateTimeToBeSaved  course point dateTime to be saved (NOT the waypoint date and time !)
+     */
+    void saveTCX(QDomNode& courseNode, const QDateTime crsPtDateTimeToBeSaved);
+    /**
+       @brief Read serialized waypoint from a binary data stream
+       @param stream  the data stream to read from
+       @return A reference to the stream
+     */
+    QDataStream& operator<<(QDataStream& stream) override;
+    /**
+       @brief Serialize waypoint into a binary data stream
+       @param stream  the data stream to write to.
+       @return A reference to the stream
+     */
+    QDataStream& operator>>(QDataStream& stream) const override;
+
+    void setName(const QString& str);
+    void setPosition(const QPointF& pos);
+    void setElevation(qint32 val);
+    void setProximity(qreal val);
+    void setIcon(const QString& name);
+    void setComment(const QString& str)         override;
+    void setDescription(const QString& str)         override;
+    void setLinks(const QList<link_t>& links) override;
+    void setImages(const QList<image_t>& imgs);
+
+    /**
+       @brief Silently append list of links
+
+       Devices uses links to reference multimedia content attached to the waypoint.
+       These links have to be added to the list of normal links. See removeLinksByType()
+       on how to remove these links again.
+
+       @param links  list of links.
+     */
+    void appendLinks(const QList<link_t>& links)
+    {
+        wpt.links = links + wpt.links;
+    }
+
+    /**
+       @brief Silently append list of images
+
+       This is used to restore images from a device. As these images where part of the waypoint
+       object in the first place they have to be added to the waypoint again without creating
+       a new history entry.
+
+       @param imgs  list of images
+     */
+    void appendImages(const QList<image_t>& imgs)
+    {
+        images += imgs;
+    }
+
+    /**
+       @brief Append the list of images by a single image.
+       @param img   a single image
+     */
+    void addImage(const image_t& img);
+
+
+    const QString& getName() const override
+    {
+        return wpt.name.isEmpty() ? noName : wpt.name;
+    }
+
+    QString getInfo(quint32 feature) const override;
+    QPointF getPosition() const
+    {
+        return QPointF(wpt.lon, wpt.lat);
+    }
+
+    qint32 getElevation() const
+    {
+        return wpt.ele;
+    }
+    qreal getProximity() const
+    {
+        return proximity;
+    }
+    const QDateTime& getTime() const
+    {
+        return wpt.time;
+    }
+    const QString& getIconName() const
+    {
+        return wpt.sym;
+    }
+    const QString& getComment() const override
+    {
+        return wpt.cmt;
+    }
+    const QString& getDescription() const override
+    {
+        return wpt.desc;
+    }
+    const geocache_t& getGeoCache() const
+    {
+        return geocache;
+    }
+    const QList<link_t>& getLinks() const override
+    {
+        return wpt.links;
+    }
+    const QList<image_t>& getImages() const
+    {
+        return images;
+    }
+
+    QDateTime getTimestamp() const override
+    {
+        return wpt.time;
+    }
+
+
+    IScrOpt* getScreenOptions(const QPoint &origin, IMouse * mouse) override;
+
+    QPointF getPointCloseBy(const QPoint& point) override;
+
+    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CGisDraw * gis) override;
+    void drawItem(QPainter& p, const QRectF& viewport, CGisDraw * gis) override;
+    void drawLabel(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, const QFontMetricsF& fm, CGisDraw * gis) override;
+    void drawHighlight(QPainter& p) override;
+    bool isCloseTo(const QPointF& pos) override;
+    bool isWithin(const QRectF &area, selflags_t flags) override;
+    void mouseMove(const QPointF& pos) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& pos);
+    void dragFinished(const QPoint& pos);
+    void leftClicked(const QPoint& pos);
+    bool isGeocache()
+    {
+        return geocache.hasData;
+    }
+
+    bool hasRadius()
+    {
+        return proximity < NOFLOAT;
+    }
+
+    qreal getRadius()
+    {
+        return radius;
+    }
+
+    void gainUserFocus(bool yes) override;
+
+    void edit() override;
+
+    /**
+       @brief Remove all links from the waypoint's link list with a given type
+
+       This is used by devices that use links to attach multimedia items to a waypoint like images.
+       These links only make sense on the device. Therefor the links have to be removed after the
+       waypoint has been loaded from the device.
+
+       @param type
+     */
+    void removeLinksByType(const QString& type);
+
+    void toggleBubble();
+    bool hasBubble()
+    {
+        return bool(flags & eFlagWptBubble);
+    }
+
+    void setHideArea(bool hide)
+    {
+        hideArea = hide;
+    }
+
+    static bool getNewWptData(QPointF& pt, QString& icon, QString& name);
+
+    static void drawCircle(QPainter& p, const QPointF& pos, const qreal& r, const bool &avoid, const bool &selected);
+    static qreal calcRadius(const QPointF& posRad, const QPointF& posPx, const qreal& radiusRad, CGisDraw *gis);
+
+private:
+    void setIcon();
+    void setSymbol() override;
+    void readGpx(const QDomNode& xml);
+    void readTwoNav(const CTwoNavProject::wpt_t &tnvWpt);
+    void readWptFromFit(CFitStream &stream);
+    void readGcExt(const QDomNode& xmlCache);
+    void writeGcExt(QDomNode& xmlCache);
+    void drawBubble(QPainter& p);
+    QPolygonF makePolyline(const QPointF& anchor, const QRectF& r);
+    void processMouseOverBubble(const QPoint &pos);
+    void detBoundingRect();
+
+    static key_t keyUserFocus;
+
+    // --- start all waypoint data ----
+    wpt_t wpt;
+    qreal proximity = NOFLOAT;
+    qreal radius = NOFLOAT;
+    bool closeToRadius = false;
+    bool hideArea = false;
+    geocache_t geocache;
+    QList<image_t> images;
+
+    QPointF focus;
+    QPointF posScreen = NOPOINTF;
+
+    // additional data, common to all IGisItems, is found in IItem //
+
+    // --- stop all waypoint data ----
+
+    QPointer<CScrOptWpt> scrOptWpt;
+    QPointer<CScrOptWptRadius> scrOptRadius;
+
+    bool doSpecialCursor   = false;
+    bool doBubbleMove      = false;
+    bool doBubbleSize      = false;
+    bool mouseIsOverBubble = false;
+    QRect rectBubble;
+    QRect rectBubbleMove {0,0,16,16};
+    QRect rectBubbleEdit {0,0,16,16};
+    QRect rectBubbleSize {0,0,16,16};
+
+    QPoint offsetMouse;
+    QPoint offsetBubble {-320, -150};
+    quint32 widthBubble = 300;
+};
+
+#endif // CGISITEMWPT_H
+
diff --git a/src/gis/wpt/CProjWpt.cpp b/src/qmapshack/gis/wpt/CProjWpt.cpp
similarity index 100%
rename from src/gis/wpt/CProjWpt.cpp
rename to src/qmapshack/gis/wpt/CProjWpt.cpp
diff --git a/src/gis/wpt/CProjWpt.h b/src/qmapshack/gis/wpt/CProjWpt.h
similarity index 100%
rename from src/gis/wpt/CProjWpt.h
rename to src/qmapshack/gis/wpt/CProjWpt.h
diff --git a/src/qmapshack/gis/wpt/CScrOptWpt.cpp b/src/qmapshack/gis/wpt/CScrOptWpt.cpp
new file mode 100644
index 0000000..75031c8
--- /dev/null
+++ b/src/qmapshack/gis/wpt/CScrOptWpt.cpp
@@ -0,0 +1,144 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/wpt/CProjWpt.h"
+#include "gis/wpt/CScrOptWpt.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+
+#include <QtWidgets>
+
+CScrOptWpt::CScrOptWpt(CGisItemWpt *wpt, const QPoint& point, IMouse *parent)
+    : IScrOpt(parent)
+    , key(wpt->getKey())
+{
+    setupUi(this);
+    setOrigin(point);
+    label->setFont(CMainWindow::self().getMapFont());
+    label->setText(wpt->getInfo(IGisItem::eFeatureShowName));
+    adjustSize();
+
+    toolProj->setDisabled(wpt->isGeocache() || wpt->isOnDevice());
+    toolMove->setDisabled(wpt->isGeocache() || wpt->isOnDevice());
+    photoAlbum->reload(wpt->getImages());
+    toolBubble->setChecked(wpt->hasBubble());
+    bool radius = wpt->hasRadius();
+    toolNogoArea->setEnabled(radius);
+    toolNogoArea->setChecked(radius && wpt->isNogo());
+    toolDelRadius->setEnabled(radius);
+
+    anchor = wpt->getPointCloseBy(point);
+    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+    show();
+
+    connect(toolDelete,     &QToolButton::clicked, this, &CScrOptWpt::hide);
+    connect(toolEdit,       &QToolButton::clicked, this, &CScrOptWpt::hide);
+    connect(toolCopy,       &QToolButton::clicked, this, &CScrOptWpt::hide);
+    connect(toolMove,       &QToolButton::clicked, this, &CScrOptWpt::hide);
+    connect(toolProj,       &QToolButton::clicked, this, &CScrOptWpt::hide);
+    connect(toolBubble,     &QToolButton::clicked, this, &CScrOptWpt::hide);
+
+    connect(toolDelete,     &QToolButton::clicked, this, &CScrOptWpt::slotDelete);
+    connect(toolEdit,       &QToolButton::clicked, this, &CScrOptWpt::slotEdit);
+    connect(toolCopy,       &QToolButton::clicked, this, &CScrOptWpt::slotCopy);
+    connect(toolMove,       &QToolButton::clicked, this, &CScrOptWpt::slotMove);
+    connect(toolProj,       &QToolButton::clicked, this, &CScrOptWpt::slotProj);
+    connect(toolBubble,     &QToolButton::clicked, this, &CScrOptWpt::slotBubble);
+    connect(toolDelRadius,  &QToolButton::clicked, this, &CScrOptWpt::slotDeleteRadius);
+    connect(toolNogoArea,   &QToolButton::clicked, this, &CScrOptWpt::slotNogoArea);
+    connect(toolEditRadius, &QToolButton::clicked, this, &CScrOptWpt::slotEditRadius);
+
+    adjustSize();
+}
+
+CScrOptWpt::~CScrOptWpt()
+{
+}
+
+void CScrOptWpt::slotDelete()
+{
+    CGisWorkspace::self().delItemByKey(key);
+    close();
+}
+
+void CScrOptWpt::slotEdit()
+{
+    CGisWorkspace::self().editItemByKey(key);
+    close();
+}
+
+void CScrOptWpt::slotCopy()
+{
+    CGisWorkspace::self().copyItemByKey(key);
+    close();
+}
+
+void CScrOptWpt::slotMove()
+{
+    CGisWorkspace::self().moveWptByKey(key);
+    close();
+}
+
+void CScrOptWpt::slotProj()
+{
+    CGisWorkspace::self().projWptByKey(key);
+    close();
+}
+
+void CScrOptWpt::slotBubble()
+{
+    CGisWorkspace::self().toggleWptBubble(key);
+    close();
+}
+
+void CScrOptWpt::slotDeleteRadius()
+{
+    CGisWorkspace::self().deleteWptRadius(key);
+    close();
+}
+
+void CScrOptWpt::slotNogoArea()
+{
+    CGisWorkspace::self().toggleNogoItem(key);
+    close();
+}
+
+void CScrOptWpt::slotEditRadius()
+{
+    CGisWorkspace::self().editWptRadius(key);
+    close();
+}
+
+void CScrOptWpt::draw(QPainter& p)
+{
+    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
+    if(nullptr == item)
+    {
+        close();
+        return;
+    }
+    item->drawHighlight(p);
+
+    CDraw::bubble(p, geometry(), anchor.toPoint());
+}
diff --git a/src/gis/wpt/CScrOptWpt.h b/src/qmapshack/gis/wpt/CScrOptWpt.h
similarity index 100%
rename from src/gis/wpt/CScrOptWpt.h
rename to src/qmapshack/gis/wpt/CScrOptWpt.h
diff --git a/src/qmapshack/gis/wpt/CScrOptWptRadius.cpp b/src/qmapshack/gis/wpt/CScrOptWptRadius.cpp
new file mode 100644
index 0000000..e77d4eb
--- /dev/null
+++ b/src/qmapshack/gis/wpt/CScrOptWptRadius.cpp
@@ -0,0 +1,98 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "gis/wpt/CProjWpt.h"
+#include "gis/wpt/CScrOptWptRadius.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+
+#include <QtWidgets>
+
+CScrOptWptRadius::CScrOptWptRadius(CGisItemWpt *wpt, const QPoint& point, IMouse *parent)
+    : IScrOpt(parent)
+    , key(wpt->getKey())
+{
+    setupUi(this);
+    setOrigin(point);
+    label->setFont(CMainWindow::self().getMapFont());
+
+    qreal proximity = wpt->getProximity();
+    if(proximity == NOFLOAT)
+    {
+        proximity = 0.;
+    }
+
+    QString val, unit;
+    IUnit::self().meter2distance(proximity, val, unit);
+    label->setText(QString("%1%2").arg(val).arg(unit));
+
+    adjustSize();
+
+    toolNogoArea->setChecked(wpt->isNogo());
+
+    anchor = wpt->getPointCloseBy(point);
+    move(anchor.toPoint() + QPoint(-width()/2,SCR_OPT_OFFSET));
+    show();
+
+    connect(toolDelete,   &QToolButton::clicked, this, &CScrOptWptRadius::slotDelete);
+    connect(toolEdit,     &QToolButton::clicked, this, &CScrOptWptRadius::slotEdit);
+    connect(toolNogoArea, &QToolButton::clicked, this, &CScrOptWptRadius::slotNogoArea);
+
+    adjustSize();
+}
+
+CScrOptWptRadius::~CScrOptWptRadius()
+{
+}
+
+void CScrOptWptRadius::slotDelete()
+{
+    CGisWorkspace::self().deleteWptRadius(key);
+    close();
+}
+
+void CScrOptWptRadius::slotNogoArea()
+{
+    CGisWorkspace::self().toggleNogoItem(key);
+    close();
+}
+
+void CScrOptWptRadius::slotEdit()
+{
+    CGisWorkspace::self().editWptRadius(key);
+    close();
+}
+
+void CScrOptWptRadius::draw(QPainter& p)
+{
+    IGisItem * item = CGisWorkspace::self().getItemByKey(key);
+    if(nullptr == item)
+    {
+        close();
+        return;
+    }
+    item->drawHighlight(p);
+
+    CDraw::bubble(p, geometry(), anchor.toPoint());
+}
diff --git a/src/gis/wpt/CScrOptWptRadius.h b/src/qmapshack/gis/wpt/CScrOptWptRadius.h
similarity index 100%
rename from src/gis/wpt/CScrOptWptRadius.h
rename to src/qmapshack/gis/wpt/CScrOptWptRadius.h
diff --git a/src/gis/wpt/CSetupNewWpt.cpp b/src/qmapshack/gis/wpt/CSetupNewWpt.cpp
similarity index 100%
rename from src/gis/wpt/CSetupNewWpt.cpp
rename to src/qmapshack/gis/wpt/CSetupNewWpt.cpp
diff --git a/src/gis/wpt/CSetupNewWpt.h b/src/qmapshack/gis/wpt/CSetupNewWpt.h
similarity index 100%
rename from src/gis/wpt/CSetupNewWpt.h
rename to src/qmapshack/gis/wpt/CSetupNewWpt.h
diff --git a/src/gis/wpt/IDetailsGeoCache.ui b/src/qmapshack/gis/wpt/IDetailsGeoCache.ui
similarity index 100%
rename from src/gis/wpt/IDetailsGeoCache.ui
rename to src/qmapshack/gis/wpt/IDetailsGeoCache.ui
diff --git a/src/qmapshack/gis/wpt/IDetailsWpt.ui b/src/qmapshack/gis/wpt/IDetailsWpt.ui
new file mode 100644
index 0000000..0c67aa0
--- /dev/null
+++ b/src/qmapshack/gis/wpt/IDetailsWpt.ui
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IDetailsWpt</class>
+ <widget class="QDialog" name="IDetailsWpt">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>550</width>
+    <height>460</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <property name="windowIcon">
+   <iconset resource="../../resources.qrc">
+    <normaloff>:/icons/32x32/Map.png</normaloff>:/icons/32x32/Map.png</iconset>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tab">
+      <attribute name="title">
+       <string>Info</string>
+      </attribute>
+      <layout class="QHBoxLayout" name="horizontalLayout_4">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <layout class="QGridLayout" name="gridLayout">
+         <property name="spacing">
+          <number>3</number>
+         </property>
+         <item row="1" column="1">
+          <layout class="QHBoxLayout" name="horizontalLayout_2">
+           <item>
+            <widget class="QLabel" name="label_3">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>Position:</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelPosition">
+             <property name="text">
+              <string>-</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="label">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>Ele.</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelElevation">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>-</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="label_2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>Proximity:</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelProximity">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>-</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item row="3" column="1">
+          <widget class="QTextBrowser" name="textCmtDesc">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="frameShape">
+            <enum>QFrame::NoFrame</enum>
+           </property>
+           <property name="openLinks">
+            <bool>false</bool>
+           </property>
+          </widget>
+         </item>
+         <item row="4" column="1">
+          <widget class="CPhotoAlbum" name="photoAlbum" native="true">
+           <property name="minimumSize">
+            <size>
+             <width>0</width>
+             <height>150</height>
+            </size>
+           </property>
+           <property name="maximumSize">
+            <size>
+             <width>16777215</width>
+             <height>150</height>
+            </size>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <layout class="QHBoxLayout" name="horizontalLayout">
+           <item>
+            <widget class="CLineEdit" name="lineName">
+             <property name="palette">
+              <palette>
+               <active>
+                <colorrole role="Base">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+                <colorrole role="Window">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+               </active>
+               <inactive>
+                <colorrole role="Base">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+                <colorrole role="Window">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+               </inactive>
+               <disabled>
+                <colorrole role="Base">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+                <colorrole role="Window">
+                 <brush brushstyle="SolidPattern">
+                  <color alpha="0">
+                   <red>0</red>
+                   <green>0</green>
+                   <blue>0</blue>
+                  </color>
+                 </brush>
+                </colorrole>
+               </disabled>
+              </palette>
+             </property>
+             <property name="font">
+              <font>
+               <weight>75</weight>
+               <bold>true</bold>
+              </font>
+             </property>
+             <property name="frame">
+              <bool>false</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelTainted">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="maximumSize">
+              <size>
+               <width>25</width>
+               <height>25</height>
+              </size>
+             </property>
+             <property name="toolTip">
+              <string>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </string>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="pixmap">
+              <pixmap resource="../../resources.qrc">:/icons/32x32/Tainted.png</pixmap>
+             </property>
+             <property name="scaledContents">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelNogo">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="maximumSize">
+              <size>
+               <width>22</width>
+               <height>22</height>
+              </size>
+             </property>
+             <property name="toolTip">
+              <string>This Waypoint is a NoGo-Area</string>
+             </property>
+             <property name="text">
+              <string/>
+             </property>
+             <property name="pixmap">
+              <pixmap resource="../../resources.qrc">:/icons/32x32/NoGo.png</pixmap>
+             </property>
+             <property name="scaledContents">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QToolButton" name="toolLock">
+             <property name="toolTip">
+              <string>Toggle read only mode. You have to open the lock to edit the item.</string>
+             </property>
+             <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>
+             <property name="autoRaise">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item row="2" column="1">
+          <layout class="QHBoxLayout" name="horizontalLayout_3">
+           <item>
+            <widget class="QLabel" name="label_4">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>Date/Time:</string>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLabel" name="labelTime">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>-</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item row="4" column="0">
+          <layout class="QVBoxLayout" name="verticalLayout">
+           <item>
+            <widget class="QToolButton" name="toolAddImage">
+             <property name="toolTip">
+              <string>Add images.</string>
+             </property>
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="icon">
+              <iconset resource="../../resources.qrc">
+               <normaloff>:/icons/32x32/AddImage.png</normaloff>:/icons/32x32/AddImage.png</iconset>
+             </property>
+             <property name="iconSize">
+              <size>
+               <width>22</width>
+               <height>22</height>
+              </size>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QToolButton" name="toolDelImage">
+             <property name="toolTip">
+              <string>Delete selected image.</string>
+             </property>
+             <property name="text">
+              <string>...</string>
+             </property>
+             <property name="icon">
+              <iconset resource="../../resources.qrc">
+               <normaloff>:/icons/32x32/DelImage.png</normaloff>:/icons/32x32/DelImage.png</iconset>
+             </property>
+             <property name="iconSize">
+              <size>
+               <width>22</width>
+               <height>22</height>
+              </size>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <spacer name="verticalSpacer">
+             <property name="orientation">
+              <enum>Qt::Vertical</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>20</width>
+               <height>40</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+         <item row="0" column="0">
+          <widget class="QToolButton" name="toolIcon">
+           <property name="text">
+            <string>...</string>
+           </property>
+           <property name="iconSize">
+            <size>
+             <width>22</width>
+             <height>22</height>
+            </size>
+           </property>
+           <property name="autoRaise">
+            <bool>true</bool>
+           </property>
+          </widget>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tab_2">
+      <attribute name="title">
+       <string>Hist.</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <property name="spacing">
+        <number>0</number>
+       </property>
+       <property name="leftMargin">
+        <number>0</number>
+       </property>
+       <property name="topMargin">
+        <number>0</number>
+       </property>
+       <property name="rightMargin">
+        <number>0</number>
+       </property>
+       <property name="bottomMargin">
+        <number>0</number>
+       </property>
+       <item>
+        <widget class="CHistoryListWidget" name="listHistory"/>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CHistoryListWidget</class>
+   <extends>QListWidget</extends>
+   <header>widgets/CHistoryListWidget.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CLineEdit</class>
+   <extends>QLineEdit</extends>
+   <header>widgets/CLineEdit.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CPhotoAlbum</class>
+   <extends>QWidget</extends>
+   <header>widgets/CPhotoAlbum.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/gis/wpt/IProjWpt.ui b/src/qmapshack/gis/wpt/IProjWpt.ui
similarity index 100%
rename from src/gis/wpt/IProjWpt.ui
rename to src/qmapshack/gis/wpt/IProjWpt.ui
diff --git a/src/qmapshack/gis/wpt/IScrOptWpt.ui b/src/qmapshack/gis/wpt/IScrOptWpt.ui
new file mode 100644
index 0000000..644ba35
--- /dev/null
+++ b/src/qmapshack/gis/wpt/IScrOptWpt.ui
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptWpt</class>
+ <widget class="QWidget" name="IScrOptWpt">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>500</width>
+    <height>157</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolEdit">
+       <property name="enabled">
+        <bool>true</bool>
+       </property>
+       <property name="toolTip">
+        <string>View details and edit.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/EditDetails.png</normaloff>:/icons/32x32/EditDetails.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolCopy">
+       <property name="toolTip">
+        <string>Copy waypoint into another project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelete">
+       <property name="toolTip">
+        <string>Delete waypoint from project.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolBubble">
+       <property name="toolTip">
+        <string>Show content as static bubble.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Bubble.png</normaloff>:/icons/32x32/Bubble.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolMove">
+       <property name="toolTip">
+        <string>Move waypoint to a new location.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptMove.png</normaloff>:/icons/32x32/WptMove.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolProj">
+       <property name="toolTip">
+        <string>Clone waypoint and move clone a given distance and angle.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptProj.png</normaloff>:/icons/32x32/WptProj.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolEditRadius">
+       <property name="toolTip">
+        <string>edit radius of circular area</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptEditProx.png</normaloff>:/icons/32x32/WptEditProx.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelRadius">
+       <property name="toolTip">
+        <string>Delete circle defined by waypoint</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptDelProx.png</normaloff>:/icons/32x32/WptDelProx.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolNogoArea">
+       <property name="toolTip">
+        <string>Switch between proximity and nogo-area</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/NoGo.png</normaloff>:/icons/32x32/NoGo.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>300</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>500</width>
+       <height>16777215</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="CPhotoAlbum" name="photoAlbum" native="true">
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>100</height>
+      </size>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CPhotoAlbum</class>
+   <extends>QWidget</extends>
+   <header>widgets/CPhotoAlbum.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/gis/wpt/IScrOptWptRadius.ui b/src/qmapshack/gis/wpt/IScrOptWptRadius.ui
new file mode 100644
index 0000000..ad6c9f9
--- /dev/null
+++ b/src/qmapshack/gis/wpt/IScrOptWptRadius.ui
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptWptRadius</class>
+ <widget class="QWidget" name="IScrOptWptRadius">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>306</width>
+    <height>52</height>
+   </rect>
+  </property>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <property name="sizeConstraint">
+      <enum>QLayout::SetNoConstraint</enum>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolEdit">
+       <property name="toolTip">
+        <string>edit radius of circular area</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptEditProx.png</normaloff>:/icons/32x32/WptEditProx.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelete">
+       <property name="toolTip">
+        <string>Delete circle defined by waypoint</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/WptDelProx.png</normaloff>:/icons/32x32/WptDelProx.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolNogoArea">
+       <property name="toolTip">
+        <string>Switch between proximity and nogo-area</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/NoGo.png</normaloff>:/icons/32x32/NoGo.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>0</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>0</width>
+       <height>0</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>500</width>
+       <height>16777215</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+     <property name="textInteractionFlags">
+      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/gis/wpt/ISetupNewWpt.ui b/src/qmapshack/gis/wpt/ISetupNewWpt.ui
similarity index 100%
rename from src/gis/wpt/ISetupNewWpt.ui
rename to src/qmapshack/gis/wpt/ISetupNewWpt.ui
diff --git a/src/grid/CGrid.cpp b/src/qmapshack/grid/CGrid.cpp
similarity index 100%
rename from src/grid/CGrid.cpp
rename to src/qmapshack/grid/CGrid.cpp
diff --git a/src/grid/CGrid.h b/src/qmapshack/grid/CGrid.h
similarity index 100%
rename from src/grid/CGrid.h
rename to src/qmapshack/grid/CGrid.h
diff --git a/src/qmapshack/grid/CGridSetup.cpp b/src/qmapshack/grid/CGridSetup.cpp
new file mode 100644
index 0000000..d5c22e5
--- /dev/null
+++ b/src/qmapshack/grid/CGridSetup.cpp
@@ -0,0 +1,93 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "grid/CGrid.h"
+#include "grid/CGridSetup.h"
+#include "grid/CProjWizard.h"
+#include "map/CMapDraw.h"
+
+#include <QtWidgets>
+
+CGridSetup::CGridSetup(CGrid *grid, CMapDraw * map)
+    : QDialog(CMainWindow::getBestWidgetForParent())
+    , grid(grid)
+    , map(map)
+{
+    setupUi(this);
+
+    lineProjection->setText(grid->projstr);
+    lineProjection->setCursorPosition(0);
+
+    QPalette palette = labelGridColor->palette();
+    palette.setColor(labelGridColor->foregroundRole(), grid->color);
+    labelGridColor->setPalette(palette);
+
+    connect(toolRestoreDefault, &QToolButton::clicked, this, &CGridSetup::slotRestoreDefault);
+    connect(toolFromMap,        &QToolButton::clicked, this, &CGridSetup::slotProjFromMap);
+    connect(toolProjWizard,    &QToolButton::clicked, this, &CGridSetup::slotProjWizard);
+    connect(toolGridColor,      &QToolButton::clicked, this, &CGridSetup::slotSelectGridColor);
+}
+
+CGridSetup::~CGridSetup()
+{
+}
+
+void CGridSetup::accept()
+{
+    if (CProjWizard::validProjStr(lineProjection->text(), true))
+    {
+        QPalette palette = labelGridColor->palette();
+        grid->setProjAndColor(lineProjection->text(), palette.color(labelGridColor->foregroundRole()));
+
+        QDialog::accept();
+    }
+}
+
+void CGridSetup::slotProjWizard()
+{
+    CProjWizard dlg(*lineProjection);
+    dlg.exec();
+}
+
+void CGridSetup::slotSelectGridColor()
+{
+    QPalette palette = labelGridColor->palette();
+    QColor color = palette.color(labelGridColor->foregroundRole());
+
+    color = QColorDialog::getColor(color, this);
+
+    if(color.isValid())
+    {
+        palette.setColor(labelGridColor->foregroundRole(), color);
+        labelGridColor->setPalette(palette);
+    }
+}
+
+void CGridSetup::slotRestoreDefault()
+{
+    lineProjection->setText("+proj=longlat +datum=WGS84 +no_defs");
+    lineProjection->setCursorPosition(0);
+}
+
+void CGridSetup::slotProjFromMap()
+{
+    lineProjection->setText(map->getProjection());
+    lineProjection->setCursorPosition(0);
+}
+
diff --git a/src/grid/CGridSetup.h b/src/qmapshack/grid/CGridSetup.h
similarity index 100%
rename from src/grid/CGridSetup.h
rename to src/qmapshack/grid/CGridSetup.h
diff --git a/src/qmapshack/grid/CProjWizard.cpp b/src/qmapshack/grid/CProjWizard.cpp
new file mode 100644
index 0000000..df54ebf
--- /dev/null
+++ b/src/qmapshack/grid/CProjWizard.cpp
@@ -0,0 +1,239 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "CProjWizard.h"
+#include "grid/mitab.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+struct mitab_entry_t
+{
+    QString name;
+    int idx;
+};
+
+static bool mitabLessThan(const mitab_entry_t &s1, const mitab_entry_t &s2)
+{
+    return s1.name < s2.name;
+}
+
+CProjWizard::CProjWizard(QLineEdit &line)
+    : QDialog(CMainWindow::getBestWidgetForParent())
+    , line(line)
+{
+    setupUi(this);
+    QList<mitab_entry_t> list;
+    int idx = 0;
+    const MapInfoDatumInfo * di = asDatumInfoListQL;
+
+    while(di->nMapInfoDatumID != -1)
+    {
+        mitab_entry_t entry;
+        entry.name  = di->pszOGCDatumName;
+        entry.idx   = idx;
+        list << entry;
+        ++di;
+        ++idx;
+    }
+    qSort(list.begin(), list.end(), mitabLessThan);
+
+    for(const mitab_entry_t &entry : list)
+    {
+        comboDatum->addItem(entry.name, entry.idx);
+    }
+
+    comboHemisphere->addItem(tr("north"), "");
+    comboHemisphere->addItem(tr("south"), "+south");
+
+    connect(radioMercator,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioWorldMercator, &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUPSNorth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUPSSouth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUTM,           &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUserDef,       &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(lineUserDef,        &QLineEdit::textChanged, this, &CProjWizard::slotChange);
+
+    connect(spinUTMZone,        static_cast<void (QSpinBox::*)(int) >(&QSpinBox::valueChanged),         this, &CProjWizard::slotChange);
+    connect(comboDatum,         static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
+    connect(comboHemisphere,    static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
+
+    QString projstr = line.text();
+    QRegExp re2("\\s*\\+proj=merc \\+a=6378137 \\+b=6378137 \\+lat_ts=0.001 \\+lon_0=0.0 \\+x_0=0.0 \\+y_0=0 \\+k=1.0 \\+units=m \\+nadgrids=@null \\+no_defs");
+    QRegExp re3("\\s*\\+proj=merc\\s(.*)");
+    QRegExp re4("\\s*\\+proj=utm \\+zone=([0-9]+)\\s(.*)");
+
+    if(re2.exactMatch(projstr))
+    {
+        radioWorldMercator->setChecked(true);
+    }
+    else if(re3.exactMatch(projstr))
+    {
+        radioMercator->setChecked(true);
+        findDatum(re3.cap(1));
+    }
+    else if(re4.exactMatch(projstr))
+    {
+        radioUTM->setChecked(true);
+        spinUTMZone->setValue(re4.cap(1).toInt());
+
+        QString datum = re4.cap(2);
+        if(datum.startsWith("+south "))
+        {
+            datum = datum.mid(7);
+            comboHemisphere->setCurrentIndex(1);
+        }
+
+        findDatum(datum);
+    }
+
+    slotChange();
+}
+
+CProjWizard::~CProjWizard()
+{
+}
+
+
+void CProjWizard::findDatum(const QString& str)
+{
+    QString cmp;
+    int idx = 0;
+    const MapInfoDatumInfo * di   = asDatumInfoListQL;
+
+    while(di->nMapInfoDatumID != -1)
+    {
+        cmp.clear();
+        if(di->pszOGCDatumName != QString())
+        {
+            const MapInfoSpheroidInfo * si = asSpheroidInfoList;
+            while(si->nMapInfoId != -1)
+            {
+                if(si->nMapInfoId == di->nEllipsoid)
+                {
+                    break;
+                }
+                ++si;
+            }
+
+            cmp += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
+            cmp += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di->dfShiftX).arg(di->dfShiftY).arg(di->dfShiftZ).arg(di->dfDatumParm0).arg(di->dfDatumParm1).arg(di->dfDatumParm2).arg(di->dfDatumParm3).arg(di->dfDatumParm4);
+            cmp += "+units=m  +no_defs";
+        }
+
+        if(cmp == str)
+        {
+            comboDatum->setCurrentIndex(comboDatum->findText(di->pszOGCDatumName));
+            break;
+        }
+
+        ++di;
+        ++idx;
+    }
+}
+
+
+void CProjWizard::slotChange()
+{
+    QString str;
+    if(radioMercator->isChecked())
+    {
+        str += "+proj=merc ";
+    }
+    else if(radioWorldMercator->isChecked())
+    {
+        str += "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.001 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
+        labelResult->setText(str);
+        return;
+    }
+    else if(radioUPSNorth->isChecked())
+    {
+        str += "+init=epsg:32661";
+    }
+    else if(radioUPSSouth->isChecked())
+    {
+        str += "+init=epsg:32761";
+    }
+    else if(radioUTM->isChecked())
+    {
+        str += QString("+proj=utm +zone=%1 %2 ").arg(spinUTMZone->value()).arg(comboHemisphere->itemData(comboHemisphere->currentIndex()).toString());
+    }
+    else if(radioUserDef->isChecked())
+    {
+        str += lineUserDef->text() + " ";
+    }
+
+    int idx = comboDatum->itemData(comboDatum->currentIndex()).toInt();
+    const MapInfoDatumInfo di = asDatumInfoListQL[idx];
+    if(di.pszOGCDatumName != QString())
+    {
+        const MapInfoSpheroidInfo * si = asSpheroidInfoList;
+        while(si->nMapInfoId != -1)
+        {
+            if(si->nMapInfoId == di.nEllipsoid)
+            {
+                break;
+            }
+            ++si;
+        }
+
+        str += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
+        str += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di.dfShiftX).arg(di.dfShiftY).arg(di.dfShiftZ).arg(di.dfDatumParm0).arg(di.dfDatumParm1).arg(di.dfDatumParm2).arg(di.dfDatumParm3).arg(di.dfDatumParm4);
+        str += "+units=m  +no_defs";
+    }
+
+    labelResult->setText(str);
+}
+
+
+void CProjWizard::accept()
+{
+    if (CProjWizard::validProjStr(labelResult->text(), true))
+    {
+        line.setText(labelResult->text());
+        line.setCursorPosition(0);
+        QDialog::accept();
+    }
+}
+
+
+bool CProjWizard::validProjStr(const QString projStr, bool allowLonLatToo)
+{
+    projPJ projCheck = pj_init_plus(projStr.toUtf8().data());
+
+    if (!projCheck)
+    {
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."),tr("The value\n'%1'\nis not a valid coordinate system definition:\n%2").arg(projStr).arg(pj_strerrno(pj_errno)),QMessageBox::Abort,QMessageBox::Abort);
+        return false;
+    }
+    else
+    {
+        bool res = true;
+        if(!allowLonLatToo && pj_is_latlong(projCheck))
+        {
+            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."),tr("Lat/Lon projection is not allowed in this case."), QMessageBox::Abort, QMessageBox::Abort);
+            res = false;
+        }
+
+        pj_free(projCheck);
+        return res;
+    }
+}
+
+
diff --git a/src/qmapshack/grid/CProjWizard.h b/src/qmapshack/grid/CProjWizard.h
new file mode 100644
index 0000000..90471cb
--- /dev/null
+++ b/src/qmapshack/grid/CProjWizard.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CPROJWIZARD_H
+#define CPROJWIZARD_H
+
+#include "ui_IProjWizard.h"
+#include <QDialog>
+
+class CProjWizard : public QDialog, private Ui::IProjWizard
+{
+    Q_OBJECT
+public:
+    CProjWizard(QLineEdit& line);
+    virtual ~CProjWizard();
+    static bool validProjStr(const QString projStr, bool allowLonLatToo);
+
+public slots:
+    void accept() override;
+    void slotChange();
+
+private:
+    void findDatum(const QString& str);
+
+    QLineEdit& line;
+};
+
+#endif //CPROJWIZARD_H
+
diff --git a/src/qmapshack/grid/IGridSetup.ui b/src/qmapshack/grid/IGridSetup.ui
new file mode 100644
index 0000000..19b26c2
--- /dev/null
+++ b/src/qmapshack/grid/IGridSetup.ui
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGridSetup</class>
+ <widget class="QDialog" name="IGridSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>446</width>
+    <height>140</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup Grid...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="1" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Projection</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QToolButton" name="toolRestoreDefault">
+         <property name="minimumSize">
+          <size>
+           <width>32</width>
+           <height>32</height>
+          </size>
+         </property>
+         <property name="toolTip">
+          <string>restore default</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset resource="../resources.qrc">
+           <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="toolFromMap">
+         <property name="minimumSize">
+          <size>
+           <width>32</width>
+           <height>32</height>
+          </size>
+         </property>
+         <property name="toolTip">
+          <string>Get projection from current map.</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset resource="../resources.qrc">
+           <normaloff>:/icons/32x32/FromMap.png</normaloff>:/icons/32x32/FromMap.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="toolProjWizard">
+         <property name="minimumSize">
+          <size>
+           <width>32</width>
+           <height>32</height>
+          </size>
+         </property>
+         <property name="toolTip">
+          <string>projection wizzard</string>
+         </property>
+         <property name="text">
+          <string>...</string>
+         </property>
+         <property name="icon">
+          <iconset resource="../resources.qrc">
+           <normaloff>:/icons/32x32/GridWizard.png</normaloff>:/icons/32x32/GridWizard.png</iconset>
+         </property>
+         <property name="iconSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer">
+         <property name="orientation">
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </item>
+     <item row="1" column="3">
+      <widget class="QLabel" name="labelGridColor">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string>Grid color</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="4">
+      <widget class="QToolButton" name="toolGridColor">
+       <property name="minimumSize">
+        <size>
+         <width>32</width>
+         <height>32</height>
+        </size>
+       </property>
+       <property name="toolTip">
+        <string>setup grid color</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0" colspan="5">
+      <widget class="QLineEdit" name="lineProjection"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <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>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>IGridSetup</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>IGridSetup</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/qmapshack/grid/IProjWizard.ui b/src/qmapshack/grid/IProjWizard.ui
new file mode 100644
index 0000000..3f78eec
--- /dev/null
+++ b/src/qmapshack/grid/IProjWizard.ui
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IProjWizard</class>
+ <widget class="QDialog" name="IProjWizard">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>440</width>
+    <height>280</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Proj4 Wizard</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QGridLayout">
+      <item row="1" column="1">
+       <widget class="QRadioButton" name="radioMercator">
+        <property name="text">
+         <string>Mercator</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1">
+       <layout class="QHBoxLayout">
+        <item>
+         <widget class="QRadioButton" name="radioUTM">
+          <property name="text">
+           <string>UTM</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_3">
+          <property name="text">
+           <string>zone</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="spinUTMZone">
+          <property name="minimum">
+           <number>1</number>
+          </property>
+          <property name="maximum">
+           <number>60</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QComboBox" name="comboHemisphere"/>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item row="6" column="1">
+       <layout class="QHBoxLayout">
+        <item>
+         <widget class="QRadioButton" name="radioUserDef">
+          <property name="text">
+           <string>user defined</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineUserDef"/>
+        </item>
+       </layout>
+      </item>
+      <item row="7" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Datum</string>
+        </property>
+       </widget>
+      </item>
+      <item row="7" column="1">
+       <widget class="QComboBox" name="comboDatum"/>
+      </item>
+      <item row="2" column="1">
+       <widget class="QRadioButton" name="radioWorldMercator">
+        <property name="text">
+         <string>World Mercator (OSM)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="8" column="1">
+       <spacer>
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>40</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="9" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Result:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="1">
+       <widget class="QLabel" name="labelResult">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QRadioButton" name="radioUPSNorth">
+        <property name="text">
+         <string>UPS North (North Pole)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1">
+       <widget class="QRadioButton" name="radioUPSSouth">
+        <property name="text">
+         <string>UPS South (South Pole)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Projection</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <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>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>IProjWizard</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>IProjWizard</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/grid/mitab.cpp b/src/qmapshack/grid/mitab.cpp
similarity index 100%
copy from src/grid/mitab.cpp
copy to src/qmapshack/grid/mitab.cpp
diff --git a/src/grid/mitab.h b/src/qmapshack/grid/mitab.h
similarity index 100%
copy from src/grid/mitab.h
copy to src/qmapshack/grid/mitab.h
diff --git a/src/qmapshack/helpers/CDraw.cpp b/src/qmapshack/helpers/CDraw.cpp
new file mode 100644
index 0000000..e2233b2
--- /dev/null
+++ b/src/qmapshack/helpers/CDraw.cpp
@@ -0,0 +1,250 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2015 Christian Eichler code at christian-eichler.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 "canvas/CCanvas.h"
+#include "helpers/CDraw.h"
+
+#include <QDebug>
+#include <QImage>
+#include <QPointF>
+#include <QtMath>
+
+QPen CDraw::penBorderBlue(QColor(10,10,150,220),2);
+QPen CDraw::penBorderGray(Qt::lightGray,2);
+QPen CDraw::penBorderBlack(QColor(0,0,0,200),2);
+QPen CDraw::penBorderRed(Qt::red,2);
+QBrush CDraw::brushBackWhite(QColor(255,255,255,255));
+QBrush CDraw::brushBackYellow(QColor(0xff, 0xff, 0xcc, 0xE0));
+
+
+QImage CDraw::createBasicArrow(const QBrush &brush, qreal scale)
+{
+    QImage arrow(21*scale, 16*scale, QImage::Format_ARGB32);
+    arrow.fill(qRgba(0, 0, 0, 0));
+
+    QPainter painter(&arrow);
+    USE_ANTI_ALIASING(painter, true);
+
+    // white background, same foreground as p
+    painter.setPen(QPen(Qt::white, 2));
+    painter.setBrush(brush);
+
+    QPointF arrowPoints[4] =
+    {
+        QPointF(20.0*scale,  7.0*scale), // front
+        QPointF( 0.0*scale,  0.0*scale), // upper tail
+        QPointF( 5.0*scale,  7.0*scale), // mid   tail
+        QPointF( 0.0*scale, 15.0*scale)  // lower tail
+    };
+    painter.drawPolygon(arrowPoints, 4);
+    painter.end();
+
+    return arrow;
+}
+
+/**
+   @brief   Calculates the square distance between two points
+   @return  (int) ( (x2 - x1)^2 + (y2 - y1)^2 )
+ */
+
+static inline int pointDistanceSquare(const QPointF &p1, const QPointF &p2)
+{
+    return (p2.x() - p1.x()) * (p2.x() - p1.x()) + (p2.y() - p1.y()) * (p2.y() - p1.y());
+}
+
+void CDraw::arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale)
+{
+    const QImage& arrow = createBasicArrow(p.brush(), scale);
+    qreal xoff = qCeil(arrow.width()/2.0);
+    qreal yoff = qFloor((arrow.height()-1)/2.0);
+
+    const qreal minArrowDistSquare = minArrowDist * minArrowDist;
+    const qreal minPointDistSquare = minPointDist * minPointDist;
+
+    QPointF prevArrow;
+    bool firstArrow = true;
+    for(int i = 1; i < line.size(); i++)
+    {
+        const QPointF &pt     = line[i    ];
+        const QPointF &prevPt = line[i - 1];
+
+        // ensure there is enough space between two linepts
+        if( pointDistanceSquare(pt, prevPt) >= minPointDistSquare )
+        {
+            QPointF arrowPos = prevPt + (pt - prevPt)/2;
+
+            if( (viewport.contains(arrowPos) || 0 == viewport.height()) // ensure the point is visible
+                && (firstArrow || pointDistanceSquare(prevArrow, arrowPos) >= minArrowDistSquare) )
+            {
+                p.save();
+                // rotate and draw the arrow (between bullets)
+                p.translate(arrowPos);
+                qreal direction = ( qAtan2((pt.y() - prevPt.y()), (pt.x() - prevPt.x())) * 180.) / M_PI;
+                p.rotate(direction);
+                p.drawImage(-xoff, -yoff, arrow);
+
+                p.restore();
+
+                prevArrow  = arrowPos;
+                firstArrow = false;
+            }
+        }
+    }
+}
+
+void CDraw::nogos(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minNogoDist)
+{
+    static const QImage nogo = QImage("://icons/48x48/NoGo.png").scaled(14,14, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+
+    double l = minNogoDist / 3;
+
+    for(int i = 1; i < line.size(); i++)
+    {
+        const QPointF &pt     = line[i    ];
+        const QPointF &prevPt = line[i - 1];
+
+        const double dist = sqrt(pointDistanceSquare(pt, prevPt));
+
+        if ( l <= dist )
+        {
+            const QPointF line = pt - prevPt;
+            do
+            {
+                const QPointF nogoPos = prevPt + line * l/dist;
+
+                if( (viewport.contains(nogoPos) || 0 == viewport.height())) // ensure the point is visible
+                {
+                    p.save();
+
+                    p.translate(nogoPos);
+                    p.drawImage(-7, -7, nogo);
+
+                    p.restore();
+                }
+                l += minNogoDist;
+            }
+            while ( l <= dist );
+        }
+        l -= dist;
+    }
+}
+
+void CDraw::text(const QString &str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font)
+{
+    QFontMetrics fm(font);
+    QRect r = fm.boundingRect(str);
+
+    r.moveCenter(center);
+    p.setFont(font);
+
+    // draw the white `shadow`
+    p.setPen(Qt::white);
+    p.drawText(r.topLeft() - QPoint(-1, -1), str);
+    p.drawText(r.topLeft() - QPoint( 0, -1), str);
+    p.drawText(r.topLeft() - QPoint(+1, -1), str);
+
+    p.drawText(r.topLeft() - QPoint(-1,  0), str);
+    p.drawText(r.topLeft() - QPoint(+1,  0), str);
+
+    p.drawText(r.topLeft() - QPoint(-1, +1), str);
+    p.drawText(r.topLeft() - QPoint( 0, +1), str);
+    p.drawText(r.topLeft() - QPoint(+1, +1), str);
+
+    p.setPen(color);
+    p.drawText(r.topLeft(), str);
+}
+
+void CDraw::text(const QString &str, QPainter &p, const QRect &r, const QColor &color)
+{
+    p.setPen(Qt::white);
+    p.setFont(CMainWindow::self().getMapFont());
+
+    // draw the white `shadow`
+    p.drawText(r.adjusted(-1, -1, -1, -1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted( 0, -1,  0, -1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1, -1, +1, -1), Qt::AlignCenter, str);
+
+    p.drawText(r.adjusted(-1,  0, -1,  0), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1,  0, +1,  0), Qt::AlignCenter, str);
+
+    p.drawText(r.adjusted(-1, +1, -1, +1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted( 0, +1,  0, +1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1, +1, +1, +1), Qt::AlignCenter, str);
+
+    p.setPen(color);
+    p.drawText(r, Qt::AlignCenter, str);
+}
+
+QPoint CDraw::bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth, float pointerBasePos, const QPen &pen)
+{
+    QPainterPath bubblePath;
+    bubblePath.addRoundedRect(contentRect, RECT_RADIUS, RECT_RADIUS);
+
+    // draw the arrow
+    int pointerBaseCenterX = (pointerBasePos <= 1)
+                             ? contentRect.left() + (pointerBasePos * contentRect.width())
+                             : contentRect.left() + (int) pointerBasePos;
+
+    int pointerHeight = 0;
+    if(pointerPos.y() < contentRect.top())
+    {
+        pointerHeight = contentRect.top() - pointerPos.y() + 1;
+    }
+    else if(pointerPos.y() > contentRect.bottom())
+    {
+        pointerHeight = contentRect.bottom() - pointerPos.y() - 1;
+    }
+    else
+    {
+        qDebug() << "cannot calculate pointerHeight/pointerBaseCenterX due to invalid parameters";
+    }
+
+    if(0 != pointerHeight)
+    {
+        QPolygonF pointerPoly;
+        pointerPoly << pointerPos
+                    << QPointF(pointerBaseCenterX - pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
+                    << QPointF(pointerBaseCenterX + pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
+                    << pointerPos;
+
+        QPainterPath pointerPath;
+        pointerPath.addPolygon(pointerPoly);
+
+        bubblePath = bubblePath.united(pointerPath);
+    }
+
+    p.setPen  (pen);
+    p.setBrush(CDraw::brushBackWhite);
+
+    p.drawPolygon(bubblePath.toFillPolygon());
+
+    return contentRect.topLeft();
+}
+
+bool CDraw::doesOverlap(const QList<QRectF>& blockedAreas, const QRectF& rect)
+{
+    for(const QRectF& r : blockedAreas)
+    {
+        if(r.intersects(rect))
+        {
+            return true;
+        }
+    }
+    return false;
+}
diff --git a/src/qmapshack/helpers/CDraw.h b/src/qmapshack/helpers/CDraw.h
new file mode 100644
index 0000000..55c6b8c
--- /dev/null
+++ b/src/qmapshack/helpers/CDraw.h
@@ -0,0 +1,95 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2015 Christian Eichler code at christian-eichler.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/>.
+
+**********************************************************************************************/
+
+#ifndef CPAINTER_H
+#define CPAINTER_H
+
+#include <QPainter>
+#include <QPolygonF>
+#include <QRectF>
+
+#include "CMainWindow.h"
+inline void USE_ANTI_ALIASING(QPainter& p, bool useAntiAliasing)
+{
+    p.setRenderHints(QPainter::TextAntialiasing|QPainter::Antialiasing|QPainter::SmoothPixmapTransform|QPainter::HighQualityAntialiasing, useAntiAliasing);
+}
+
+#define RECT_RADIUS 3
+#define PAINT_ROUNDED_RECT(p,r) p.drawRoundedRect(r,RECT_RADIUS,RECT_RADIUS)
+
+
+class CDraw
+{
+public:
+
+    static QPen penBorderBlue;
+    static QPen penBorderGray;
+    static QPen penBorderBlack;
+    static QPen penBorderRed;
+    static QBrush brushBackWhite;
+    static QBrush brushBackYellow;
+
+    /**
+       @brief Draw arrows along a line
+
+       An arrow is drawn if all the following requirements are met:
+     * the position the new arrow would have been drawn is within viewport
+          OR
+          `viewport.height() == 0`
+     * the two points have a distance of at least `minPointDist`
+     * the (potential) position of the new arrow has at least a distance of `minArrowDist` from the previous arrow
+
+       @param line          The line to draw the arrows along
+       @param viewport      Restrict drawing of arrows to this viewport (no limitation is applied if `viewport.height() == 0`)
+       @param minPointDist  The minimum distance of two points (in px)
+       @param minArrowDist  The minimum distance of two consecutive arrows (in px)
+     */
+    static void arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale);
+    static void nogos(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minNogoDist);
+
+    static void text(const QString& str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font = CMainWindow::self().getMapFont());
+    static void text(const QString& str, QPainter &p, const QRect  &r,      const QColor &color);
+
+    /**
+       @brief Draw a cartoon bubble
+
+       `pointerBasePos` denotes the position of the pointer's base, where 0 is `at the very left of the content`, and 1 is `at the very right`.
+       Be careful with small values (near 0) or large values (near 1) for pointerBasePos, this might lead to incorrect drawing,
+       especially if pointerBaseWidth is large.
+       If is larger than 1, a value in pixels is assumed.
+
+       @param p                 An active QPainter
+       @param contentRect       The area the actual content will be in
+       @param pointerPos        The position of the pointer's head
+       @param pointerBaseWidth  The width of the pointer
+       @param pointerBasePos    The (relative) location of the pointer (in percent / pixels)
+     */
+    static QPoint bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth = 20, float pointerBasePos = .5f, const QPen& pen = penBorderGray);
+
+    static bool doesOverlap(const QList<QRectF>& blockedAreas, const QRectF& rect);
+private:
+    /**
+       @brief   Creates a new arrow using the brush specified
+       @return  A QImage containing the arrow
+     */
+    static QImage createBasicArrow(const QBrush &brush, qreal scale);
+};
+
+#endif // CPAINTER_H
+
diff --git a/src/helpers/CElevationDialog.cpp b/src/qmapshack/helpers/CElevationDialog.cpp
similarity index 100%
rename from src/helpers/CElevationDialog.cpp
rename to src/qmapshack/helpers/CElevationDialog.cpp
diff --git a/src/helpers/CElevationDialog.h b/src/qmapshack/helpers/CElevationDialog.h
similarity index 100%
rename from src/helpers/CElevationDialog.h
rename to src/qmapshack/helpers/CElevationDialog.h
diff --git a/src/helpers/CFileExt.h b/src/qmapshack/helpers/CFileExt.h
similarity index 100%
rename from src/helpers/CFileExt.h
rename to src/qmapshack/helpers/CFileExt.h
diff --git a/src/helpers/CInputDialog.cpp b/src/qmapshack/helpers/CInputDialog.cpp
similarity index 100%
rename from src/helpers/CInputDialog.cpp
rename to src/qmapshack/helpers/CInputDialog.cpp
diff --git a/src/helpers/CInputDialog.h b/src/qmapshack/helpers/CInputDialog.h
similarity index 100%
rename from src/helpers/CInputDialog.h
rename to src/qmapshack/helpers/CInputDialog.h
diff --git a/src/helpers/CLimit.cpp b/src/qmapshack/helpers/CLimit.cpp
similarity index 100%
rename from src/helpers/CLimit.cpp
rename to src/qmapshack/helpers/CLimit.cpp
diff --git a/src/helpers/CLimit.h b/src/qmapshack/helpers/CLimit.h
similarity index 100%
rename from src/helpers/CLimit.h
rename to src/qmapshack/helpers/CLimit.h
diff --git a/src/helpers/CLinksDialog.cpp b/src/qmapshack/helpers/CLinksDialog.cpp
similarity index 100%
rename from src/helpers/CLinksDialog.cpp
rename to src/qmapshack/helpers/CLinksDialog.cpp
diff --git a/src/helpers/CLinksDialog.h b/src/qmapshack/helpers/CLinksDialog.h
similarity index 100%
rename from src/helpers/CLinksDialog.h
rename to src/qmapshack/helpers/CLinksDialog.h
diff --git a/src/helpers/CPhotoViewer.cpp b/src/qmapshack/helpers/CPhotoViewer.cpp
similarity index 100%
rename from src/helpers/CPhotoViewer.cpp
rename to src/qmapshack/helpers/CPhotoViewer.cpp
diff --git a/src/helpers/CPhotoViewer.h b/src/qmapshack/helpers/CPhotoViewer.h
similarity index 100%
rename from src/helpers/CPhotoViewer.h
rename to src/qmapshack/helpers/CPhotoViewer.h
diff --git a/src/helpers/CPositionDialog.cpp b/src/qmapshack/helpers/CPositionDialog.cpp
similarity index 100%
rename from src/helpers/CPositionDialog.cpp
rename to src/qmapshack/helpers/CPositionDialog.cpp
diff --git a/src/helpers/CPositionDialog.h b/src/qmapshack/helpers/CPositionDialog.h
similarity index 100%
rename from src/helpers/CPositionDialog.h
rename to src/qmapshack/helpers/CPositionDialog.h
diff --git a/src/helpers/CProgressDialog.cpp b/src/qmapshack/helpers/CProgressDialog.cpp
similarity index 100%
rename from src/helpers/CProgressDialog.cpp
rename to src/qmapshack/helpers/CProgressDialog.cpp
diff --git a/src/helpers/CProgressDialog.h b/src/qmapshack/helpers/CProgressDialog.h
similarity index 100%
rename from src/helpers/CProgressDialog.h
rename to src/qmapshack/helpers/CProgressDialog.h
diff --git a/src/qmapshack/helpers/CSelectCopyAction.cpp b/src/qmapshack/helpers/CSelectCopyAction.cpp
new file mode 100644
index 0000000..1ab643e
--- /dev/null
+++ b/src/qmapshack/helpers/CSelectCopyAction.cpp
@@ -0,0 +1,96 @@
+/**********************************************************************************************
+    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 "canvas/CCanvas.h"
+#include "gis/IGisItem.h"
+#include "gis/prj/IGisProject.h"
+#include "helpers/CProgressDialog.h"
+#include "helpers/CSelectCopyAction.h"
+
+#include <QtWidgets>
+
+CSelectCopyAction::CSelectCopyAction(const IGisItem *src, const IGisItem *tar, QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    labelIcon1->setPixmap(src->getDisplayIcon());
+    labelInfo1->setText(src->getInfo(IGisItem::eFeatureShowName));
+    labelIcon2->setPixmap(tar->getDisplayIcon());
+    labelInfo2->setText(tar->getInfo(IGisItem::eFeatureShowName));
+
+    adjustSize();
+
+    connect(pushCopy,  &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
+    connect(pushSkip,  &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
+    connect(pushClone, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
+
+    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectCopyAction");
+    CProgressDialog::setAllVisible(false);
+}
+
+CSelectCopyAction::CSelectCopyAction(const IGisProject * src, const IGisProject * tar, QWidget * parent)
+    : QDialog(parent)
+    , result(eResultNone)
+{
+    setupUi(this);
+
+    labelIcon1->setPixmap(src->getIcon());
+    labelInfo1->setText(src->getInfo());
+    labelIcon2->setPixmap(tar->getIcon());
+    labelInfo2->setText(tar->getInfo());
+
+    pushClone->setEnabled(false);
+
+    adjustSize();
+
+    connect(pushCopy, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
+    connect(pushSkip, &QPushButton::clicked, this, &CSelectCopyAction::slotSelectResult);
+
+    CCanvas::setOverrideCursor(Qt::ArrowCursor, "CSelectCopyAction");
+    CProgressDialog::setAllVisible(false);
+}
+
+CSelectCopyAction::~CSelectCopyAction()
+{
+    CCanvas::restoreOverrideCursor("~CSelectCopyAction");
+    CProgressDialog::setAllVisible(true);
+}
+
+bool CSelectCopyAction::allOthersToo()
+{
+    return checkAllOtherToo->isChecked();
+}
+
+void CSelectCopyAction::slotSelectResult()
+{
+    if(sender() == pushCopy)
+    {
+        result = eResultCopy;
+    }
+    else if(sender() == pushSkip)
+    {
+        result = eResultSkip;
+    }
+    else if(sender() == pushClone)
+    {
+        result = eResultClone;
+    }
+
+    accept();
+}
diff --git a/src/helpers/CSelectCopyAction.h b/src/qmapshack/helpers/CSelectCopyAction.h
similarity index 100%
rename from src/helpers/CSelectCopyAction.h
rename to src/qmapshack/helpers/CSelectCopyAction.h
diff --git a/src/helpers/CSelectProjectDialog.cpp b/src/qmapshack/helpers/CSelectProjectDialog.cpp
similarity index 100%
rename from src/helpers/CSelectProjectDialog.cpp
rename to src/qmapshack/helpers/CSelectProjectDialog.cpp
diff --git a/src/helpers/CSelectProjectDialog.h b/src/qmapshack/helpers/CSelectProjectDialog.h
similarity index 100%
rename from src/helpers/CSelectProjectDialog.h
rename to src/qmapshack/helpers/CSelectProjectDialog.h
diff --git a/src/helpers/CSettings.h b/src/qmapshack/helpers/CSettings.h
similarity index 100%
copy from src/helpers/CSettings.h
copy to src/qmapshack/helpers/CSettings.h
diff --git a/src/helpers/CToolBarConfig.cpp b/src/qmapshack/helpers/CToolBarConfig.cpp
similarity index 100%
rename from src/helpers/CToolBarConfig.cpp
rename to src/qmapshack/helpers/CToolBarConfig.cpp
diff --git a/src/helpers/CToolBarConfig.h b/src/qmapshack/helpers/CToolBarConfig.h
similarity index 100%
rename from src/helpers/CToolBarConfig.h
rename to src/qmapshack/helpers/CToolBarConfig.h
diff --git a/src/qmapshack/helpers/CToolBarSetupDialog.cpp b/src/qmapshack/helpers/CToolBarSetupDialog.cpp
new file mode 100644
index 0000000..8ea3797
--- /dev/null
+++ b/src/qmapshack/helpers/CToolBarSetupDialog.cpp
@@ -0,0 +1,110 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+**********************************************************************************************/
+
+#include "helpers/CToolBarConfig.h"
+#include "helpers/CToolBarSetupDialog.h"
+
+bool CToolBarSetupDialog::CItemFilter::shouldBeMoved(QListWidgetItem *item)
+{
+    CDialogItem * dialogItem = dynamic_cast<CDialogItem *>(item);
+    if (dialogItem != nullptr)
+    {
+        return dialogItem->actionName != "separator";
+    }
+    return true;
+}
+
+CToolBarSetupDialog::CToolBarSetupDialog(QWidget * const & parent, CToolBarConfig * const & config) : QDialog(parent), config(config)
+{
+    setupUi(this);
+
+    selectActionsWidget->setFilter(new CItemFilter(this));
+
+    connect(buttonBox, &QDialogButtonBox::clicked, this, &CToolBarSetupDialog::slotButtonClicked);
+
+    configure();
+
+    selectActionsWidget->setLabelAvailable(tr("Available Actions"));
+    selectActionsWidget->setLabelSelected(tr("Selected Actions"));
+}
+
+CToolBarSetupDialog::~CToolBarSetupDialog()
+{
+    selectActionsWidget->clear();
+}
+
+void CToolBarSetupDialog::accept()
+{
+    QStringList actionNames;
+    for (const QListWidgetItem * const selectedItem : selectActionsWidget->selected())
+    {
+        const CDialogItem * const setupDialogItem = dynamic_cast<const CDialogItem * const>(selectedItem);
+        if (setupDialogItem != nullptr)
+        {
+            actionNames << setupDialogItem->actionName;
+        }
+    }
+    config->setConfiguredActionsByName(actionNames);
+    config->setVisibleInFullscreen(checkFullscreen->isChecked());
+    QDialog::accept();
+}
+
+void CToolBarSetupDialog::slotButtonClicked(QAbstractButton *button) const
+{
+    if(buttonBox->buttonRole(button) == QDialogButtonBox::ResetRole)
+    {
+        config->setDefaultConfiguredActions();
+        configure();
+    }
+}
+
+void CToolBarSetupDialog::configure() const
+{
+    QList<QListWidgetItem *> availableItems;
+    QList<QListWidgetItem *> selectedItems;
+
+    for(QAction * const & action : config->availableActions())
+    {
+        availableItems << new CDialogItem(action->icon(),action->iconText(),action->objectName());
+    }
+    for(QAction * const & action : config->configuredActions())
+    {
+        if (action->isSeparator())
+        {
+            selectedItems << new CDialogItem(action->icon(),"---------------",action->objectName());
+        }
+        else
+        {
+            QString configuredName = action->objectName();
+            for(QListWidgetItem * const & item : availableItems)
+            {
+                if(configuredName == dynamic_cast<CDialogItem * const>(item)->actionName)
+                {
+                    selectedItems << item;
+                    break;
+                }
+            }
+        }
+    }
+    selectActionsWidget->setSelected(selectedItems);
+    selectActionsWidget->setAvailable(availableItems);
+    selectActionsWidget->sortAvailable();
+    checkFullscreen->setChecked(config->visibleInFullscreen());
+}
+
diff --git a/src/helpers/CToolBarSetupDialog.h b/src/qmapshack/helpers/CToolBarSetupDialog.h
similarity index 100%
rename from src/helpers/CToolBarSetupDialog.h
rename to src/qmapshack/helpers/CToolBarSetupDialog.h
diff --git a/src/helpers/CValue.cpp b/src/qmapshack/helpers/CValue.cpp
similarity index 100%
rename from src/helpers/CValue.cpp
rename to src/qmapshack/helpers/CValue.cpp
diff --git a/src/helpers/CValue.h b/src/qmapshack/helpers/CValue.h
similarity index 100%
rename from src/helpers/CValue.h
rename to src/qmapshack/helpers/CValue.h
diff --git a/src/helpers/CWptIconDialog.cpp b/src/qmapshack/helpers/CWptIconDialog.cpp
similarity index 100%
rename from src/helpers/CWptIconDialog.cpp
rename to src/qmapshack/helpers/CWptIconDialog.cpp
diff --git a/src/helpers/CWptIconDialog.h b/src/qmapshack/helpers/CWptIconDialog.h
similarity index 100%
rename from src/helpers/CWptIconDialog.h
rename to src/qmapshack/helpers/CWptIconDialog.h
diff --git a/src/helpers/IElevationDialog.ui b/src/qmapshack/helpers/IElevationDialog.ui
similarity index 100%
rename from src/helpers/IElevationDialog.ui
rename to src/qmapshack/helpers/IElevationDialog.ui
diff --git a/src/helpers/IInputDialog.ui b/src/qmapshack/helpers/IInputDialog.ui
similarity index 100%
rename from src/helpers/IInputDialog.ui
rename to src/qmapshack/helpers/IInputDialog.ui
diff --git a/src/helpers/ILinksDialog.ui b/src/qmapshack/helpers/ILinksDialog.ui
similarity index 100%
rename from src/helpers/ILinksDialog.ui
rename to src/qmapshack/helpers/ILinksDialog.ui
diff --git a/src/helpers/IPositionDialog.ui b/src/qmapshack/helpers/IPositionDialog.ui
similarity index 100%
rename from src/helpers/IPositionDialog.ui
rename to src/qmapshack/helpers/IPositionDialog.ui
diff --git a/src/helpers/IProgressDialog.ui b/src/qmapshack/helpers/IProgressDialog.ui
similarity index 100%
rename from src/helpers/IProgressDialog.ui
rename to src/qmapshack/helpers/IProgressDialog.ui
diff --git a/src/helpers/ISelectCopyAction.ui b/src/qmapshack/helpers/ISelectCopyAction.ui
similarity index 100%
rename from src/helpers/ISelectCopyAction.ui
rename to src/qmapshack/helpers/ISelectCopyAction.ui
diff --git a/src/helpers/ISelectProjectDialog.ui b/src/qmapshack/helpers/ISelectProjectDialog.ui
similarity index 100%
rename from src/helpers/ISelectProjectDialog.ui
rename to src/qmapshack/helpers/ISelectProjectDialog.ui
diff --git a/src/helpers/IToolBarSetupDialog.ui b/src/qmapshack/helpers/IToolBarSetupDialog.ui
similarity index 100%
rename from src/helpers/IToolBarSetupDialog.ui
rename to src/qmapshack/helpers/IToolBarSetupDialog.ui
diff --git a/src/helpers/IWptIconDialog.ui b/src/qmapshack/helpers/IWptIconDialog.ui
similarity index 100%
rename from src/helpers/IWptIconDialog.ui
rename to src/qmapshack/helpers/IWptIconDialog.ui
diff --git a/src/helpers/Platform.h b/src/qmapshack/helpers/Platform.h
similarity index 100%
rename from src/helpers/Platform.h
rename to src/qmapshack/helpers/Platform.h
diff --git a/src/helpers/Signals.h b/src/qmapshack/helpers/Signals.h
similarity index 100%
rename from src/helpers/Signals.h
rename to src/qmapshack/helpers/Signals.h
diff --git a/src/qmapshack/locale/qmapshack.ts b/src/qmapshack/locale/qmapshack.ts
new file mode 100644
index 0000000..a80a671
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack.ts
@@ -0,0 +1,10817 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <source>Change timestamp of track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Failed to read data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <source>Changed trackpoints, sacrificed all previous data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="393"/>
+        <source>, %1-, %2-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <source>, %1%2%3, %4%5%6</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="463"/>
+        <source>Invalid slopes!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <source>Are you sure you want to delete '%1' from project '%2'?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <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="661"/>
+        <source>Load Map View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <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="679"/>
+        <source>Ext. Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation type="unfinished"></translation>
+    </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>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmapshack/locale/qmapshack_ca.ts b/src/qmapshack/locale/qmapshack_ca.ts
new file mode 100644
index 0000000..5380523
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_ca.ts
@@ -0,0 +1,10899 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="ca">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API V%2, s'esperava V%3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API V%2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(no DBUS: la detecció i manipulació de dispositius està desactivada)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>A peu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Cotxe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Telefèric</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Natació</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Vaixell</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Esquí/Hivern</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>Sense activitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Total</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Ascens:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Descens:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Aeronàutica</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Transport Públic</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Distància:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Velocitat en Moviment:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Velocitat Total:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Temps en Moviment:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Temps Total:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Vista %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Configura el Fons del Mapa</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Esc.</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Imprimeix la sortida de depuració a la consola.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Imprimeix la sortida de depuració al fitxer de registre (temp. camí).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>No mostrar la pantalla de presentació.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Fitxer amb configuració QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>Fitxer</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Fitxers per a utilitzar més endavant.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>Ruta</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Totes les teves dades agrupades en carpetes. </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Perdut i trobat (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Perdut i trobat</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>Base de Dades MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation>Servidor:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation>(No PI)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Error:</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>Base de Dades SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Fitxer:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Error:</translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation>%1 h</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 dia</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>No s'ha pogut carregar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>No s'ha pogut carregar el fitxer "%1% . S'ometrà l'element.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>El Projecte ja és a la base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>El projecte "%1" ja és a la base de dades. S'ometrà l'element.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>%2 (%3) ha modificat l'element %1. 
+
+Per a resolver aquest conflicte heu de crear i desar una còpia idèntica, forçar la vostra versió o deixar-la estar I agafar-ne una de la base de dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Conflicte amb la base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Clona && Desa</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Desa forçosament</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Agafa'l remot</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Manca la carpeta...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>No s'ha pogut desar el projecte. La carpeta s'ha esborrat de la base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Desa...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>S'ha produït un error inesperat a la base de dades:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>El projecte '%1' és a punt de modificar-se desde la base de dades. Tanmateix hi ha canvis que no s'han desat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Desar els canvis?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Desactivar</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Afegir o suprimir camins a dades DEM. Pot haver-hi diverses fitxers en un camí, però els camins secundaris no s'analitzaran. Els formats compatibles són: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Selecciona el camí als fitxers DEM...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>  No s'ha pogut carregar el fitxer: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>Les dades DEM han de tenir un ample de banda de 16bit o 32bit.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>No s'ha trobat informació de georeferència.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>cap</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Cercant imatges...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>  No s'ha trobat cap imatge</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Voleu ordenar les fites al llarg d'un track, pero la correlació entre track i fita està desactivada. La voleu tornar a activar?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Correlació...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>Cap</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Crea el registre...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Resum de tots els tracks del projecte</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Fites</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Comentari</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Pistes</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>Des de l'inici</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>Al Següent</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>Al Final</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation>Distància:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation>Ascens:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation>Descens:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Àrees</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Rutes</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Edita el nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Introdueix el nom del nou projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Edita les paraules clau...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation> Introduïu les paraules clau.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Imprimir Diari</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Redueix els punts visibles del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation>Canvia l'elevació dels punts del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <source>Change timestamp of track points</source>
+        <translation>Canvia la data i hora dels punts del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
+        <source>Miscellaneous</source>
+        <translation>Miscel·lània</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Activitat</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Introducció d'un nou interval de proximitat. </translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Imatge%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Desconegut</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Arxiu - amplia per a carregar</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>S'ha carregat l'arxiu</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>No s'han trobat dades DEM per aquest punt. </translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Selecciona el camí d'exportació...</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Crear %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation> S'ha produït un error al crear %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>Fet !</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>Cancel·lat per l'usuari!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation> Error de base de dades: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>  Desa el projecte com a %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation> S'ha produït un error!</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>No hi ha extensions disponibles</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>ample</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>mitjà</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>fi</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>Error descodificant el fitxer FIT: CRC invàlid.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>Error descodificant el fitxer FIT: Final de fitxer inesperat %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>Error descodificant el fitxer FIT: tipus base desconegut %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation>Manca la definició del camp pel camp desenvolupament.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation>Error descodificant el fitxer FIT: Definició numèrica invàlida en el camp %1 en crear la definició del perfil del camp.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>Error descodificant el fitxer FIT: la versió del protocol %1 no està implementada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>Error descodificant el fitxer FIT: la capçalera de signatura del fitxer no coincideix. No és un fitxer FIT.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>  No s'ha pogut carregar el fitxer %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>  No s'ha pogut obrir el fitxer FIT %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>Error descodificant el fitxer FIT: No està implementada l'arquitectura %1 .</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>Error descodificant el fitxer FIT: desplaçament no vàlid %1 en l'estat 'contingut del registre'</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Avís...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation>Aquest és un típus de fitxer amb una codificació de polígon desconeguda. Informeu de l'error!</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation>Aquest és un típus de fitxer amb una codificació de polilínia desconeguda. Informeu de l'error!</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>prim</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>normal</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>ample</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>fort</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Clona</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Àrea: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Forma de l'àrea canviada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Nom canviat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Amplada del contorn canviada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Patró d'emplenar canviat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Opacitat canviada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Comentari canviat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Descripció canviada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Enllaços canviats</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Color canviat</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Clona</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Nom canviat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Comentari canviat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Descripció canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Enllaços canviats</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation>Llargada: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation>Temps: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation>Distància: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Llargada: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Temps: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Enrutat per darrera vegada :<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>amb %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Punts de la ruta canviats.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>El fixer FIT %1 no conté dades GPS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Error en obrir %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Sols s'admet lon/lat en format WGS 84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Failed to read data.</source>
+        <translation>Error en llegir les dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Clona</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <source>Changed trackpoints, sacrificed all previous data.</source>
+        <translation>Punts del track canviats, les dades antigues s'han perdut.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="393"/>
+        <source>, %1-, %2-</source>
+        <translation>, %1-, %2-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation>Temps: %1%2, Velocitat: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Temps: -, Velocitat: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation>Moviment: %1%2, Velocitat: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>Moviment: -, Velocitat: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Inici: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Inici: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Final: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Final: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Punts: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>Elevacions invàlidess!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>Marques horàries invàlides !</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>Posicions no vàlides!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Activitats: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Index: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Índex: visible %1, total %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation>, Pendent: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... I no es mostren %1 etiquetes</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Distància: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>En moviment: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Amagar punt %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Amagar punts %1..%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>, %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation>punts invàlids....</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation>El track '%1' té %2 punts invàlids dels %3 punts que es mostren. Vols amagar els punts invàlids?</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation>mín.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation>màx.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation>Longitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <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="463"/>
+        <source>Invalid slopes!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation>Ele.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation>, Velocitat: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Ascens: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Descens: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Ascens: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation>, Descens: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Distància: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation>, En moviment: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Ascens: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Descens: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Ascens: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation>, Descens: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Distància: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation>, Hora: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>S'han suprimit definitivament els punts %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Mostrar els punts.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Nom canviat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Comentari canviat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Descripció canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Enllaços canviats</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Elevació dels punts %1 to %2 %3 canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Activitat de tot el track canviada a '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Activitat del rang(%2..%3) canviada a '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Utilitzar l'algoritme de Douglas Peuker per amagar punts (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Amagar punts amb dades invàlides.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Fes visibles tots els punts amagats del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>S'han suprimit definitivament tots els punts amagats del track. </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Perfil suau utilitzant un filtre de Mitjana de mida %1 </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>S'ha afegit des d'un fitxer DEM el pendent d'un terreny.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Substituides les dades d'elevació amb les dades dels fitxers DEM</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Substituides les dades d'elevació amb valors interpolats. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>Desplaçament de les dades d'elevació de %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Inici del track canviat a %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Suprimeix les marques horàries.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Posa una marca horària inventada amb %1 sec. de valor delta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Velocitat canviada a %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (Segment %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>S'ha suprimit definitivament l'extensió %1 de tots els punts del track. </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Convertir els subpunts obtinguts d'un itinerari a punts de track</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Copia del track de QLandkarte GT la informació de l'indicador</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Arxivat</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>No disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_Clona</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation>Elevació: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation>Proximitat: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Nom canviat</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Posició canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Elevació canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Proximitat canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Icona canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Comentari canviat</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Descripció canviada</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Enllaços canviats</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Imatges canviades</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Afegir imatge</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Degut a canvis en el sistema de base de dades, QMapShack desconeix el nom de fitxer de la vostre base de dades '%1'. Heu de seleccionar-la de nou en el següent pas.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Selecciona el fitxer de base de dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Afegeix base de dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Afegir Carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Canvia el nom de la Carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Copia la carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Moure Carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Suprimeix Carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Importar de Fitxers...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Exportar a GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Esborrar l'element</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Cercant Base de Dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Sinc. amb Base de Dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Suprimir base de dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Buit</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Suprimir base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Esteu segur que voleu suprimir '%1' de la llista?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Elimina la carpeta de les bases de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>Segur que voleu suprimir de la base de dades les carpetes seleccionades i totes les subcarpetes?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Operació incorrecta...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>La carpeta destí és una subcarpeta d'una de les que voleu moure. No es pot fer aquesta operació.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Nom de la carpeta...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Canvia el nom de la carpeta:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Suprimir elements...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Voleu esborrar tots els elements de Perdut i Trobat? Això els eliminarà de forma permament.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Voleu esborrar tots els elements seleccionats de Perdut i Trobat? Això els eliminarà de forma permament.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Segur que voleu suprimir '%1' de la carpeta '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Suprimeix...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>Importar Dades GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Edita...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Mostra en el Mapa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Amagar del Mapa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Ordena per Hora</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Ordena per Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Desa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Desa com a GPX 1.1 sense ext...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Envia als Dispositius</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Sinc. amb Base de Dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Tanca</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Modifica el Projecte en el Dispositiu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Suprimeix</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Edita...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Copia a...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Desa autom.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Anomena i desa...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Perfil del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Selecciona Rang</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Edita els Punts del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Invertir Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Unir Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Copia el track amb les Fites</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Mostra la Bombolla</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Moure la Fita</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Proj. Fita...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Instruccions de l'Itinerari</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Calcular l'Itinerari</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Reinicia Ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Edita la Ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>Convertir a track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Edita els Punts de l'Àrea</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Crear Ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Canviar Icona (sols sel. fita)</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Assigna una Activitat al Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Deixar anar elements...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
+        <translation><b>Modifica els dispositius </b><p>Modifica %1<br/>Si us plau, espereu...</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>S'està desant l'espai de treball. Espera.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>S'està carregant l'espai de treball. Espera.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Tancar tots els projectes...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>S'eliminaran tots els projectes de l'espai de treball.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation>Suprimeix el projecte...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Esteu segur que voleu suprimir %1?</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation>Carregar projecte...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation>El projecte "%1" ja és a l'espai de treball.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation><b>Selecció d'Element: </b>Element seleccionat de la llista d'espais de treball. Feu clic en el mapa per tornar al comportament normal de selecció del ratolí.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation>Copia elements...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation>Canviar el símbol de les fites.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation>Tallar el Track...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation>Voleu suprimir el track original?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Error en carregar el fitxer %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>No és un fitxer GPX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>El fitxer existeix ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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>Aquest fitxer ja existeix i no s'ha creat a QMapShack. Si premeu 'si' es perdrà tota la informació d'aquest fitxer. Fins i tot si aquest fitxer té informació GPX i s'ha carregat a QMapShack, QMapShack no pot carregar i emmagatzemar tota la informació existent en aquest fitxer.  La informació es perdrà. Recomano utilitzar un altre fitxer. <b>Segur que voleu sobreescriure el fitxer?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Ha fallat la creació del fitxer '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Error en escriure al fitxer '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Error desant dades GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1m, %2m </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>N %1m, E %2m </translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation>de %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Talla l'historial abans de</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Talla l'historial després de</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Supresión de l'historial</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>La supressió és permanent i no es pot desfer. <b>Realment vols suprimir tot l'historial abans de fer aquest pas?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>Importar Base de Dades QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Selecciona la base de dades origen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Selecciona la base de dades destí...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation>Velocitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation>Cadència</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. de l'Aire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura de l'Aire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. de l'Aigua</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura de l'Aigua</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation>Profunditat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation>Profunditat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation>Ritme cardíac</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation>Ritme cardíac</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation>Cadencia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation>Velocitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation>Accel.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation>Accel·leració</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation>Camí</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation>Camí</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation>Dist.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation>Distància</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation>Ele.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation>Elevació</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation>Energia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation>Energia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation>Pres Niv. Mar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation>Pressió a Nivell de Mar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation>v. Velocitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation>Velocitat Vertical</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation>Pendent</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation>Velocitat per Distància*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation>Velocitat per Temps*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation>Elevació*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation>Progrés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation>Progrés*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation>Terr. Pendent</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation>Terreny Pendent*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Pendent*</translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation>Error en carregar el fitxer %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation>No és un fitxer de registre Openambit: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation>Dispositiu: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Temps de recuperació: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Efecte de la Sessió d'Entrenament: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energia: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Aquest fitxer de LOG no conté cap dada i QMapShack no el pot visualitzar: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Perdut i trobat</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Utilitza <b>Menu->Vista->Afegir vista de Mapa</b> per a obrir una nova vista. O <b>Menu->Fitxer->Carregar vista de Mapa</b> per a recuperar-ne un de desat. O feu clic <a href='newview'>aquí</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation>Ele.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation>Pendent: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Graella: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>Carregar Dades GIS...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Selecciona el fitxer de sortida</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>Vista QMapShack (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Selecciona el fitxer a carregar</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Fatal...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack ha detectat que la llibreria Proj4 no està instal·lada de forma correcte. Manquen les taules de conversió de les projeccions EPSG, emmagatzemades de normal a /usr/share/proj. Per a solucionar-ho contacteu el mantenidor del paquet de la distribució.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation>En aquest moment no hi ha cap mapa instal·lat. QMapShack no es diverteix si no té mapes. Podeu instal·lar-ne prement la tecla 'Ajuda. Vull mapes!' a la finestra 'Mapes' de l'acoblador. O bé, podeu prémer la tecla F1 per accedir a la documentació en línia que us explicarà com utilitzar QMapShack. 
+
+Si no es diverteix, perquè no l'hi doneu mapes? Per allotjar mapes a punt per a descarregar I instal·lar fa falta un bon servidor. I això no és un servei gratuït. El projecte no te els diners. A més, els mapes I les dades DEM tenen drets d'autor. Per tant, abans d'empaquetar les dades s'ha de demanar permís al propietari dels drets d'autor. Tot això no és tan senzill com sembla i, en alguns casos s'han de pagar royalties. El projecte simplement no disposa de [...]
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Ha fallat ...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Sense especificar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Francès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Alemany</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Holandes</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Anglès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italià</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Finlandés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Suec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Espanyol</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Basc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Català</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Gallec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Gal·lès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gaèlic</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Danès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Noruec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portuguès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Eslovac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Txec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Croat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Hongarès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Polonès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Turc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Grec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Eslovè</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Rus</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Estonià</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Letó</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Romanès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Albanès</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosnià</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Lituà</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Serbi</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Macedoni</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Búlgar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Autopista</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Autovia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Autovia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Carretera nacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Carretera comarcal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Carrer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Carretera privada</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Enllaç autopista, baixa velocitat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Enllaç autopista, alta velocitat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Carretera sense asfaltar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Enllaç d'autopistes</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Rotonda</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Ferrocarril</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Línia de costa</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Camí</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Rierol</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Zona horaria</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Transbordador</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Frontera provincial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Frontera estatal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Frontera internacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Riu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Corba de nivell mínima</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Corba de nivell intermèdia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Corba de nivell màxima</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Corba de profunditat mínima</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Corba de profunditat intermèdia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Corba de profunditat màxima</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Riera</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Pista d'aterratge</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Oleoducte</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Línia d'alta tensió</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Límit marí</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Límit de risc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Àrea urbana gran (&gt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Àrea urbana petita (&lt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Entorn rural</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Base militar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Aparcament</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Garatge</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Aeroport</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Centre comercial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Port</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Universitat/Institut</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Hospital</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Zona industrial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Reserva</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Zona artificial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Complex esportiu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Camp de golf</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Cementiri</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Parc Nacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Parc urbà</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Parc nacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Bosc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Oceà</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation>Blau (Desconegut)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Mar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Llac gran</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Llac mitjà</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>LLac petit</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Llac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Riu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Riu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Riu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Rierol</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Zona inundable</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Aiguamolls / Pantà</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Glacera</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Hort / Camp de cultiu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Matolls</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Tundra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Pla</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Llegir un tipus de fitxer extern...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Error en la lectura del tipus de fitxer: %1
+Retorn als típus interns..</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Error en llegir:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Error en obrir:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Format de fitxer incorrecte: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Error en llegir l'estructura del fitxer:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>S'està carregant %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Interromput per l'usuari:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>El fixer estates en format NT. QMapShack no és capaç de llegir fitxers de mapes en format NT: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>El fitxer conté dades bloquejades / xifrades. Garmin sols permet utilitzar aquest fitxer amb programari subministrat per Garmin.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Fita</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Desconegut</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Àrea</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Desactivat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Activat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>On vols desar els mapes?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Ha fallat ...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Error en obrir:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Format de fitxer incorrecte: </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Afegir o suprimir camins a mapes. Pot haver-hi diversos mapes en un camí, però els camins secundaris no s'analitzaran. Els formats compatibles són: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Selecciona el camí als mapes...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Selecciona el camí arrel...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>Selecciona el tipus de fitxer...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>No és un fitxer RMAP de TwoNav.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Subformat desconegut.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Versió desconeguda</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Error en llegir el punt de referència.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Projecció i datum desconeguts (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Capa %1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Error en carregar el fitxer: %1...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>El fitxer ha de tenir una paleta de 8 bits o escala de grisos.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>No s'ha trobat informació de georeferència.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>Creació de GDAL VRT</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Selecciona els fitxers...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Selecciona el fitxer destí...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fet !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>No s'ha pogut llegir: %1
+Estructura desconeguda.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Servei inesperat. S'esperava'* WMTS 1.0.0'. S'ha llegit '%1 %2'.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>No s'ha trobat informació de georeferència.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Àrea</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Editar Àrea</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>àrea</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Itinerari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Editar Punts de Ruta</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>itinerari</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Editar Punts de Track</b><br/>Selecciona una funció i un mode d'itinerari utilitzant els botons d'eines. Desprès, selecciona un punt de la línia. Només es poden canviar els punts assenyalats amb un quadrat gran. Els assenyalats amb un punt negre són subpunts que ha creat l'enrutament.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Avís!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Substitueix totes les dades originals per una simple línia de coordenades. Totes les altres dades es perdran definitivament.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>Afegir Punt d'Interès com una Fita</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Afegir Fita</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Afegir Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Afegir Ruta</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Afegir Àrea</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Selecciona elements en el Mapa</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Copia la posició</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Copia la posició (Graella)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Desa (Imprimeix) Mapa</b><br/>Selecciona una area rectangular en el mapa. Fes clic en el botó esquerra del ratolí i mou el ratolí. Fes clic al botó dret per interrompre. Per a ajustar la selecció apunta-fes clic-mou el ratolí a les cantonades.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Selecció de l'Interval</b><br/>Amb el botó esquerra del ratolí selecciona el primer punt del track. I després un segon. Fent un clic al botó esquerra del ratolí surts de la selecció de l'interval.<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Seleccionar Elements del Mapa</b><br/>Selecciona una àrea rectangular en el mapa. Fes clic en el botó esquerra del ratolí i mou el ratolí. Fes clic al botó dret per interrompre. Per a ajustar la selecció apunta-fes clic-mou el ratolí a les cantonades.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Seleccionats:</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 fites<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 tracks<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 rutes<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 àrees<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Selecciona imatges...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation>Distància [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation>Hora</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation>Distància [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation>Ele. [%1]</translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Imprimir Mapa...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Desa el mapa com a imatge...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Propietats de la impresora...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Pàgines: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Per a canviar la resolució fes Zoom en el mapa de sota amb la roda del ratolí:
+
+%1x%2 píxel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Impressió de les pàgines.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Desa el mapa...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Temps transcorregut: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Temps transcorregut: %1 segons.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>nord</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>sud</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>El valor
+'%1'
+no és una coordenada vàlida en la configuración activa:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Edita el nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation> Introduïu un nom nou a la fita.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished">Error en obrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>S'està migrant la base de dades de la versió 4 a la 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>S'està migrant la base de dades de la versió 5 a la 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>S'està migrant la base de dades de la versió 6 a la 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>S'està migrant la base de dades de la versió 7 a la 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>S'està migrant la base de dades de la versió 8 a la 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Obrir la base de dades: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Carpetes:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Tracks:           %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Itineraris: %1 (Sols es copiaran els itineraris bàsics)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Fites: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Superposicions: %1 (les àrees es convertiran a àrees, les línies de distància es convertiran a tracks, les altres superposicions es perdran)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Diaris: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Selecció de Mapes:   %1 (no es pot convertir a QMapShack)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Inicia la conversió de la base de dades a %1------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Ha fallat la creació de la base de dades destinació.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Interrompre ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Fet ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Restaura les carpetes...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>S'han importat %1 carpetes i %2 diaris</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Copia elements...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>S'han importat %1 tracks, %2 fites, %3 rutes, %4 àrees</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Importar de carpetes...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>No es pot convertir una superposició de tipus '%1'</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Track Corrupte...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>El nombre de punts del track no és igual al nombre de punts del track amd dades d'entrenament.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>El nombre de punts del track no és igual al nombre de punts de track amb dades ampliades.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>El nombre de punts del track no és igual al nombre de punts del track amb dades complementaries.</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Fitxer existent...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Suprimir %1 existents?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Suprimir el fitxer existent %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: deixa anar l'element amb QLGT DB ID %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Error en obrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation>original</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation>primera alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation>segona alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation>tercera alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation>BRouter (desconnectat)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (connectat)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation>perfil: %1, alternativa: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished">Error:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation>resposta buida</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation>Resposta dolente del servidor: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>BRouter</b><br/>La petició d'Itinerari s'ha enviat al servidor. Si us plau, espereu...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation>Calcular l'itinerari amb %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>BRouter</b><br/>Resposta dolenta del servidor:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Calculant el temps: %1s</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation>correr</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation>iniciant</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation>Avís...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation>Entenc el risc. No m'ho diguis un altre cop.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation>Aturat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation>No instal·lat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation>En línia</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation>%1 no és accessible</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation>%1 resultat invàlid</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation>Error en analitzar la configuració en línia:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation>Error de xarxa:</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation>Restaura els Valors per Defecte</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation>Obrir Directori</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation>Selecciona l'Executable Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation>si us plau, selecciona el directori on instal·lar BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation>El directori seleccionat no existeix</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation>Crea un directori i hi instal·les BRrouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation>BRouter ja està instal·lat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation>actualitzar la instal·lació existent de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation>el directori està buit, crea una nova instal·lació de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation>Crea una nova instal·lació de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation>sembla que el Java-executable és vàlid</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation>no sembla que el Java-executable sigui vàlid</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation>No s'ha trobat l'Executable Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation>Error en carregar la pàgina d'instal·lació a %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation>No s'ha seleccionat la versión per a instal·lar de brouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation>%1 seleccionats per a baixar I instal·lar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation>Avís...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation>Baixada: %1<br/><br/>Es baixarà I s'instal·lara un fitxer zip des d'un servidor de baixades quen no compleix cap dels standards de seguretat normalment acceptats, utilitza HTTP en text pla. De normal s'hauria d'utilitzar HTTPS. Correu el risc que algú redireccioni la petició i baixeu un fitter zip amb codi maliciós. QMapShack no pot detectar-ho. <br/>Si no enteneu l'explicació o teniu algum dubte, no seguiu I cancel·leu la o [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation>Entenc el risc i vull continuar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation>iniciada la baixada %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation>Error de xarxa: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation>finalitzada la baixada %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation>descomprimint:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation>preparat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation>error en la baixada de brouter: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation>Recuperant desde %1 els perfils disponibles</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation>contingut del perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation>Error:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation>S'ha produït un error en crear el directori %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation>Error el directori %1 no existeix</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation>S'ha produït un error en crear el fitxer %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation>S'ha produït un error en escriure al fitxer %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation>Continuar amb la Configuració</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation>S'està determinant els itineraris disponibles.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation>Selecciona obsolets</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation>Elimina la Selecció</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation>Suprimeix selecció</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation>Baixada</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation>S'ha produït un error en suprimir %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation>Error en la creació de segments en el directori %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation>actualitzat: %1 (%2), obsolets: %3 (%4), per a baixar: %5 (%6)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation>s'està baixant: %1 of %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation>no hi ha dades locals, disponibles en línia: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation>les dades locals estan obsoletes (%1, %2 - remotes %3, %4)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation>Error de xarxa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation>Resultat invàlid, no s'han trobat fitxers</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation>no es pot analitzar: %1 no es una data</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation>no es pot analitzar: %1 la mida no és vàlida</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation>Error en la recuperació de les dades d'enrutament disponibles a %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation>el directori de segments no existeix:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation>Error en la creació del fitxer %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation>la sol·licitud amb aquest nom de fitxer no és vàlida %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation>no hi ha cap fitxer obert per aquesta sol·licitud %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation>Error en escriure al fitxer %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation>Error en canviar el nom del fitxer %1 a %2: %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation>dades locals actualitzades (%1, %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation>No hi ha itineraris disponibles</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fet !!!
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! ha fallat !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Més ràpid</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Més curt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Vianant</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Anglés US</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Angles Britànic</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Danés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Holandés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Francés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Alemany</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italià</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Noruec</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Espanyol</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Suec</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>mode "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>evitar autopistes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>evitar carreteres de peatge</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>no estacional</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>evitar carreteres sense asfaltar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>no hi ha ferry</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>no creuar fronteres de països</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>La petició d'Itinerari s'ha enviat al servidor. Si us plau, espereu...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Resposta dolente del servidor:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Calculant el temps: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Avís...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>S'ha trobat una versió incorrecte de Routino. S'esperava %1 s'ha trobat %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>Més curt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>Més ràpid</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>Peu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>Cavall</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Cadira de rodes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Ciclomotor</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Cotxe amb motor</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Béns</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Anglès</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Alemany</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Francès</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Hongarès</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Holandes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Rus</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Polac</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>S'ha fet una crida a una funció sense estar activat l'entorn de variables de la base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>S'ha cridat a una funció sense establir les variables del perfil.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>S'ha cridat a una funció sense establir les variables de la traducció.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>La base de dades especificada per carregar no existeix.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>La base de dades especificada no es pot carregar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>El perfil XML especificat no existeix.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>El perfil XML especificat no es pot carregar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>El fitxer de traducció XML especificat no existeix.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>El fitxer de traducció XML especificat no es pot carregar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>El nom de perfil sol·licitat no existeix en el fitxer XML carregat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>En el fitxer XML carregat no existeix la traducció a aquest idioma.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation>A la base de dades de rutes no existeix cap autopista propera a les coordenades per a posar-hi una fita.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>El perfil i la base de dades no són compatibles.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>El perfil utilitzat no ha estat validat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>El perfil d'usuari especificat conté dades invàlides.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Les opciones especificades en l'itinerary no son coherentes entre si.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>No hi ha coincidència entre la llibreria i la versió de crida a la API.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>L'usuari ha interromput el càlcul de la ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>No s'ha trobat cap ruta cap a la fita %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Error desconegut %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>perfil "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, mode "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Calcular l'itinerari amb %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Calculant el temps: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Afegir o suprimir camins a dades Routino. Pot haver-hi diverses bases de dades en un camí, però els camins secundaris no s'analitzaran.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Selecciona el camí dels fitxers amb dades d'itineraris...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (desconnectat)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (en línia)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (en línia)</translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Crea una Base de Dades Routino</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Selecciona fitxers...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Selecciona el camí destí...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fet !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished">Error...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>No s'ha seleccionat cap interval</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Mode exacte</b><br/>Tots els elements han d'estar del tot dins de l'àrea seleccionada.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation><b>Mode d'intersecció</b><br/>Tots els elements han d'estar dins o com a mínim han d'interseccionar amb l'àrea seleccionada.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Afegir Tracks</b><br/>Afegir tracks a la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Afegir Fites</b><br/>Afegir fites a la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Afegir Itineraris</b><br/>Afegir itineraris a la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Afegir Àrees</b><br/>Afegir les àrees en la lista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Ignora Tracks</b><br/>Ignora tracks de la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Ignora Fites</b><br/>Ignora fites a la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Ignora Itineraris</b><br/>Ignora itineraris de la llista d'elements seleccionats<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation><b>Ignorar les Àrees</b><br/>Ignorar les àrees en la lista d'elements seleccionats<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Cercant la base de dades '%1':</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Resposta desconeguda</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Error: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Manca Requeriment</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>No es pot utilitzar MySQL ja que el controlador (QMYSQL) no està disponible.<br />Assegureu-vos d'haver instal·lat els paquets necessaris.<br />Si en aquest moment no sabeu que fer <a href="%1">podeu donar un cop d'ull a la wiki</a>.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Ja existeix una base de dades amb nom '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Nova base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Obrir base de dades...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Configura la base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Els canvis s'activaran després del reinici d'una aplicació.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Error en carregar el fitxer %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Ha fallat l'anàlisi de la marca horària `%1`</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 no existeix</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>No és un fitxer SLF: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Revisió incompatible %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Divisió %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Volta %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation>Error en carregar el fitxer %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation>No és un fitxer sml: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Temps de recuperació: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Efecte de la Sessió d'Entrenament: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energia: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation>Dispositiu: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation>Ús de la bateria: %1 %/hores</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Aquest fitxer SML no conté cap dada i QMapShack no el pot visualitzar: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Doble clic per editar el valor de l'elevació</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation>%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Error en carregar el fitxer %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Error en obrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Error en llegir %1
+línia %2, columna %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>No és un fitxer TCX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Aquest fitxer TCX conté almenys 1 exercici, però cap activitat o camí. Els exercicis que no tenen dades de posició, no es poden importar a QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>Aquest fitxer TCX no conté cap activitat ni cap camí: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>El fitxer ja existeix ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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>Aquest fitxer ja existeix i no s'ha creat a QMapShack. Si premeu 'si' es perdrà tota la informació d'aquest fitxer. Fins i tot si aquest fitxer té informació i s'ha carregat a QMapShack, QMapShack no pot carregar i emmagatzemar tota la informació existent en aquest fitxer. La informació es perdrà. Recomano utilitzar un altre fitxer. Segur que voleu sobreescriure el fitxer?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>El track <b>%1</b> que heu seleccionat conté punts de track amb marques horàries invàlides. Pot ser que el dispositiu no accepti el fitxer de camí TCX que s'ha generat si ho deixeu així. <b>Voleu aplicar un filtre amb velocitat constant de (10 m/s) i continuar?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Camí</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Activitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Cancel·la</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Track amb marques horàries invàlides...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>Activitat o camí?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack no sap en quin format vols desar el track <b>%1</b> . <b>El vols desar com a camí o com a activitat ? </b>Si el deseu com a camí, sols es desaran les fites molt properes al track. Si el deseu com a activitat les fites no es desaran.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Ha fallat la creació del fitxer '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Error en escriure al fitxer '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Error desant dades GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>Escolliu-ne un...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Resum del Recorregut de Senderisme (intern)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Cami de les Plantilles...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>No s'ha pogut llegir el fitxer de plantilla %1.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Previsualització...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Color...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Reinicia format</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Accions Disponibles</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Accions Seleccionades</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Error en obrir %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Desa les dades GIS a...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Sols s'admet lon/lat en format WGS 84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Error en llegir les dades.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Camí a les icones de l'usuari...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Participants</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Meteorologia</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>pluja</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>assolellat</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>neu</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>nuvols</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation> ventades</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>càlid</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>temperat</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>fred</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>gelades</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>boira</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>humitat</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Caràcter</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>caminada fàcil</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>escalada</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>alpí</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>pujada llarga</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>llarga distància</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>via ferrada</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>calamarsa/calamarsa suau</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation> Valoració</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>Valoració 5 estrelles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>Valoració 4 estrelles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>Valoració 3 estrelles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>Valoració 2 estrelles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>Valoració 1 estrella</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>Interromput</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Equipament</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>equip per a vies ferrades</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>equipació nocturna</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>sabates de neu</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>equip d'escalada</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>esquí</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>equip de càmping</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Detalls</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>Quant a....</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation><b>QMapShack</b>, Versió</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation>Qt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation>GDAL</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation>Proj4</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Txec:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation>Pavel Fric</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Alemany:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation>Oliver Eichler</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Holandes:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation>Harrie Klomp</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Francès:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation>Rainer Unseld </translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation>Jose Luis Domingo Lopez</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Espanyol:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Traducció:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Rus:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation>Wolfgang Thämelt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation>Win64:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation>OS X:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation>Helmut Schmidt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation>Ivo Kronenberg</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Binaris:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>...I molted gràcies a tots els mantenidors dels binaris Linux pel gran treball que fan. Agraïments especials a Dan Horák i Bas Couwenberg per la seva presencia a les llistes de discusió de temes relacionats amb les distribucions.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Col·laboradors:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Aquest programari es distribueix sota llicència GPL3 o qualsevol altre versió posterior</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
+    </message>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Configurar la Vista Mapa...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Projecció & Datum</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Escales</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logarítmic</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>Quadrat (optimitzat per tesel·les TMS i WMTS)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation> Diàleg</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Unir Tracks...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Tracks Disponibles</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Tracks units</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Format de les coordenades...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>N48.8943° E013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>N48° 53.660 E013° 31.113</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Crear una ruta des de fites.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Tallar el Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Suprimir la primera part del track i mantenir la segona </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Mantenir les dues parts del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Mantenir la primera part del track i suprimir la segona </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Mode de Tall:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Marca això si voleu guardar el resultat en un track nou. 
+
+Si manteniu totes dues parts del track n'heu de crear de noves. 
+
+Si sols voleu mantenir una part suprimiu els punts, o marqueu això per a crear un track nou.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Crea un nou track</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>Ha canviat el format de base de dades pròpi de '%1'. QMapShack migrarà ara la teva base de dades. Després de la migració no es podrà utilitzar la base de dades amb versions antigues de QMapShack. Es recomana fer una còpia de la base de dades abans d'iniciar la operació.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Migrar base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>L'usuari ha interromput la migració</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Error en la migració de '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>Error en la migració</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>La version de la base de dades '%1' és més moderna que la instal·lada a QMapShack. No funcionarà.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Error en la inicialització</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Versió incorrecte de la base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>S'ha creat la base de dades amb la versió més recent de QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Error en la inicialització de '%1'.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Contrasenya...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Contrasenya de la base de dades '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Actualitzar la base de dades a la versió 5. Migrar tots els elements GIS.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Actualitzar la base de dades a la versió 3. Migrar tots els elements GIS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Actualitzar la base de dades a la versió 5. Migrar tots els elements GIS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Actualitzar la base de dades a la versió 6. Migrar tots els elements GIS.</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Configurar els camins als fitxers DEM</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Canvia l'opacitat del mapa</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala mínima per a visualitzar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Controla els intervals de l'escala en que es mostra el mapa. Utilitza els botons esquerra i dreta per a definir l'escala actual i el màxim i mínim de l'escala.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala màxima per a visualitzar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Relleu ombrejat</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Pendent</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation>> </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Per afegir fitxers amb dades d'elevació feu <b>Fitxer->Configurar camins DEM</b>.  O feu clic <a href='setup'><b>aquí</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Utilitza el menú contextual (clic al botó dret del ratolí o entrada) per activar un fitxer. Utilitzar arrossega I deixa anar per a moure el fitxer activat en el procés de selecció. </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Mou amunt</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Amagar DEM darrere de l'anterior</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Mou avall</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Mostra el DEM a sobre del següent</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>Tornar a carregar DEM</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation> Diàleg</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Posició:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Dificultat</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Terreny</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Actualitzar spoilers</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Consell:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation> Diàleg</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Aquesta àrea s'ha importat a QMapShack I ha estat modificada. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Amplada de la vora</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Estil</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Opacitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Punts</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Possició</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Paraules clau:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Mantenir l'ordre del projecte</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Ordena al llarg del track (diversos)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Ordena al llarg del track (un de sol)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Imprimir diari</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Reconstrueix el diari.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Aquesta ruta s'ha importat a QMapShack I ha estat modificada. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation>-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Estil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Origen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Màxim</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Utilitza/edita mostrar fletxes de direcció en el track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Utilitza/edita mostrar fletxes de direcció en tots els tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Mínim</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Gràfics</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Amplada</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Utilitza/edita l'escala del track definida per l'usuari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Utilitza/edita el valor per defecte de l'escala a tots els tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>amb fletxes</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation>x</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Límits d'aquest track definits per l'usuari </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation>-
+-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Aquest track s'ha importat a QMapShack I ha estat modificat. Ja no es poden mostrar les dades originals. Si us plau, mireu el historial per veure les modificacions. </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Límits automàtics</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Límits per a tots els tracks definits per l'usuari </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation>màx.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Activitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Assigna una Activitat al Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Per a tenir estadístiques dels tracks, seleccionar de la llista una activitat per a tot el track. O assigneu una activitat a una part del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Punts</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Temps</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Delta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Dist.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Velocitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Pendent</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Ascens</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Descens</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Possició</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation> Diàleg</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Possició:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Proximitat:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>La fita es va importar a QMapShack i es va modificar. Ja no es poden mostrar les dades originals. Vegeu l'historial de canvis. </translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Commuta el mode de només lectura. S'ha de desbloquejar l'element per a editar-lo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Data/Hora:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Afegir imatges.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Suprimeix la imatge seleccionada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Ja existeix un projecte amb el mateix nom. Si premeu el botó 'ok' el suprimireu i el substituireu pel nou.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Editar elevació...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Altura</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Obtenir l'elevació del model d'elevació digital actiu</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Exportar base de dades a GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Exportar Camí:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 sense extensions</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Inici</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Aborta</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Tancar</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Suprimeix Punts del Track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Suprimeix definitivament els punts amagats del track. </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Suprimir l'extensió de tots els Punts del Track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Suprimeix</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>desde tots els Punts del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Amagar Punts (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Amagar els punts del track que estiguin a una distància d'un altre inferior a</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Aplica ara el filtre.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Interpolar Dades d'Elevació</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Substitueix l'elevació dels punts del track amb dades interpolades</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Qualitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Previsualització</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Amagar Punts Invàlids</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Amagar punts amb dades invàlides.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Perfil Suau (Median Mètode)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Desplaçament suau dels punts d'elevació del track utilitzant un filtre de Mitjana de mida</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation>punts</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Canviar l'Hora</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Caviar l'inici del track a</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.aa HH:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Marques horàries inhabituals</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Incrementa la marca horària en</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation>seg.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>amb cada punt del track. 0 sec. es suprimiran les marques horàries.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Desplaçament de la Elevació</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Afegir un desplaçament de</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>a les elevacions dels punts del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Substitueix les Dades d'Elevació</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Substitueix l'elevació dels punts del track amb els valors carregats des dels fitxers DEM.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Reinicia els Punts Amagats del Track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Tornar a mostrar tots els punts del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Canviar Velocitat</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished">Velocitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> km/h</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished">Aplica ara el filtre.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Divideix els segments en Tracks</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Crea un nou track per a cada un dels segments existents al track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><b>Convertir a punts els subpunts del track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Convertir els subpunts obtinguts d'un itinerari a punts de track normals</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Calcular el Pendent del Terreny</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Calcular el pendent d'un terrent basant-se en fitxers DEM carregats.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>Error decodificant FIT: L'estat del decodificador no és correcte %1 després del darrer byte del fitxer.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation>Error decodificant FIT: ja existeix un camp de desenvolupament amb field_definition_number %1.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation>Edat</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation>Per afegir una base de dades feu clic en el botó dret sobre la llista de bases de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[sense nom]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>L'element no forma part del projecte a la base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>
+Es tracta d'un element nou o bé algú l'ha esborrat de la base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>L'element no existeix a la base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>És possible que s'hagi de desar l'element</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Versió inicial.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation>No tornar-ho a preguntar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3> Aquest element probablement és sols de lectura perquè no es va crear amb QMapShack. Normalment no voldreu canviar les dades importades. Però si ho heu de fer premeu 'Ok'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Mode de només lectura...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Descripció:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>--- sense descripció ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Comentari:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- sense comentari ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Enllaços:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- sense enllaços ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Edita el nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Introduir el Nou nom per a %1.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Desar el projecte?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>El projecte ha canviat. El voleu desar abans de tancar-lo?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Correlacionar tracks i fites.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>Va ser massa llarg per a tu? Per a d'altres cops, vols ometre en aquest projecte la correlació dels tracks i les fites?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Correlació cancel·lada...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Desa "%1" a...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Nom del fitxer: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Fites: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Itineraris: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Àrees: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <source>Are you sure you want to delete '%1' from project '%2'?</source>
+        <translation>Esteu segur que voleu suprimir '%1' del projecte '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Suprimir...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished">Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation>Opacitat</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation>Canvia l'opacitat de tots els elements GIS del kapa.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation>Filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation>Neteja el Filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation>Configura el Filtre</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Configurar Graella...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Projecció</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>restaura valor per defecte</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Obtenir la projecció del mapa actual.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>assistent de projecció</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Color de la Graella</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>configurar el color de la graella</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Base de Dades origen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Base de Dades destí:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Inici</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Edita...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation>Enrutament</translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Enllaços...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Tipus</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Text</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>Uri</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Fitxer</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Vista</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Finestra</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Eina</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Mapes</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Model Dig. Elev. (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation>Espai de treball</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Barra d'eines</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation>Enrutament</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Afegir Vista de Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Mostra l'Escala</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Configurar el Tipus de Lletra del Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Mostra la Graella</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Configurar Graella</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation>Ctrl+Alt+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Gira la Roda del Ratolí</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Configurar els Camins a Mapes</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>Text del PI</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Nit / Dia</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Consell Eina Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Configurar els Camins a DEM</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>Quant a</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Ajuda</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Configurar la Vista Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>Carregar Dades GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Carregar projectes des d'un fitxer</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Desa totes les dades GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation>Desa tots els projectes existents a l'espai de treball</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Configurar la Zona Horària</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Afegir un projecte buit</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Cerca a Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Tancar tots els projectes</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation>F8</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Configurar Unitats</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Configuració de l'espai de treball</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Desa la configuració en sortir.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Importar Base de Dades de QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>Importar base de dades QLandkarte GT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>Creador de VRT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>Frontal GUI per a gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Desa la Vista Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Escriu a un fitxer el mapa actual i la llista de DEM, incloent les propietats</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Carregar Vista Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Restaura d'un fitxer la vista activa amb el mapa actual i la llista de DEM, incloent les propietats</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Perfil Ext.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Tanca</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Clona la Vista Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation>Ctrl+Shift+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Crea una Base de Dades Routino</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Desa(Imprimeix) la captura de pantalla</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Imprimir l'brea seleccionada del mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Configurar el Format de Coord.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Canviar el format en que es mostren les coordenades</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Configurar el Fons del Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Configura les Icones de les Fites</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Configurar el Camí a les Icones Personalitzades</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Tanca la Pestanya</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation>Ctrl+W</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation> Ajuda d'inici ràpid</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Configurar la Barra d'Eines</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Commuta Acoblador</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Commutar la visivilitat de la finestra acoblable</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Pantalla Completa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation>Mín./Màx. Valors del Track</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation>En la vista de mapa, al llarg de tot el track, mostrar els valors màxims i mínims de les propietats del track.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation>Base de Dades</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Per afegir mapes feu <b>Fitxer->Configurar Camins a Mapes</b>.  O feu clic <a href='setup'><b>aquí</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Utilitza el menú contextual (clic al botó dret del ratolí o entrada) per activar un mapa. Utilitzar arrossega I deixa anar per a moure el mapa activat en el procés de dibuix. </translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Ajuda! Vull mapes!
+No vull llegir la documentació!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Mou amunt</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Amagar mapa darrere del mapa anterior</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Mou avall</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Mostra el mapa a sobre del següent mapa</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Tornar a carregar Mapes</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>Aquest mapa requereix suport OpenSSL. Tanmateix donades les restriccions legals existents en alguns païssos, OpenSSL no és al paquet de QMapShack. Heu de cercar els binaris a la <a href='https://www.openssl.org/community/binaries.html'>Pàgina inicial de OpenSSL </a>. S'han de copiar a la carpeta del programa QMapShack els fitxers libeay32.dll i ssleay32.dll.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: %2 tesel·les pendents<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Configurar els Camins a Mapes</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Camí arrel de la memòria cau per a les tessel·les dels mapes en línia:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Ajuda! Vull mapes!
+No vull llegir la documentació!</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Canvia l'opacitat del mapa</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala mínima per a visualitzar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Controla els intervals de l'escala en que es mostra el mapa. Utilitza els botons esquerra i dreta per a definir l'escala actual i el màxim i mínim de l'escala.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Click per utilitzar l'escala actual com a escala màxima per a visualitzar el mapa. </p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Àrees</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Línies</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Punts</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Detalls</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Mida de la memòria cau (MB)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Venciment (Dies)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Camí a la Memòria Cau</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>Tipus de fitxer:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Oblida els tipus de fitxer externs i utilitza els propis.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Carregar un tipus de fitxer extern.</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Opcions Avançades</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation>Sense font de Dades (-srcnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation>Sense Dades Destí (-vrtnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation>Projecció Objectiu (-a_srs)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation>Aquestes opcions s'utilitzen en casos molt puntuals, normalment s'han de deixar en blanc. Veure GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Ajuda</a> per a obtenir més informació.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation><ol>
+<li>Selecciona una o múltiples fonts de fitxers *.pbf .</li>
+<li>Selecciona un nom per al fitxer VRT destí.</li>
+<li>Prem el botó "Inicia".</li>
+</ol>
+
+Consell:
+<ul>
+<li>Si tens diversos fitxers posa'ls en una subcarpeta del camí a la carpeta de mapes. Crea el fitxer VRT al camí a la carpeta de mapes.</li>
+<li>Utilitza les opcions avançades per afegir un valor "sense dades" si els fitxers origen no tenen dades o no tenen una forma de mapa rectangular. Les àrees sense fitxer de mapa es veuran transparents.</li>
+<li>Les opcions "-a_srs" s'utilitzen per assignar una Projecció/Datum si els fitxers origen no en tenen. Aquestes opcions NO re-projecten les dades.</li>
+</ul></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Selecciona els fitxers origen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Fitxer Destí:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Inici</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Nova Línia</b><br/>Mou el ratolí, utilitzar el botó de l'esquerra per a crear punts. Un cop fet fes clic al botó esquerra del ratolí per a finalitzar.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Suprimir punt</b><br/>Moure el ratolí a prop d'un punt i fer clic al botó esquerra per suprimir-lo.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Selecció d'un Interval de Punts</b><br/>Inicia la selecció fent clic al botó esquerra sobre el primer punt. Finalitza la selecció fent clic al botó esquerra sobre el segon punt, selecciona les opcions. Per a cancel·lar fes clic al botó dret del ratolí.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Moure Punt</b><br/>Mou el ratolí prop del punt i prem el botó esquerra per adherir-l'ho al cursor. Mou el ratolí per a moure el punt. Deixa anar el punt fent clic al botó esquerra. Fes clic al botó dret del ratolí per a cancel·lar.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Afegir Punt</b><br/>Per afegir un punt, mou el ratolí prop de la línia del segment i prem el botó esquerra. El punt s'adherirà al cursor i el podràs moure. Deixa anar el punt fent clic al botó esquerra. Fes clic al botó dret del ratolí per a cancel·lar.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Sense Enrutament</b><br/>Tots els punts han d'ester connectats amb una línia recte.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Enrutament Automàtic</b><br/>La configuració actual de l'enrutador s'utiliza per a definir una ruta entre punts. <b>Nota:</b> L'enrutador seleccionat permet definir una ruta sobre la marxa. Els enrutadors Sense Connexió normalment permeten fer-ho, els enrutadors en línia no ho permeten.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Enrutament Vectorial</b><br/>Si es possible, connecta punts amb una línia en un mapa vectorial carregat, .<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1 Mètrica</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Distància:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Ascens:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Descens:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation><br/><b>Moure el mapa</b><br/>Manteniu premut el botó esquerra del ratolí i podreu moure el mapa.<br/><br/></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Reinicia Zoom</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Final de l'Interval</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Desa...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Afegir Fita</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Talla...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Mantenir premuda la tecla CTRL només per zoom vertical.
+Mantenir premuda la tecla ALT només per zoom horitzontal.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>No hi ha dades o són incorrectes.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Selecciona el fitter de sortida</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Posició ...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Introduir la nova posició</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Format amb possicions incorrectes. Ha de ser: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+o
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Imprimir mapa...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>En desar mapes en línia, assegureu-vos que tota l'extensió del mapa que vulgueu desar s'ha carregat a la memòria cau.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Desa</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>En imprimir mapes en línia, assegurat que tots els mapes que s'han d'imprimir s'han carregat a la memòria cau.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Imprimir</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Si us plau, espereu...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation>Mercator</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation>UTM</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>zona</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>definit per l'usuari</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation>Mercator Mundial (OSM)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Resultat:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Nord (Pol Nord)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Sud (Pol Sud)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Projecció</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Projecció de Fites</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Clona la fita i ves-hi:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation>mostrar el perfil d'itineraris seleccionat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation>enrutament al vol</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation>BRouter: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation>no s'està executant</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation>iniciar/parar BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation>Mostra la consola de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation>Configurar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation>Precaució! BRouter està mirant a tots els ports cercant connexions.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation>Perfil BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation>Configurar BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation>escollir quin BRouter s'utilitzarà</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation>BRouter-Web (connectat)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation>instal·lació local</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation>Mode Expert</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation>Directori de la instal·lació local de BRouter:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation>selecciona el directori d'instal·lació</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation>labelLocalDirResult</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation>crea o modifica la instal·lació</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation>Java Executable</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation>labelLocalJavaResult</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation>cerca el java instal·lat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation>Baixar i Instal·lar la Versió BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation>Fitxer a instal·lar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation>Baixar i Instal·lar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation>Perfils Disponibles</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation>Instal·lar perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation>suprimir perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation>Perfils instal·lats</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation>contingut del perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation>BRouter-Web URL:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation>Servei-URL</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation>Perfil-URL</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation>Nom d'amfitrió</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation>Port</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation>Directori del Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation>Directori dels segments</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation>Perfils Personalitzats dir</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation>Màx Temps d'execució</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation>Nombre de Subprocessos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation>Opcions de Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation>Perfils Url</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Autopistes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Estacional</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Idioma</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Frontera Internacional</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Evitar:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Transbordador</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Carretera de peatge</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Sense asfaltar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Direccions Cortesia de <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Mode</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Base de Dades</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Afegir camins a la base de dades Routino.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>idioma</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Per a utilitzar itineraris fora de línia cal definir el camí a les dades locals d'itineraris. Utilitza el boto configurar per a enregistrar un camí. Pots crear les teves dades locals d'itineraris fent <b>Eina->Crea Routino Base de Dades</b>.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Configurar la base de dades Routino...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Selecciona els fitxers origen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Inici</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Camí Destinació:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Prefix del Fitxer</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation><p>Per a crear una base de dades d'itineraris Routino s'han de baixar tots els fitxers *pbf de <a href='http://download.geofabrik.de/'>GeoFabrik</a>. El procés de creació d'una base de dades d'itineraris Routino és força lent i els fitxers resultants força grans. Per tot això es recomana que no baixeu tots els continents. Limiteu la baixada als països que realment necessiteu. No obstant, Routino no pot crear itineraris  [...]
+
+<ol>
+<li>Selecciona una o múltiples fonts de fitxers *.pbf .</li>
+<li>Selecciona el camí de la vostre base de dades Routino.</li>
+<li>Selecciona un prefixe. La base de dades apareixerà a la llista amb aquest prefix.</li>
+<li>Prem el botó "Inicia".</li>
+</ol></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulari</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulari</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished">Origen</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">EtiquetaDeText</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Desa a l'original</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Desar com a nou</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Interrompre</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Moure punts. (Ctrl+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Afegir nous punts. (Ctrl++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>Ctrl++</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Selecciona un interval de punts. (Ctrl+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Suprimir un punt. (Ctrl+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation>Ctrl+-</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>No utilitzar ni auto-enrutament ni ajust de línia (Ctrl+O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Utilitzar l'auto-enrutament entre punts. (Ctrl+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Ajustar la línia amb les línies d'un mapa vectorial. (Ctrl+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Desfés el darrer canvi</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Refès l'últim canvi</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Veure els detalls i editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Copia l'àrea a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Suprimir àrea del projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Editar la forma de l'àrea.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation>Desa l'àrea seleccionada com a imatge</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Imprimir l'àrea seleccionada</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Suprimir tots els punts entre el primer i l'últim</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Calcular una ruta entre el primer i el darrer punt seleccionats.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Amaga tots els punts.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Mostra tots els punts.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Assigna una Activitat per a l'interval seleccionat.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Copia els punts del track a un nou track.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Veure els detalls i editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Copia la ruta a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Suprimeix itinerari del projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Calcula la ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Reinicia el càlcul de la ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Moure els punts de l'itinerari.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Converteix la ruta a track</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Copia els elements seleccionats a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Crear una ruta des de les fites seleccionades.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Canvia la icona de totes les fites seleccionades.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Unir tots els tracks seleccionats en un de nou.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Assigna una Activitat per a tots els Tracks seleccionats.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Esborrar tots els elements seleccionats</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Selecciona tots els elements que intersecten amb l'àrea seleccionada.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Selecciona tots els elements que es troben de forma integra dins l'àrea seleccionada.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Afegeix tracks a la selecció.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Afegeix fites a la selecció.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Afegeix itineraris a la selecció.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Afegir àrees a la selecció.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Veure detalls del track I editar les propietats.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Copia el track a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Suprimeix track del projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Mostra a la pantalla el perfil i informació detallada sobre els punts.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Selecciona un interval de punts.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Editar la posició dels punts del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Invertir track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Combinar tracks.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Retalla el track en el punt seleccionat. Es pot utilizar per:
+
+* suprimir punts sobrants a l'inici o al final del track
+* utilitzar parts del track per a planificar un nou recorregut
+* retallar un track molt llarg en vàries etapes
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Assigna una Activitat per a tot el Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Copia el track i totes les fites adjuntes a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Veure els detalls i editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Copia la fita a un altre projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Suprimeix fites del projecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Mostra el contingut en una bombolla estàtica.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Mou fites a una nova ubicació.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Clona la fita i mou el clon a la distància i angle que diguis.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">EtiquetaDeText</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Cerca...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Escriu la paraula que vols cercar i prem el botó de cerca. 
+Si introduïu 'word' es fa una cerca de la paraula exacte. Si introduïu 'word*', la paraula 'word' ha d'estar a l'inici de la cadena de text.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Cerca</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Tanca</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Selecciona els dispositius...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Copia l'element...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Substituir l'element existent</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>No copiïs l'element...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Crea un clon</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Substituir amb:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Mantenir l'element:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Al nom del clon s'hi afegirà '_Clone'</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>I també per a tots els altres elements.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Selecciona Carpeta Superior...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Afegir als elements seleccionats</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Suprimir dels elements seleccionats</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Seleccionat</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Mou els elements seleccionats amunt</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Mou els elements seleccionats avall</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Selecciona un projecte...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Selecciona un projecte de la llista o introdueix un nom de projecte nou.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Nom del nou projecte</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>S'ha creat un nou projecte com:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation>*.qms</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation>*.gpx</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Base de dades</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Copia l'element...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Substituir l'element existent</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>EtiquetaDeText</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>No substituir l'element</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Afegir un clon</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Al nom del clon s'hi afegirà '_Clone'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>I també per a tots els altres elements.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Utilitza l'element:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Substituir amb:</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Afegir base de dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Servidor</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation>Port</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Usuari</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Contrasenya</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Atenció!</span> Es recomanable deixar la contrasenya en blanc ja que QMapShack l'emmagatzema sense xifrar. En cas de deixar-la en blanc es demanara a cada arrancada.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Port:</b> Deixar el camp port buit si es vol utilizar el port per defecte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>No utilitzeu una contrasenya</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Fitxer:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Afegir una nova base de dades.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Obrir una base de dades existent.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulari</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Aplica el filtre a</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>només el nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>text complet</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Carpeta de les Bases de Dades...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Nom de la carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Grup</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Projecte</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Altres</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Nova Fita...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Símbol</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Posició</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Format amb possicions incorrectes. Ha de ser: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+o
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Configuració de l'espai de treball...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>A la sortida desa l'espai de treball, i tota la resta</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>minuts</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>mirant canvis a la base de dades fets per d'altres instàncies de QMapShack. Al port</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Insereix la Plantilla...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Plantilles</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Selecciona el camí de les vostres plantilles.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Previsualització</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Edita el text...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Desfés</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Refès</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Maj+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Talla</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Copia</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Enganxa</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Plant.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation>A:L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation>A:C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation>A:R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation>A:B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation>C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Estàndard</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation>Llists de Pics (Disc)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation>Llists de Pics (Cercle)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation>Llists de Pics (Quadrat)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation>Llista ordenada (Decimal)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation>Llista ordenada (Minúscules llatines)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation>Llista ordenada (Majúscules llatines)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation>Llista ordenada (Minúscules romanes)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation>Llista ordenada (Majúscules romanes)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Alinea a l'esquerra</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Alinea a la dreta</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Alinea al centre</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Alinea el Bloc</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Subratllat</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Negreta</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Itàlica</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Reinicia el format del text abans d'enganxar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Selecciona-ho Tot</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Suprimir</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Reinicia Típus de Lletra</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Reinicia Disseny</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Enganxa sense reiniciar el format del text</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Insereix des d'un Plantilla</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Crea text utilitzant una plantilla.</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Retalla</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Còpia</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Enganxa</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Configura la zona horaria ...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>UTC</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Local</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automàtic</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Imprimir data/hora a </translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>format llarg, o</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>format curt</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Nota:</b> En caviar algun dels elements GUI, les unitats no tindran efecte fins que no es reinicií QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Configurar la Barra d'Eines</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>La Barra d'Eines és visible en mode Pantalla Sencera</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Error en l'execució del programa extern `%1`:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>El procés no es pot iniciar.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation> Assegureu-vos que els paquets necessaris estan instal·lats, `%1` existeix i es pot executar.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>El procés extern ha fallat.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>S'ha product un error desconegut.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! ha fallat !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Format amb possicions incorrectes. Ha de ser: "[N|S] ddd mm.sss [W|E] ddd mm.sss" o "[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Els valors de la posició estan fora dels límits.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Configurar unitats...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation>Unitat de longitud</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Imperial</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Mètric</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation>Unitats del pendent</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation>Graus (°)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation>Percentatge (%)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Nota:</b> En caviar algun dels elements GUI, les unitats no tindran efecte fins que no es reinicií QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Icones...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Icones externes:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Les icones personalitzades han d'estar en format *.bmp o bé *.png.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/locale/qmapshack_cs.desktop b/src/qmapshack/locale/qmapshack_cs.desktop
similarity index 100%
rename from src/locale/qmapshack_cs.desktop
rename to src/qmapshack/locale/qmapshack_cs.desktop
diff --git a/src/qmapshack/locale/qmapshack_cs.ts b/src/qmapshack/locale/qmapshack_cs.ts
new file mode 100644
index 0000000..bbd619f
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_cs.ts
@@ -0,0 +1,10872 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="cs_CZ">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API verze %2, očekávána verze %3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API verze %2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(žádné DBUS: zjišťování zařízení a zacházení s ním zakázáno)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>Chodec</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Jízdní kolo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Motocykl</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Lanovka</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Plavání</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Loď</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>Žádná činnost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Celkem</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Stoupání:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Klesání:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Lyže/Zima</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Letectví</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Veřejná doprava</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Vzdálenost:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Rychlost při pohybu:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Celková rychlost:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Čas při pohybu:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Celkový čas:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Pohled %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Nastavit pozadí mapy</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Esc</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Zobrazit výstup ladění v konzoli.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Uložit výstup ladění do souboru se zápisem (cesta temp).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Neukazovat uvítací obrazovku.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Soubor s nastavením pro QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>Soubor</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Soubory pro pozdější potřebu.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>Cesta</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Všechna data seskupená podle složek.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Ztraceno a nalezeno (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Ztraceno a nalezeno</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>Databáze MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation>Server: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation> (žádné heslo)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Chyba: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>Databáze SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Soubor: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Chyba: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 m</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation>%1 h</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 dnů</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>Nepodařilo se nahrát...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>Nelze nahrát soubor "%1". Bude přeskočen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>Projekt již je v databázi...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>Projekt "%1" již byl zaveden do databáze. Bude přeskočen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>Prvek  %1 byl změněn pomocí %2 (%3).
+
+K vyřešení tohoto střetu můžete vytvořit a uložit klona, vynutit svoji verzi, nebo ji zahodit a vzít jednu z databáze</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Střet s databází...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Klonovat a uložit</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Vynutit uložení</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Vzít vzdálenou verzi</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Chybí složka...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>Nepodařilo se uložit projekt. Složka byla v databázi smazána.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Uložit...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Chyba</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Vyskytla se neočekávaná chyba databáze:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>Projekt '%1' se právě bude aktualizovat z databáze. Jsou tu ovšem neuložené změny.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Uložit změny?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Vypnout</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Zapnout</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Přidat nebo odstranit cesty obsahující data s výškovým modelem (DEM). V cestě může být více souborů, ale žádná podcesta není zpracována. Podporovanými formáty jsou: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Vybrat cestu k souboru s výškovým modelem...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>Nepodařilo se nahrát soubor %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>Výškový model (DEM) musí mít jedno pásmo s 16bitovými nebo 32bitovými daty.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>Nenalezeny žádné údaje o vyjádření prostorových vztahů.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>žádné</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Hledají se obrázky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>Nebyly nalezeny žádné obrázky</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>žádné</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Sestavit deník...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Cestovní body</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Informace</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Poznámka</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Stopy</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>Od začátku</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>K další</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>Na konec</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Oblasti</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Chcete řadit cestovní body podél cesty, ale vypnul jste svázání cestovních bodů a cest (dání do vzájemného vztahu). Chcete je opět zapnout?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Svázání...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Přehled všech stop v projektu</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Cesty</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Upravit název...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Zadejte nový název projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Upravit klíčová slova...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Zadejte klíčová slova.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Tisk deníku</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Omezit počet viditelných bodů stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <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="174"/>
+        <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="177"/>
+        <source>Miscellaneous</source>
+        <translation>Různé</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Barva</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Činnost</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Zadat nový poplach kvůli odstupu.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Obrázek %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Neznámý</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Archiv - Rozbalit k nahrání</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>Archiv - Nahráno</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>Pro tento bod nebyla nalezena žádná data výškového modelu (DEM).</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Vybrat cestu pro vyvedeni...</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Vytvořit %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation>Nepodařilo se vytvořit %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>Hotovo!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>Přerušeno uživatelem!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation>Chyba databáze: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>Uložit projekt jako %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation>Nepodařilo se!</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>Není dostupné žádné rozšíření</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>Hrubý</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>Střední</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>Jemný</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>Chyba při dekódování FIT: Neplatné CRC.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>Chyba při dekódování FIT: Neočekávaný konec souboru %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>Chyba při dekódování FIT: Neznámý datový typ %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation>Chybí vymezení pole pro vývojové pole.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation>Chyba dekódování FIT: neplatné vymezení pole číslo %1 při vytváření profilu vývojového pole.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>Chyba při dekódování FIT: Verze protokolu %1 není podporována.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>Chyba při dekódování FIT: Nesouhlasí signatura hlavičky. Soubor není FIT.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>Nepodařilo se otevřít soubor FIT %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>Chyba při dekódování FIT: Architektura %1 není podporována.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>Chyba při dekódování FIT: Neplatný posun %1 pro stav 'zaznamenaný obsah'</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Varování...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation>Toto je souborový typ s neznámým kódováním mnohoúhelníku. Nahlašte to, prosím!</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation>Toto je souborový typ s neznámým kódováním čáry. Nahlašte to, prosím!</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>Tenký</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>Obvyklý</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>Široký</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>Silný</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Oblast: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Změněn tvar oblasti.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Změněn název.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Změněna šířka okraje.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Změněn vzor výplně.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Změněna neprůhlednost.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Změněna poznámka.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Změněn popis.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Změněné odkazy</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Změněná barva</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished">Cesta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>Stopa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Změněn název.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Změněná poznámka</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Změněný popis</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Změněné odkazy</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished">Délka: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation type="unfinished">Čas: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation type="unfinished">Vzdálenost: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Délka: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Výsledný čas: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Poslední spočítání cesty:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>s %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Změněné body cesty.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>Soubor FIT %1 neobsahuje žádná data GPS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Nepodařilo se otevřít %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <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="420"/>
+        <source>Failed to read data.</source>
+        <translation>Nepodařilo se přečíst data.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <source>Changed trackpoints, sacrificed all previous data.</source>
+        <translation>Změněny body stop. Obětována veškerá předchozí data.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation type="unfinished">min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation type="unfinished">max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished">Délka: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <source>, %1%2%3, %4%5%6</source>
+        <translation type="unfinished">, %1%2 %3, %4%5%6 {1%2%3,?}</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation type="unfinished">Čas: %1, Rychlost: %3%4 {1%2,?}</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation type="unfinished">Pohyb: %1, Rychlost: %3%4 {1%2,?}</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Začátek: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Začátek: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Konec: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Konec: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Body: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>Neplatné výšky!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>Neplatná časová razítka!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>Neplatné polohy!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="463"/>
+        <source>Invalid slopes!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Činnosti: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Rejstřík: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Rejstřík: viditelné %1, celkem %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... a %1 značek nezobrazeno</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Vzdálenost: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>Pohyb: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>Stopa</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Skrýt bod %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Skrýt body %1  %2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>, %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="393"/>
+        <source>, %1-, %2-</source>
+        <translation>, %1-, %2-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Čas: -, Rychlost: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>Pohyb: -, Rychlost: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished">Výška: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Stoupání: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Klesání: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Stoupání: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Vzdálenost: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Stoupání: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Klesání: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Stoupání: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Vzdálenost: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Trvale odstraněné body %1 ... %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Ukázat body.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Změněný název</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Změněná poznámka</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Změněný popis</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Změněné odkazy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Výška bodu %1 byla změněna na %2 %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Činnost byla pro celou stopu změněna na '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Činnost byla změněna pro oblast (%2...%3) na '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Skrýt body pomocí algoritmu Douglas Peuker (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Skrýt body s neplatnými daty.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Nastavit znovu všechny skryté body stopy na viditelné</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Všechny skryté body stopy odstraněny trvale</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Profil vyhlazen středovým filtrem o velikosti %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>Přidán sklon území ze souboru s digitálním výškovým modelem (DEM).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Výšková data nahrazena daty ze souborů s digitálním výškovým modelem (DEM).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Výšková data nahrazena interpolovanými hodnotami. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>Výšková data posunuta o %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Začátek stopy změněn na %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Odstranit časová razítka.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Uměle utvořená časová razítka nastavena s odstupem %1 s.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Rychlost změněna na %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (část %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>Rozšíření %1 bylo odstraněno ze všech bodů stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Podbody převedeny ze stanovení směru cesty na body stopy</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Kopírovat informační příznak ze stopy QLandkarte GT</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Archivováno</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Dostupné</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>Nedostupné</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation type="unfinished">Výška: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation type="unfinished">Blízkost: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Změněný název</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Změněná poloha</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Změněná výška</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Změněná blízkost</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Změněná ikona</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Změněná poznámka</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Změněný popis</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Změněné odkazy</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Změněné obrázky</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Přidat obrázek</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Na základě změn v databázovém systému QMapShack souborové názvy ve vaší databázi '%1' už nezná. Musíte je v dalším kroku znovu zvolit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Vybrat soubor s databází.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Přidat databázi</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Přidat složku</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Přejmenovat složku</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Kopírovat složku</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Přesunout složku</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Smazat složku</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Zavést ze souborů...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Vyvést do GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Smazat prvek</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Prohledat databázi</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Seřídit s databází</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Odstranit databázi</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Prázdný</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Odstranit databázi...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Opravdu chcete '%1' odstranit ze seznamu?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>Opravdu chcete smazat vybrané složky a všechny podsložky z databáze?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Špatná operace...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>Cílová složka je podsložkou složky k přesunutí. Toto nebude pracovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Název složky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Přejmenovat složku:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Jste si jistý, že chcete smazat '%1' ze složky '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Smazat...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>Zavést údaje GIS...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Smazat složku s databází...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Odstranit prvky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Opravdu chcete smazat všechny prvky ze ztracených a nalezených? Tím budou trvale odstraněny.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Opravdu chcete smazat všechny vybrané prvky ze ztracených a nalezených? Tím budou trvale odstraněny.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Uložit</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Upravit...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Zavřít</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Aktualizovat projekt na zařízení</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Upravit...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Kopírovat do...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Automaticky. Uložit</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Uložit jako...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Kopírovat stopu s cestovními body</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Ukázat bublinu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Přesunout cestovní bod</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Promítnutí cestovního bodu...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Pokyny pro cestu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Spočítat cestu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Nastavit cestu znovu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Upravit cestu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>Převést na stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Vytvořit cestu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Změnit ikonu (pouze vybrané cestovní body)</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Nastavit činnost stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Zahodit prvky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <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="1279"/>
+        <source>Delete project...</source>
+        <translation>Smazat projekt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Opravdu chcete smazat %1?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Profil stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Ukázat na mapě</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Skrýt v mapě</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Řadit podle času</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Řadit podle názvu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Uložit jako GPX 1.1 w/o ext...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Poslat do zařízení</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Seřídit s databází</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Vybrat rozsah</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Upravit body stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Obrátit stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Spojit stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Upravit body oblasti</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Smazat</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Ukládá se pracovní prostor. Počkejte, prosím.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Nahrává se pracovní prostor. Počkejte, prosím.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Zavřít všechny projekty...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>Tímto budou všechny projekty odstraněny z pracovního prostoru.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation type="unfinished">Nahrát projekt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation type="unfinished">Projekt "%1" je již náhrán do pracovního prostoru.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation type="unfinished"><b>Výběr prvků: </b>Prvek vybrán ze seznamu pracovního prostoru. Klepněte na mapu pro přepnutí zpět do běžného chování při výběru myší.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation type="unfinished">Kopírovat prvky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation type="unfinished">Změnit značky cestovních bodů.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation type="unfinished">Rozkrojit stopu...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation type="unfinished">Opravdu chcete smazat původní stopu?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>Není souborem GPX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>Soubor existuje...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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="386"/>
+        <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="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Nepodařilo se zapsat soubor '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Nepodařilo se uložit data GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1m, %2m </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>N %1 m, E %2 m</translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation> od %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Vyjmout záznam minulosti před</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Vyjmout záznam minulosti po</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Odstranění záznamu minulosti</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>Odstranění je trvalé a nelze je vrátit zpět. <b>Opravdu chcete smazat záznamy před tímto krokem?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>Zavést databázi QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Vybrat zdrojovou databázi...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Vybrat cílovou databázi...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Teplota vzduchu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Teplota vody</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Hloubka</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Hloubka</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Tep srdce</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Rychlost chůze</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Rychlost chůze</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Rychlost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Rychlost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Zrychlení</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Směr</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Směr</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Teplota</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Vzdál.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Vzdálenost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Výška</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Výška</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Síla</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Síla</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Tlak u hladiny moře</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Sklon*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Sklon</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Postup</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Ztraceno a nalezeno</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Použít <b>Nabídka → Pohled → Přidat pohled na mapu</b> k otevření nového pohledu. Nebo <b>Nabídka → Soubor → Nahrát pohled na mapu</b> k obnovení uložené. Nebo klepněte <a href='newview'>sem</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished">Výška: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation type="unfinished">Sklon: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Mřížka: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>Nahrát data GIS...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Vybrat výstupní soubor</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>Pohled QMapShack (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Vybrat soubor k nahrání</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Kritické...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack zjistil, že knihovna Proj4 je nainstalována špatně. Chybí překladové tabulky pro promítání EPSG, jež jsou obvykle uloženy v /usr/share/proj. Spojte se, prosím, s údržbářem balíčku ve vaší distribuci, aby to spravil.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation>Nyní tu nejsou žádné mapy. S QMapShack bez map není žádná zábava. Mapy můžete nainstalovat po stisknutí tlačítka Pomoc! Potřebuji mapy! v panelovém okně Mapy. Nebo můžete stisknout klávesu F1 pro otevření dokumentace na internetu, která vám poví, jak QMapShack používat.
+
+A když to bez map nejde, proč je neposkytujete? Protože mít mapy připravené ke stažení vyžaduje dobrý server. A to není služba zadarmo. Projektu se (na to) nedostává peněz. A mapy a data výškových modelů (DEM) jsou chráněna autorskými právy (právy ke kopírování). Z toho důvodu musí být držitel práv před zabalením dat požádán. Není to tak lehké, jak to může znít a za některá data se platí poplatky za užívání. Projektu zkrátka chybí prostředky, aby to dělal. Myslíme si dále, že žádat po vá [...]
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Nepodařilo se...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Neurčeno</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Francouzský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Německý</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Holandský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Anglický</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Finský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Švédský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Španělský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Baskický</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Katalánský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Galicijský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Velšský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gaelský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Dánský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Norský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portugalský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Slovenský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Český</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Chorvatský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Maďarský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Polský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Turecký</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Řecký</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Slovinský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Ruský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Estonský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Lotyšský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Rumunský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Albánský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosenský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Litevský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Srbský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Makedonský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Bulharský</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Dálnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Silnice první třídy</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Jiné rychlostní silnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Rychlostní silnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Státní silnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Silnice v obytné oblasti</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Soukromá cesta</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Nájezd na dálnici/sjezd z dálnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Nájezd na dálnici/sjezd z dálnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Neasfaltovaná cesta</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Dalniční přivaděč</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Kruhový objezd</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Železnice, koleje</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Břeh</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Cesta</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Proud</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Časové pásmo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Přívoz</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Státní/Zemská hranice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Krajská/Obecní hranice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Mezinárodní hranice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Řeka</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Malá vrstevnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Střední vrstevnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Velká vrstevnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Malá hloubková čára</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Střední hloubková čára</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Velká hloubková čára</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Přerušovaný potok (Wadi)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Přistávací dráha</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Dálkové potrubí</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Elektrické vedení</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Hranice moře</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Nebezpečná hranice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Velkoměstská oblast (&gt;200 000)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Maloměstská oblast (&gt;200 000)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Městská obytná oblast</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Vojenská základna</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Parkoviště</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Parkovací budova</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Letiště</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Nákupní středisko</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Přístav</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Univerzita/Vysoká škola</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Nemocnice</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Průmyslový celek</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Chráněné území</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Zástavba</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Oblast pro tělesné činnosti</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Golfové hřiště</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Hřbitov</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Národní park</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Městské sady</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Státní park</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Les</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Oceán</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation>Modrá (neznámé)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Moře</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Velké jezero</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Střední jezero</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>Malé jezero</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Velmi velké jezero</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Veletok</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Velká řeka</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Střední řeka</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Malá řeka</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Přerušovaná voda</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Močál/Bažina</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Ledovec</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Sad/Plantáž</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Křoví</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Tundra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Rovina</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Přečíst vnější typ souboru...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Nepodařilo se přečíst typ souboru: %1
+Návrat k vnitřním typům.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Nepodařilo se přečíst: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Nepodařilo se otevřít: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Špatný formát souboru: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Nepodařilo se přečíst stavbu souboru: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Nahrává se %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Zrušeno uživatelem: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>Soubor je ve formátu NT. QMapShack nedokáže číst mapové soubory ve formátu NT: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>Soubor obsahuje zamknutá/zašifrovaná data. Garmin nechce, aby byl tento soubor použit s jiným programem než dodaným Garminem.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Podivuhodnost</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Neznámý</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Oblast</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Vypnout</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Zapnout</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>Kde chcete ukládat mapy?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Nepodařilo se...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Nepodařilo se otevřít: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Špatný formát souboru: </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Přidat nebo odstranit cesty obsahující mapy. V cestě může být více map, ale žádná podcesta není zpracována. Podporovanými formáty jsou: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Vybrat cestu k mapě...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Vybrat cestu ke kořeni...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>Vybrat typ souboru...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Toto není soubor TwoNav RMAP</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Neznámý podformát.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Neznámá verze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Nepodařilo se přečíst referenční bod.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Neznámé promítání a datum (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Vrstva %1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Nepodařilo se nahrát soubor %1
+</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Soubor musí mít 8 bitovou barevnou paletu nebo být v odstínech šedi.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>Nenalezeny žádné údaje o vyjádření prostorových vztahů.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>Sestavit GDAL VRT</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Vybrat soubory...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Vybrat cílový soubor...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>Hotovo!</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Chyba při čtení: %1
+Neznámá stavba.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Neočekávaná služba. Očekáváno '* WMTS 1.0.0'. Přečteno '%1 %2'.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>Nenalezeny žádné údaje o soustavě souřadnic.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Oblast</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Upravit oblast</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>Oblast</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Cesta</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Upravit body cesty</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>Cesta</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Stopa</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Upravit body cesty</b><br/>Vyberte funkci a režim stanovení směru cesty přes nástrojová tlačítka. Dále vyberte bod na čáře. Lze měnit pouze body označené velkým čtverečkem. Černé body jsou podbody vytvořenými při stanovení směru cesty.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Varování!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Tímto budou všechny původní údaje nahrazeny jednoduchou čárou souřadnic. Všechna ostatní data budou trvale ztracena.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>Stopa</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>Přidat POI jako cestovní bod</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Přidat cestovní bod</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Přidat stopu</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Přidat cestu</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Přidat oblast</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Vybrat prvky na mapě</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Kopírovat polohu</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Kopírovat polohu (mřížka)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Uložit mapu (vytisknout)</b><br/>Vyberte na mapě obdélníkovou oblast. použijte levé tlačítko myši a pohybujte myší. Zrušte výběr klepnutím pravým tlačítkem myši. Výběr lze upravit posunutím rohových bodů myší. Uložení/Vytištění následuje po klepnutí levým tlačítkem myši na odpovídající symbol uprostřed výběru.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Upravit rozsah</b><br/>Vyberte první bod stopy klepnutím levým tlačítkem myši. A potom druhý bod. Opusťte výběr rozsahu klepnutím pravým tlačítkem myši.<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Vybrat prvky na mapě</b><br/>Vyberte na mapě klepnutím levým tlačítkem myši obdélníkovou oblast. Výběr zrušíte klepnutím pravým tlačítkem myši. Výběr lze upravit posunutím rohových bodů myší.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Vybráno:</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 cestovní body<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 stopy<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 cesty<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 oblasti<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Vybrat obrázky...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation type="unfinished">Čas</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Tisk mapy...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Uložit mapu jako obrázek...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Vlastnosti tiskárny...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Strany: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Přibližujte a oddalujte pomocí kolečka myši na mapě dole pro změnu rozlišení:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Probíhá tisk stran.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Uložit mapu...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Uplynulý čas: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Uplynulý čas: %1 sekund.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>Sever</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>Jih</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>Zadání:
+'%1'
+není platným vymezením soustavy souřadnic
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Upravit název...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Zadat nový název cestovního bodu.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished">Nepodařilo se otevřít...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Přestěhovat databázi z verze 4 na verzi 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Přestěhovat databázi z verze 5 na verzi 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Přestěhovat databázi z verze 6 na verzi 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Přestěhovat databázi z verze 7 na verzi 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Přestěhovat databázi z verze 8 na verzi 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Otevřít databázi: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Složky: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Stopy: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Cesty: %1 (Bude koírována pouze základní cesta)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Cestovní body: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Překrytí:         %1 (oblasti budou převáděny jako oblasti, vzdálenostní čáry budou převedeny do stop, všechny ostatní překrývající prvky budou ztraceny)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Deníky:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Výběry map:       %1 (nelze převést do QMapShack)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Začít převádět databázi do %1------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Nepodařilo se vytvořit cílovou databázi.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Zrušit ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Hotovo ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Obnovit složky...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>Zavedeno %1 složek a %2 deníků</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Kopírovat prvky...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>Zavedeno %1 stop, %2 cestovních bodů, %3 cest, %4 oblastí</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Zavést složky...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>Překrytí typu '%1' nelze převést</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Poškozená stopa...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>Počet bodů stopy neodpovídá počtu bodů stopy cvičebních dat.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>Počet bodů stopy neodpovídá počtu rozšířených bodů stopy.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>Počet bodů stopy neodpovídá počtu stínových bodů stopy.</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Stávající soubor...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Odstranit stávající %1?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Odstranit stávající soubor %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: Zahodit prvek s ID DB QLGT %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Nepodařilo se otevřít...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation>Původní</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation>První náhradní</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation>Druhý náhradní</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation>Třetí náhradní</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation>BRouter (nepřipojeno)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (připojeno)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation>Profil: %1, náhradní: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished">Chyba: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation>Odpověď je prázdná</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation>Špatná odpověď od serveru: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>BRouter</b><br/>Požadavek na stanovení cesty poslán serveru. Počkejte, prosím...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation>Spočítat cestu s %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>BRouter</b><br/>Špatná odpověď od serveru:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Doba výpočtu: %1 s</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation>Běží</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation>Začíná</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation>Varování...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation>Rozumím nebezpečí. Znovu už mě neupozorňovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation>Zastaveno</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation>Nenainstalováno</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation>Připojeno</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation>%1: Není přístupný</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation>%1 Neplatný výsledek</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation>Chyba při zpracování nastavení na internetu:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation>Síťová chyba:</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation>Obnovit výchozí hodnoty</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation>Otevřít adresář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation>Vybrat spustitelný soubor Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation>Vyberte, prosím, instalační adresář pro BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation>Vybraný adresář neexistuje</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation>Vytvořit adresář a nainstalovat do něj BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation>Stávající instalace BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation>Aktualizovat stávající instalaci BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation>Prázdný adresář. Vytvořit novou instalaci BRouter zde</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation>Vytvořit novou instalaci BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation>Zdá se, že se jedná o platný spustitelný soubor Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation>Zdá se, že se nejedná o platný spustitelný soubor Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation>Spustitelný soubor Java nenalezen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation>Chyba při nahrávání instalační stránky na %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation>Nvybrána žádná verze BRouter k nainstalování</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation>Vybráno %1 pro stažení a instalaci</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation>Varování...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation>Stáhnout: %1<br/><br/>Toto stáhne  nainstaluje soubor zip z umístění se staženými soubory, které není jakkoli se to vezme bezpečné, používající prostý HTTP. Obyčejně by to mělo být HTTPS. Nebezpečí spočívá v tom, že někdo přesměruje požadavek a pošle vám náhradou archiv zip se škodlivým programem. QMapShack toto nemá jak zjistit. <br/>Pokud tomu nerozumíte a máte pochybnosti, nepokračujte a přerušte. Místo toho použijte internetovou verzi BRouter.</ [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation>Rozumím nebezpečí a přeji si pokračovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation>Stahování %1 začalo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation>Chyba v síti: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation>Stahování %1 dokončeno</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation>Rozbalení:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation>Připraven.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation>Nepodařilo se stáhnout BRouter: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation>Získávají se dostupné profily z %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation>Obsah profilu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation>Chyba: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation>Chyba při vytváření adresáře %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation>Chyba adresář %1 neexistuje</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation>Chyba při vytváření souboru %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation>Chyba při zápisu do souboru %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation>Pokračovat v nastavování</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation>Dostupná data se stanovením cesty jsou určena.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation>Vybrat zastaralé</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation>Vyprázdnit výběr</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation>Smazat výběr</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation>Stáhnout</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation>Chyba při vytváření adresáře s částmi %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation>Nelze zpracovat: %1 není datum</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation>Nelze zpracovat: %1 není platná velikost</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation>Chyba při získávání dostupných dat se stanovením cesty z %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation>Adresář s částmi neexistuje: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation>Chyba při vytváření souboru %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation>Žádný platný požadavek pro souborový název %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation>Žádný otevřený soubor nepřiřazen k požadavku pro %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation>Chyba při zápisu do souboru %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation>Chyba při přejmenovávání souboru %1 na %2: %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation>Aktuální: %1 (%2), zastaralé: %3 (%4), ke stažení: %5 (%6)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation>Stahuje se: %1 z %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation>Žádná místní data, dostupná na internetu: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation>Místní data zastaralá (%1, %2 - vzdálený %3, %4)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation>Chyba při odstraňování souboru %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation>Síťová chyba</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation>Neplatný výsledek, nenalezeny žádné soubory</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation>Místní data aktuální (%1, %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation>Nejsou dostupná žádná data se stanovením cesty</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>Hotovo!</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>Nepodařilo se!</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Nejrychlejší</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Nejkratší</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Jízdní kolo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Chodec</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Angličtina (USA)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Angličtina (britská)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Dánský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Holandský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Francouzský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Německý</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Norský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Španělský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Švédský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>Režim "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>Žádné rychlostní silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>Žádné silnice s mýtem</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>Žádné sezonní silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>Žádné nezpevněné silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>Žádné přívozy</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>Žádný přechod zemské hranice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Požadavek na stanovení cesty poslán serveru. Počkejte, prosím...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Špatná odpověď od serveru:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Doba výpočtu: %1 s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>Chodec</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>Jezdec</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Invalidní vozík</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Jízdní kolo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Moped</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Motorka</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Automobil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Nákladní automobil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>Nejkratší</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Nalezeno Routino s nesprávnou verzí. Očekávána %1, nalezena %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>Nejrychlejší</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Anglický</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Německý</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Francouzský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Maďarský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Holandský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Ruský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Polský</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná databáze.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná profilu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Byla zavolána funkce, aniž by byla nastavena proměnná jazyka.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>Databáze zadaná k nahrání neexistuje.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>Zadanou databázi se nepodařilo nahrát.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>Zadaný soubor s profilem XML neexistuje.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>Zadaný soubor s profilem XML se nepodařilo nahrát.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>Zadaný soubor s jazykem XML neexistuje.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>Zadaný soubor s jazykem XML se nepodařilo nahrát.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>Požadovaný název profilu v nahraném souboru XML není.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>Požadovaný jazyk v nahraném souboru XML není.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>Profil a databáze dohromady nepracují.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>Používaný profil nebyl schválen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>Uživatelem stanovený profil obsahoval neplatná data.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Zadané volby pro stanovení cesty si vzájemně neodpovídají.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>Knihovna a verze API si vzájemně neodpovídají.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>Výpočet cesty byl přerušen uživatelem.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>Nepodařilo se najít žádnou cestu k cestovnímu bodu %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Neznámá chyba: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>Profil "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, režim "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Varování...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation>V databázi cest není žádná hlavní silnice poblíž souřadnic k umístění cestovního bodu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Spočítat cestu s %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Doba výpočtu: %1 s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Přidat nebo odstranit cesty obsahující data Routino. V cestě může být více databází, ale žádná podcesta není zpracována.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Vybrat cestu k souboru s daty se stanovením cesty...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (nepřipojeno)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (nepřipojeno)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (připojeno)</translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Vytvořit databázi Routino</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Vybrat soubory...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Vybrat cílovou cestu...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>Hotovo!</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished">Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>Nevybrán žádný rozsah</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Přesný režim</b><br/>Všechny vybrané prvky musí být úplně uvnitř vybrané oblasti.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation><b>Protínající se režim</b><br/>Všechny vybrané prvky musí být uvnitř nebo alespoň protínat vybranou oblast.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Přidat stopy</b><br/>Přidat stopy do seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Přidat cestovní body</b><br/>Přidat cestovní body do seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Přidat cesty</b><br/>Přidat cesty do seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Přidat oblasti</b><br/>Přidat oblasti do seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Přehlížet stopy</b><br/>Přehlížet stopy v seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Přehlížet cestovní body</b><br/>Přehlížet cestovní body v seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Přehlížet cesty</b><br/>Přehlížet cesty v seznamu vybraných prvků.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation><b>Přehlížet oblasti</b><br/>Přehlížet oblasti v seznamu vybraných prvků.<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Prohledat databázi '%1':</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Neznámá odpověď</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Chyba: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Chybí požadavek</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>MySQL nemůže být toho času použita, protože není dostupný odpovídající ovladač (QMYSQL).<br />Ujistěte se, prosím, že byl nainstalován odpovídající balíček.<br />Pokud nevíte, co se má dělat, podívejte se na dokumentaci na <a href="%1">Wiki</a>.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Již je databáze s názvem '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Nová databáze...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Otevřít databázi...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Nastavit databázi...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Změny budou uvedeny v činnost po opětovném spuštění programu.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Nepodařilo se zpracovat časové razítko `%1`</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1: Neexistuje</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>Není souborem SLF: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Nepodporovaná změna %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Přestávka %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Kolo %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Dvakrát klepněte pro upravení hodnoty výšky</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation type="unfinished">%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Nepodařilo se nahrát soubor %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Nepodařilo se otevřít %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Chyba při čtení: %1
+Řádek %2, Sloupec %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>Není to soubor TCX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Tento soubor TCX obsahuje alespoň 1 řešení, ale není to ani činnost ani směr. A jelikož ta řešení neobsahují údaje o poloze, nelze je zavést do QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>Tento soubor TCX neobsahuje žádnou činnost ani směr: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>Soubor existuje...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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 QMapShack. Pokud stisknete Ano, všechna data v tomto poli budou ztracena.I když tento soubor obsahuje data a byl nahrán 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/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>Stopa <b>%1</b>, kterou jste vybrali, obsahuje body stopy s neplatnými časovými razítky. Zařízení nemusí vytvořený soubor TCX se směrem přijmout, pokud se to tak nechá. <b>Chcete použít filtr se stálou rychlostí (10 m/s) a pokračovat?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Směr</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Činnost</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Zrušit</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Stopa s neplatnými časovými razítky...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>Činnost nebo směr?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack neví, jak má být stopa <b>%1</b> uložena. <b>Chcete ji uložit jako směr nebo jako činnost? </b> Zapamatujte si, že pouze cestovní body, které jsou dostatečně blízko stopy, budou uloženy, když bude uložena jako směr. Cestovní body nebudou uloženy, když je stopa ukládána jako činnost.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Nepodařilo se vytvořit soubor '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Nepodařilo se zapsat soubor '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Nepodařilo se uložit data GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>Vybrat jeden...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Přehled pěšího výletu (vestavěno)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Cesta k předloze...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>Nepodařilo se přečíst soubor s předlohou %1.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Náhled...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>B&arva...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Nastavit formát znovu</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Dostupné činnosti</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Vybrané činnosti</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Nepodařilo se otevřít %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Uložit data GIS do...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <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="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Nepodařilo se přečíst data.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Cesta k uživatelským značkám...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Účastníci</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Počasí</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>Déšť</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>Slunečno</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>Sněžení</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>Oblačnost</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation>Větrno</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>Horko</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>Teplo</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>Chladno</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>Mrazivo</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>Mlhavo</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>Vlhko</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Povaha</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>Snadný pěší výlet</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>Lezení</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>Pěší výlet v horách</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>Velké stoupání</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>Velká vzdálenost</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>Zajištěná cesta</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>Kroupy/sněhové krupky</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation>Hodnocení</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>Hodnocení 5 hvězd</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>Hodnocení 4 hvězdy</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>Hodnocení 3 hvězdy</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>Hodnocení 2 hvězdy</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>Hodnocení 1 hvězda</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>Zrušeno</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Vybavení</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>Výstroj pro zajištěnou cestu</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>Noční výstroj</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>Sněžnice</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>Horolezecká výstroj</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>Lyže</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>Tábornické vybavení</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Podrobnosti</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>O programu...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation><b>QMapShack</b>, verze</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation>Qt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation>GDAL</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation>Proj4</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Čeština:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Němčina:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation>Oliver Eichler</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Nizozemština:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Francouzština:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation>Rainer Unseld</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Ruština:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation>Wolfgang Thämelt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation>Pavel Fric</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Překlad</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation>Harrie Klomp</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Španělština:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation>Win64:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation>OS X:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Spustitelné soubory:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Přispěvatelé</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation>Jose Luis Domingo Lopez</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation>Ivo Kronenberg</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation>Helmut Schmidt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>... a poděkování všem tvůrcům spustitelných souborů pro Linux za jejich dobrou práci. Zvláštní poděkování Danovi Horákovi a Basi Couwenbergovi za účast v diskuzi v poštovním seznamu.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <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>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Nastavit pohled na mapu...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Promítání a datum</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Měřítka</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logaritmické</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>druhá mocnina (vyladěno pro dlaždice TMS a WMTS)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Spojit stopy...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Dostupné stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Spojené stopy</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Formát souřadnic...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>N48° 53.660 E013° 31.113</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>N48.8943° E013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Vytvořit cestu z cestovních bodů</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Rozkrojit stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Smazat první část stopy a zachovat druhou</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Zachovat obě části stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Zachovat první část stopy a smazat druhou</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Režim rozkrojení:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Toto zaškrtněte pro uložení výsledku do nové stopy.
+
+Pokud zachováte obě části stopy, musíte vytvořit nové.
+
+Pokud chcete zachovat pouze jednu polovinu, můžete jednoduše odstranit body, nebo toto zaškrtnout pro vytvoření nové stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Vytvořit novou stopu</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>Vnitřní formát databáze '%1' se změnil. QMapShack nyní vaši databázi přestěhuje. Po přestěhování databáze se staršími verzemi QMapShack nebude použitelná. Doporučuje se databázi nejprve zazálohovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Přestěhovat databázi...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>Přestěhování přerušeno uživatelem</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Nepodařilo se přestěhovat '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>Přestěhování se nepodařilo</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>Verze databáze '%1'je pokročilejší než ta, jíž rozumí vaše instalace QMapShacku. Toto nebude pracovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Nepodařilo se inicializovat</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Nesprávná verze databáze...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>Databáze vytvořena novější verzí QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Nepodařilo se inicializovat '%1'.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Heslo...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Heslo pro databázi '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Aktualizovat na verzi databáze 5. Přestěhovat všechny položky GIS.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Aktualizovat na verzi databáze 3. Přestěhovat všechny položky GIS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Aktualizovat na verzi databáze 5. Přestěhovat všechny položky GIS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Aktualizovat na verzi databáze 6. Přestěhovat všechny položky GIS.</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Stanovit cesty k souborům s výškovými modely</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Změnit neprůhlednost mapy</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Je zobrazeno ovládání rozmezí měřítka mapy. Použijte tlačítka vlevo a vpravo pro stanovení skutečného měřítka jako buď nejmenšího nebo největšího měřítka.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Stínování kopců</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Sklon</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation>> </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Pro přidání souborů s údaji o výšce použijte <b>Soubor → Nastavit cesty k výškovým modelům</b>. Nebo klepněte <a href='setup'><b>sem</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Použijte související nabídku (klepnutí pravým tlačítkem myši na položku) pro zapnutí souboru. Použijte přetažení a upuštění pro posunutí zapnutého souboru v pořadí procesů. </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Zapnout</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Posunout nahoru</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Skrýt výškový model za předchozí</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Posunout dolů</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Výškový model překrývá další</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>Nahrát výškový model znovu</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation>o:prázdný</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Poloha:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Obtížnost</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Území</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Nahrát spoiler znovu</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Rada:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Oblast byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Barva</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Šířka okraje</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Styl</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Neprůhlednost</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Informace</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Body</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Poloha</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Tisk deníku</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Zachovat pořadí projektu</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Řadit podél stopy (vícenásobně)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Řadit podél stopy (jednorázově)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Sestavit deník znovu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Klíčová slova:</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Informace</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Cesta byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation>-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Rychlost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Styl</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Zdroj</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Nejvyšší hodnota</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Použít/Upravit uživatelsky stanovenou viditelnost směrových šipek pro tuto stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Použít/Upravit v systému stanovenou viditelnost směrových šipek pro všechny stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Nejnižší hodnota</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Použít/Upravit uživatelsky stanovený násobek zvětšení pro tuto stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Použít/Upravit výchozí násobek zvětšení systému pro všechny stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation>x </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Stopa byla zavedena do QMapShack a byla změněna. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Šířka</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>se směrovými šipkami</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Grafy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Činnost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Nastavit činnost stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>K rozlišení statistik stop zvolte v seznamu činnost pro celou stopu. Nebo vyberte část stopy a přiřaďte jí činnost.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Body</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Čas</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Výška</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Rozdíl</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Vzdál.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Sklon</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Poloha</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Informace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation>max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Uživatelsky stanovené hraniční hodnoty pro tuto stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation>-
+-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Automatické hraniční hodnoty</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Uživatelsky stanovené hraniční hodnoty pro všechny stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Barva</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Stoupání</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Klesání</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filtr</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Cestovní bod byl zaveden do QMapShack a byl změněn. Už více neukazuje původní údaje. Podívejte se, prosím, na záznam změn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Přepnout režim pouze pro čtení. Musíte otevřít zámek, abyste mohl prvek upravovat.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Poloha:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Informace</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Výška</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Blízkost:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Přidat obrázky.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Smazat vybraný obrázek.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Datum/Čas:</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Je jiný projekt se stejným názvem. Pokud stisknete OK, bude odstraněn a nahrazen.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Upravit výšku...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Výška</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Získat výšku z činného digitálního výškového modelu.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Vyvést databázi do GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Cesta pro vyvedeni:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 bez rozšíření</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Spustit</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Přerušit</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Zavřít</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Odstranit body stopy</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Odstranit trvale všechny skryté body stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Odstranit rozšíření ze všech bodů stopy</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Odstranit</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>ze všech bodů stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Skrýt cestovní body (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Skrýt body stopy, když je vzdálenost k čáře mezi sousedícími body méně než</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Použít filtr nyní.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Interpolovat výšková data</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Nahradit výšková data bodů stopy interpolovanými daty.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Kvalita</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Náhled</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Skrýt neplatné body</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Skrýt body s neplatnými daty.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Vyhladit profil (Metoda střední hodnoty)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Zmenšit odchylku výšky bodů stopy pomocí filtru střední hodnoty o velikosti </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation>Body</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Změnit čas</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Změnit začáteční čas stopy na </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.yy HH:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Zastřít časová razítka</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Zvětšit časové razítko o </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation> s</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>pro každý cestovní bod. 0 s odstraní všechna časová razítka.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Vyrovnat výšku</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Přidat posun </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>ke každé výšce bodu stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Nahradit výšková data</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Nahradit výšková data bodů stopy daty z nahraných souborů s digitálními výškovými modely.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Nastavit znovu skryté body stopy</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Udělat všechny body stopy znovu viditelnými.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Změnit rychlost</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished">Rychlost</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> km/h</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished">Použít filtr nyní.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Rozdělit části do stop</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Pro každou část v této stopě se vytvoří nová stopa.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><b>Převést podstopy cesty na body</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Převést podbody obdržené ze stanovení směru cesty na řádné body stopy</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Vypočítat sklon území</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Vypočítat sklon území z nahraných souborů s digitálními výškovými modely.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>Chyba při dekódování FIT: Nesprávný stav dekodéru %1 po posledním bytu dat v souboru.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation>Chyba dekódování FIT: vývojové pole s field_definition_number %1 již existuje.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation type="unfinished">Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation type="unfinished">Věk</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation type="unfinished">Pro přidání databáze klepněte pravým tlačítkem myši na seznam s databázemi výše.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[žádný název]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>Prvek není částí projektu v databázi.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>
+Buď je to nový prvek nebo byl v databázi někým smazán.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>Prvek není v databázi.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>Může být potřeba prvek uložit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Počáteční verze.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3> Tento prvek je pravděpodobně pouze pro čtení, protože nebyl vytvořen v programu QMapShack. Obvykle nemáte zájem měnit zavedená data. Ale pokud si myslíte, že je to tentokrát na místě, stiskněte OK.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Režim pouze pro čtení...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Popis:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>--- žádný popis ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Poznámka:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- žádná poznámka ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Odkazy:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- žádné odkazy ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Upravit název...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Zadat nový název %1.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Uložit projekt?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>Projekt byl změněn. Uložit jej před zavřením?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Svázat stopy a cestovní body.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>Trvalo to moc dlouho? Chcete svázání stop a cestovních bodů pro tento projekt přeskočit i v budoucnu?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Svázání zrušeno...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Uložit "%1" do...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Název souboru: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Cestovní body: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Stopy: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Cesty: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Oblasti: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <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>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Smazat...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished">Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation type="unfinished">Neprůhlednost</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation type="unfinished">Změnit neprůhlednost všech položek GIS na mapě.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation type="unfinished">Filtr</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation type="unfinished">Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation type="unfinished">Vyprázdnit filtr</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation type="unfinished">Nastavit filtr</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Nastavení mřížky...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Promítání</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>Obnovit výchozí</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Promítání převzít z nynější mapy.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>Průvodce pro promítání</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Barva mřížky</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>Nastavení barvy mřížky</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Zdrojová databáze:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Cílová databáze:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Spustit</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Upravit...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation>Cesta</translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Odkazy...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Typ</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Text</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>URI</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Soubor</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Pohled</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Okno</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>Nápověda</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Nástroj</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Mapy</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Digitální výškový model</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Ukázat měřítko</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Nastavit písmo mapy</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Ukázat mřížku</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Nastavit mřížku</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation>Ctrl+Alt+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Obrátit kolečko myši</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Nastavit cesty k mapám</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>Text POI</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Noc/Den</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Rada k nástroji pro mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Nastavit cesty k výškovým modelům</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>O programu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Nápověda</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Nástrojový panel</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation type="unfinished">Databáze</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation type="unfinished">Cesta</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Přidat pohled na mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Nastavit pohled na mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>Nahrát data GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Nahrát projekty ze souboru</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Uložit všechna data GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation>Uložit všechny projekty nacházející se v pracovním prostoru</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Nastavit časové pásmo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Přidat prázdný projekt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Hledat pomocí Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Zavřít všechny projekty</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation>F8</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Nastavit jednotky</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Nastavit pracovní prostor</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Nastavit uložení při ukončení.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Zavést databázi z QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>Zavést databázi GT QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>Sestavovač VRT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>Rozhraní pro gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Uložit pohled na mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Zapsat nynější činnou mapu a seznam výškových modelů včetně vlastností do souboru</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Nahrát pohled na mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Obnovit pohled s činnou mapou a seznam výškových modelů včetně vlastností ze souboru</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Ext. Profil</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Zavřít</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Klonovat pohled na mapu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation>Ctrl+Shift+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Vytvořit databázi Routino</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Uložit (vytisknout) snímek obrazovky s mapou</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Vytisknout vybranou oblast mapy</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Nastavit formát souřadnic</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Změnit formát, v němž jsou souřadnice zobrazeny</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Nastavit pozadí mapy</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Stanovit ikony cestovních bodů</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Stanovit cestu k vlastním ikonám</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Zavřít kartu</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation>Ctrl+W</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation>Nápověda pro rychlý začátek</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Nastavit nástrojový panel</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Přepnout panely</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Přepnout viditelnost ukotvitelných oken</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Celá obrazovka</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Pro přidání map použijte <b>Soubor → Nastavit cesty k mapám</b>. Nebo klepněte <a href='setup'><b>sem</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Použijte související nabídku (klepnutí pravým tlačítkem myši na položku) pro zapnutí mapy. Použijte přetažení a upuštění pro posunutí zapnuté mapy v pořadí kreslení. </translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Pomoc! Chci mapy!
+Nechce se mi číst dokumentaci!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Zapnout</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Posunout nahoru</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Skrýt mapu za předchozí mapou</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Posunout dolů</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Mapa překrývá další</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Nahrát mapy znovu</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>Tato mapa vyžaduje podporu pro OpenSSL. Nicméně kvůli právním omezením v některých zemích není OpenSSL k QMapShack přibaleno. Můžete se podívat na <a href='https://www.openssl.org/community/binaries.html'>stránky OpenSSL</a>, kde najdete spustitelné soubory. Musíte zkopírovat libeay32.dll a ssleay32.dll do adresáře s programem QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Chyba...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: %2 dlaždic čeká<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Nastavit cesty k mapám</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Kořenová cesta (root) vyrovnávací paměti dlaždic pro internetové mapy:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Pomoc! Chci mapy!
+Nechce se mi číst dokumentaci!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Změnit neprůhlednost mapy</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Je zobrazeno ovládání rozmezí měřítka mapy. Použijte tlačítka vlevo a vpravo pro stanovení skutečného měřítka jako buď nejmenšího nebo největšího měřítka.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klepněte pro použití nynějšího měřítka jako nejmenšího měřítka pro zobrazení mapy.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Oblasti</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Čáry</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Body</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Podrobnosti</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Cesta k vyrovnávací paměti</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>Typ souboru:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Zapomenout na vnější souborový typ a použít vnitřní typy.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Nahrát vnější typ souboru.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Velikost vyrovnávací paměti (MB)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Datum vypršení (dny)</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Pokročilé volby</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation>Zdroj, žádná data (-srcnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation>Cíl, žádná data (-vrtnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation>Cíl, promítání (-a_srs)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation>Tyto volby jsou pro určité případy a obyčejně je chcete ponechat prázdné. Podívejte se na GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Nápověda</a> pro další informace.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Vybrat zdrojové soubory:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Název cílového souboru:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Spustit</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Nová čára</b><br/>Posuňte ukazovátko myši a použijte levé tlačítko myši k upuštění bodů. Až to bude uděláno, použijte pravé tlačítko myši k zastavení.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Smazat bod</b><br/>Přesuňte ukazovátko myši blízko k bodu a stiskněte levé tlačítko myši pro jeho smazání.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Upravit rozsah bodů</b><br/>Klepněte levým tlačítkem myši na první bod pro započetí výběru. Klepněte levým tlačítkem myši na druhý bod pro dokončení výběru a vyberte z voleb. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Přesunout bod</b><br/>Přesuňte ukazovátko myši blízko k bodu a stiskněte levé tlačítko myši pro jeho držení v blízkosti ukazovátka. Posuňte myší pro přesunutí bodu. Upustěte bod klepnutím levým tlačítkem myši. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Přidat bod</b><br/>Přesuňte ukazovátko myši blízko k čáře a stiskněte levé tlačítko myši pro přidání bodu. Bod přilne k ukazovátku a vy jím budete moci pohnout. Bod upustěte klepnutím levým tlačítkem myši. Použijte pravé tlačítko myši pro zrušení.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Žádné stanovení cesty</b><br/>Všechny body budou spojeny přímou čarou.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Automatické stanovení cesty</b><br/>Nynější nastavení směrování je používáno k vytváření cesty mezi body. <b>Poznámka:</b> Vybraný směrovač musí být schopen rychle směrovat (za běhu). Směrovače nepřipojené k internetu toto obvykle dokáží, směrovače připojené k internetu to běžně neumí.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Vektorové stanovení cesty</b><br/>Spojuje body čárou z nahrané vektorové mapy, je-li to možné.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1 metrika</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Vzdálenost:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Stoupání:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Klesání:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation><br/><b>Posunout mapu</b><br/>Pokud levé tlačítko myši podržíte stisknuté a myší pohnete, posunete mapu.<br/><br/></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Nastavit znovu zvětšení</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Ukončit výběr oblasti</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Uložit...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Přidat cestovní bod</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Vyjmout...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Pro (pouze) svislé přiblížení podržte klávesu Ctrl.
+Pro (pouze) vodorovné přiblížení podržte klávesu Alt.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Žádná nebo špatná data.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Vybrat výstupní soubor</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Poloha...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Zadat novou polohu</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Špatný polohový formát. Musí být: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+nebo
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Tisk mapy...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>Když tisknete výřez internetové mapy, ujistěte se, že mapa byla nahrána do vyrovnávací paměti.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Uložit</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>Když ukládáte výřez internetové mapy, ujistěte se, že mapa byla nahrána do vyrovnávací paměti.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Tisk</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Počkejte, prosím...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation>Mercatorovo zobrazení</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation>UTM</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>Pásmo</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>Stanoveno uživatelem</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation>Světový Mercator (OSM)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Výsledek:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Sever (Severní pól)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Jih (Jižní pól)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Promítání</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Promítnutí cestovního bodu</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Klonovat cestovní bod a posunout o:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Náhradní</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation>Zobrazit vybraný profil stanovení cesty</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation>Stanovení cesty za běhu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation>BRouter: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation>Neběží</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation>Spustit/Zastavit BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation>Ukázat konzoli BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation>Nastavit</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation>Pozor! BRouter kvůli připojení naslouchá na všech přípojkách (port).</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation>Profil BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation>Nastavení BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation>Vybrat, který BRouter použít</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation>Stránky BRouter (připojeno)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation>Místní instalace</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation>Režim znalce</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation>Místní instalační adresář BRouter:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation>Vybrat instalační adresář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation>Vytvořit nebo aktualizovat instalaci</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation>Spustitelný soubor Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation>Hledat nainstalovanou Javu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation>Stáhnout a nainstalovat verzi BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation>o:prázdný</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation>Soubor k nainstalování</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation>Stáhnout a nainstalovat</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation>Dostupné profily</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation>Instalovat profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation>Odstranit profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation>Nainstalované profily</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation>Obsah profilu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation>Adresa (URL) stránek BRouter:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation>Adresa (URL) služby</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation>Adresa (URL) profilu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation>Jméno hostitelského počítače</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation>Přípojka (port)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation>Adresář s profilem</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation>Adresář s částmi</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation>Adresář s vlastními profily</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation>Nejdelší doba běhu programu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation>Počet vláken</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation>Volby pro Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation>Adresa (URL) profilu</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Rychlostní silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Sezonní silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Jazyk</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Zemské hranice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Vyhnout se:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Přívoz</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Silnice s mýtem</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Nezpevněné silnice</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>S přátelským povolením od <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Režim</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Databáze</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Přidat cestu pomocí databáze Routino.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Jazyk</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Pro použití stanovení cesty bez připojení k internetu je potřeba stanovit cesty k místním datům se stanovením cest. Použijte nástrojové tlačítko pro nastavení k zaregistrování cesty. Svá vlastní data se stanovením cest vytvoříte pomocí <b>Nástroj → Vytvořit databázi Routino</b>.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Nastavit databázi Routino...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Vybrat zdrojové soubory:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Spustit</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Cílová cesta:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Předpona souboru</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished">Zdroj</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Uložit do předlohy</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Uložit jako nový</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Přerušit</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Přesunout body. (Ctrl+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Přidat nové body. (Ctrl++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>Ctrl++</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Vybrat rozsah bodů. (Ctrl+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Žádné automatické stanovení cesty nebo přichycení k čáře (Ctrl+O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Použít automatické stanovení cesty mezi body. (Ctrl+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Přichytit čáru podél čáry vektorové mapy. (Ctrl+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Smazat bod. (Ctrl+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation>Ctrl+-</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Vrátit poslední změnu zpět</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Obnovit poslední změnu</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Zobrazit podrobnosti a upravit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Kopírovat oblast do dalšího projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Smazat oblast z projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Upravit tvar oblasti.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation>Uložit vybranou oblast jako obrázek.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Tisk vybrané oblasti.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Smazat všechny body mezi prvním a posledním bodem.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Spočítat cestu mezi prvním a posledním vybraným bodem.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Skrýt všechny body.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Ukázat všechny body.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Nastavit činnost pro vybraný rozsah.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Kopírovat body stopy jako novou stopu.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Kopírovat cestu do dalšího projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Zobrazit podrobnosti a upravit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Smazat cestu z projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Spočítat cestu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Vynulovat spočítání cesty.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Přesunout body cesty.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Převést cestu na stopu</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Kopírovat všechny vybrané prvky do projektu.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Vytvořit cestu z vybraných cestovních bodů.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Změnit ikonu všech vybraných cestovních bodů.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Spojit všechny vybrané stopy do nové.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Nastavit činnost pro všechny vybrané stopy.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Smazat všechny vybrané prvky.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Vybrat všechny prvky, které protínají vybranou oblast.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Vybrat všechny prvky, které jsou úplně uvnitř vybrané oblasti.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Přidat stopy do výběru.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Přidat cestovní body do výběru.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Přidat cesty do výběru.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Přidat oblasti do výběru.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Kopírovat stopu do dalšího projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Ukázat promítnutý profil a podrobné údaje o bodech.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Upravit polohu bodů stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Zobrazit podrobnosti a upravit vlastnosti stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Smazat stopu z projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Vybrat rozsah bodů.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Obrátit stopu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Spojit stopy.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Rozkrojit stopu na vybraném bodu. Můžete to použít na:
+
+* odstranění špatných bodů na začátku nebo na konci stopy
+* použití částí stopy k plánování nového výletu
+* vyjmutí dlouhé stopy do úseků</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Kopírovat stopu společně se všemi připojenými cestovními body do jiného projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Nastavit činnost pro celou stopu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Zobrazit podrobnosti a upravit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Kopírovat cestovní bod do dalšího projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Smazat cestovní bod z projektu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Ukázat obsah stálé vysvětlivky.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Přesunout cestovní bod do nového umístění.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Klonovat cestovní bod a kopii přesunout o danou vzdálenost a ve stanoveném úhlu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Textový štítek</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Hledat...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Napište slovo, které se má hledat, a stiskněte tlačítko pro hledání. 
+Pokud zadáte 'slovo', provede se hledání přesné shody. Pokud zadáte 'slovo*', 'slovo' musí být na začátku řetězce.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Hledat</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Zavřít</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Vybrat zařízení...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Kopírovat prvek...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Nahradit stávající prvek</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>Nekopírovat prvek</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Vytvořit klon</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Nahradit:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Zachovat prvek:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Název klonu bude rozšířen o '_Klon'</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>A také pro všechny další prvky.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Vybrat nadřazenou složku...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Název</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Dostupné</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Přidat k vybraným prvkům</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Odstranit z vybraných prvků</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Vybrané</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Posunout vybrané prvky nahoru</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Posunout vybrané prvky dolů</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Vybrat projekt...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Vybrat projekt ze seznamu nebo zadat nový název projektu.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Nový název projektu</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>Nový projekt je vytvořen jako:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation>*.qms</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation>*.gpx</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Databáze</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Kopírovat prvek...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Nahradit stávající prvek</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Přidat klona</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Název klonu bude rozšířen o '_Klon'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Nahradit:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>Textový štítek</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>Nenahrazovat prvek</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Použít prvek:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>A také pro všechny další prvky.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Přidat databázi...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Pozor!</span> Doporučuje se ponechat heslo prázdné, neboť QMapShack je uloží jako prostý text. Pokud heslo nezadáte, budete na ně dotazován při každém spuštění programu.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>Nepoužívat heslo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Server</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation>Přípojka</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Uživatel</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Heslo</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Přípojka:</b> Pro používání výchozí přípojky ponechejte pole s číslem přípojky prázdné.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Soubor:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Přidat novou databázi.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Otevřít stávající databázi.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulář</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Použít filtr na</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>pouze název</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>celý text</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Složka s databází...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Název složky</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Skupina</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Projekt</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Jiné</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Nový cestovní bod...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Značka</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Poloha</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Název</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Špatný polohový formát. Musí být: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+nebo
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Nastavit pracovní prostor...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>Uložit pracovní prostor při ukončení, a každých</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>minut</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>Naslouchat změnám v databázi jiných instancí QMapShack. Na přípojce</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Vložit předlohu...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Předlohy</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Vybrat cestu s vašimi vlastními předlohami.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Náhled</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Upravit text...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Zpět</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Znovu</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Vyjmout</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Kopírovat</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Vložit</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Předloha</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation>A:L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation>A:C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation>A:R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation>A:B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation>C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Standardní</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation>Seznam kulatých odrážek (kotouč)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation>Seznam kulatých odrážek (kroužek)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation>Seznam kulatých odrážek (čtvereček)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation>Uspořádaný seznam (desetinný)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation>Uspořádaný seznam (abecední dolní)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation>Uspořádaný seznam (abecední horní)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation>Uspořádaný seznam (antikva dolní)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation>Uspořádaný seznam (antikva horní)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Zarovnat vlevo</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Zarovnat vpravo</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Zarovnat na střed</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Zarovnat do bloku</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Podtržení</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Tučné</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Kurzíva</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Prostý</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Nastavit znovu formát textu před vložením</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Vybrat vše</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Smazat</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Nastavit písmo znovu</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Nastavit rozvržení znovu</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Normální</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Vložit bez znovunastavení formátu textu</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Vložit z předlohy</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Vytvořit text z předlohy.</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Vyjmout</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Kopírovat</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Vložit</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Nastavit časové pásmo...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>Světový čas (UTC)</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Místní</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automaticky</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Datum/Čas v </translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>dlouhém formátu nebo</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>v krátkém formátu</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation type="unfinished"><b>Poznámka:</b> Některé prvky uživatelského rozhraní změna jednotek neovlivní, dokud QMapShack nespustíte znovu.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Nastavit nástrojový panel</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>Nástrojový panel je viditelný v režimu celé obrazovky</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Nepodařilo se spustit vnější program `%1`: </translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Proces nelze spustit.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Ujistěte se, že jsou nainstalovány požadované balíčky, že `%1` existuje a je spustitelný.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>Vnější proces spadl.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Vyskytla se neznámá chyba.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>Nepodařilo se!</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Chyba</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Špatný polohový formát. Musí být: "[N|S] ddd mm.sss [W|E] ddd mm.sss" nebo "[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Polohy mimo platné hodnoty. </translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Nastavit jednotky...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Metrické</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Poznámka:</b> Některé prvky uživatelského rozhraní změna jednotek neovlivní, dokud QMapShack nespustíte znovu.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Anglické</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Ikony...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Vnější značky:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Všechny vlastní značky musí být ve formátu *.bmp nebo *.png.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/locale/qmapshack_de.desktop b/src/qmapshack/locale/qmapshack_de.desktop
similarity index 100%
rename from src/locale/qmapshack_de.desktop
rename to src/qmapshack/locale/qmapshack_de.desktop
diff --git a/src/qmapshack/locale/qmapshack_de.ts b/src/qmapshack/locale/qmapshack_de.ts
new file mode 100644
index 0000000..adfff82
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_de.ts
@@ -0,0 +1,10890 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API V%2, erwartet wird V%3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(kein DBUS: Keine Geräteerkennung und - verwaltung)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>Fußgänger</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Fahrrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Motorrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Seilbahn</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Schwimmen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Schiff</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>keine Aktivität</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Total</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Anstieg:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Abstieg:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Aeronautik</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Öffentl. Verkehrsmittel</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Entfernung:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Geschwindigkeit in Bewegung:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Geschwindigkeit insgesamt:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Zeit in Bewegung:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Zeit insgesamt:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Ansicht %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Kartenhintergrund einstellen</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Esc</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Debug-Ausgabe in die Konsole drucken.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Debug-Ausgabe in Log-Datei drucken (Systemordner für temporäre Dateien).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Startbildschirm nicht anzeigen.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Datei mit QMapShack Einstellungen.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>Datei</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Dateien für den späteren Gebrauch.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>Route</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Alle Daten nach Ordnern gruppiert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Verloren & Gefunden (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Verloren & Gefunden</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>MySQL Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation> (Kein Passwort)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Fehler:</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>SQLite Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Datei: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Fehler:</translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 min</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 Tage</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>Laden fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>Konnte die Datei "%1" nicht laden. Wird ausgelassen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>Das Projekt ist schon in der Datenbank...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>Das Projekt "%1" wurde schon in die Datenbank importiert. Wird asugelassen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>Das Element %1 wurde durch %2 (%3) geändert. 
+
+Um den Konflikt zu lösen, erstellen und speichern Sie einen Klon, erzwingen Ihre Version oder verwerfen diese und nehmen die Version in der Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Konflikt mit der Datenbank...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Klonen && Speichern</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Speichern erzwingen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Entfernte Version nehmen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Fehlender Ordner...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>Speichern des Projektes fehlgeschlagen. Der Ordner wurde in der Datenbank gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Speichern ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Da war ein unerwarteter Datenbankfehler:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>Das Projekt '%1' will sich gerade aus der Datenbank aktualisieren. Es gibt allerdings nicht gespeicherte Änderungen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Änderungen speichern?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Deaktivieren</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Aktivieren</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Hinzufügen oder Entfernen von Verzeichnissen mit Höhendaten. In einem Verzeichnis können mehrere Dateien liegen. Unterverzeichnisse werden jedoch nicht durchsucht. Unterstützte Formate sind: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Pfad für DEM Dateien wählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>Die Datei konnte nicht geladen werden: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>DEM muss aus einem Satz mit 16 bit oder 32 bit Daten bestehen.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>Keine Georeferenzierung gefunden.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>keiner</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Suche nach Bildern...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>Keine Bilder gefunden</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>keine</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Tagebuch erstellen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Auswertung aller Tracks im Projekt</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Wegpunkte</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Information</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Kommentar</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Tracks</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation>Ankunft: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>Vom Anfang</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>Zum Nächsten</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>Zum Ende</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation>Zeit: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Gebiete</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Sie wollen Wegpunkte entlang eines Tracks sortieren, aber Sie haben die Verknüpfung von Wegpunkten und Tracks ausgeschaltet. Wollen Sie sie wieder einschalten?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Verknüpfungen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation>Entfernung: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation>Anstieg: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation>Abstieg: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Routen</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Name bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <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="923"/>
+        <source>Print Diary</source>
+        <translation>Tagebuch drucken</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Stichwörter bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Stichwörter eingeben.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Sichtbare Trackpunkte reduzieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation>Höhe von Trackpunkten ändern</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <source>Change timestamp of track points</source>
+        <translation>Zeitstempel von Trackpunkten ändern</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
+        <source>Miscellaneous</source>
+        <translation>Verschiedenes</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Farbe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Aktivität</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Geben Sie einen neuen Abstandsalarm ein.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Bild %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Unbekannt</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Archiv - zum Laden aufklappen</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>Archiv - geladen</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>Keine DEM Daten für diesen Punkt gefunden.</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Exportpfad auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Erstelle %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation>Erstellen von %1 fehlgeschlagen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>Fertig!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>Abbruch durch Benutzer!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation>Datenbankfehler: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>Speichere das Projekt als %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation>Fehlgeschlagen!</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>Keine Erweiterung vorhanden</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>grob</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>mittel</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>fein</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation>Stadtrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation>Trekkingrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation>Sportrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation>Mountain Bike</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation>Benutzer 0</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation>Benutzer 1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation>Benutzer 2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation>Der Track hat entweder keine oder ungültige Höhendaten. Bitte korrigieren oder nur eine konstante Geschwindigkeit benutzen!</translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>FIT Dekodierfehler: CRC ungültig.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>FIT Dekodierfehler: Unerwartetes Ende der Datei %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>FIT Dekodierfehler: Unbekannter Datentyp %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>FIT Dekodierfehler: Protokollversion %1 wird nicht unterstützt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>FIT Dekodierfehler: Nicht übereinstimmende Dateikopfsignatur. Keine FIT Datei.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>Öffnen der FIT Datei %1 fehlgeschlagen.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>FIT Dekodierfehler: Architektur %1 wird nicht unterstützt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>FIT Dekodierfehler: Ungültiger Offset %1 für Status 'aufgezeichneter Inhalt'</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Warnung...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <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="838"/>
+        <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>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>dünn</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>normal</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>breit</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>stark</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Gebiet: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Gebietsform geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Name geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Umrandungsbreite geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Füllung geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Deckkraft geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Kommentar geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Beschreibung geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Geänderte Verknüpfungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Farbe geändert</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation>Route</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Name geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Kommentar geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Beschreibung geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Geänderte Verknüpfungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation>Länge: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Länge: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation>Gesamtzeit: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Gesamtzeit: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Letzte Routenberechnung: <br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>mit %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation>Entf.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Geänderte Routenpunkte.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>FIT Dekodierfehler: Datei %1 enthält keine GPS Daten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>%1 konnte nicht geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <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="420"/>
+        <source>Failed to read data.</source>
+        <translation>Lesen der Daten fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <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="393"/>
+        <source>, %1-, %2-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation>Zeit: %1%2, Geschw.: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Zeit: -, Geschw.: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation>Zeit in Bew.: %1%2, Geschw.: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>Zeit in Bew.: -, Geschw.: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Beginn: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Beginn: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Ende: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Ende: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Punkte: %1 von %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>Ungültige Höhenwerte!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>Ungültige Zeitmarken!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>Ungültige Positionsdaten!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Aktivitäten: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Index: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Index: angez. %1, total %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation>, Steigung: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... und %1 Tags werden nicht angezeigt</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Entfernung: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>Zeit in Bew.: - (-) </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Punkt %1 verbergen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Punkte %1  %2 verbergen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation>Ungültige Punkte...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation>Der Track '%1' hat %2 ungültige Punkte von insgesamt %3 sichtbaren Punkten. Wollen Sie die ungültigen Punkte herausnehmen?</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation>max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation>Länge: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <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="463"/>
+        <source>Invalid slopes!</source>
+        <translation>Ungültige Steigungen!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation>Höhe: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation>, Geschw.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Anstieg: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Abstieg: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Anstieg: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation>, Abstieg: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Entf.: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation>, Zeit in Bew.: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Anstieg: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Abstieg: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Anstieg: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation>, Abstieg: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Entf.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation>, Zeit: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Punkte %1..%2 dauerhaft entfernt</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Punkte anzeigen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Name geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Kommentar geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Beschreibung geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Geänderte Verknüpfungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Höhe von Punkt %1 auf %2 %3 geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Die Aktivität wurde für den gesamten Track auf '%1' geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Die Aktivität wurde für den Bereich (%2..%3) auf '%1' geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Punkte ausblenden mit dem Douglas-Peuker Algorithmus (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Punkte mit ungültigen Daten ausblenden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Alle verborgenen Trackpunkte zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Alle verborgenen Trackpunkte wurden dauerhaft entfernt</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Mit einem Median-Filter der Größe %1 geglättetes Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>Hangneigung aus dem Höhenmodell hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Höhendaten durch Daten von DEM Dateien ersetzt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Höhenwerte durch interpolierte Werte ersetzt. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>Versatz der Höhendaten um %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Trackanfang auf %1 verschoben.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Zeitstempel entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Künstliche Zeitstempel mit einem Abstand von %1 Sek. gesetzt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation>Die Durchschnittsgeschwindigkeit abhängig von der Steigung auf %1%2 gesetzt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Geschwindigkeit auf %1%2 geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>Erweiterung %1 wurde von allen Trackpunkten entfernt</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Punkte vom autom. Routing in Trackpunkte umgewandelt </translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Kopiert das Informationsflag aus dem QLandkarte GT Track</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Archiviert</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Verfügbar</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>Nicht verfügbar</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_Klon</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation>Höhe: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation>Abstand: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation>Erstellt: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Name geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Position geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Höhe geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation>Abstandsalarm entfernen</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Abstandsalarm geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Symbol geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Kommentar geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Beschreibung geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Geänderte Verknüpfungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Bilder geändert</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Bild hinzufügen</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Ordner hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Ordner löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Aufgrund der Änderungen im Datenbanksystem kennt QMapShack den Dateinamen Ihrer Datenbank '%1' nicht mehr. Sie müssen diesen im nächsten Schritt erneut wählen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Datenbankdatei wählen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Datenbank hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Ordner umbenennen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Ordner kopieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Ordner verschieben</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Aus Dateien importieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Als GPX exportieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Element löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Datenbank durchsuchen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Mit der Datenbank synchronisieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Datenbank entfernen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Leeren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Datenbank entfernen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Wollen Sie '%1' wirklich aus der Liste entfernen?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>Sind Sie sicher, dass Sie alle ausgewählten Ordner und alle Unterordner löschen wollen?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Falsche Funktion...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>Der Zielordner ist ein Unterordner von dem zu verschiebenden. Das kann nicht funktionieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Ordnername...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Ordner umbenennen:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Sind Sie sicher, dass Sie '%1' aus dem Ordner '%2' löschen wollen? </translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Löschen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>GIS Daten importieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Datenbankordner löschen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Element entfernen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Sind Sie sicher, dass Sie alle Elemente in Verloren & Gefunden löschen wollen? Sie werden dauerhaft entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Sind Sie sicher, dass Sie alle ausgewählten Elemente in Verloren & Gefunden löschen wollen? Sie werden dauerhaft entfernt.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Speichern</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Bearbeiten..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Nach der Zeit sortieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Nach dem Namen sortieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Schließen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Aktualisiere das Projekt auf dem Gerät</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Kopieren nach...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Autom. Speichern</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Speichern unter...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Track mit Wegpunkten kopieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Infoblase anzeigen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Wegpunkt verschieben</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation>Radius ändern</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Gebietsvermeidung</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation>Radius entfernen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Streckenvermeidung</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Navigationsanweisungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Route berechnen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Route zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Route bearbeiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation>Route umkehren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>In einen Track umwandeln</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Route erstellen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Symbol änd. (nur ausgew. Wegp.)</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Trackaktivität festlegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Elemente verwerfen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <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>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation>Projekt löschen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Sind Sie sicher, dass sie %1 löschen wollen?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Wegpunkt Projektion...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Trackprofil</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Ans Gerät senden</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Bereich wählen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Trackpunkte bearbeiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Track umkehren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Tracks verbinden</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Gebietspunkte bearbeiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Auf der Karte anzeigen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Auf der Karte ausblenden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Als GPX o. Erw. speichern...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Mit der Datenbank synchronisieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation>Trackfarbe einstellen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Arbeitsplatz wird gespeichert. Bitte warten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Arbeitsplatz laden. Bitte warten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Alle Projekte schließen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>Dies wird alle Projekte aus dem Arbeitsplatz entfernen.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation>Es konnten nicht alle Ordner in den Sammelablagen wiederhergestellt werden. Wahrscheinlich wurden die Ordner oder die Datenbank entfernt. Bitte überprüfen Sie die Einstellungen für die Sammelablagen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation>Fehlgeschlagen...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation>Benützen Sie "drag-n-drop", um Elemente aus dem Arbeitsplatz in die Ablage zu ziehen. </translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation><b>Worum geht es?</b><br/>Wenn man eine Datenbank benutzt, können GIS Element in mehreren Projekten referenziert werden. Das wird üblicherweise dann gebraucht, wenn man Tourdaten in einem eigenen Projekt abspeichert und zudem die Elemente in einen anderen Ordner kopiert (referenziert), um alle Daten zu sammeln, z.B. nach Monat, Jahr oder gesamt. Man kann das selber machen, indem man die Sammelprojekte in den Arbeitsplatz lädt, die Elemente hineinkop [...]
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation>Sammelprojekte auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation>Lade Projekt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation>Das Projekt "%1" ist schon im Arbeitsplatz geladen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation><b>Elementauswahl: </b> Ein Element wurde aus der Arbeitplatzliste heraus ausgewählt. Klicken Sie auf die Karte, um wieder auf die normale Auswahl mit der Maus umzuschalten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation>Elemente kopieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation>Symbol der Wegpunkte wird geändert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation>Track teilen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation>Wollen Sie den ursprünglichen Track löschen?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fehler beim Lesen: %1
+Zeile %2, Spalte %3:
+-%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>Keine GPX Datei: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>Datei existiert...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Datei '%1' konnte nicht erstellt werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Datei '%1' konnte nicht geschrieben werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Das Speichern der GIS Daten ist fehlgeschlagen...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation> von %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Historie davor verkürzen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Historie danach verkürzen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Historie entfernen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>Das Entfernen ist permanent und kann nicht rückgängig gemacht werden. <p> Wollen Sie wirklich die Historie vor diesem Eintrag löschen?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>QLandkarte Datenbank importieren</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Quelldatenbank wählen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Zieldatenbank wählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation>Geschwindigkeit</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation>Trittfr.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Lufttemperatur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Wassertemperatur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation>Tiefe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation>Tiefe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation>Puls</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation>Pulsrate</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation>Trittfrequenz</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation>Geschw.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation>Beschl.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation>Beschleunigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation>Kurs</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation>Kurs</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation>Entf.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation>Entfernung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation>Höhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation>Höhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation>Energie</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation>Energie</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation>Luftdr. M-Höhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation>Luftdruck Meereshöhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation>Geschw. (v).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation>Geschwindigkeit (vertikal)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation>Neigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation>Geschwindigkeit ü. Entfernung*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation>Geschwindigkeit ü. Zeit*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation>Höhe*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation>Verlauf</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation>Verlauf*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation>Hangn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation>Hangneigung*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Neigung*</translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fehler beim Lesen: %1
+Zeile %2, Spalte %3:
+-%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation>Keine Openambit Logdatei: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation>Gerät: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Erholungszeit: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Trainingseffekt Spitze: %1 <br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energie: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation>Lokale Zeit benutzen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>In der Datei wurde keine UTC Zeit gefunden. Deswegen wird die lokale Zeit auf dem Computer verwendet. Sie können nachträglich die Zeit im Track mit einem entsprechenden Filter ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Diese LOG Datei enthält keine Positionsdaten und kann nicht in QMapShack angezeigt werden: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Verloren & Gefunden</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Benützen Sie <b>Menü->Ansicht->Kartenansicht hinzufügen</b>, um eine neue Ansicht zu öffnen. Oder <b>Menü->Datei->Kartenansicht laden</b>, um eine gespeicherte wieder herzustellen. Oder Sie klicken einfach <a href='newview'>hier</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation>Höhe: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation>Hangneigung: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Gitter: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>GIS Daten laden...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Ausgabedatei auswählen</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>QMapShack Ansicht (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Zu ladende Datei auswählen</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Schwerer Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack hat eine unvollständig installierte Proj4 Bibliothek gefunden. Die Übersetzungstabellen für EPSG Projektionen, die normalerweise in /usr/share/proj installiert sind, fehlen. Bitte kontaktieren Sie den Paketbetreuer ihrer Distribution, um das zu beheben.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation>Im Augenblick gibt es keine Karten. QMapShack macht ohne Karten überhaupt keinen Spaß. Sie können Online-Karten installieren, indem Sie den 'Hilfe! Ich will Karten!' Knopf im Fenster 'Karten' drücken. Oder drücken Sie F1 um zur Online-Hilfe zu gelangen. Sie erfahren dort mehr über die Bedienung von QMapShack.
+
+Wenn QMapShack ohne Karten keinen Spaß macht, warum werden dann keine mitgeliefert? Nun, um Karten fertig zur Installation zum Download anbieten zu können, benötigt man einen guten Server. Und der kostet. Dem Projekt fehlt hierzu das Geld. Zusätzlich unterliegen Karten- und DEM Daten dem Urheberrecht. Deswegen muss man den Urheber vorher fragen, ob man die Daten in ein Paket umwandeln und anbieten darf. Klingt einfacher als es oft ist. Und manchmal müsste man sogar Gebühren zahlen. Dem P [...]
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Nicht angegeben</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Französisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Niederländisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Englisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italienisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Finnisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Schwedisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Spanisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Baskisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Katalanisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Galizisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Walisisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gälisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Dänisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Norwegisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portugiesisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Slowakisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Tschechisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Kroatisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Ungarisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Polnisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Türkisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Griechisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Slowenisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Russisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Estnisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Lettisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Rumänisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translatorcomment>Albanisch</translatorcomment>
+        <translation>Albanisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosnisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Litauisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Serbisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Makedonisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Bulgarisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Autobahn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Bundesstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Schnellstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Fernstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Sammelstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Wohnstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Allee/Privatstraße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Auffahrt (langsam)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Auffahrt (schnell)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Unbefestigte Straße</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Autobahnzubringer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Kreisverkehr</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Eisenbahn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Küstenlinie</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Bach</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Zeitzone</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Fähre</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Staats-/Landesgrenze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Kreis-/Gemeindegrenze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Internationale Grenze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Fluss</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Höhenlinie klein</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Höhenlinie mittel</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Höhenlinie groß</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Tiefenlinie klein</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Tiefenlinie mittel</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Tiefenlinie groß</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Intermittierender Bach</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Landebahn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Pipeline</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Stromleitung</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Meeresgrenze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Gefahrbereichgrenze</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Großes Wohngebiet (&gt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Kleines Wohngebiet (&lt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Ländliches Wohngebiet</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Militärbasis</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Parkplatz</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Parkhaus</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Flugplatz</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Einkaufszentrum</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Jachthafen</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Universität/Hochschule</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Krankenhaus</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Industrie</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Schutzgebiet</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Fabrikgelände</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Sportanlage</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Golfplatz</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Friedhof</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Nationalpark</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Stadtpark</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Wald</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Ozean</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Meer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>See</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>See</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>See</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>See</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Strom</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Fluss</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Fluss</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Fluss</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Gewässer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Feuchtgebiet/Sumpf</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Gletscher</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Obstgarten/Plantage</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Buschwerk</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Tundra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Ebene</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Externe TYP Datei einlesen...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Lesen der TYP Datei fehlgeschlagen: %1
+Interne Typen werden wiederhergestellt.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Lesen fehlgeschlagen:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Öffnen fehlgeschlagen:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Falsches Format:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Lesen der Dateistruktur fehlgeschlagen:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Lädt %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Benutzerabbruch:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>Die Datei hat das NT Format. QMapShack kann dieses Format nicht lesen:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>Die Datei enthält verschlüsselte Daten. Garmin möchte nicht, dass diese Datei mit einer anderen Software, als der von Garmin bereitgestellten, benutzt wird.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Ort von Interesse</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Unbekannt</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Gebiet</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Deaktivieren</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Aktivieren</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>Wo wollen Sie die Karten speichern?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Öffnen fehlgeschlagen: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Falsches Dateiformat: </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Hinzufügen oder Entfernen von Verzeichnissen mit Karten. In einem Verzeichnis können mehrere Karten liegen. Unterverzeichnisse werden jedoch nicht durchsucht. Unterstützte Formate sind: %1 </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Kartenpfad wählen...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Hauptverzeichnis auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>TYP Datei auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Das ist keine bekannte TwoNav RMAP Datei.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Unbekanntes Unterformat.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Unbekannte Version.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Referenzpunkte konnten nicht gelesen werden.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Unbekannte Projektion und Datum (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Öffnen fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lesen fehlgeschlagen: %1
+Zeile %2, Spalte %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Die Datei konnte nicht geladen werden: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Die Datei muss eine 8 bit Palette oder Graustufen haben.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>Keine Georeferenzierung gefunden.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>GDAL VRT erstellen</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Dateien auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Zieldatei auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! erledigt !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Öffnen fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lesen fehlgeschlagen: %1
+Zeile %2, Spalte %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Lesen fehlgeschlagen: %1
+Unbekannte Struktur.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Unerwarteter Dienst. '* WMTS 1.0.0' wird erwartet. '%1 %2' wurde gelesen.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>Keine Georeferenzierung gefunden.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Gebiet</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Gebiet bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>Gebiet</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Routenpunkte bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>Route</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Trackpunkte bearbeiten</b><br/>Wählen Sie mittels der Werkzeug-Buttons eine Funktion und einen Routing-Modus. Als nächstes wählen Sie einen Punkt auf der Linie. Es können nur Punkte geändert werden, die mit einem großen Quadrat markiert sind. Schwarze Punkte sind durchs Routing erzeugte Unterpunkte.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Warnung!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Alle ursprünglichen Daten werden durch eine einfache Koordinatenlinie ersetzt. Alle anderen Daten sind dauerhaft verloren.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>Track</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>POI als Wegpunkt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Wegpunkt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Track hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Route hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Gebiet hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Elemente auf der Karte auswählen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Position kopieren</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Position kopieren (Gitter)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Karte speichern (drucken)</b><br/>Wählen Sie mit der linken Maustaste einen rechteckigen Bereich auf der Karte aus. Die Auswahl kann durch Verschieben der Eckpunkte mit der Maus angepasst werden. Abbruch mit Rechtsklick. Speichern/Drucken erfolgt durch Linksklick auf das entsprechende Symbol in der Mitte der Auswahl.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Punktebereich auswählen</b><br/>Mit der linken Maustaste wählen Sie den ersten Punkt aus. Mit einem erneuten Drücken der linken Maustaste wählen Sie den zweiten Punkt aus und dann wählen Sie eine der Optionen. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Elemente auf der Karte wählen</b><br/>Wählen Sie mit der linken Maustaste einen rechteckigen Bereich auf der Karte aus. Abbruch mit Rechtsklick. Die Auswahl kann durch Verschieben der Eckpunkte mit der Maus angepasst werden.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Ausgewählt:</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 Tracks<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 Wegpunkte<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 Routen<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 Gebiete<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Bilder wählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation>Entfernung [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation>Zeit</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation>Entfernung [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation>Höhe [%1]</translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Karte drucken...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Karte als Bild speichern...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Drucker Eigenschaften...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Seiten: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Zoomen Sie mit dem Mausrad auf der Karte unten, um die Auflösung zu ändern:
+
+%1x%2 Pixel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Drucke Seiten.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Karte speichern...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Verstrichene Zeit: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Verstrichene Zeit: %1 Sekunden.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>Norden</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>Süden</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>Die Eingabe:
+'%1'
+ist keine gültige Koordinatensystemdefinition:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation>Eine Lat/Lon Projektion ist in diesem Fall nicht möglich.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Name bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Geben Sie einen neuen Namen für den Wegpunkt ein.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation>Öffnen fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation>Konnte nicht umgewandelt werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation>Die Datei enthält Einblendungen (Overlays), die nicht konvertiert werden können. Der Grund dafür ist, dass QMapShack nicht alle Einblendungstypen von QLandkarte unterstützt.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Datenbank von Version 4 nach 5 migrieren.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Datenbank von Version 5 nach 6 migrieren.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Datenbank von Version 6 nach 7 migrieren.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Datenbank von Version 7 nach 8 migrieren.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Datenbank von Version 8 nach 9 migrieren.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Öffne Datenbank: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Ordner: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Routen:           %1 (Es wird nur die Basisroute kopiert)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Wegpunkte: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Overlays:         %1 (Flächen werden als Flächen übernommen, Distanzlinien werden als Tracks übernommen, alle anderen Overlays gehen verloren)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Tagebücher:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Kartenselektionen:   %1 (können nicht nach QMapShack konvertiert werden)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Konvertierung der Datenbank %1 beginnt ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Erstellen der Zieldatenbank fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Abbrechen ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Fertig ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Ordner wiederherstellen...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>Importiert wurden %1 Ordner und %2 Tagebücher</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Elemente kopieren...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>Importiert wurden %1 Tracks, %2 Wegpunkte, %3 Routen, %4 Gebiete</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Importiere Ordner...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>Das Overlay vom Typ '%1' kann nicht konvertiert werden</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Beschädigter Track ...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der Trackpunkte der Trainingsdaten.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der erweiterten Trackpunkte.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>Anzahl der Trackpunkte entspricht nicht der Anzahl der ausgeblendeten Trackpunkte.</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Vorhandene Datei...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Entferne vorhandene %1?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Entferne vorhandene Datei %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: verwerfe das Element mit der QLGT DB ID %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Öffnen fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Öffnen von %1 fehlgeschlagen</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation>Original</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation>erste Variante</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation>zweite Variante</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation>dritte Variante</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation>Profil: %1, Variante: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation>Fehler:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation>QMapShack kommuniziert mit BRouter über eine Netzwerkverbindung. Normalerweise wird das über eine spezielle Addresse gemacht, die von außen nicht zugänglich ist. Allerdings horcht BRouter auf allen verfügbaren Netzwerkschnittstellen. Wenn Sie in ihrem eigenen privaten Netzwerk mit einer aktiven Firewall sind, ist das kein großes Problem. Wenn Sie in einem öffentlichen Netzwerk sind, stellt jeder offene Zugang ein Risiko dar, weil er von jemanden missbraucht werden ka [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation>Anwort ist leer</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation>Fehlerhafte Serverantwort: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>BRouter</b><br/>Routen-anfrage an den Server geschickt. Bitte warten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation>Berechne Route mit %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation>Diese Version von BRouter unterstütz nicht mehr als ein Vermeidungsgebiet</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>BRouter</b><br/>Fehler-Antwort vom Server<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Berechnungszeit: %1 s</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation>wird ausgeführt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation>started</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation>BRouter (Version %1.%2.%3)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation>Warnung...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation>Ich verstehe das Risiko. Bitte nicht mehr zeigen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation>angehalten</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation>nicht installiert</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation>%1 ist nicht erreichbar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation>ungültige Antwort von %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation>Fehler beim Auswerten der Online-konfiguration:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation>Netzwerk Fehler:</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation>Vorgabewerte wiederherstellen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation>Verzeichnis öffnen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation>installiertes Java-Programm auswählen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation>bitte das BRouter Installations-Verzeichnis auswählen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation>ausgewähltes Verzeichnis existiert nicht</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation>Verzeichnis anlegen und BRouter darin installieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation>vorhandene BRouter-Installation gefunden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation>vorhandene BRouter-Installation aktualisieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation>leeres Verzeichnis, neue BRouter-Installation hier einrichten</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation>neue BRouter-Installation erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation>es scheint eine gültige Java Installation zu geben</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation>es scheint keine gültige Java Installation zu geben</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation>Java Programm nicht gefunden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation>Fehler beim Laden der Installationsseite von %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation>keine BRouter-Version zum Installieren ausgewählt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation>%1 zum Herunterladen und Installieren ausgewählt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation>Warnung...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation>Download: %1<br/><br/>Sie sind dabei eine ZIP Datei aus dem Netz zu laden und zu installieren. Dies Aktion ist nach keinem Standard gesichert und benutzt nur HTTP. Es sollte aber HTTPS sein. Sie haben damit das Risiko, dass jemand die Verbindung umleitet und Ihnen eine Datei mit Schadsoftware sendet. QMapShack kann das nicht unterscheiden. <br/>Wenn Si das nicht verstanden haben oder im Zweifel sind, brechen Sie hier ab. Benützen Sie stattdessen die [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation>Ich verstehe das Risiko und möchte weiter machen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation>Herunterladen von %1 gestartet</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation>Netzwerkfehler: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation>Herunterladen von %1 ist fertig</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation>entpacken:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation>fertig.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation>Herunterladen von BRouter fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation>Unter %1 verfügbare Profile werden ermittelt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation>Profil-Inhalt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation>Fehler:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation>Fehler beim Anlegen des Verzeichnisses %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation>Fehler: Das Verzeichnis %1 existiert nicht</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation>Fehler beim Anlegen der Datei %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation>Fehler beim Schreiben der Datei %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation>weiter Einrichten</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation>verfügbare Routing-daten werden ermittelt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation>Veraltete Daten auswählen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation>Auswahl aufheben</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation>Ausgewählte Daten löschen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation>Herunterladen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation>Fehler beim Anlegen des Verzeichnisses für die Routingdaten %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation>nicht interpretierbar: %1 ist kein Datum</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation>nicht interpretierbar: %1 ist keine gültige Größenangabe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation>Fehler beim Abruf der verfügbaren Routingdaten von %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation>Das Verzeichnis für die Routingdaten existiert nicht:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation>Fehler beim Anlegen der Datei %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation>keine gültige Netzwerkanfrage für die Datei %1 vorhanden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation>der Netzwerkanfrage für %1 ist keine offene Datei zugeordnet</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation>Fehler beim Schreiben der Datei %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation>Fehler beim Umbenennen der Datei von %1 nach %2: %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation>Aktuell: %1 (%2), Veraltet: %3 (%4), noch Herunterzuladen: %5 (%6)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation>wird heruntergeladen: %1 von %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation>lokale keine Daten. Verfügbar: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation>lokale Daten veraltet (%1, %2 - auf dem Server: %3, %4)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation>Fehler beim Löschen der Datei %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation>Netzwerkfehler</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation>ungültige Antwort, keine Dateien gefunden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation>lokale Daten sind aktuell (%1, %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation>keine Routing-daten verfügbar</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! erledigt !!!</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! fehlgeschlagen !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Schnellste</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Kürzeste</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Fahrrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Fußgänger</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Englisch (USA)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Englisch (Britisch)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Dänisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Niederländisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Französisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italienisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Norwegisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Spanisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Schwedisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>Modus "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>keine Kraftfahrzeugstraßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>keine Mautstraßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>keine saisonalen Straßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>keine unbefestigten Straßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>keine Fähren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>keine Überquerung von Landesgrenzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Routinganforderung an den Server gesendet. Bitte warten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Falsche Antwort vom Server:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Berechnungszeit: %1 s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>Fußgänger</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>Reiter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Rollstuhl</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Fahrrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Moped</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Motorrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>LKW</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>Kürzeste</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Falsche Routino Version gefunden. Erwartet wird %1, gefunden wurde %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>Schnellste</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Englisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Französisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Ungarisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Niederländisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Russisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Polnisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Eine Funktion wurde ohne gesetzte Datenbank aufgerufen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Eine Funktion wurde ohne gesetztes Profil aufgerufen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Eine Funktion wurde ohne gesetzte Sprache aufgerufen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>Die zu ladende vorgegebene Datenbank existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>Die vorgegebene Datenbank konnte nicht geladen werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>Die vorgegebene XML Profildatei existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>Die vorgegebene XML Profildatei konnte nicht geladen werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>Die vorgegebene XML Sprachdatei existiert nicht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>Die vorgegebene XML Profildatei konnte nicht geladen werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>Den geforderten Profilnamen gibt es in der geladenen XML Datei nicht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>Die geforderte Sprache gibt es in der geladenen XML Datei nicht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>Profil und Datenbank funktionieren nicht zusammen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>Das zu benutzende Profil wurde nicht validiert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>Das vorgegebene Profil enthält ungültige Daten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Die vorgegebenen Routingoptionen passen nicht zusammen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>Die Library und die API Version passen nicht zusammen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>Die Routenberechnung wurde vom Benutzer abgebrochen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>Es konnte keine Route zum Wegpunkt %1 gefunden werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Unbekannter Fehler: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>Profil "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, Modus "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Warnung...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translatorcomment>Message text points now to problem with routing database</translatorcomment>
+        <translation>Es gibt in der Routing-Datenbank keine Straße in der Nähe des zu platzierenden Wegpunktes.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Berechne Route mit %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Berechnungszeit: %1 s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Pfade mit Routino Daten hinzufügen oder entfernen. In einem Pfad können mehrere Datenbanken sein. Teilpfade werden nicht geparst.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Pfad für Routingdatendatei wählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Routino Datenbank erstellen</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Dateien auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Zielpfad auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! erledigt !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation><b>OpenSky</b><br/>Ein Onlinedienst, der Positionsdaten der zivilen Luftfahrt anbietet</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation>unbek.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation>Schlüssel:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation>Kennung:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation>Herkunftsland:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation>Zeit a. d. Pos.:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation>letzter Kontakt:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation>Länge:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation>Breite:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation>geo. Höhe:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation>gelandet:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation>Geschwindigkeit:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation>Richtung:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation>Steigrate:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation>baro. Höhe:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation>Squawk:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation>SPI:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation>Positionsquelle:</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation>Aufzeichnung auswählen</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation>Aufzeichnung zurücksetzen...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation>Wollen Sie die Aufzeichnung wirklich zurücksetzen?</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation>Fehlgeschlagen...</translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation>Wählen Sie eine Echtzeitquelle aus der Liste aus. Einige Quellen können mehrmals hinzugefügt werden. Andere nur als eine einzige Instanz. </translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation>Eine neue Quelle mit Echtzeitdaten wird über einen Rechtsklick im Fenster hinzugefügt.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation>Quelle löschen...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation>Sind Sie sicher, dass Sie die Echtzeitdatenquelle löschen wollen?</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>Kein Bereich ausgewählt</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Genauer Modus</b><br/>Alle Elemente müssen vollständig innerhalb des gewählten Bereiches sein.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation><b>Überschneidender Modus</b><br/>Alle gewählten Elemente müssen innerhalb des gewählten Bereiches sein oder müssen diesen zumindest schneiden.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Tracks hinzufügen</b><br/>Fügt Tracks zur Liste der gewählten Elemente hinzu<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Wegpunkte hinzufügen</b><br/>Fügt Wegpunkte zur Liste der gewählten Elemente hinzu<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Routen hinzufügen</b><br/>Fügt Routen zur Liste der gewählten Elemente hinzu<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Gebiete hinzufügen</b><br/>Fügt Gebiete zur Liste der gewählten Elemente hinzu<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Tracks ignorieren</b><br/>Tracks werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Wegpunkte ignorieren</b><br/>Wegpunkte werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Routen ignorieren</b><br/>Routen werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation><b>Gebiete ignorieren</b><br/>Gebiete werden in der Liste der gewählten Elemente nicht berücksichtigt<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Datenbank '%1' durchsuchen</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Unbekannte Antwort</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Fehler:</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Fehlende Voraussetzung</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>MySQL kann derzeit nicht genutzt werden, weil der entsprechende Treiber (QMYSQL) nicht verfügbar ist.<br />Stellen Sie bitte sicher, dass das entsprechende Paket installiert ist.<br />Wenn Sie nicht wissen, was zu tun ist, sollten Sie einen Blick auf das <a href="%1">Wiki</a> werfen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Es gibt schon eine Datenbank mit dem Namen '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Neue Datenbank...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Datenbank öffnen...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Datenbank einrichten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Änderungen werden erst nach Neustart der Anwendung aktiv.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Zeitmarke lesen fehlgeschlagen. '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 existiert nicht</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Öffnen von %1 fehlgeschlagen</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lesen von %1 fehlgeschlagen:
+Zeile %2, Spalte %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>Keine SLF Datei: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Nicht unterstützte Revision %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Pause %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Runde %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fehler beim Lesen: %1
+Zeile %2, Spalte %3:
+-%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation>Keine SML Datei: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Erholungszeit: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Trainingseffekt Spitze: %1 <br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energie: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation>Gerät: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation>Batteriebenutzung: %1 %/h</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation>Lokale Zeit benutzen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>In der Datei wurde keine UTC Zeit gefunden. Deswegen wird die lokale Zeit auf dem Computer verwendet. Sie können nachträglich die Zeit im Track mit einem entsprechenden Filter ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Diese SML Datei enthält keine Positionsdaten und kann nicht in QMapShack angezeigt werden: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Doppelt klicken, um die Höhe zu ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Datei %1 konnte nicht geladen werden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fehler beim Lesen: %1
+Zeile %2, Spalte %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>Keine TCX  Datei: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Diese TCX Datei enthält mindestens einen Workout, aber keine Aktivität oder einen Kurs. Da Workouts keine Positionsdaten beinhalten, können sie nicht in QMapShack geladen werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>Diese TCX Datei enthält keine Aktivität oder Runden: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>Datei existiert...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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>Die Datei existiert schon und wurde nicht mit QMapShack erstellt. Wenn Sie 'Ja' drücken werden die ursprünglichen Daten verloren gehen. Auch wenn die Datei mit QMapShack geladen wurde. QMapShack ist möglicherweise nicht in der Lage alle Daten zu laden und wieder zu speichern. Diese Daten werden verloren gehen. Wir empfehlen eine andere Datei zu benutzen. <b>Wollen Sie wirklich die Datei überschreiben?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>Der Track <b>%1</b>, den Sie ausgewählt haben, beinhaltet Trackpunkte mit einer ungültigen Zeitmarke. Das Gerät wird die erzeugte TCX Kursdatei nicht akzeptieren, wenn sie so bleibt wie sie ist. <b> Wollen Sie einen Filter anwenden, der die Geschwindigkeit auf 10m/s setzt und fortfahren?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Kurs</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Aktivität</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Track mit ungültiger Zeitmarke...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>Aktivität oder Kurs?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack weiß nicht als was der Track <b>%1</b> gespeichert werden soll. <b> Wollen Sie ihn als Kurs oder als Aktivität speichern? <b> Bedenken Sie, dass nur Wegpunkte die nahe genug am Track sind bei einem Kurs gespeichert werden. Wegpunkte werden bei einer Aktivität nicht gespeichert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Datei '%1' konnte nicht erstellt werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Datei '%1' konnte nicht geschrieben werden</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Das Speichern der GIS Daten ist fehlgeschlagen...</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Wanderung Zusammenfassung (built-in)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Vorlagenpfad...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>Datei '%1' konnte nicht gelesen werden.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Vorschau...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Farbe...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Format zurücksetzen</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Verfügbare Werkzeuge</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Ausgewählte Werkzeuge</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Die Datei %1 konnte nicht geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>GIS Daten speichern in...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <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="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Lesen der Daten fehlgeschlagen.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Pfad zu Benutzersymbolen...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Teilnehmer</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Wetter</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>Regen</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>Sonne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>Schnee</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>Wolken</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation>Wind</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>heiß</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>warm</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>kalt</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>eiskalt</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>neblig</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>schwül</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Charakter</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>einfache Wanderung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>Klettern</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>alpine Tour</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>langer Anstieg</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>lange Distanz</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>Klettersteig</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>Hagel/Graupel</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation>Beurteilung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>Beurteilung 5 Sterne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>Beurteilung 4 Sterne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>Beurteilung 3 Sterne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>Beurteilung 2 Sterne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>Beurteilung 1 Sterne</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>abgebrochen</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Ausrüstung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>Klettersteigset</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>Nachtausrüstung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>Schneeschuhe</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>Kletterausrüstung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>Ski</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>Campingausrüstung</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Details</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>Über....</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Tschechisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Deutsch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Niederländisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Französisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Russisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Übersetzung:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Spanisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Ausführbare Dateien:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Mitwirkende:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>... und Danke an alle Ersteller von ausführbaren Linux-Dateien für die gute Arbeit. Ganz besonderen Dank an Dan Horák und Bas Couwenberg für ihre Teilnahme an der Diskussion in der Mailingliste distributionsbezogene Punkte betreffend.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <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>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Kartenansicht einstellen...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Projektion & Datum</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Skalierung</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logarithmisch</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>Quadratisch (optimiert für TMS und WMTS Kacheln)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Tracks verbinden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Vorh. Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Verb. Tracks</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Koordinatenformat...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Route aus Wegpunkten erstellen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Track teilen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Löscht den ersten Teil des Tracks und behält den zweiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Behält beide Teile des Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Behält den ersten Teil des Tracks und löscht den zweiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Teilmodus:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Wählen Sie das aus, wenn das Ergebnis ein neuer Track sein soll.
+
+Wenn Sie beide Teile des Tracks behalten wollen, müssen neue Tracks erstellt werden.
+
+Wenn Sie nur die eine Hälfte behalten wollen, können Sie einfach die Punkte löschen, oder wählen Sie das, um einen neuen Track zu erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Neuen Track erstellen</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>Das interne Datenbankformat von '%1' wurde geändert. QMapShack wird ihre Datenbank nun migrieren. Nach der Migration kann die Datenbank mit älteren QMapShack Versionen nicht mehr verwendet werden. Es wird empfohlen, zuerst ein Backup der Datenbank zu erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Datenbank wird migriert...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>Migration durch den Benutzer abgebrochen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Migrieren von '%1' fehlgeschlagen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>Migration fehlgeschlagen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>Die Datenbankversion von '%1' ist höher als die, die von QMapShack gelesen werden kann. Das wird nicht gehen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Initialisierung fehlgeschlagen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Falsche Datenbankversion...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>Die Datenbank wurde von einer aktuelleren Version von QMapShack erstellt</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Initialisieren von '%1' fehlgeschlagen.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Passwort...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Passwort für Datenbank '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Wechsel zu Datenbankversion 5. Alle GIS Elemente werden übertragen.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Wechsel zu Datenbankversion 3. Alle GIS Elemente werden übertragen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Wechsel zu Datenbankversion 5. Alle GIS Elemente werden übertragen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Wechsel zu Datenbankversion 6. Alle GIS Elemente werden übertragen.</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Pfad für DEM Dateien setzen</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Ändert die Deckkraft der Karte</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klicken, um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Stellt den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als maximale Skalierung zu benutzen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Schummerung</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Hangneigung </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Sie können Höhendaten mit <b>"Menü -> Datei -> DEM Verzeichnisse angeben"</b> hinzufügen. Oder Sie klicken einfach <a href='setup'><b>hier</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Mit dem Kontextmenü (Klick mit rechter Maustaste auf einen Eintrag) können Sie einen Datensatz aktivieren. Um die Höhendaten in einer anderen Reihenfolge anzuzeigen, können Sie jeden Eintrag mit drag-n-drop verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Aktivieren</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Nach oben verschieben</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Versteckt DEM hinter dem vorherigen</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Nach unten verschieben</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>DEM überlagert das nächste</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>DEM erneut laden</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Position:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Schwierigkeit</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Gelände</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Spoiler erneut laden</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Hinweis:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialog</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Das Gebiet wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation>Diese Gebiet vermeiden</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Farbe</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Rahmenbreite</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Stil</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Deckkraft</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Punkte</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Position</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Tagebuch drucken</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Reihenfolge beibehalten</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Sort. entl. d. Tracks (mehrfach)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Sort. entl. d. Tracks (einmalig)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Tagebuch aktualisieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Stichwörter:</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Die Route wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation>Diese Strecke vermeiden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Diese Strecke vermeiden</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Geschw.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Stil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Quelle</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Breite</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation>-
+-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Der Track wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation>Dieser Track ist eine NoGo-Linie</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>mit Richtungspfeilen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Diagramme</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Aktivität</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Trackaktivität festlegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Um Trackstatistiken zu differenzieren, wählen Sie für den gesamten Track eine Aktivität aus der Liste. Oder Sie wählen einen Teil des Tracks aus und weisen diesem eine Aktivität zu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Punkte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Zeit</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Höhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Delta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Entf.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Neigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Position</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Die benutzerdefinierte Sichtbarkeit der Richtungspfeile für diesen Track verwenden</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Die vorgegebene Sichtbarkeit der Richtungspfeile für alle Tracks benutzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Den benutzerdefinierten Skalierungsfaktor für diesen Track verwenden</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Den vorgegebenen Skalierungsfaktor für alle Tracks benutzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Benutzerdefinierte Grenzwerte für diesen Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Automatische Grenzwerte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Benutzerdefinierte Grenzwerte für alle Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Farbe</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Anstieg</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Abstieg</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filter</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Position:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Höhe</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Abstand:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Der Wegpunkt wurde in QMapShack importiert und geändert. Die ursprünglichen Daten werden nicht mehr angezeigt. Näheres siehe Änderungshistorie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation>Dieses Gebiet vermeiden</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Den Schreibschutz ändern. Das Schloss muss offen sein um das Element zu bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Bilder hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Ausgewähltes Bild löschen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Datum/Zeit:</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Es gibt schon ein Projekt mit demselben Namen. Wenn Sie 'ok' drücken wird dieses entfernt und ersetzt.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Höhe bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Höhe</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Höhe aus aktivem digitalen Höhenmodell entnehmen.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Datenbank als GPX exportieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Exportpfad:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 ohne Erweiterungen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Starten</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Schließen</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Trackpunkte entfernen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Alle ausgeblendeten Trackpunkte werden dauerhaft entfernt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Erweiterung von allen Trackpunkten entfernen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Entfernt </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>von allen Trackpunkten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Trackpunkte ausblenden (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Trackpunkte werden ausgeblendet, wenn der Abstand zu einer Linie zwischen benachbarten Punkten kleiner ist als</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation> m</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Den Filter jetzt anwenden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Höhendaten interpolieren</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Die Höhe eines Trackpunktes durch einen interpolierten Wert ersetzen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Qualität</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Vorschau</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Ungültige Punkte ausblenden</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Punkte mit ungültigen Daten ausblenden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Profil glätten (Median-Methode) </b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Glättet die Abweichung der Höhe von Trackpunkten mit einem Median-Filter der Größe </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation> Pkt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Zeit ändern</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Ändert den Trackbeginn auf </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.yy HH:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Zeitstempel verschleiern</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Erhöht den Zeitstempel um </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation> s</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>für jeden Trackpunkt. 0 s entfernt alle Zeitstempel.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Höhenversatz</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Fügt einen Versatz von </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>zur Höhe der Trackpunkte hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Höhendaten ersetzen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Ersetzt die Höhendaten durch Daten aus den geladenen DEM Dateien.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Ausgeblendete Trackpunkte wiederherstellen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Alle Trackpunkte werden wieder sichtbar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Geschwindigkeit ändern</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation>Geschwindigkeit</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation>Typ</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation>Max. Geschw.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation>Ebene:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation>bei positiver Steigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation>Min. Geschw.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation>Bergauf:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation>Bergab:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation>Geschw. ohne Steigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation>bei negativer Steigung</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation>Benutzerdefinierte positive und negative Steigungen werden durch die minimale und maximale Steigung im Track ersetzt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation>Min./Max. Steigung aus dem Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation>Konstant</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation>Fahrrad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> km/h</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation>Den Filter jetzt anwenden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Tracksegmente in Tracks umwandeln</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Für jedes Segment in diesem Track wird ein neuer Track erstellt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><p>Zwischenpunkte in Trackpunkte umwandeln</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Zwischenpunkte vom autom. Routing werden in echte Trackpunkte umgewandelt</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Hangneigung berechnen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Berechnet die Hangneigung basierend auf dem geladenen Höhenmodell.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>FIT Dekodierfehler: Nicht zutreffender Dekoderstatus %1 nach dem letzten Datenbyte der Datei.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation>Alter</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation>Eine neue Datenbank wird über einen Rechtsklick im Fenster erstellt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation>Sammelablagen anzeigen</translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[kein Name]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>Das Element ist nicht Teil des Projektes in der Datenbank.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>Es ist entweder ein neues Symbol oder es wurde in der Datenbank gelöscht.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>Das Element ist nicht in der Datenbank.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>Es könnte notwendig sein, das Element zu speichern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Erstversion.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation>Aufhören nachzufragen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3> Diese Element ist vermutlich schreibgeschützt, da nicht mit QMapShack erstellt. Normalerweise sollten importierte Daten nicht geändert werden. Wenn doch, drücken Sie 'OK'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Schreibgeschützt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Beschreibung:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>--- keine Beschreibung ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Kommentar:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- kein Kommentar ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Verknüpfungen:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- keine Verknüpfungen---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Name bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Geben Sie einen neuen %1namen ein.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Projekt speichern?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>Das Projekt wurde geändert. Speichern, bevor es geschlossen wird?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Tracks und Wegpunkte verknüpfen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>Hat das zu lange gedauert? Wollen Sie die Verknüpfung von Tracks und Wegpunkten auch in Zukunft für dieses Projekt überspringen?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Verknüpfung abgebrochen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Speichere "%1" nach...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Dateiname: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Wegpunkte: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Routen: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Gebiete: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <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>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Löschen...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation>Sammelablage einrichten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation>Muss noch eingerichtet werden...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation>Sammelablagen einrichten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation>Ablage 1</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation>Ablage 2</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation>Ablage 3</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation>Ablage 4</translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation>Transparenz</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation>Ändert die Transparenz von allen GIS Elementen auf der Karte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation>Filter</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation>Filter zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation>Filter einstellen</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Gitter einstellen...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Projektion</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>Grundeinstellung wiederherstellen</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Projektion aus der aktuellen Karte nehmen.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>Projektionshilfe</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Gitterfarbe</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>Gitterfarbe einstellen</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Quelldatenbank:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Starten</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Zieldatenbank:</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Verknüpfungen...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Typ</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Text</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>URI</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Datei</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Ansicht</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Fenster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Werkzeug</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Karten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Dig. Höhenmodell (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Werkzeugleiste</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation>Streckenführung</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation>Echtzeit</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Kartenansicht hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Maßstab</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Kartenfont einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Gitter</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Gitter einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Mausrad umdrehen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Kartenverzeichnisse angeben</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>POI Text</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Nacht / Tag</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Kartentooltip</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>DEM Verzeichnisse angeben</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>Über</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Hilfe</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Kartenansicht einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>VRT Builder</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>Eine graphische Benutzerschnittstelle zu gdalbuildvrt </translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Kartenansicht speichern</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Speichert die aktiven Karten und DEM Dateien inklusive der Eigenschaften in einer Datei</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Kartenansicht laden</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Stellt die aktiven Karten und DEM Dateien inklusive der Eigenschaften aus einer Datei wieder her</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Erw. Profil</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Schließen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Kartenansicht klonen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Routino Datenbank erstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Kartenausschnitt speichern (drucken)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Einen ausgewählten Bereich der Karte drucken</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Koordinatenformat einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Ändert das Format der angezeigten Koordinaten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Kartenhintergrund einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Wegpunktsymbole konfigurieren</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Pfad zu individuellen Symbolen einrichten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Reiter schließen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation>Schnellstartanleitung</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Werkzeugleiste einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Fenster umschalten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Sichtbarkeit der andockbaren Fenster umschalten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Vollbild</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation>Min./Max. Trackwerte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation>Zeigt die minimalen und maximalen Werte der Trackdaten in der Kartenansicht entlang des Tracks an.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation>QMapTool starten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation>Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation>Arbeitsplatz</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>GIS Daten laden</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Lade Datei als Projekt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Alle GIS Daten speichern</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation>Alle Projekte, die sich auf dem Arbeitsplatz befinden, speichern</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Zeitzone einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Leeres Projekt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Mit Google suchen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Alle Projekte schließen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Einheiten einstellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Arbeitsplatz konfigurieren</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Speichert Einstellungen beim Beenden.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Datenbankimport aus QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>QLandkarte GT Datenbank importieren</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Sie können Karten mit <b>"Menü -> Datei -> Kartenverzeichnisse angeben"</b> hinzufügen. Oder Sie klicken einfach <a href='setup'><b>hier</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Mit dem Kontextmenü (Klick mit rechter Maustaste auf einen Eintrag) können Sie eine Karte aktivieren. Um die Karten in einer anderen Reihenfolge anzuzeigen, können Sie jeden Eintrag mit drag-n-drop verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Hilfe! Ich will Karten!
+Keine Lust die Anleitung zu lesen!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Aktivieren</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Nach oben verschieben</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Versteckt die Karte hinter der vorherigen</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Nach unten verschieben</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Die Karte überlagert die nächste</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Karten erneut laden</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>Diese Karte benötigt OpenSSL. Aufgrund rechtlicher Beschränkungen in einigen Ländern, ist OpenSSL nicht Bestandteil von QMapShack. Sie können sich auf der <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> nach Binäries umsehen. Sie müssen die Dateien libeay32.dll and ssleay32.dll in das QMapShack Programmverzeichnis kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: warte auf %2 Kacheln<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Kartenpfad einrichten</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Hauptverzeichnis für den Kachelspeicher von Onlinekarten:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Hilfe! Ich will Karten!
+Keine Lust die Anleitung zu lesen!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Ändert die Transparenz der Karte</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als minimale Skalierung zu benutzen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Stellt den Skalierungsbereich ein, in dem die Karte sichtbar ist. Benutzen Sie die beiden Knöpfe links und rechts um die minimale und maximale Skalierung einzustellen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klicken um die aktuelle Skalierung als maximale Skalierung zu benutzen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Gebiete</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Linien</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Punkte</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Details</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Speicherpfad</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>TYP Datei:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Externe TYP Datei vergessen und interne Typen verwenden.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Externe TYP Datei laden.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Cache (MB)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Verfallzeit (Tage)</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Erweiterte Optionen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation>Kein Datenwert Quelle (-srcndata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation>Kein Datenwert Zieldatei (-vrtnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation>Projektion Zieldatei</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation>Diese Optionen sind für spezielle Fälle. Normalerweise werden sie leer gelassen. Für mehr Information lesen Sie die GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Hilfe</a>.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation><ol>
+<li>Wählen Sie eine oder mehrere Quelldateien.</li>
+<li>Geben Sie einen Namen für die VRT Zieldatei an.</li>
+<li>Drücken Sie "Start".</li>
+</ol>
+
+Tipp:
+<ul>
+<li>Wenn Sie mehrere Dateien haben, verschieben Sie diese in einen Unterordner des Kartenpfades. Erstellen Sie die VRT Datei im Kartenpfad.</li>
+<li>Benützen Sie die erweiterten Optionen, um einen "keine Daten" Wert anzugeben, wenn ihre Quelldateien keinen haben und keinen rechteckigen Bereich abdecken. Gebiete ohne Karte werden dann transparent dargestellt.</li>
+<li>Mit der "-a_srs" Option können sie eine Projektion/Datum vorgeben, wenn dieses in den Quellen fehlt. Damit werden die Daten aber NICHT neu projiziert.</li>
+</ul></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Quelldateien auswählen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation>Übersichtsebenen erlauben es Ihnen die Karte in einem größeren Zoombereich anzuzeigen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation>Übersichtsebenen erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Zieldatei auswählen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Neue Linie</b><br/>Erstellen Sie Punkte durch Verschieben des Mauscursors und Drücken der linken Maustaste. Mit der rechten Maustaste beenden Sie den Vorgang.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Punkt löschen</b><br/>Bewegen Sie den Mauscursor nahe an einen Punkt und drücken Sie die linke Maustaste um ihn zu löschen. <br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Punktebereich auswählen</b><br/>Mit der linken Maustaste wählen Sie den ersten Punkt aus. Mit einem erneuten Drücken der linken Maustaste wählen Sie den zweiten Punkt aus und dann wählen Sie eine der Optionen. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Punkt verschieben</b><br/>Bewegen Sie den Mauscursor nahe an einen Punkt und drücken die linke Maustaste, um ihn mit dem Cursor zu fangen. Verschieben Sie den Punkt mit der Maus. Setzen Sie den Punkt mit einem Linksklick. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Punkt hinzufügen</b><br/>Bewegen Sie den Mauscursor nahe an ein Liniensegment und drücken Sie die linke Maustaste, um einen Punkt hinzuzufügen. Der Punkt wird durch den Cursor gefangen und kann verschoben werden. Setzen Sie den Punkt mit einem Linksklick. Zum Abbrechen nutzen Sie die rechte Maustaste.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Kein Routing</b><br/>Alle Punkte werden mittels einer geraden Linie verbunden.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Auto Routing</b><br/>Die aktuellen Router Einstellungen erstellen eine Route zwischen Punkten. <b>Hinweis:</b> Der gewählte Router muss schnell routen können. Offline Router können dies gewöhnlich, Online Router nicht.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Vektor Routing</b><br/>Verbindet Punkte mit einer Linie einer geladenen Vektorkarte, soweit möglich.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1maße</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Entfernung:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Anstieg:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Abstieg:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation><br/><b>Karte verschieben</b><br/>Wenn Sie den linken Mausknopf gedrückt halten und die Maus bewegen, verschieben Sie die Karte.<br/><br/></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Zoom zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Bereichsauswahl beenden</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Speichern ...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Wegpunkt hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Teilen...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Um nur vertikale zu zoomen, STRG Taste gedrückt halten.
+Um nur horizontal zu zoomen, ALT Taste gedrückt halten.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Keine oder schlechte Daten.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Ausgabedatei auswählen</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Position...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Neue Position eingeben</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Falsches Positionsformat. Muss entweder 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+oder
+"[N|S] ddd.ddd [W|E] ddd.ddd"
+sein</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Karte drucken...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>Um einen Ausschnitt einer Online Karte zu drucken, müssen Sie sicherstellen, dass die Karte in den Cache geladen wurde.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Speichern</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>Um einen Ausschnitt einer Online Karte zu speichern, müssen Sie sicherstellen, dass die Karte in den Cache geladen wurde.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Drucken</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Bitte warten...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation>Projektionseingabehilfe</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>Zone</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>Benutzer definiert</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Ergebnis:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Nord (Nordpol)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Süd (Südpol)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Projektion</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Wegpunkt Projektion</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Wegpunkt kopieren und verschieben um:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation> m</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Variante</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation>ausgewähltes Profil anzeigen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation>nicht gestartet</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation>BRouter starten/stoppen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation>BRouter Logausgabe anzeigen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation>Einrichten</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation>Vorsicht! BRouter horcht auf allen verfügbaren Schnittstellen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation>Ausblenden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Lizenz GPLv3</a></p></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation><p>Mit freundlicher Genehmigung von <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation><p>Routendaten <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation>BRouter Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation>BRouter Einrichtung</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation>bitte den zu verwendenden BRouters auswählen:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation>lokale Installation</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation>Experten Modus</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation>lokales BRouter Installations-Verzeichnis:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation>Installationsverzeichnis auswählen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation>Installation neu anlegen oder aktualisieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation>ausführbares Java Programm</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation>nach installiertem Java-programm suchen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation>BRouter-Version herunterladen und installieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation>zu installierende Datei</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation>Herunterladen und Installieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation>Verfügbare Profile</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation>Profil installieren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation>Profil entfernen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation>Installierte Profile</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation>Profil-Inhalt</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation>Adresse (URL) von BRouter-Web</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation>Adresse (URL) des Routing Service</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation>Adresse (URL) der Profile</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation>Servername</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation>Profil-Verzeichnis</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation>Segment-Verzeichnis</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation>Verzeichnis für angepasste Profile</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation>Maximale Laufzeit</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation>Anzahl Threads</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation>Java Optionen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation>Nur mit dem Hostnamen verbinden</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation>Profil-Url</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Autobahnen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Mautstraßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>saisonale Straßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>unbefestigte Straßen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Fähren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Sprache</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Landesgrenzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Vermeide:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Mit freundlicher Genehmigung von <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Modus</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Datenbank</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Fügt Pfade mit Routino Datenbanken hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Sprache</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Um Offline-Routing zu nutzen, müssen Sie einen Pfad zu einer lokalen Routendatenbank angeben. Benutzen Sie dazu den Knopf mit dem blauen Ordner. Sie können mit <b>Werkzeug->Routino Datenbank erstellen</b> eine solche Routendatenbank selber erzeugen.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Routino Datenbank einrichten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Quelldateien auswählen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Starten</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Zielpfad:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Dateipräfix</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation><p>Damit Sie eine Routingdatenbank für Routino erstellen können, müssen Sie *pbf Dateien von <a href='http://download.geofabrik.de/'>GeoFabrik</a> herunterladen. Es dauert sehr lange eine Datenbank für Routino zu erstellen und die erstellten Dateien sind sehr groß. Deswegen ist es nicht empfehlenswert ganze Kontinente herunterzuladen. Allerdings kann Routino nicht über mehrere Datenbanken routen. Deswegen sollten alle Länder, die von einer [...]
+
+<ol>
+<li>Eine oder mehrere *.pbf Dateien auswählen.</li>
+<li>Ein Verzeichnis für die Datenbank angeben.</li>
+<li>Einen Prefix bestimmen. Die Datenbank wird mit diesem Prefix gelistet.</li>
+<li>Den ""Start" Knopf drücken.</li>
+</ol>
+</translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation>letzte Aktualisierung</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation>Flugzeuge in Sicht:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation>zeige Namen</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation>Weitere Details <a href='https://opensky-network.org/'>OpenSky</a></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation>Geben Sie einen gültigen Schlüssel ein.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation>Schlüssel</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation>Aufzeichnung starten.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation>Aufzeichnung anhalten.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation>Aufzeichnung in einen Track umwandeln.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation>Aufzeichnung zurücksetzen.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation>Eine Datei für die Aufzeichnung auswählen.</translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation>Die Aufzeichnungsdatei konnte nicht zum Lesen geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation>Ein Eintrag konnte nicht gelesen werden. Die Aufzeichnung wird auf den letzten gültigen Eintrag reduziert.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation>Die Aufzeichnungsdatei konnte nicht zum Schreiben geöffnet werden.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation>Eintrag konnte nicht geschrieben werden.</translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation>Quelle auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation>Quelle</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation>Quelle hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation>Quelle löschen</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Ins Original speichern</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Als neu speichern</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Punkte verschieben. (Strg+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Punkte hinzufügen. (Strg++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Einen Punktebereich wählen (Strg+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Kein Auto-Routing oder Fangen an Linie (Strg+O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Auto-Routing zwischen Punkten benutzen. (Strg+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Fängt die Linie entlang Linien einer Vektorkarte. (Strg+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Punkte löschen (Strg+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Letzte Änderung rückgängig machen</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Letzte Änderung wiederherstellen</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Details anzeigen und bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Gebiet in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Gebiet aus einem Projekt entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Form eines Gebietes ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Gebietsvermeidung umschalten</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Druckt gewählten Bereich.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Alle Punkte zwischen dem ersten und dem letzten Punkt löschen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Eine Route zwischen dem ersten und dem letzten gewählten Punkt berechnen.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Blendet alle Punkte aus.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Blendet alle Punkte ein.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Für den ausgewählten Bereich eine Aktivität festlegen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Kopiert Trackpunkte in neuen Track.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Details anzeigen und bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Kopiert die Route in ein anderes Projekt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Route aus einem Projekt entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Routenberechnung zurücksetzen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Route berechnen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Routenpunkte verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation>Route umkehren</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Die Route in einen Track umwandeln</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Streckenvermeidung umschalten</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Kopiert alle gewählten Elemente in ein Projekt.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Route aus den gewählten Wegpunkten erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Das Symbol wird für alle ausgewählten Wegpunkte geändert.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Alle ausgewählten Tracks zusammenführen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Für alle ausgewählten Tracks eine Aktivität festlegen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation>Die Farbe für alle ausgewählten Tracks ändern.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Löscht alle gewählten Elemente.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Wählt alle Elemente, die den gewählten Bereich schneiden.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Alle Elemente auswählen, die komplett innerhalb des ausgewählten Gebietes sind.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Fügt Tracks zur Auswahl hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Fügt Wegpunkte zur Auswahl hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Fügt Routen zur Auswahl hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Fügt Gebiete zur Auswahl hinzu.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Track in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Zeigt das Profil und detaillierte Informationen der Punkte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Position von Trackpunkten bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Details anzeigen und Trackeigenschaften bearbeiten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Track aus einem Projekt entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Wähle einen Punktebereich.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Track umkehren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Tracks verbinden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Zerteilt den Track am ausgewählten Punkt. Damit kann man:
+
+* schlechte Punkte am Anfang oder Ende eines Tracks entfernen
+* die Teile zum Planen neuer Touren verwenden
+* einen langen Track in Etappen zerteilen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Für den ganzen Track eine Aktivität festlegen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation>Die Farbe für diesen Track ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Kopiert den Track zusammen mit allen verknüpften Wegpunkten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Streckenvermeidung umschalten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Details anzeigen und editieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Wegpunkt in ein anderes Projekt kopieren.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Wegpunkt aus einem Projekt entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Inhalt als statische Legende zeigen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Wegpunkt an einen neuen Ort verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Wegpunkt klonen und um eine bestimmte Entfernung und einen bestimmten Winkel verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation>Den Abstandsradius ändern</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>Zwischen Abstandsalarm und Gebietsvermeidung umschalten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Den Abstandskreis entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation>Den Abstandsradius ändern.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>Zwischen Abstandsalarm und Gebietsvermeidung umschalten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Den Abstandskreis entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Suchen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Tippen Sie das Wort, das sie suchen ein und drücken Sie den 'Suchen' Knopf.
+Wenn Sie das Wort 'wort' eingeben, wird exakt nach dem Wort gesucht. Wenn Sie das Wort 'wort*' eingeben, dann muss 'wort' nur am Anfang stehen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Suchen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Schließen</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>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Element kopieren...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Ersetzt vorhandenes Element</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>Element nicht kopieren</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Einen Klon erstellen</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Ersetzen mit:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Element behalten:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Der Name des Klones wird mit '_Klon' erweitert</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>Auch für alle anderen Elemente anwenden.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Übergeordneten Ordner auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Verfügbar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Zu den ausgewählten Einträgen hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Von den ausgewählten Einträgen entfernen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Ausgewählt</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Ausgewählte Einträge nach oben</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Ausgewählte Einträge nach unten</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Ein Projekt auswählen...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Wähle ein Projekt aus der Liste oder gib einen neuen Projektnamen ein.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Neuer Projektname</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>Das neue Projekt wird erstellt als:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Datenbank</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Element kopieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Ersetzt vorhandenes Element</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Einen Klon hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Der Name des Klones wird mit '_Klon' erweitert</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Ersetzen mit:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>Bezeichnung</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>Das Element nicht ersetzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Element verwenden:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>Auch für alle anderen Elemente anwenden.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Datenbank hinzufügen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Achtung!</span> Es wird empfohlen, das Passwortfeld leer zulassen, da QMapShack dies als Klartext speichert. Wenn Sie kein Passwort vergeben, werden Sie bei jedem Start danach gefragt.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>Kein Passwort benutzen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Benutzer</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Passwort</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Port:</b> Um den vorgegebenen Port zu nutzen, lassen Sie das Port-Feld leer.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Datei:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Fügt eine neue Datenbank hinzu.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Öffnet eine vorhandene Datenbank.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Filter anwenden auf</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>den Namen</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>den vollständigen Text</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Datenbankordner...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Ordnername</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Gruppe</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Projekt</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Sonstige</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Neuer Wegpunkt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Symbol</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Position</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Name</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Falsches Positionsformat. Muss entweder 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+oder
+"[N|S] ddd.ddd [W|E] ddd.ddd"
+sein</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Arbeitsplatz konfigurieren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>Arbeitsplatz beim Beenden speichern, und alle</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>Minuten</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>lauscht nach Datenbankänderungen anderer QMapShack Instanzen. Auf Port</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Vorlage einfügen...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Vorlagen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Wählen Sie einen Pfad mit ihren eigenen Vorlagen aus.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Vorschau</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Text bearbeiten...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Rückgängig</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Wiederherstellen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Ausschneiden</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Kopieren</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Einfügen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Vorl.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Standard</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Linksbündig</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Rechtsbündig</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Zentriert</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Blocksatz</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Unterstreichen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Fett</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Kursiv</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Schlicht</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Das Textformat wird entfernt bevor der Text eingefügt wird</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Alles auswählen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Löschen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Font zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Layout zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Einfügen ohne das Format zurückzusetzen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Aus Vorlage einfügen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Text aus einer Vorlage erzeugen.</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Ausschneiden</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Kopieren</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Einfügen</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Zeitzone einstellen...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Lokal</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automatisch</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Datum/Uhrzeit in</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>langem Format, oder</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>kurzem Format ausgeben</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Anmerkung:</b> Das Ändern der Einheiten wird bei einigen GUI-Elementen erst nach einem Neustart von QMapShack wirksam.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Werkzeugleiste einstellen</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>Werkzeugleiste ist im Vollbildmodus sichtbar</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Ausführen des externen Programms `%1` ist fehlgeschlagen: </translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Der Prozess konnte nicht gestartet werden.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Stellen Sie sicher, dass die erforderlichen Pakete installiert sind, `%1` existiert und ist ausführbar.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>Der externe Prozess ist abgestürzt.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Ein unbekannter Fehler ist aufgetreten.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! fehlgeschlagen !!!</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Falsches Positionsformat. Muss entweder "[N|S] ddd mm.sss [W|E] ddd mm.sss" oder "[N|S] ddd.ddd [W|E] ddd.ddd" sein.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Position außerhalb der gültigen Werte.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Einheiten einrichten...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation>Längeneinheit</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation>nautisch</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>metrisch</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation>Steigung</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation>Grad (°)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation>Prozent (%)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Anmerkung:</b> Das Ändern der Einheiten wird bei einigen GUI-Elementen erst nach einem Neustart von QMapShack wirksam.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>imperial</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Symbole...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Externe Symbole:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Alle individuellen Symbole müssen im *.bmp oder *.png Format sein.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmapshack/locale/qmapshack_es.ts b/src/qmapshack/locale/qmapshack_es.ts
new file mode 100644
index 0000000..601e166
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_es.ts
@@ -0,0 +1,10889 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="es_ES">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API V%2, se esperaba V%3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API V%2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(no DBUS: detección y manipulación de dispositivos desactivados)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>A pié</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Coche</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Teleférico</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Natación</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Barco</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Esquí</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>Sin Actividad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Total</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Ascenso:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Descenso:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Aeronáutica</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Transporte Público</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Distancia:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Velocidad en movimiento:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Velocidad Total:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Tiempo en movimiento:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Tiempo Total:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Vista %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Configuracion del Fondo del Mapa</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Esc.</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Imprimir salida de depuración en la consola.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Imprimir salida de depuración en archivo (carpeta temporal).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>No mostrar pantalla de bienvenida</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Archivo con la configuración de QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>Archivo</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Archivos para uso futuro</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>Ruta</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Todos tus datos agrupados en carpetas.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Objetos Perdidos (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Objetos Perdidos</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>Mi base de datos SQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation>Servidor:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation>(Sin PW)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Error: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>Base de Datos SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Archivo:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Error: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation>%1 h</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 dias</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>Falló al cargar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>No se puede cargar el archivo "%1" . Se omitirá.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>Proyecto ya en base de datos ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>El proyecto "%1" Ya se ha importado a la base de datos. Se omitirá.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>El elemento %1 se ha cambiado por %2 (%3). 
+
+Para resolver este conflicto puedes crear y guardar una copia, forzar o eliminar tu versión y tomar la de la base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Conflicto con la base de datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Duplicar y Guardar</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Forzar guardado</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Toma remota</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Falta la carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>Error al guardar el proyecto. La carpeta se ha eliminado de la base de datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Guardar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Se produjo un error inesperado en la base de datos :
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>El proyecto '%1' Está a punto de actualizarse desde la base de datos. Sin embargo, hay cambios no guardados.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>¿Guardar cambios?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Desactivar</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Añadir o quitar rutas que contienen datos DEM. Puede haber múltiples archivos en una ruta, pero no se buscará en los subdirectorios. Los formatos soportados son: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Seleccione la ruta al archivo DEM...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>Fallo al cargar el archivo: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>El DEM debe tener una sola banda con datos de 16 o 32 bits.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>No se encontró información de georreferenciación.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>ninguno</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Buscando imagenes...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>No se encontraron imagenes</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>ninguna</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Creando diario...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation>Waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Información</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Comentario</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation>Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation>Llegada: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>Desde el inicio</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>Al siguiente</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>Al Final</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation>Tiempo: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation>Ascenso: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation>Descenso: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation>Áreas</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Desea ordenar waypoints a lo largo de un track, pero ha desactivado la correlación de track y waypoint. ¿Desea volver a encenderlo?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Correlación..</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Resumen de todos los tracks del proyecto</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation>Distancia: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Rutas</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Editar nombre...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Introducir nuevo nombre de proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Editar etiquetas...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Introducir etiquetas.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Imprimir Diario</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Reducir puntos visibles del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation>Cambiar altitud de puntos del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <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="177"/>
+        <source>Miscellaneous</source>
+        <translation>Diversos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Actividad</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Introduzca el nuevo valor de proximidad.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>foto%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Desconocido</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Archivo: expanda para cargar</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>Archivo - cargado</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>No se encontraron datos DEM para ese punto.</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Seleccionar ruta de exportación ...</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Crear %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation>Fallo al crear %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>¡Hecho!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>¡Cancelado por el usuario!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation>Error de base de datos: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>Guardar proyecto como %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation>¡Falló!</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>Extensión no disponible</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>grueso</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>medio</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>fino</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation>Ciudad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation>Deportivo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation>Montaña</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation>El Track no contiene datos de elevación o son incorrectos. ¡Por favor, corregir o establecer velocidad constante!</translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>Error decodificando FIT : CRC inválido.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>FIT error de descodificación: final inesperado del archivo %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>Error de descodificación FIT: tipo de base desconocido %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation>Falta la definición de campo para el campo de desarrollo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation>Error de decodificación FIT: campo no válido def nr %1 al crear el perfil de campo dev</translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>Error de descodificación FIT: la versión del protocolo %1 no es compatible.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>Error de descodificación de FIT: falta de coincidencia de firma de encabezado de archivo. El archivo no es FIT.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Falló al cargar archivo %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>Falló al cargar archivo FIT %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>Error decodificacion FIT: Arquitectura %1 no soportada</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>FIT error de decodificación: desplazamiento no válido %1 para el contenido de registro de estado</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Aviso...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <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="838"/>
+        <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>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>fino</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>normal</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>ancho</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>intenso</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>Duplicar</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Área: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Se cambió la forma del área.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Se cambió el nombre.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Se cambió la anchura del borde.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Se cambió el patró de relleno.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Se cambió la opacidad.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Se cambió el comentario.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Se cambió la descripción.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Se cambió el enlace</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Se cambió el color</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Duplicar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished">Ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Se cambió el nombre.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Se cambió el comentario</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Se cambió la descripción</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Se cambió el enlace</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation>Longitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation>Tiempo: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation>Distancia: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Longitud: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Tiempo: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Última vez enrutado:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>con %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Puntos de ruta modificados.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>Archivo FIT %1 no contiene datos GPS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Fallo al abrir %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Solamente soporta formato lon/lat WGS84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Failed to read data.</source>
+        <translation>Fallo al leer los datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Duplicar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <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="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation>Tiempo: %1%2, Velocidad: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation>Tiempo en movimiento: %1%2, Velocidad: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Inicio: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Inicio: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Final: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Final: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Puntos: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>¡Datos de altitud invalidos!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>¡Marcas de tiempo no válidas!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>¡Posiciones inválidas!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Actividades: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Indice: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Indice: visible %1. total %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation>, Pendiente: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>Y %1 etiquetas no mostradas</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Distancia: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>En movimiento: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Ocultar punto %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Ocultar puntos %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>, %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation>Puntos inválidos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation>El track '%1' tiene %2 puntos inválidos de  %3 visibles. ¿Quiere ocultar los puntos inválidos?</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation type="unfinished">min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation type="unfinished">max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation>Longitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <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="393"/>
+        <source>, %1-, %2-</source>
+        <translation>, %1-, %2-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Tiempo: -, Velocidad: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>En movimiento: -, Velocidad: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="463"/>
+        <source>Invalid slopes!</source>
+        <translation>¡Pendientes inválidas!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation>Altitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation>, Velocidad: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Ascenso: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Descenso: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Ascenso: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation>, Descenso: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Distancia: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation>, En Movimiento: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Ascenso: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Descenso: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Ascenso: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation>, Descenso: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Distancia: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation>, Tiempo: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Puntos eliminados definitivamente %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Mostrar puntos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Se cambió el nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Se cambió el comentario</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Se cambió la descripción</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Se cambió el enlace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Se cambió altitud de los puntos %1 a %2 %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Actividad cambiada a '%1' para todo el track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Actividad cambiada a '%1' para el rango (%2..%3).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Ocultar puntos con algoritmo Douglas Peuker (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Ocultar puntos con datos inválidos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Restaurados todos los puntos a visible</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Elminados definitivamente todos los puntos ocultos del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Pefil suavizado con Mediana de %1 puntos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>Añadida pendiente del terreno desde archivo DEM</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Datos de altitud sustituidos por valores de fichero DEM.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Reemplazados datos de altitud con valores interpolados. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>altitud desplazada %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Cambiado el inicio de track a %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Eliminadas las marcas de tiempo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Marcas de tiempo ficticias con incremento de %1 sec.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation>Se cambió la velocidad media dependiendo de la pendiente a %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Velocidad modificada a %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (Segmento %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>Eliminada extensión %1 a todos los puntos del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Convertidos puntos secundarios del ruteo a puntos de track</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Copiar información del encabezado del track de QLandkarte GT</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Archivado</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>No Disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>Duplicar</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation>Altitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation>Proximidad: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation>Creado: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Se cambió el nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Se cambió la posición</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Se cambió la altitud</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation type="unfinished">Eliminada proximidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Se cambió la proximidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Se cambió el icono</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Se cambió el comentario</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Se cambió la descripción</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Se cambió el enlace</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Se cambió la imagen</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Añadir Imagen</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Debido a cambios en el sistema de base de datos QMapShack olvidó el nombre de archivo de su base de datos  '%1'. Debe seleccionarlo de nuevo en el siguiente paso.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Seleccionar archivo de base de datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Añadir Base de Datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Añadir carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Renombrar carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Copiar carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Mover carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Eliminar Carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Importar desde archivos..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Exportar a GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Eliminar Elemento</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Buscar base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Sincronizar con base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Quitar Base de Datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Vacío</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Quitar Base de Datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>¿Seguro que quiere eliminar '%1' de la lista?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>¿Está seguro que quiere borrar las carpetas seleccionadas y sus subcarpetas de la base de datos?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Mala operación...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>La carpeta de destino es una subcarpeta de la que se va a mover. Esto no funcionará.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Nombre de carpeta...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Renombrar carpeta:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>¿Desea realmente eliminar '%1' de la carpeta '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Borrar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>Importar datos GIS...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Eliminar Carpeta de la Base de Datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Eliminar elementos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>¿Desea realmente eliminar todos los elementos de 'Objetos Perdidos'? Se eliminarán definitivamente.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>¿Desea realmente eliminar todos los elementos.seleccionados de 'Objetos Perdidos'? Se eliminarán definitivamente.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Guardar</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Editar..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Cerrar</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Actualizar Proyecto en Dispositivo</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Editar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Copiar a...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Guardado Automático</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Guardar como...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Copiar tracks y waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Mostrar burbuja de texto</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Mover Waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Proyectar Waypoint...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation>Cambiar radio</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Herramienta área prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation type="unfinished">Borrar Radio</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Instrucciones de ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Calcular ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Recalcular ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Editar ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation>Ruta Inversa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>Convertir en track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Crear ruta</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Cambiar icono</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Establecer actividad del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation>Establecer color del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Descartar elementos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
+        <translation><b>Actualizar dispositivos</b><p>Actualizar %1<br/>Por favor espere...</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation>Eliminar Proyecto...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>¿Desea realmente eliminar %1?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Perfil del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Mostrar en el mapa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Ocultar en el mapa</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Ordenar por fecha</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Ordenar por nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Guardar como GPX 1.1 w/o ext...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Enviar a dispositivo</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Sincronizar con base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Seleccionar Rango</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Editar Puntos del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Invertir Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Combinar Tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Herramienta Linea de Prohibición</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Editar Puntos del Área</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Borrar</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Guardando espacio de trabajo. Por favor espere.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Cargando espacio de trabajo. Por favor espere.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Cerrar todos los proyectos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>Esto eliminará todos los proyectos del espacio de trabajo.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished">ailed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation>Falló...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation>Arrastrar y soltar elementos del espacio de trabajo en esta zona.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation type="unfinished">Cargar proyecto</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation type="unfinished">El proyecto "%1" ya está en el area de trabajo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation type="unfinished"><b>Selección de elementos: </b>Elemento seleccionado de la lista del espacio de trabajo. Haga clic en el mapa para volver al comportamiento normal de selección del mouse.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation type="unfinished">Copia elementos....</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation type="unfinished">Cambiar símbolos de waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation type="unfinished">Dividir Track...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation type="unfinished">¿Desea borrar el track original?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Fallo al cargar archivo %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>No es un archivo GPX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>El archivo ya existe ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Fallo al crear el archivo '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Fallo al escribir en el archivo '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Fallo guardando datos GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1m, %2m </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>N %1m, E %2m </translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation>de %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Cortar historial antes</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Cortar historial despues</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Borrar historial</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>El borrado es permanente y no se puede deshacer. <b>¿Esta seguro de querer borrar el historial anterior a este paso?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>Importar Base de Datos de QLandKarteGT</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Seleccionar origen de base de datos...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Seleecionar destino de base de datos...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation>Velocidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation>Cadencia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. Aire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura del Aire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. Agua</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura del Agua</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation>Profundidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation>Profundidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation>R. Cardiaco</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation>Ritmo Cardiaco</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation>Cadencia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation>Velocidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation>Acl.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation>Aceleración</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation>Carrera</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation>Carrera</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Temperatura</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation>Dist.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation>Distancia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation>Altitud</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation>Energía</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation>Energía</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation>Pres. N. Mar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation>Presión a Nivel del Mar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation>Vel. Vcal.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation>Velocidad Vertical</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation>Pendiente</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation>Velocidad sobre la distancia *</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation>Velocidad sobre el Tiempo*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation>Altitud*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation>Progreso</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation>Progreso*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation>Pendiente Terr</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation>Pendiente del Terreno*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Pendiente*</translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation>Fallo al cargar archivo %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation>%1 no es un archivo log de Openambit</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation>Dispositivo: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Tiempo de recuperación: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Efecto Pico de Entrenamiento: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energía: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation>Uso de la hora local ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>No se ha encontrado hora UTC en el archivo %1. Se usará la hora local del ordenador. Puede ajustar la hora usando un filtro de tiempo si es necesario.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Este archivo LOG no contiene datos de posición que puedan ser mostrados por QMapShack: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Objetos Perdidos</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Usar <b>Menu->ver->Añadir vista de mapa</b> para abrir nueva vista, o <b>Menu->archivo->cargar vista de mapa</b> para restaurar una vista guardada. O click <a href='nueva vista'>aquí</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation>Altitud: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation>Pendiente: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Malla: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>Cargar Datos GIS...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Seleccionar archivo de salida</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>Vista de QMapShack (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Seleccionar archivo a cargar</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Fatal...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack detectó una biblioteca Proj4 mal instalada. Las tablas de traducción para las proyecciones EPSG usualmente almacenadas en /usr/share/proj faltan. Póngase en contacto con el responsable del paquete de su distribución para solucionarlo.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation>No hay mapas en este momento. QMapShack no es divertido sin mapas. Puede instalar mapas al presionar la tecla Ayuda! ¡Quiero mapas! En el botón ' mapas ',o puede presionar la tecla F1 para abrir la documentación en línea que le indica cómo usar QMapShack.
+
+Si no es divertido, ¿por qué no proporciona mapas? Bueno para alojar mapas listos para descargar e instalar requiere un buen servidor. Y esto no es un servicio gratuito. El proyecto carece de dinero. Además, los datos de mapa y DEM tienen un copyright. Por lo tanto, el titular de los derechos de autor tiene que ser preguntado antes de empaquetar los datos. Esto no es tan fácil como podría sonar y para algunos datos que tiene que pagar royalties. El proyecto simplemente carece de recursos [...]
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Falló ...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>No especificado</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Francés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Alemán</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Holandés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Inglés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italiano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Finés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Sueco</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Español</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Euskera</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Catalán</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Gallego</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Galés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gaélico</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Danés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Noruego</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portugués</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Eslovaco</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Checo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Croata</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Húngaro</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Polaco</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Turco</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Griego</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Esloveno</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Ruso</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Estonio</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Letón</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Rumano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Albanés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosnio</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Lituano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Serbio</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Macedonio</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Búlgaro</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Autovía Primaria</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Autovía secundaria</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Otras autovías</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Carretera principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Carretera secundaria</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Calle residencial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Callejón/Carretera privada</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Acceso a autopista, baja velocidad</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Acceso a autopista, alta velocidad</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Carretera sin asfaltar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Conexión con autovía principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Rotonda</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Ferrocarril</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Línea de costa</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Sendero</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Arroyo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Zona horaria</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Ferry</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Frontera de estado/provincia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Frontera de condado/término municipal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Frontera internacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Río</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Curva de nivel menor</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Curva de nivel intermedia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Curva de nivel principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Curva batimétrica menor</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Curva batimétrica intermedia</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Curva batimétrica principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Curso intermitente</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Pista de aterrizaje</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Tubería</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Línea eléctrica</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Límite marítimo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Límite de peligro</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Área urbana grande (&gt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Área urbana pequeña (&lt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Área de alojamienos rurales</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Base militar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Aparcamiento</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Garaje</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Aeropuerto</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Centro comercial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Puerto deportivo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Universidad/Facultad</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Hospital</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Complejo industrial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Reserva natural</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Área creada por el hombre</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Complejo deportivo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Campo de golf</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Cementerio</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Parque nacional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Parque urbano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Parque regional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Bosque</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Océano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation>Azul (desconocido)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Mar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Lago grande</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Lago mediano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>Lago pequeño</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Lago principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Río Principal</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Río Grande</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Río Mediano</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Río Pequeño</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Agua intermitente</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Marisma/Ciénaga</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Glaciar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Invernadero/Plantación</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Monte bajo</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Tundra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Llanura</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Cargar archivo TYP externo...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Fallo al cargar archivo TYP: %1
+Se vuelve al TYP interno.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Fallo al leer: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Fallo al abrir: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Formato de archivo incorrecto: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Fallo al leer la estructura del archivo: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Cargando %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Cancelado por el usuario: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>El archivo está en formato NT. QMapShack no puede leer archivos en formato NT: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>El archivo contiene datos bloqueados y/o encriptados. Garmin no desea que utilice este archivo con ningún otro software que el suministrado por ellos.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Punto de Interés</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Desconocido</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Área</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Desactivar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>¿Dónde desea almacenar mapas?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Falló...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Fallo al abrir: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Formato de archivo incorrecto: </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Añada o elimine rutas que contengan mapas. Puede haber múltiples mapas en una ruta, pero no se buscará en subdirectorios. Los formatos soportados son: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Selecciona la ruta del mapa...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Seleccionar carpeta raiz...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>Seleccionar archivo TYP...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Éste no es un archivo en formato RMAP de TwoNav.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Sub-formato desconocido.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Versión desconocida.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Fallo al leer el punto de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Proyección y datum desconocidos (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Capa %1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Fallo al leer el archivo: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>El archivo debe ser con paleta de 8 bits o escala de grises indexada.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>No se encontró información de georreferenciación.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>Crear GDAL VRT</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Seleccionar ficheros de origen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Seleccionar fichero VRT de salida...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>¡¡¡ hecho !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Fallo al leer: %1
+Estructura desconocida.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Servicio inesperado. '* WMTS 1.0.0' es el esperado. pero se ha leido '%1 %2'.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>No se encontró información de georreferenciación.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Área</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Editar área</b><br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>área</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Ruta</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation></b>Editar puntos de ruta<br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>Ruta</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Editar puntos del track</b><br/>Seleccione una función y un modo de dibujo a través de los botones de herramientas. A continuación, seleccione un punto del trazado. Sólo se pueden cambiar los puntos marcados con un cuadrado grande. Los puntitos negros son puntos secundarios introducidos automáticamente por el enrutamiento automático o el ajuste vectorial.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>¡Cuidado!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Esto sustituirá todos los datos del original con una simple línea de coordenadas. Todos los demás datos se perderán definitivamente.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>track</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>Añadir POI como Waypoint </translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Añadir Waypoint</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Añadir Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Añadir ruta</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Añadir Área</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Seleccionar elementos del mapa</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Copiar posición</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Copiar posicion (malla)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Guardar/imprimir mapa</b><br/>Seleccione un area rectangular en el mapa pulsando el boton izquierdo del ratón y moviendolo hacia la esquina opuesta. Cancele con el boton derecho. Ajuste la seleccion haciendo clic y moviendo las esquinas.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Seleccionar rango</b><br/>Seleccione el punto inicial con el botón izquierdo del raton. Fije el punto final con una segunda pulsacion. El rango seleccionado se marca en verde. Un clic con el botón derecho del ratón abandona la selección del rango<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Seleccionar elementos en el mapa</b><br/>Seleccione un area rectangular con el boton izquierdo del ratón. Cancelar con clic derecho. Ajuste la seleccion haciendo clic y desplazando en las esquinas.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Seleccionado:</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 waypoints<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 tracks<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 rutas<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 áreas<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Seleccionar imagenes...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation>Distancia [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation>Tiempo</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation>Distancia [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation>Alt. [%1]</translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Imprimir mapa...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Guardar mapa como imagen...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Imprimir propiedades...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Páginas: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Zoom con la rueda del ratón en el mapa inferior para cambiar la resolución:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Imprimir páginas.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Guardar mapa...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Tiempo transcurrido: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Tiempo transcurrido: %1 segundos.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>norte</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>sur</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>El valor
+'%1'
+no es una definición de sistema de coordenadas válido:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation>La proyección de Lat / Lon no está permitida en este caso.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Editar nombre...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Introduzca el nuevo nombre del waypoint.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished">Fallo al abrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation type="unfinished">No se pudo convertir ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation>El archivo contiene superposiciones que no se pueden convertir. Esto se debe a que QMapShack no es compatible con todos los tipos de superposición de QLandkarte.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Convirtiendo base de datos de version 4 a 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Convirtiendo base de datos de version 5 a 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Convirtiendo base de datos de version 6 a 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Convirtiendo base de datos de version 7 a 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Convirtiendo base de datos de version 8 a 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Abrir base de datos:%1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Carpetas:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Tracks:           %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Rutas:           %1 (Sólo se copiará la ruta básica)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Waypoints:        %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Superposiciones:         %1 (las áreas se convertirán como áreas, las líneas de distancia se convertirán en tracks, todos los demás elementos de superposición se perderán</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Diarios:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Selecciones de mapa:   %1 (NO pueden convertirse a QMapShack)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Comenzar a convertir base de datos a %1------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Fallo al crear la base de datos de destino.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Cancelar ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Hecho ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Restaurar carpetas...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>Importadas %1 carpetas y %2 diarios</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Copia elementos....</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>Importado: %1 tracks, %2 waypoints, %3 routes, %4 areas</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Importar carpetas...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>No puede convertirse superposición del tipo '%1' </translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Track corrupto...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>El número de puntos del track no es igual al número de puntos de datos de entrenamiento.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>El número de puntos de track no es igual al número de datos extendidos</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>El número de puntos del track no es igual al número de datos extendidos ocultos.</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Archivo existente...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>¿Eliminar los %1?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Eliminar el archivo %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>Descartar elemento %2 de la base de datos de QLandKarteGT</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Fallo al abrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation>original</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation>Primera alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation>Segunda alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation>Tercera alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation>BRouter (offline)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (online)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation>perfil: %1, alternativa: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished">Error:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation>QMapShack se comunica con BRouter a través de una conexión de red. Por lo general, esto se hace en una dirección especial que no se puede alcanzar desde fuera de su dispositivo. Sin embargo, BRouter escucha las conexiones en todas las interfaces disponibles. Si se encuentra en su propia red privada con un firewall activo, esto no es un problema. Si se encuentra en una red pública, cada puerto abierto es un riesgo, ya que puede ser utilizado por otra persona para comp [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation>La respuesta está vacía</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation>Mala respuesta del servidor: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>BRouter</b><br/>Solicitud de enrutamiento enviada al servidor. por favor espere...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation>Calcular ruta con %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation>Esta versión de BRouter no soporta más de un área</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>BRouter</b><br/>Mala respuesta del servidor:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation>Tiempo empleado en el cálculo: %1s</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation>En marcha</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation>comenzando</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation>Aviso...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation>Comprendo el riesgo. No avisar de nuevo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation>Parado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation>No instalado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation>online</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation>%1 no accessible</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation>%1 resultado inválido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation>Error al analizar configuración online:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation>Error de red</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation>Restablecer valores por defecto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation>Abrir carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation>Seleccionar ejecutable Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation>Seleccione carpeta de instalacion de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation>La carpeta seleccionada no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation>Cree una carpeta e instale BRouter allí</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation>Instalacion de BRouter exixtente</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation>Actualizar instalación de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation>Carpeta vacia, instale BRouter aquí</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation>Crear nueva instalacion de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation>Parece ser un ejecutable Java válido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation>no parece un ejecutable Java válido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation>Ejecutable Java no encontrado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation>Error al cargar la página de instalación en %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation>Ninguna versión de BRouter para instalar seleccionada</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation>Seleccione %1 para descargar e instalar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation>Aviso...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation>Descarga:%1<br/><br/> Esto descargará e instalará un archivo zip desde una ubicación de descarga que no está protegida por ningún estándar, usando HTTP normal. Normalmente esto debe ser HTTPS. El riesgo es que alguien redireccione la solicitud y le envíe un código postal de reemplazo con malware. No es posible que QMapShack lo detecte. <br/> Si no entiende esto o si tiene alguna duda, no proceda y cancele. Utilice la versión web de BRouter en su lug [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation>Entiendo el riesgo, continuar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation>Iniciada descarga %1 </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation>Error de red: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation>Finalizada descarga %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation>Descomprimiendo:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation>Preparado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation>Descarga de BRouter fallida: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation>Recuperar los perfiles disponibles de %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation>Contenido del perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation>Error creando la carpeta %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation>Error: La carpeta %1 no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation>Error creando archivo %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation>Error escribiendo el archivo %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation>Continuar con la configuración</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation>Se están determinando los datos de enrutamiento disponibles.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation>Selección caducada</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation>Borrar selección</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation>Borrar Selección</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation>Descargar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation>Error al crear la carpeta de segmentos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation>No se puede analizar: %1 no es una fecha</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation>No se puede analizar: %1 No es un tamaño válido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation>Error al recuperar los datos de enrutamiento disponibles de %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation>Carpeta de segmentos no existe:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation>Error creando archivo %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation>%1 : Solicitud no válida de nombre de archivo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation>Ningún archivo abierto asignado a la solicitud de %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation>Error al escribir el archivo %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation>Error renombrando archivo %1 a %2: %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation>actualizado: %1 (%2), obsoleto: %3 (%4), Para descargar: %5 (%6)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation>Descargando: %1 of %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation>Sin datos locales, disponible online: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation>Datos locales obsoletos (%1, %2 - remoto%3, %4)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation>Error eliminando %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation>Error de red</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation>Resultado no válido, no se encuentran archivos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation>Datos locales actualizados (%1, %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation>Datos de ruteo no disponibles</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>¡¡¡Hecho!!!</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! fallo !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Más rapido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Más corto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Peatón</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Inglés USA</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Inglés UK</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Danés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Holandés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Francés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Alemán</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italiano</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Noruego</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Español</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Sueco</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>modo "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>Evitar autopistas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>Evitar peajes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>Evitar estacionales</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>Evitar no pavimentadas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>Evitar Ferrys</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>No cruzar fronteras</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Solicitud de ruta enviada al servidor. Por favor,espere...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Mala respuesta del servidor:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation>Tiempo calculando: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>A pie</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>A caballo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Silla de ruedas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Bicicleta</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Ciclomotor</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Automóvil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Mercancias</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>El más corto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Routino se encuentra en una versión incorrecta. Esperado %1 encontrado %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>El más rápido</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Inglés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Alemán</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Francés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Húngaro</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Holandés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Ruso</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Polaco</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Se llamó una función sin la variable de base de datos establecida.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Se llamó una función sin la variable de perfil establecida.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Se llamó una función sin el conjunto de variables de traducción</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>La base de datos especificada no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>No se pudo cargar la base de datos especificada</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>El archivo XML de perfiles no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>El archivo XML de perfiles especificado no está cargado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>El archivo XML de traducción especificado no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>El archivo XML de traducción especificado no está cargado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>El nombre del perfil solicitado no existe en el archivo XML cargado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>El idioma solicitado no existe en el archivo XML cargado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>El perfil y la base de datos no funcionan juntos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>El perfil que se utiliza no ha sido validado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>El perfil especificado por el usuario contenía datos no válidos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Las opciones de enrutamiento especificadas no son coherentes entre sí</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>Hay un desajuste entre la biblioteca y la versión de la API del llamante</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>El cálculo de la ruta ha sido cancelado por el usuario</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>No se pudo encontrar una ruta al waypoint %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Error desconocido: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>perfil "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, modo "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Aviso...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation>En la base de datos de enrutamiento no hay ninguna carretera cerca de las coordenadas para colocar un waypoint.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Calcular ruta con %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Tiempo de cálculo: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Agregar o quitar carpetas que contienen datos de Routino. Puede haber varias bases de datos en una carpeta, pero no se analiza ninguna subcarpeta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Seleccione la carpeta del archivo de datos de enrutamiento</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (offline)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (online)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (online)</translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Crear base de datos de Routino</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Seleccionar ficheros de origen...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Seleccionar carpeta de destino...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>¡¡¡Hecho!!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation><b>OpenSky</b><br/>Un servicio en línea que proporciona datos de posición de aeronaves civiles.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation>Desc.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation>Distintivo de llamada:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation>País de origen:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation>Último contacto:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation>Longitud:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation>Latitud:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation>Alt. geo.:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation>En tierra:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation>Velocidad:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation>Alt. bar.:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation>Seleccionar archivo de grabación</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished">Reiniciar grabación...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation>¿Está seguro de reiniciar la grabación actual?</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation>Falló...</translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation>Seleccione una fuente en tiempo real de la lista. Algunas fuentes se pueden agregar varias veces, el resto solo se pueden agregar en una sola instancia.</translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation>Para agregar una fuente en tiempo real haga un clic derecho en la lista de arriba.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished">Borrar Fuente...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation>¿Realmente quiere eliminar esta fuente en tiempo real?</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>No hay rango seleccionado</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Modo exacto</b><br/>Todos los elementos seleccionados estan completamente dentro del área.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation>Modo de intersección</b><br/>Todos los elementos seleccionados deben estar dentro o al menos intersecar el área seleccionada.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Agregar tracks</b><br/>Agregar tracks a la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Agregar waypoints</b><br/>Agregar waypoints a la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Agregar rutas</b><br/>Agregar rutas a la lista de elementos seleccionados <br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Agregar áreas</b><br/>Agregar áreas a la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Ignorar tracks</b><br/>Ignorar tracks de la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Ignorar Waypoints</b><br/>Ignorar waypoints de la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Ignorar rutas</b><br/>Ignorar rutas en la lista de elementos seleccionados<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation>Ignorar áreas</b><br/>Ignorar áreas de la lista de elementos seleccionados<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Buscar base de datos '%1':</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Respuesta desconocida</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Error: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Falta un requisito</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>SQL no se puede utilizar en este momento, ya que el controlador correspondiente (QMYSQL) no está disponible.<br />Asegúrese de haber instalado el paquete correspondiente.<br />Si usted no sabe qué hacer ahora debe <a href="%1">consultar la wiki</a>.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Ya existe una base de datos con el nombre '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Nueva base de datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Abrir base de datos...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Configurar la base de datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Los cambios surtirán efecto tras reiniciar la aplicación.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Fallo al cargar el archivo %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Error al analizar la marca de tiempo %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 no existe</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>%1 no es un archivo SLF</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Revisión no admitida %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Pausa %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Vuelta %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation>Fallo al cargar archivo %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation>No es un archivo sml: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Tiempo de recuperación: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Efecto Pico de Entrenamiento: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energy: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation>Device: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation>Uso de la Batería: %1 %/hour</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation>Uso de hora loccal</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>No se ha encontrado hora UTC en el archivo %1. Se usará la hora local del ordenador. Puede ajustar hora usando un filtro de tiempo si es necesario.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Este archivo SML no contiene ningún dato de posición y QMapShack no puede mostrarlo: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Doble clic para editar datos de altitud</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation>%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Fallo al cargar el archivo %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Fallo al abrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Fallo al leer: %1
+línea %2, columna %3.
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>%1 no es un archivo TCX</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Este archivo TCX contiene al menos un entrenamiento, pero ninguna actividad ni carrera. Como los entrenamientos no contienen datos de posición, no se pueden importar a QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>El archivo TCX %1 no contiene ninguna actividad ni carrera</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>El archivo ya existe ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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 existe y no ha sido creado por QMapShack. Si pulsa 'yes' Se perderán todos los datos de este archivo. Incluso si este archivo contiene datos y ha sido cargado por QMapShack, QMapShack puede no ser capaz de cargar y almacenar todos los elementos de este archivo. Estos elementos se perderán. Se recomienda usar otro archivo. <b>¿Realmente desea sobrescribir el archivo?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>El track <b>%1</b> Que ha seleccionado contiene puntos y marcas de tiempo no válidas. Es posible que el dispositivo no acepte el archivo de curso TCX generado si se deja como está <b>¿Desea aplicar un filtro con velocidad constante (10 m / s) y continuar?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Carrera</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Actividad</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Track con marcas de tiempo inválidas.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>¿Actividad o carrera?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack no sabe cómo <b>%1</b> Debe ser guardado. <b>¿Desea guardarlo como carrera o como actividad? </b>Recuerde que sólo se guardarán waypoints lo suficientemente cerca del track al guardar como carrera. Los waypoints no se guardarán al guardar como actividad.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Fallo al crear el archivo '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Fallo al escribir en el archivo '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Error al guardar datos GIS</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>elige una...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Datos de la actividad (genérico)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Ruta de las Plantillas...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>Fallo al leer la plantilla %1.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Previsualizar...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Color...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Restablecer formato</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Acciones disponibles</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Acciones seleccionadas</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Fallo al abrir %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Guardar los datos GIS en...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Solamente soporta formato lon/lat WGS84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Fallo al leer los datos.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Carpeta de iconos de usuario...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Ficha</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Participantes</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Meteo</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>lluvia</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>sol</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>nieve</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>nubes</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation>viento</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>caluroso</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>templado</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>frío</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>bajo cero</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>niebla</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>humedad</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Carácter</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>Excursión fácil</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>escalada</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>Actividad alpina</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>gran desnivel</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>larga distancia</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>ferrata</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>granizo</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation>Calificación</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>***** Excepcional</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>**** Muy buena</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>*** Buena</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>** Regular</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>* Mala</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>Intento frustrado</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Material</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>ferrata</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>iluminación</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>raquetas</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>escalada</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>ski</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>acampada / vivac</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Detalles</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>Acerca de...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation><b>QMapShack</b>, Versión</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation>Qt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation>GDAL</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation>Proj4</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>checo:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Alemán:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>holandés:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Francés:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Ruso:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Traducción:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Español:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Binarios:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Colaboradores:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation>Jose Luis Domingo, Javi Segovia</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>... y gracias a todos los mantenedores  de Linux por hacer un gran trabajo. Agradecimientos especiales a Dan Horák y Bas Couwenberg por estar presentes en la lista de correo para discutir temas relacionados con la distribución</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Este software esta bajo licencia GPL3 o posterior</translation>
+    </message>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Configurar Vista de Mapa...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Proyección y Datum</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Escalas</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logarítmica</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>Cuadrada (optimizada para teselas TMS y WMTS)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Diálogo</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Combinar Tracks...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Tracks disponibles</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Tracks combinados</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Formato de coordenadas...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>N48° 53.660 E013° 31.113</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>N48.8943° E013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Crear una ruta con los waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Dividir track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Borrar primera parte del track y conservar la segunda</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Mantener ambas partes del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Conservar primera parte del track y borrar la segunda</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Modo de división</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Compruebe esto para almacenar el resultado en un nuevo track.
+
+Si mantiene ambas partes del track, tiene que crear otros nuevos.
+
+Si desea mantener sólo una mitad puede simplemente eliminar los puntos, o marcar esto para crear un nuevo track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Crear nuevo track</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>El formato interno de base de datos de  '%1' ha cambiado. QMapShack hará la conversión de tu base de datos ahora.Después de esta conversión la nueva base de datos no puede utilizarse en versiones más antiguas de QMapShack. Se recomienda hacer una copia de seguridad antes de comenzar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Migrar base de datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>Migracion cancelada por el usuario</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Fallo al migrar '%1'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>La migración falló</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>La versión de base de datos '%1' Está más avanzado que el entendido por su instalación de QMapShack. Esto no funcionará.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Inicializacion fallida</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Versión errónea de la base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>Base de datos creada por la nueva versión de QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Fallo al iniciar '%1'.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Contraseña...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Contraseña de la base de datos '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Actualizar a versión 5 de base de datos. Migrar todos los elementos GIS.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Actualizar base de datos a versión 3. Migrar todos los elementos GIS</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Actualizar base de datos a versión 5. Migrar todos los elementos GIS</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Actualizar base de datos a versión 6. Migrar todos los elementos GIS</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Configurar carpeta de archivos DEM</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>ficha</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Cambiar la opacidad del mapa</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala mínima a la que mostrar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Controle el rango de escalas para las cuales desea que se muestre el mapa. Use los dos botones a izquierda y derecha para definir la escala actual como  la escala mínima o máxima para el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala máxima a la que mostrar el mapa</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Sombreado</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Pendiente</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>º</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Para añadir archivos con datos de altitud <b>File->configure rutas de DEM</b>.  O clic <a href='setup'><b>aqui</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Use el menú contextual (botón derecho del ratón y seleccione) para activar un archivo. Use arrastrar y soltar para mover el archivo activado en el orden de procesamiento.</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Subir</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Ocultar DEM detrás del anterior</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Bajar</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Mostrar DEM encima del siguiente</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>Recargar DEM's</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation>Diálogo</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Posición:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Dificultad</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Terreno</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Actualizar spoilers</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Consejo:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Diálogo</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>El área se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation>Esto es un aŕea prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Ancho del borde</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Estilo</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Opacidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Información</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Puntos</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Posición</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>Historial</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Imprimir diario</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Mantenga el orden del proyecto</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Ordenar a lo largo del track (múltiples)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Ordenar a lo largo del track (único)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Recargar diario.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Etiquetas:</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Información</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>La ruta se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation>Esta ruta es una línea de prohibición</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Historial</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation>-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Utilizar / editar la visibilidad definida por el usuario de las flechas de este track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Utilizar / editar la visibilidad definida por el usuario de las flechas de todos los track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Utilizar / editar el factor de escala de este track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Utilice / edite el factor predeterminado del sistema para todas los tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation>max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Límites definidos por el usuario para este track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Límites automáticos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Límites definidos por el usuario para todos los track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Velocidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Estilo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Atributo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Máximo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Mínimo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation>x </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>El track se ha importado a QMapShack y se ha editado. No muestra los datos originales. Consulte el historial de cambios.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation>Este Track es una Linea de Prohibición</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Anchura</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>Con flechas</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Color</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Gráficos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Actividad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Establecer actividad del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Para diferenciar las estadísticas seleccione una actividad de la lista para todo el track,o bien, seleccione una parte para asignar una actividad.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Puntos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Hora</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Altitud.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Delta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Distancia</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Pendiente</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Posición</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Información</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Ascenso</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Descenso</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filtro</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>Historial</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Diálogo</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>El waypoint se importó a QMapShack y se cambió. Ya no muestra los datos originales. Consulte el historial de cambios.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Cambia el modo de sólo lectura. Debe abrir el bloqueo para editar el elemento.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Posición:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Información</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Altitud.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Proximidad:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation>Este Waypoint es una Área Prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Historial</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Añadir imagenes.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Eliminar imagen seleccionada.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Fecha/Hora:</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Hay otro proyecto con el mismo nombre. Si pulsa 'ok'será eliminado y reemplazado.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Editar altitud...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Altitud</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Obtener la altitud desde el DEM activo.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Exportar base de datos a GPX</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Carpeta de exportación</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 sin extensiones</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Comenzar</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Cerrar</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Eliminar puntos del Track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Eliminar todos los puntos ocultos del track definitivamente.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Eliminar extensión para todos los puntos del track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Eliminar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>de todos los puntos del track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Ocultar Puntos (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Ocultar puntos del track si la distancia entre puntos vecinos en linea recta es menor que</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Aplicar filtro ahora.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Interpolar datos de altitud</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Sustituir la altitud de los puntos del track con datos interpolados.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Calidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Vista previa</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Ocultar puntos inválidos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Ocultar puntos con datos no válidos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Suavizar Perfil (Mediana)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Suavizar el desvio de la altitud de los puntos del track con la Mediana de</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation>puntos</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Cambiar Fecha/hora</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Modificar el inicio del track a </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.yy HH:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Ocultar Marcas de tiempo</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Incrementar marcas de tiempo en</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>con cada punto del track. ( 0 sec. eliminará las marcas de tiempo).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Desplazar altitud</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Añadir corrección de </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>a la altitud de los puntos del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Reemplazar Datos de altitud</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Reemplazar altitud de los puntos del track utilizando los valores del fichero DEM cargado.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Restaurar Puntos Ocultos del Track</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Hacer visibles de nuevo todos los puntos del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Modificar Velocidad</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished">Velocidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation>Tipo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished">Vel. Máx.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation>Llano:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation>en la pendiente positiva</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation>Vel. Min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation>Ascenso:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation>Descenso:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation>Velocidad en llano</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation>En Pendiente negativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation>Los valores de pendiente positivos y negativos definidos por el usuario serán reemplazados por los del Track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation>Establecer pendiente Max/Min del Track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation>no implementado aun</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation>Ciclismo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> km/h</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished">Aplicar filtro ahora.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Dividir el track en segmentos</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Crear un nuevo track por cada segmento de este track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><b>Convertir subpuntos de track en puntos</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Conviertir subpuntos obtenidos por el enrutamiento a puntos de track ordinarios</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Calcular pendiente del terreno</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Calcular pendiente del terreno en base a los DEM cargados.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>Error decodificando FIT: El decodificador no está en el estado correcto %1 después del último byte de datos en el archivo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation>Error decodificando FIT: Ya existe un campo con el número de definición %1.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation type="unfinished">Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation type="unfinished">Edad</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation type="unfinished">Para añadir una base de datos haga click-derecho en el espacio superior.  </translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[sin nombre]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>El elemento no forma parte del proyecto en la base de datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>
+Es un elemento nuevo o ha sido eliminado en la base de datos por otra persona</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>El elemento no está en la base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>Es posible que deba guardar el elemento</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Versión inicial</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation>No volver a preguntar</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3> Posiblemente este elemento es de sólo lectura porque no lo creó QMapShack. Por lo general no es conveniente cambiar los datos importados, pero si piensa que esta bien, presione 'Ok'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Modo Sólo Lectura...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Descripción:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>---sin descripción---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Comentario:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- Sin comentario ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Enlaces:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- sin enlaces ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Editar nombre...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Introducir nuevo nombre de %1</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>¿Guardar proyecto?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>Ha habido cambios en el proyecto. ¿Guardar antes de cerrar?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Correlacionar tracks y waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>¿Desea omitir la correlación de pistas y waypoints para este proyecto en el futuro?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Correlación cancelada</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Guardar "%1" como...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Nombre de archivo %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Waypoints: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Rutas: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Áreas: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <source>Are you sure you want to delete '%1' from project '%2'?</source>
+        <translation>¿Desea realmente eliminar '%1' del proyecto '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Borrar...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation>Necesita configuración...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation>Configurar proyectos de resumen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished">Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation type="unfinished">Opacidad</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation type="unfinished">Cambiar opacidad para todos los elementos GIS del mapa</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation type="unfinished">Filtro</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation type="unfinished">Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation type="unfinished">Borrar filtro</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation type="unfinished">Configurar filtro</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Configurar Malla...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Proyección</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>restaurar valores predeterminados</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Obtener la proyección desde el mapa actual.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>asistente de proyección</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Color de la malla</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>Configurar el color de la malla</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Origen de Base de datos:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Destino de Base de Datos:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Comenzar</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Editar...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation>Enrutamiento</translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Enlaces...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Tipo</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Texto</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>Uri</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Archivo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Ver</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Ventana</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Mapas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translatorcomment>la traducción literal "Modelo Digital del Terreno " es demasiado larga para el titulo de las pestaña, y hace que se oculten otras pestañas. Por ello  se ha sustituido por su abreviatura "MDT" de uso frecuente, y también empleada por el IGN</translatorcomment>
+        <translation>MDT (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Barra de herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation type="unfinished">Enrutamiento</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation>Tiempo Real</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Añadir Vista de Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Mostrar Escala</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Configurar Fuente del Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Mostrar Malla</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Configurar Malla</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation>Ctrl+Alt+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Invertir la Rueda del Ratón</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Configurar Rutas de Mapas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>Texto del POI</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Noche / Día</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Mostrar descripción emergente en los Mapas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Configurar Rutas a los DEM</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>Acerca de</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Ayuda</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Configurar Vista de Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>Asistente VRT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>GUI front end para gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Guardar vista de mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Guardar en un archivo el mapa activo actual y la lista de DEM's incluyendo sus propiedades</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Cargar vista de mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Restaurar vista de mapa activo y lista de DEM's incluyendo sus propiedades desde un archivo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Perfil en ventana externa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Cerrar</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Duplicar vista de mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation>Ctrl+Shift+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Crear base de datos de Routino</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Guardar/Imprimir captura de pantalla de mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Imprimir area seleccionada del mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Configurar formato de coordenadas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Cambiar el formato de coordenadas que se muestran</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Configuración del Fondo del Mapa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Configurar Iconos de Waypoint</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Configurar ruta de iconos personalizados</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Cerrar pestaña</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation>Ctrl+W</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation>Guia de inicio rápido</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Configurar barra de herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Panel de herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Ver panel de herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Pantalla Completa</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation>Valores Máx/min del track</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation>En la vista del mapa mostrar superpuestos los valores máximo y mínimo de los datos del track</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation>Iniciar QMapTool</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation type="unfinished">Base de datos</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation>Espacio de trabajo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>Cargar Datos GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Cargar proyectos desde archivo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Guardar todos los Datos GIS</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <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="523"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Configurar Zona Horaria</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Añadir proyecto vacío</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Buscar en Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Cerrar todos los proyectos</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation>F8</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Configurar Unidades</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Configurar Espacio de trabajo</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Guardar configuración al salir.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Importar base de datos de Qlandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>Importar base de datos de QLandKarteGT</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Para añadir mapas haga<b>Archivo->Configurar rutas de mapas</b>.  O haga clic <a href='setup'><b>aqui</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Use el menú contextual (botón derecho del ratón, y seleccione) para activar un mapa. Use arrastrar y soltar para mover el mapa activado en el orden de dibujado. </translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Quiero mapas
+No quiero leer la documentación!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Activar</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Subir</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Ocultar mapa detrás del anterior</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Bajar</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Mostrar mapa encima del siguiente</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Recargar mapas</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>Este mapa requiere soporte de OpenSSL. Sin embargo, debido a restricciones legales en algunos países, OpenSSL no se incluye con QMapShack. Puede consultar la página < a href = < https: //www.openssl.org/community/binaries.html '> OpenSSL Homepage</a> Para binarios. Tienes que copiar libeay32.dll y ssleay32.dll en el directorio del programa QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: %2 teselas pendientes<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Configurar rutas de mapas</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Carpeta para la caché de mapas online</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>¡Quiero mapas!
+¡No quiero ver la documentación!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Cambiar la opacidad del mapa</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala mínima a la que mostrar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Controle el rango de escalas para las cuales desea que se muestre el mapa. Use los dos botones a izquierda y derecha para definir la escala actual como bien la escala mínima o máxima para el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Pulse para usar la escala actual como la escala máxima a la que mostrar el mapa.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Áreas</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Líneas</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Puntos</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Detalle</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Carpeta Caché</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>Archivo TYP:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Olvidar TYP externo y utilizar el interno.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Cargar un archivo TYP externo.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Tamaño de Caché (MiB)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Caducidad (Días)</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Opciones Avanzadas</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation>No Data origen (-srcnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation>No Data salida  (-vrtnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation>Proyección/Datum (-a_srs)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation>Estas opciones son para casos particulares y normalmente se dejan en blanco. Consulta la <a href='http://www.gdal.org/gdalbuildvrt.html'>ayuda</a> de GDAL para más información.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation><ol>
+<li>Seleccione uno o varios archivos.</li>
+<li>Seleccione un nombre de archivo para el archivo VRT de destino.</li>
+<li>Pulse  botón</li>"Comenzar".
+</ol>
+
+Consejos:
+<ul>
+<li>Si tiene varios archivos, colóquelos en una subcarpeta de su carpeta de mapas. Cree el archivo VRT en su carpeta de mapas</li>
+<li>Utilice las opciones avanzadas para añadir un valor de "sin datos"  si sus archivos de origen no lo tiene y no forman un área rectangular. Las áreas sin mapa se volverán transparentes.</li>
+<li>La opción "-a_srs"  está destinada a asignar una Proyección / Datum cuando el archivo de origen no lo tiene. Esto NO reproyecta los datos.</li>
+</ul></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Seleccionar ficheros de origen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation>Las vistas generales le permitirán mostrar el mapa para una mayor gama de zoom's.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished">Crear</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Archivo VRT de salida:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Comenzar</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Nuevo trazado</b><br/>Mueva el ratón y pulse el botón izquierdo para crear puntos. Puede alternar el modo de dibujo con los botones de herraminetas (O,A,V) sin interrumpir el trazado. Para terminar pulse botón derecho del ratón.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Borrar punto</b><br/>Mueva el ratón hasta un punto y pulse el botón izquierdo para eliminarlo.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Seleccionar Rango de Puntos</b><br/>Seleccione el punto inicial con el botón izquierdo del raton. Fije el punto final con una segunda pulsacion y elija entre las opciones. El rango seleccionado se marca en verde. Utilice el botón derecho del ratón para cancelar.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Mover punto</b><br/>Seleccione el punto con el botón izquierdo del raton y arrastrelo hasta la nueva posición. Suelte el punto con una segunda pulsacion. Utilice el botón derecho del ratón para cancelar.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Añadir punto</b><br/>Mueva el ratón cerca de una línea y presione el botón izquierdo para agregar un punto. El punto se pegará al cursor y se puede mover.Suelte el punto en la posición deseada con una segunda pulsacion. Utilice el botón derecho del ratón para cancelar..<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Sin enrutamiento ni ajuste vectorial</b><br/>Todos los puntos se conectarán con una línea recta.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Enrutamiento automático</b><br/>El trazado entre los puntos se calcula automáticamente atendiendo a la configuración actual del enrutador. <b>Nota:</b> El enrutador seleccionado debe ser capaz de trabajar al vuelo,por lo general, solo son capaces de hacerlo los instalados localmente.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Ajuste vectorial</b><br/> El trazado se dibuja ajustandose automáticamente a las lineas de un mapa vectorial.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>Datos %1 </b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Distancia:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Ascenso:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Descenso:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation><br/><b>Mover el mapa</b><br/>Mantega pulsado el botón izquierdo mientras mueve el ratón y moverá el mapa.<br/><br/></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Restablecer zoom</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Rango de parada</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Guardar...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Añadir Waypoint</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Cortar.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Pulse tecla CTRL para zoom vertical unicamente.
+Pulse tecla ALT para zoom horizontal unicamente</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Datos incorrectos o inexistentes.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Seleccione archivo de salida</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Posición ...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Introduzca la nueva posición</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Formato de posición incorrecto. Debe ser: 
+"[N|S] ggg mm.sss [W|E] ggg mm.sss"
+o
+"[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Imprimir mapa...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>Al imprimir mapas en línea asegúrese de que se haya cargado previamente en la memoria caché el mapa correspondiente a la extensión que desea imprimir.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Guardar</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>Al guardar mapas en línea asegúrese de que el mapa se ha cargado en la memoria caché en la medida en la que desea guardarlo.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Imprimir</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Por favor,espere...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation>Mercator</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation>UTM</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>zona</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>definido por el usuario</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation>World Mercator (OSM)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Resultado:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Norte (Polo Norte)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Sur (Polo Sur)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Proyección</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Proyección del Waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Duplicar el waypoint y moverlo:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation>º</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Alternativa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation>Mostrar el perfil de enrutamiento seleccionado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation>Enrutamiento al vuelo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation>BRouter: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation>Parado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation>iniciar/parar Brouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation>Mostrar consola de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation>Configuración</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation>¡Precaución! BRouter está escuchando en todos los puertos para las conexiones.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation>Rechazar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation><p>Direcciones de <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation><p>Enrutamiento de <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation>Perfil de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation>Configuración de BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation>Elija que BRouter usar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation>BRouter-Web (online)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation>Instalación local</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation>Modo experto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation>Carpeta de instalación de BRouter local:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation>Seleccionar carpeta de instalación</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation>Crear o actualizar instalacion</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation>Ejecutable Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation>Buscando Java instalado</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation>Descargar e instalar BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation>Archivo para instalar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation>Descargar e instalar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation>Perfiles disponibles </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation>Instalar perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation>Eliminar perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation>Perfiles instalados</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation>Contenido del perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation>BRouter-Web URL:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation>Servicio-URL</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation>Perfil-URL</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation>Nombre de Host</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation>Puerto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation>Carpeta de perfiles</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation>Carpeta de segmentos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation>Carpeta de perfiles personalizados</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation>Tiempo máximo de ejecución </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation>Número de hilos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation>Opciones de Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation>Enlace al nombre de host solamente</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation>URL de perfiles</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Autopistas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Estacional</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Lenguaje</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Fronteras</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Evitar:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Ferry</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Carreteras de peaje</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Sin pavimentar</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Direcciones cortesía de <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Perfil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Modo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Añadir carpeta con base de datos de Routino.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Lenguaje</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Para utilizar el enrutamiento sin conexión es necesario definir rutas de acceso a los datos de enrutamiento locales. Utilice el botón de la herramienta de configuración para indicar una carpeta. Puede crear sus propios datos de enrutamiento con la  <b>herramienta->Crear base de datos de Routino</b>.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Configurar base de datos de Routino...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Seleccionar ficheros de origen:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Comenzar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Carpeta de destino:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Prefijo del archivo</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation><p>Para crear una base de atos de Routino se necesita descargar archivos *.pbf de <a href='http://download.geofabrik.de/'>GeoFabrik</a>. El proceso de creación de una base de datos Routino es bastante lento y los archivos resultantes son bastante grandes. Por lo tanto, se recomienda no descargar continentes completos. Limite su descarga a los países que realmente necesita. Sin embargo, como Routino puede crear una ruta usando varias bases  [...]
+
+<ol>
+<li>Seleccione uno o varios archivos *.pbf.</li>
+<li>Seleccione la carpeta para su base de datos de Routino.</li>
+<li>Seleccione un prefijo. La base de datos será listada por este prefijo.</li>
+<li>Presione  botón </li>"Comenzar".
+</ol></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation>Última actualización</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation>Aviones vistos:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation>Mostrar nombres</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation>Vea <a href='https://opensky-network.org/'>OpenSky</a> para más detalles.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation>Introducir una clave válida.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation>Iniciar grabación.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation>Pausar grabación.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation>Convertir grabación en track.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation>Reiniciar grabación.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation>Seleccionar archivo de grabación.</translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation>Fallo al abrir la grabación para cargar.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation>Seleccione una fuente...</translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished">Atributo</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Denominación</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation>Añadir fuente</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation>Borrar Fuente</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Guardar al original</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Guardar como nuevo...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Mover puntos. (Ctrl+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Añadir puntos. (Ctrl++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>Ctrl++</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Seleccionar rango de puntos. (Ctrl+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Dibuja libremente. Sin enrutamiento automático ni ajuste vectorial (Ctrl + O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Dibuja usando el enrutamiento automático entre puntos. (Ctrl+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Dibuja ajustandose a las lineas de un mapa vectorial. (Ctrl+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Borrar un punto. (Ctrl+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation>Ctrl+-</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Deshacer</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Rehacer</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Ver detalles y editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Copiar área en otro proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Eliminar área de este proyecto</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Editar el contorno del área.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished">Herramienta área prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation>Guardar el área seleccionada como imagen.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Imprimir área seleccionada.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Borre todos los puntos entre el primero y el último.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Calcular una ruta entre el primero y el último punto seleccionado.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Ocultar todos los puntos.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Mostrar todos los puntos.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Asigna una Actividad para el rango seleccionado.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Copiar los puntos del track como un nuevo track.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Copiar ruta en otro proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Ver detalles y editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Borrar ruta del proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Calcular ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Reiniciar cálculo de ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Mover puntos de ruta.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation>Ruta Inversa</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Convertir ruta en track</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Herramienta Linea de Prohibición</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Copiar todos los elementos seleccionados a un proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Crear ruta con los waypoints seleccionados.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Cambiar el icono a los waypoints seleccionados.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Combinar todos los tracks seleccionadas en uno nuevo.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Asigna una Actividad para todos los tracks seleccionados.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation>Cambiar color a los Track seleccionados.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Borrar los elementos seleccionados.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Seleccione los elementos que interseccionan el área seleccionada.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Seleccione los elementos que estan dentro del area seleccionada. </translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Añadir tracks a la selección.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Añadir waypoints a la selección.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Añadir rutas a selección.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Añadir áreas a la selección.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Mostrar el perfil en pantalla e información detallada de los puntos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Editar la posición de los puntos del track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Ver detalles y editar propiedades del track. </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Copiar track en otro proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Eliminar track del proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Seleccionar un rango de puntos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Invertir track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Combinar tracks.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Dividir el track por el punto seleccionado. Puede usar esto para:
+
+* Eliminar puntos erróneos del principio o del final
+* Utilizar partes del track al planificar un nuevo recorrido
+* Dividir un track muy largo en varias etapas
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Asigna una Actividad al track completo.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation>Cambiar color del Track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Copiar track junto con todos los waypoints conectados en otro proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Herramienta Linea de Prohibición</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Ver detalles y editar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Copiar waypoint en otro proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Eliminar waypoint del proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Mostrar contenido en globo de texto.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Mover el waypoint a una nueva ubicación.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Duplicar el waypoint y mover la copia a una distancia y un ángulo dados.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation>editar radio de área circular</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished">Cambiar entre proximidad y área prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Eliminar círculo definido por waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation>editar radio de área circular</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished">Cambiar entre proximidad y área prohibida</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished">Borrar circulo definido por waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Denominación</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Buscar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Escriba la palabra que desea buscar y pulse botón de busqueda. 
+Si introduce la 'palabra' entre apóstrofes se busca una coincidencia exacta . Si introduce 'palabra*', la 'palabra' se busca al principio de una cadena.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Buscar</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Cerrar</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Seleccionar dispositivos...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Copiar elemento...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Sustituir el elemento existente</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>No copiar el elemento</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Crear un duplicado</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Sustituir por:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Mantener:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Se añadirá el sufijo '_Clone' al nombre del duplicado</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>Hacer igual para todos los elementos.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Seleccione la carpeta principal...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Nombre</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Añadir a los elementos seleccionados</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Eliminar de los elementos seleccionados</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Seleccionado</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Mover los elementos seleccionados arriba</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Mover los elementos seleccionados abajo</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Seleccionar un proyecto...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Seleccione un proyecto de la lista, o introduzca un nuevo nombre de proyecto.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Nombre del nuevo proyecto</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>El nuevo proyecto se creará como:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation>*.qms</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation>*.gpx</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Base de datos</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Copiar elemento...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Sustituir el elemento existente</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Añadir duplicado</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Se añadirá el sufijo '_Clone' al nombre del duplicado</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Sustituir por:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>Denominación</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>No sustituir elemento</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Utilizar elemento:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>Hacer igual para todos los elementos.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Añadir Base de Datos...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Precaución</span> Se recomienda dejar la contraseña en blanco, ya que QMapShack lo almacenará como texto sin formato. Si no introduce una contraseña, se le pedirá en cada inicio.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>No usar contraseña.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Servidor</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation>Puerto</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Usuario</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Contraseña</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Puerto:</b> Dejar vacio para usar el puerto predeterminado.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Archivo:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Añadir nueva base de datos.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Abrir base de datos existente.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Aplicar filtro a</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>Solo nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>Texto completo</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Carpeta de base de datos</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Nombre de la carpeta</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Grupo</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Proyecto</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Otros</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Nuevo waypoint.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Símbolo</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Posición</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Nombre</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Formato de posición incorrecto. Debe ser: 
+"[N|S] ggg mm.sss [W|E] ggg mm.sss"
+o
+"[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Configurar espacio de trabajo...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>guardar el espacio de trabajo al salir, y cada</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>minutos</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>Escuchar los cambios en la base de datos de otras instancias de QMapShack en puerto</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Insertar plantilla...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Plantillas</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Selecciona una ruta con tus propias plantillas</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Vista previa</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Editar texto...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Deshacer</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Rehacer</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Cortar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Copiar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Pegar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Plantilla.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation>A:L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation>A:C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation>A:R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation>A:B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation>C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Standard</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation>Lista de viñetas (Disco)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation>Lista de viñetas (círculos)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation>Lista de viñetas(cuadrados)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation>Lista ordenada(decimal)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation>Lista ordenada (alfabético descendente)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation>Lista ordenada (alfabético ascendente)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation>Lista ordenada (números romanos descendente)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation>Lista ordenada (números romanos ascendente)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Alinear a la Izquierda</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Alinear a la Derecha</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Alinear al Centro</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Alinear Bloque</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Subrayar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Negrita</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Cursiva</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Plano</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Restablecer el formato del texto antes del pegado</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Seleccionar todo</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Borrar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Restablecer fuente</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Restablecer diseño</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Pegar sin restablecer el formato del texto</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Insertar desde plantilla</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Crear texto desde plantilla.</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Cortar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Copiar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Pegar</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Configurar la Zona Horaria.</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>UTC</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Local</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automático</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Imprimir fecha y hora en</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>Formato largo, o</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>formato corto</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Nota:</b> Para algunos elementos de la interfaz de usuario, cambiar las unidades no tendrá efecto hasta que se reinicie QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Configuración de barra de herramientas</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>Barra de herramientas visible en modo Pantalla Completa</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>La ejecución del programa externo %1 falló:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>No se puede iniciar el proceso.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Asegúrese de que los paquetes necesarios estén instalados, `%1` existe y es ejecutable</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>El proceso externo falló.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>A ocurrido un error desconocido</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!!falló!!!</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Formato de coordenadas incorrecto. Debe ser: "[N|S] ggg mm.sss [W|E] ggg mm.sss" o "[N|S] ggg.ggg [W|E] ggg.ggg"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Valores de posición fuera del límite.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Configurar unidades...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation>Unidad de longitud</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation>Náutico</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Métrico</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation>">Unidad de pendiente</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation>Grados (°)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation>Porcentaje (%)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Nota:</b> Para algunos elementos de la interfaz de usuario, cambiar las unidades no tendrá efecto hasta que se reinicie QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Imperial</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Iconos.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Iconos:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Los iconos personalizados deben de ser BMP o PNG</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmapshack/locale/qmapshack_fr.ts b/src/qmapshack/locale/qmapshack_fr.ts
new file mode 100644
index 0000000..7242192
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_fr.ts
@@ -0,0 +1,10865 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="fr">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API V%2, attendu V%3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API V%2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(DBUS absent : détection et gestion d'appareil désactivée)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>A pieds</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Vélo</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Voiture</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Téléphérique</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Natation</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Bateau</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Ski</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>Pas d'activité</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Total</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Montée:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Descente:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Aérien</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Transports publics</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Distance:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Vitesse moyenne en déplacement:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Vitesse moyenne totale:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Temps en déplacement:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Temps total:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Vue %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Réglage de l'arrière-plan de la carte</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Echap</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Envoyer les messages de débogage vers la console</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Envoyer les messages de débogage vers un fichier (temp. path).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Ne pas montrer l'image d'accueil</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Fichier de configuration QMS.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>fichier</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Fichiers pour usage futur.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>route</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Vos données groupées par dossiers.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Perdu & Trouvé (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Perdu & Trouvé</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>Base de données MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation>Serveur:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation>(aucun mot de passe)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Erreur: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>Base de données SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Fichier:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Erreur: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation>%1 h</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 jours</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>Impossible de charger ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>Impossible de charger le fichier "%1". Il sera ignoré.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>Projet déjà présent dans le base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>Le projet "%1" a déjà été importé dans la base de données. Il sera ignoré.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>L'objet %1 a été modifié par %2 (%3).
+Pour résoudre ce conflit vous pouvez créer et sauvegarder un clone, forcer votre version ou abandonner votre version en prenant celle de la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Confilt avec la base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Cloner && Sauvegarder</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Forcer la sauvegarde</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Prendre la version de la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Répertoire manquant...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>Echec de la sauvegarde du projet. Le répertoire a été supprimé de la base de données.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Enregistrer...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Erreur</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Erreur inattendue de la base de données:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>Le projet '%1' est sur le point de se mettre à jour depuis la base de données.Néanmoins il y a des modifications non sauvegardées.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Enregistrer les modifications ?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Désactiver</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Activer</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Ajoutez ou retirez des répertoires qui contiennent des données DEM. Il peut y avoir plusieurs fichiers dans un répertoire mais les sous-répertoires ne sont pas prises en compte. Formats acceptés sont: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Sélectionnez le répertoire qui contient les fichiers DEM</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>Le DEM doit contenir un seule bande avec des données en 16 ou 32 bits.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>Aucune information de géoréférencement trouvé</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translatorcomment>...indice?</translatorcomment>
+        <translation>aucun</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Recherche d'images...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>Aucune image trouvée</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>aucun</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Créer le journal...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Waypoints</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Information</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Commentaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Traces</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>Depuis le début</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>Jusqu'au suivant</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>Jusqu'à la fin</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Surfaces</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Vous voulez trier des waypoints le long d'une trace, mais vous avez désactivé la corrélation des traces et waypoints. Voulez-vous la réactiver ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Corrélation en cours...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation>Résumé de toutes les traces du projet</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation>Distance: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation>Montée: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation>Descente: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Routes</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Éditer le nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Entrez le nom du nouveau projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Éditer les mots-clés...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Saisir les mots-clés.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Imprimer le journal</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <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="171"/>
+        <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="174"/>
+        <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="177"/>
+        <source>Miscellaneous</source>
+        <translation>Divers</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Couleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Activité</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Entrez le rayon de l'alarme de proximité.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Image%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Inconnu</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Archive - développer pour charger</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>Archive - chargé</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>Pas de données DEM disponibles pour ce point.</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Selectionner le chemin d'exportation</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Créer %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation>Impossible de créer %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>Fait !</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>Annulé par l'utilisateur !</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation>Erreur de base de données : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>Sauvegarder le projet sous %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation>Erreur !</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>Aucune extension disponible</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>approximatif</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>moyen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>précis</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>erreur de décodage FIT : CRC invalide</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>erreur de décodage FIT : fin de fichier inatendue %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>erreur de décodage FIT : type de base %1 inconnu.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation>Définition de champ manquante pour le champ de développement</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation>Erruer de décodage FIT : définition de champ invalide %1 lors de la création du profil de développement</translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>erreur de décodage FIT : version du protocole %1 non supportée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>erreur de décodage FIT : signature d'en-tête de fichier incompatible. Ce n'est pas un fichier FIT.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Echec de l'ouverture du fichier %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>Echec de l'ouverture du fichier FIT %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>Erreur de décodage FIT : architecture %1 non supportée</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>Erreur de décodage FIT : décalage invalide %1 pour l'état 'contenu d'enregistrement'</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Avertissement...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation>Ceci est un fichier TYP avec un encodage de polygone inconnu. Veuillez signaler ce problème.</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation>Ceci est un fichier TYP avec un encodage de polyligne inconnu. Veuillez signaler ce problème.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>fin</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>normal</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>large</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>épaisse</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Clone</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Surface: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Forme de surface modifiée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Nom modifié.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Largeur de la bordure modifiée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Remplissage modifié.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Opacité modifiée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Commentaire modifié.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Description modifiée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Liens modifiés.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Couleur modifiée.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Clone</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished">route</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Nom modifié.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Commentaire modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Description modifiée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Liens modifiés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation>Longueur: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation>Durée: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation>Distance: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Longueur: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Heure : -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Date du dernier calcul d'itinéraire : <br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>avec %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Points de route modifiés.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>Le fichier FIT %1 ne contient pas de donnée GPS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <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="420"/>
+        <source>Failed to read data.</source>
+        <translation>Impossible de lire les données.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Clone</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <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="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation>Temps: %1%2, Vitesse: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation>En déplacement: %1%2, Vitesse: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Début: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Début: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Fin: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Fin: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Points: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>Altitudes invalides !</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>Temps invalides !</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>Positions invalides !</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Activités: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Index: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Index: visibles %1, total %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation>, Pente : %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... and %1 tags non affichés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Distance: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>En déplacement: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Cacher les points %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Cacher les points %1..%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>,%1,%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation>Points invalides ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation>La trace '%1' a %2 points invalides sur %3 points visibles. Voulez-vous cacher les points invalides maintenant ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation>max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation>Longueur: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <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="393"/>
+        <source>, %1-, %2-</source>
+        <translation>, %1-, %2-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Time: -, Speed: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>En déplacement: -, Vitesse: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="463"/>
+        <source>Invalid slopes!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation>Altitude: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation>, Vitesse: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Montée: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Descente: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Montée: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation>, Descente: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Distance: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation>, En déplacement: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Ascent: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Descente: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Montée: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation>, Descente: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Distance: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation>, Durée: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Points supprimés de manière permanente %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Afficher les points.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Nom modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Commentaire modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Description modifiée</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Liens modifiés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Altitudes modifiées du point %1 à %2 %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Activité modifiée pour '%1' pour la trace complète.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Activité modifiée pur '%1' for la plage (%2..%3).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Cacher des points avec l'algorithme Douglas Peuker (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Cacher les points aux données invalides</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Restaurer les points cachés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Supprimer définitivement tous les points cachés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Profile lissé avec un filtre médian de dimension %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>Ajouté la pente du terrain à partir du fichier MNT</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Les altitudes ont été remplacées  par les données des fichiers MNT</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Les altitudes ont été remplacées  par des valeurs interpolées. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>Décaler les altitudes de %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Début de la trace modifié à %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Horodatage supprimé.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Horodatage artificiel ajouté avec un décalage de %1 sec.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Vitesse modifiée à %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (Segment %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>Extension %1 supprimée de tous les points</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Converti les sous-points de routage en points de trace</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Copier la balise d'information de la trace QLandkarte GT</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Archivé</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>Non disponible</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_Clone</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation>Altitude: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation>Proximité: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Nom modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Position modifiée</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Altitude modifiée</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation>Enlevé proximité</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Rayon de proximité modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Icône modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Commentaire modifié</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Description modifiée</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Liens modifiés</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Images modifiées</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Ajouter une image</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>A cause d'évolutions de la gestion des bases de données, QMapShack doit de nouveau connaître l'emplacement de votre base de données. '%1'.  Indiquez-le à l'étape suivante.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Sélectionnez un fichier de base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Ajouter une base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Ajouter un dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Renommer dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Copier dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Déplacer dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Supprimer le dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Importer depuis des fichiers ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Exporter vers GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Supprimer un élément</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Rechercher dans la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Synchroniser avec la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Enlever la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Vider</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Enlever la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Voulez-vous vraiment supprimere '%1' de la liste ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>Etes-vous sûr de vouloir supprimer les dossiers selectionnés ainsi que leur sous-dossiers de la base de données ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Mauvaise opération...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>Le dossier cible est un sous-dossier de celui à déplacer. Cela ne fonctionnera pas.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Name du dossier...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Renommer le dossier:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Êtes-vous sûr de vouloir supprimer %1 du dossier %2?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Supprimer...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>Importer des données SIG...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Supprimer la base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Supprimer les éléments...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Êtes-vous sûr de vouloir supprimer tous les éléments dans Perdu & Trouvé ? Les éléments seront supprimés définitivement.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Êtes-vous sûr de vouloir supprimer les éléments sélectionnés dans Perdu & Trouvé ? Les éléments seront supprimés définitivement.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Éditer..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Afficher sur la carte</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Masquer</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Trier par date</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Trier par nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Enregistrer</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Sauvegarder comme GPX 1.1 sans extensions...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Envoyer vers les appareils</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Synchroniser avec la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Mettre à jour le projet sur l'appareil</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Supprimer</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Éditer...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Copier vers...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Sauvg. auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Sauvegarder sous...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Profile de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Sélectionner des points</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Éditer les points de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Inverser la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Joindre des traces</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Copier la trace avec ses waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Afficher la bulle</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Déplacer le waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Projection du waypoint...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation>Changer le rayon</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Activer zone interdite</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation>Supprimer le rayon</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Instructions de guidage</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Calculer l'itinéraire</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Réinitialiser la route</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Éditer la route</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>Convertir en trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Éditer les points de la surface</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Créer une route</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Change l'icône (waypoint séléctionné seulement)</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Choisir l'activité de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Sauvegarde de l'espace de travail. Patientez.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Chargement de l'espace de travail. Patientez.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Fermer tous les projets...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <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="1279"/>
+        <source>Delete project...</source>
+        <translation>Supprimer le projet...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Êtes-vous sûr de vouloir supprimer %1?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <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>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation>Charger le projet...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation>Le projet "%1" est déjà présent dans l'espace de travail.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation><b>Sélection d'objets : </b>Objet sélectionné depuis l'espace de travail. Cliquez sur la carte pour revenir au mode normal de sélection à la souris.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation>Copier les éléments...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation>Changer les symboles de waypoint.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation>Couper la trace...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation>Voulez-vous supprimer la trace originale?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Impossible de charger le fichier %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Impossible de lire: %1
+ligne %2, colonne %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>Ce n'est pas un fichier GPX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>Le fichier existe...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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="386"/>
+        <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="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Impossible d'écrire le fichier: '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Impossible de sauvegarder les données SIG</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5</translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1m, %2m </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>N %1m, E %2m </translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation>par %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Tronquer l'historique antérieur</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Tronquer l'historique postérieur</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Supression de l'historique</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>La suppression est permanente et ne peut être annulée. <b>Voulez-vous vraiment supprimer l'historique antérieur à cette étape ?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>Importer une base de données QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Choisissez la base de données à importer...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Choisissez la base de données cible...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation>Vitesse</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation>Cadence</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. Air</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Température de l'air</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp. eau</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Température de l'eau</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation>Prof.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation>Profondeur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation>Fréq. Card.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation>Fréquence cardiaque</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation>Cad.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation>Vit.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation>Accel.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation>Accélération</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation>Cap</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation>Cap</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Temp.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Température</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation>Dist.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation>Distance</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation>Altitude</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation>Energ</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation>Energie</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation>Pres. Niv. Mer</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation>Pression au niveau de la mer</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation>Vit. vert.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation>Vitesse verticale</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation>Pente</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation>Vitesse par rapport à la distance*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation>Vitesse par rapport au temps*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation>Altitude*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation>Progress.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation>Progression*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation>Pent. Terr.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation>Pente du terrain*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Pente*</translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation>Impossible de charger le fichier %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Erreur de lecture: %1
+ligne %2, colonne %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation>Ce n'est pas un fichier Openambit : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation>Appareil: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Temps de récupération : %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Pic d'effet d'entraînement : %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energie: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation>Utilisation de l'heure locale...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>Aucune heure UTC trouvée dans le fichier %1. L'heure locale de l'ordinateur sera utilisée. Vous pouvez utiliser un filtre pour ajuster l'heure si nécessaire.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Ce fichier LOG ne contient aucune information de position et ne peut être affiché par QMapShack : %1</translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Perdu & Trouvé</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Utilisez <b>Menu->Vue->Add Map View</b> pour ouvrir une nouvelle vue. Ou <b>Menu->Fichier->Charger une vue cartographique</b> pour charger une vue sauvegardée. Ou cliquez <a href='newview'>ici</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation>Altitude: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation>Pente du terrain : %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Grille: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>Charger des données SIG...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Sélectionner le fichier de sortie</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>Vue QMapShack (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Sélectionner le fichier à charger</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Fatal...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack a détecter une bibliothèque Proj4 mal installée. Les tables de translation pour les projections ESPG lstockées en généra dans /usr/share/proj sont manquantes. Contactez votre gestionnaire de distribution pour réparer cela.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Échec...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Non défini</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Français</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Deutsch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Néerlandais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Anglais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Finlandais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Suédois</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Espagnol</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Catalan</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Galicien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Gallois</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gaëlic</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Danois</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Norvégien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portugais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Slovaque</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Tchèque</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Croate</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Hongrois</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Polonais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Turque</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Grèc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Slovène</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Russe</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Estonien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Letton</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Roumain</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Albanais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosnien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Lituanien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Serbe</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Macédonien</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Bulgare</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Route majeure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Route principale</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Autre route</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Artère urbaine</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Rue principale</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Rue résidentielle</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Ruelle/Route privée</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Bretelle d'accès, basse vitesse</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Bretelle d'accès, grande vitesse</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Route non bitumé</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Bretelle majeure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Rond-point</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Voie ferrée</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Ligne côtière</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Sentier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Ruisseau</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Fuseau horaire</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Bac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Frontière de province</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Frontière de canton</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Frontière internationale</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Rivière</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Courbe de niveau mineure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Courbe de niveau intermédiaire</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Courbe de niveau majeure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Courbe isobathe mineure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Courbe isobathe intermédiaire</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Courbe isobathe majeure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Ruisseau intermittent</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Tarmac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Oléoduc</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Ligne à haute tension</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Frontière maritime</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Limite de zone à risque</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Grande agglomération urbaine (&gt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Petite agglomération urbaine (&lt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Zone résidentielle rurale</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Base militaire</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Parking</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Parking couvert</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Aéroport</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Centre commercial</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Marina</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Université</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Hôpital</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Complexe industriel</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Reserve naturelle</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Zone industrielle</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Complexe sportif</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Golf</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Cimetière</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Parc national</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Parc urbain</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Parc régional</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Forêt</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Océan</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Mer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Grand lac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Lac moyen</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>Petit lac</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Lac majeur</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Rivière majeure</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Grande rivière</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Rivière moyenne</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Petite rivière</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Cours d'eau intermittent</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Marais</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Glacier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Verger</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Broussaille</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Tundra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Plaine</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Lire un fichier TYP externe...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Erreur de lecture du fichier TYP : %1 Utilisation du TYP interne.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Erreur de lecture : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Échec d'ouverture : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Format de fichier invalide : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Erreur de lecture de la structure du fichier : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Chargement de %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Interruption par l'utilisateur : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>Le fichier est au format NT. QMapShack ne peut pas lire des fichiers au format NT : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>Le fichier contient des données verrouillées / cryptées. Garmin ne vous autorise pas à utiliser ce fichier avec un logiciel non fourni par Garmin.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Point d'intérêt</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Inconnu</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Surface</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Désactiver</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Activer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>Où voulez vous enregistrer les cartes ?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Échec...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Échec d'ouverture : </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Format de fichier invalide : </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Ajoutez ou retirez des répertoires qui contiennent des cartes. Il peut y avoir plusieurs cartes dans un répertoire mais les sous-répertoires ne sont pas prises en compte. Les formats acceptés sont : %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Choisissez un répertoire...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Sélectionner le répertoire racine...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>Sélctionnez un type de fichier...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Ceci n'est pas un fichier TwoNav RMAP.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Sous-format inconnu.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Version inconnue.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Impossible de lire les points de référence.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Projection et date inconnus (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir: %1 </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Impossible de lire: %1
+ligne %2, colonne %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Calque %1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Impossible de charger le fichier: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Le fichier doit avoir une palette à 8 bits ou être en niveaux de gris.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>Aucune information de géoréférencement trouvé</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>Générer le VRT GDAL</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Sélectionnez les fichiers...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Sélectionnez le fichier à créer...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fait !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Impossible de lire: %1
+ligne %2, colonne %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Impossible de lire: %1
+Structure inconnue.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Service inattendu. '* WMTS 1.0.0' est attendu mais '%1 %2' est lu.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>Aucune information de géoréférencement trouvé</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Surface</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Éditer la surface</b><br/>Choisissez und fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seulement les points marqués d'un carré large peuvet être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>surface</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Calcul d'itinéraire</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Éditer les points de la route</b><br/>Choisissez une fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seul les points marqués d'un carré large peuvent être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>route</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Trace</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Éditer les points de la trace</b><br/>Choisissez une fonction et un mode de calcul d'itinéraire à l'aide des boutons d'outils. Ensuite, sélectionnez un point de la ligne. Seul les points marqués d'un carré large peuvent être modifiés. Les points noirs sont des sous-points introduits par le calcul d'itinéraire.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Avertissement !</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>La trace obtenue ne contiendra que des données de position. Toutes les autres données (altitude, temps, etc...) seront perdues.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>trace</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>Ajouter PI comme waypoint</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Ajouter un waypoint</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Ajouter une trace</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Ajouter une route</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Ajouter une surface</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Selectionner des objets sur la carte</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Copier la position</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Copier la position (grille)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Sauvegarder (Imprimer) la carte</b></br>Sélectionnez une zone rectangulaire sur la carte. Utilisez le clic gauche et déplacez la souris. Pour annuler utilisez le clic droit. Ajustez la sélection en déplaçant les coins en gardant enfoncé le bouton gauche de la souris.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Sélectionner une plage</b><br/>Sélectionner le 1er pointpar un clic gauche. Puis un second point. Clic droit pour quitter le mode "sélection de plage".<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Sélectionner des objets sur la carte</b><br/>Sélectionnez une surface rectangulaire sur la carte. Utilisez le bouton gauche de la souris et déplacez la souris. Clic droit pour annuler. Ajustez la sélection en déplaçant les coins.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Sélectionné::</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 points<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 traces<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 routes<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 surfaces<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Sélectionner les images...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation>Distance [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation>Durée</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation>Distance [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation>Alt. [%1]</translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Imprimer la carte...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Sauvegarder la carte comme image...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Propriétés de l'imprimante...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Pages: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Zoomer la carte ci-dessous avec la roulette de la souris pour changer la résolution :
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Impression des pages.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Sauvegarder la carte...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Temps écoulé : %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Temps écoulé : %1 secondes</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>nord</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>sud</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>La valeur
+'%1'
+n'est pas une définition de système de coordonnées:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Éditer le nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Entrez le nom du nouveau waypoint.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation>Impossible d'ouvrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation>Impossible de convertir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation>Le fichier contient des superpositions qui ne peuvent être converties. QMapShack ne supporte pas tous les types de superpostion de QLandKarte.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Migration de la base de données de version 4 en version 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Migration de la base de données de version 5 en version 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Migration de la base de données de version 6 en version 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Migration de la base de données de version 7 en version 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Migration de la base de données de version 8 en version 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Ouvrir la base de données: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Répertoires: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Traces: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Routes:           %1 (seulement la route de base sera copiée)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Waypoints:        %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Overlays :        %1 (les surfaces seront convertis en surfaces, les lignes de distance en traces, tous les autres overlays seront perdus)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Journaux:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Sélections de carte:   %1 (ne peuvent pas être convertis)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ La conversion de base de donnée vers %1 commence ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Erreur lors de la création de la base de données cible.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Annuler ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Terminé ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Restaurer ls dossiers...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>%1 dossiers et %2 journaux ont été importés</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Copier les éléments...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>%1 traces, %2 waypoints, %3 routes et %4 surfaces ont été importés</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Importer les dossiers...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>Overlay de type '%1' ne peut pas être converti</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Trace corrompue...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>Le nombre de points de trace ne correspond pas au nombre de points de trace de training.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>Le nombre de points de trace ne correspond pas au nombre de points de trace étendus.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>Le nombre de points de trace ne correspond pas au nombre des points cachés</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Le fichier existe...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Supprimer %1 qui existe ?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Supprimer le fichier existant %1 ?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: poubellise l'élément avec l'identifiant QLGT DB %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Impossible d'ouvrir...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation type="unfinished">Brouter (en ligne)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation type="unfinished">Calculer l'itinéraire avec %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation type="unfinished">Avertissement...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation type="unfinished">Avertissement...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fait !!!!</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! échec !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Le plus rapide</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>le plus court</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Vélo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Piéton</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Anglais Etats Unis</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Anglais britannique</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Danois</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Néerlandais</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Français</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Allemand</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italien</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Norvégien</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Espagnol</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Suédois</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>mode "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>Pas d'autoroutes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>Pas de routes à péage</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>pas de routes saisonnières</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>Pas de route non revêtue</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>Pas de ferry</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>Pas de franchissement de frontière</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Requête de routage envoyée au serveur. Veuillez patienter...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Mauvaise réponse du serveur:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Temps de calcul: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>à pied</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>à cheval</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>en fauteuil roulant</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Vélo</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Cyclomoteur</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Moto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Voiture</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Camion</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>le plus court</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Mauvaise version de Routino trouvée. Attendu %1 trouvé %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>le plus rapide</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Anglais</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Allemand</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Français</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Hongrois</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Néerlandais</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Russe</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Polonais</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Une fonction a été appelée sans variable de base de donnée assignée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Une fonction a été appelée sans variable de profil assignée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Une fonction a été appelée sans variable de traduction assignée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>La base de donnée à charger n'existe pas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>La base de donnée n'a pas pu être chargée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>Les profils XML choisis n'existent pas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>Les profils XML choisis n'ont pas pu être chargés</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>Le fichier de traduction XML n'existe pas</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>Le fichier de traduction XML n'a pas pu être chargé</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>Le nom de profil demandé n'existe pas dans le fichier XML chargé</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>La langue de traduction demandée n'existe pas dans le fichier XML chargé</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>Le profile et la base de données ne fonctionnent pas ensemble</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>Le profil en cours d'utilisation n'a pas été validé</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>Le profil utilisé contient des données invalides</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Les options de routage choisies ne sont pas compatibles entre elles</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>La bibliothèque et l'API ne vont pas ensemble</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>Le calcul de l'itinéraire a été annulé par l'utilisateur</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>Aucune route vers le waypoint %1 n'a été trouvée</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Erreur inconnue : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>profile "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, mode "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Avertissement...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation>La base de donnée de routage ne contient aucune voie à cet endroit</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Calculer l'itinéraire avec %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Temps de calcul : %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Ajouter ou enlever des répertoires contenant des données Routino. Il peut y avoir plusieurs bases de données dans un répertoire mais les sous-répertoires ne sont pas pris en compte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Sélectionner un répertoire de données de calcul d'itinéraire...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (hors ligne)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (en ligne)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation>Brouter (en ligne)</translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Créer une base de données Routino</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Sélectionnez les fichiers...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Sélectionnez le répertoire cible...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fait !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished">Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>Aucune plage selectionnée</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Mode exact</b><br/>Tous les objets selectionnés doivent être totalement inclus dans la zone sélectionnée.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation><b>Mode intersection</b><br/>Tous les objets selectionnés doivent avoir au moins une partie incluse dans la zone sélectionnée.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Ajouter des traces</b><br/>Ajouter des traces à la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Ajouter des waypoints</b><br/>Ajouter des waypoints à la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Ajouter des routes</b><br/>Ajouter des routes à la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Ajouter des surfaces</b><br/>Ajouter des surfaces à la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Ignorer les traces</b><br/>Ignore les traces dans la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Ignorer les waypoints</b><br/>Ignore les waypoints dans la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Ignorer les routes</b><br/>Ignore les routes dans la liste d'objets selectionnés<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation><b>Ignorer les surfaces</b><br/>Ignore les surfaces dans la liste d'objets selectionnés<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Rechercher dans la base de données '%1:'</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Réponse inconnue</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Erreur: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Elément obligatoire manquant</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>MySQL ne peut pas être utilisé, car le pilote correspondant (QMYSQL) n'est pas disponible. <br/>Assurez vous d'avoir installé le paquet correspondant. <br />Si vous ne savez pas quoi faire maintenant jetez <a href="%1">un coup d'oeil au wiki</a>.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Une database de ce nom existe déjà : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Nouvelle base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Ouvrir la base de données...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Mise en place la base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Les modifications prennent effet après un redémarrage de l'application.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Echec du chargement du fichier %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Echec lors du parcours du timestamp '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 n'existe pas</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Impossible de lire: %1
+ligne %2, colonne %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>Ce n'est pas un fichier SLF: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Révision non supportée %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Break %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Tour %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation>Impossible de charger le fichier %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Erreur de lecture : %1
+ligne %2, colonne %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation>Ce n'est pas un fichier sml : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Temps de récupération : %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Pic d'effet d'entraînemet : %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Energie : %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation>Appareil : %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation>Utilisation de la batterie : %1 %/heure</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation>Utilisation de l'heure locale...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>Aucune heure UTC trouvée dans le fichier %1. L'heure locale de l'ordinateur sera utilisée. Vous pouvez utiliser un filtre pour ajuster l'heure si nécessaire.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Ce fichier SML ne contient aucune donnée de position et ne peut pas être affiché par QMapShack : %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Double-clic pour éditer l'altitude</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation>%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Impossible de charger le fichier %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Impossible d'ouvrir %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Erreur de lecture: %1
+ligne %2, colonne %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>Ceci n'est pas un fichier TCX : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Ce fichier TCX contient au moins 1 entraînement, mais aucune activité ni course. Comme les entraînements ne contiennent pas de données de position, ils ne peuvent pas être importés dans QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>Ce fichier TCX ne contient ni activité ni course : %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>Le fichier existe...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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 TCX 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/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>La trace <b>%1</b> que vous avez selectionnée contient des points à l'horodatage invalide. L'appareil risque de ne pas accepter le fichier TCX généré si la trace est laissée telle quelle. <b>Voulez-vous appliquer un filtre vitesse arbitraire (10 m/s) et continuer ?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Course</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Activité</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Trace à l'horodatage invalide...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>Activité ou course ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack ne sait pas comment la trace <b>%1</b> doit être sauvegardée. <b>Voulez-vous la sauvegarder comme une activité ou comme une course ?</b> Seuls les waypoints proches de la trace seront inclus si "course" est choisi. Si "activité" est choisi aucun waypoint ne sera inclus.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Impossible de créer le fichier: '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Impossible d'écrire le fichier: '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Impossible de sauvegarder les données SIG</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>choisir ...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Compte-rendu de randonnée (intégré)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Chemin du template</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>Impossible de lire le template %1.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Aperçu...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Couleur...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Retour au format par défaut</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Actions Disponibles</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Actions Sélectionnées</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Impossible d'ouvrir %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Enregistrer les données SIG dans...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <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="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Impossible de lire les données.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Répertoire des icônes personnalisées...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Participants</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Climat</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>pluie</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>ensoleillé</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>neige</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>nuages</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation>venteux</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>chaud</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>tiède</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>froid</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>gel</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>brouillard</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>humide</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Caractéristiques</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>randonnée facile</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>montée</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>alpin</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>longue descente</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>longue distance</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>via ferrata</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>Grêle / grêle molle</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation>Notation</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>Notation 5 étoiles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>Notation 4 étoiles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>Notation 3 étoiles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>Notation 2 étoiles</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>Notation 1 étoile</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>abandonné</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Equipement</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>Equipement de via ferrata</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>Equipement de nuit</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>Bottes de neige</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>Equipement d'escalade</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>ski</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>Equipement de camping</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Détails</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>À propos...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Tchèque:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Allemand:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation>Oliver Eichler</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Néerlandais:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Français:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Russe:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation>Wolfgang Thämelt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Traduction:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation>Harrie Klomp</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Espagnol:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation>Win64:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation>OS X:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Fichiers binaires:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Contributeurs:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation>Ivo Kronenberg</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation>Helmut Schmidt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>... et merci à tous les gestionnaires de binaires Linux pour leur travail admirable. Remerciements particuliers à Dan Horák et Bas Couwenberg pour leur présence sur les mailing lists relatives aux distributions.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <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>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Configurer la vue cartographique...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Projection et date</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Échelles</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logarithmique</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>Carré (optimisé pour tuiles TMS et WMTS)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialogue</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Joindre des traces</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Traces Disponibles</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Traces Combinées</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Format des coordonnées...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>N48° 53.660 E013° 31.113</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>N48.8943° E013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>N48° 53' 39.6" E13° 31' 6.78"</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Créer une route à partir de waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Couper la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Supprimer le début de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Séparer la trace en 2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Supprimer la fin de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Mode de découpe :</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Cocher la case pour stocker le résultat dans une nouvelle trace. 
+
+Si vous voulez conserver les 2 parties de la trace vous devez en créer de nouvelles. 
+
+Si vous voulez conserver seulement une moitié vous pouvez simplement enlever les points, ou cochez la case pour créer une nouvelle trace.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Créer une nouvelle trace</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>Le format interne de la base de donnée %1 a changé. QMapShack va migrer votre base de donnée maintenant. Après la migration la base de données ne sera plus utilisable avec les versions précédentes de QMapShack. Il est recommandé de faire une sauvegarde de secours avant la migration.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Migration de la base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>Migration annulée par l'utilisateur</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Echec de la migration de %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>Echec de la migration</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>La version de la base de données %1 est plus récente que celle acceptée par la version de QMapShack installée. QMapShack ne peut pas l'ouvrir.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Echec de l'initialisation</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Version de base donnée erronée...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>Base de donnée créée par une version plus récent de QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Echec de l'initialisation de '%1'.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Mot de passe...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Mot de passe pour la base de données '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Mise à jour de la base de données en version 5. Migration de tous les objets SIG</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Mise à jour de la base de données vers la version 3. Migration de tous les objets SIG.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Mise à jour de la base de données vers la version 5. Migration de tous les objets SIG.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Mise à jour de la base de données vers la version 6. Migration de tous les objets SIG.</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Configurer les répertoires DEM</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Régler la transparence du calque DEM</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle minimale d'affichage de la carte.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Définissez la plage d'échelle pour l'affichage de la carte. Utilisez les deux boutons à droite et à gauche pour définir l'échelle courante comme échelle maximale ou minimale.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle maximale d'affichage de la carte.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Relief ombré</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Pente </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation>> </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Pour ajouter des fichiers DEM cliquez sur <b>Fichier -> Configurer les répertoires DEM</b>.  Or cliquez <a href=réglages'><b>ici</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Utilisez le menu contextuel (clic droite sur le fichier) pour activer un fichier. Utilisez glisser-déposer pour changer la position du fichier dans la liste.</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Activer</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Déplacer vers le haut</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Cacher le DEM derrière le précédent</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Déplacer vers le bas</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Afficher DEM par-dessus le suivant</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>Recharger DEM</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation>Dialogue</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Difficulté</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Mise à jour des spoilers</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Indice:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialogue</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>La  surface à été importée dans QMapShack et a été modifiée. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Couleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Largeur de la bordure</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Opacité</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Mots-clés:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Trier le long de la trace (multiple)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Trier le long de la trace (individuel)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Imprimer le journal</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Garder l'ordre du projet</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Restaurer le journal...</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Information</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>L'itinéraire à été importé dans QMapShack et a été modifié. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Dés/activer le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Vitesse</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Style</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Source</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Maximum</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Utiliser/éditer l'affichage personnalisé des flèches pour cette trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Utiliser/éditer l'affichage global des flèches pour cette trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Minimum</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Utiliser/éditer le facteur d'échelle personnalisé pour cette trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Utiliser/éditer le facteur d'échelle global  pour cette trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation>x </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Largeur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>flèches</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Graphiques</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation>max.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation>min.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Limites personnalisées pour cette trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation>-
+-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>La trace à été importée dans QMapShack et a été modifiée. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Limites automatiques</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Limites personnalisées pour toutes les traces</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Couleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Activité</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Choisir l'activité de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Pour différencier les statistiques de la trace, selectionnez une activité dans la liste pour la trace complète. Ou bien sélectionnez une partie de la trace pour lui assigner une activité.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Date</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Pente</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Montée</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Descente</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialogue</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Alt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Proximité:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Le waypoint à été importé dans QMapShack et a été modifié. Les données originales ne sont plus visibles. Voir l'historique pour connaître les changements.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Date/heure</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Inverser le mode lecture seule. Ouvrez le cadenas pour pouvoir éditer l'objet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Ajouter des images</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Supprimer l'image sélectionnée</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Un autre projet du même nom existe déjà. Si vous confirmez, il sera supprimé et remplacé.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Modifier l'altitude...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Altitude</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Prendre l'altitude du modèle numérique de terrain (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Exporter la base de données en GPX ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Chemin d'exportation :</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 sans extensions</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Démarrer</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Supprimer des points de trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Supprimer définitivement tous les points cachés.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Enlever les extensions de tous les points de la trace</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Enlever</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>de tous les points de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Cacher des points (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Cacher les points dont la distance de la ligne entre les points voisinants est inférieur à</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Appliquer le filtre maintenant.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Interpoler les altitudes</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Remplacer les altitudes des points de la trace par des données interpolées.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Qualité</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Aperçu</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Cacher les points invalides</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Cacher les points aux données invalides</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Lisser le profile (méthode médian)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Lisse le profile avec un filtre médian de dimension</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation> points</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Modifier la date et l'heure</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Date et heure du début de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.yy HH:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Camoufler l'horodatage</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Incrementer l'horodatage de</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation> sec.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>pour chaque point de la trace. O sec. supprimera l'horodatage.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Décalage de l'altitude</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Ajouter un décalage de</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>à l'altitude des points</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Remplacer l'altitude</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Remplacer l'altitude des points par les données DEM</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Restaurer les points cachés</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Rendre visible les points cachés</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Modifier la vitesse</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished">Appliquer le filtre maintenant.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Séparer les segments en traces</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Créer une nouvelle trace pour chaque segment dans cette trace.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><b>Convertir les sous-points de la trace en points</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Convertir les points calculés par le routage en points ordinaires </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Calculer la pente du terrain</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Calculer la pente du terrain à partir des fichies MNT chargés.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>Error de décodage FIT : le décodeur n'est pas dans l'état attendu %1 après le dernier octet de donnée du fichier</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation>Erreur de décodage FIT : un champ de développement avec le numéro de définition %1 existe déjà</translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation>Age</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation>Pour ajouter une base de données cliquez droit sur la liste ci-dessus.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[sans nom]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>L'objet ne fait pas partie du projet dans la base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>Il s'agit soit d'un nouvel objet soit d'un objet qui a été supprimé de la base de donnée par quelqu'un d'autre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>L'objet n'est pas dans la base de données.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>L'objet aurait besoin d'être sauvegardé.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Version initiale</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation>Ne plus demander.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3>Cet élément est probablement en lecture seule car il n'a pas été créé dans QMapShack. En général les données importées ne sont pas modifiées par les utilisateurs. Mais si c'est bien votre intention cliquez 'OK'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Mode lecture seule</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Description:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>--- pas de description ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Commentaire:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- pas de commentaire ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Liens:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- pas de liens ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Éditer le nom...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Entrez un nouveau %1 nom.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Enregistrer le projet ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>Le projet a été modifié. Sauvegarder avant de quitter ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Corréler les traces et les waypoints.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>Etait-ce trop long ? Voulez-vous ne pas faire la corrélation des traces et waypoints la prochaine fois pour ce projet ?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Corrélation annulée...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Sauvegarder"%1" dans ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Nom de fichier: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Waypoints: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Traces: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Routes: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Surfaces: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <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/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Supprimer...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished">Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation>Opacité</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation>Modifier l'opacité de tous les objets SIG sur la carte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation>Filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation>RAZ filtre</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation>Réglages Filtre</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Configurer la grille...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Projection</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>Remise à zéro</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Utiliser la projection de la carte courante</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>Assitant de projection</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Couleur de la grille</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>Choisir la couleur de la grille</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Base de donnée source</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Base de donnée cible</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Démarrer</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Éditer...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation>Routage</translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Liens...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Type</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Texte</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Fichier</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Vue</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Fenêtre</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Outils</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Cartes</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Modèle numérique de terrain (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation>Espace de travail</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Barre d'outils</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation>Routage</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Ajouter une vue cartographique</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Afficher l'échelle</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Configurer la police de la carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Afficher la grille</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Configurer la grille</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Inverser le sens de la molette de souris</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Configurer les répertoires des cartes</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>Libellés des points d'interêt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Jour / Nuit</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Infobulles sur la carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>CTRL + I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Configurer les répertoires DEM</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>À propos</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Aide</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Configurer la vue cartographique</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>Charger des données SIG...</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Charger un fichier projet</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Enregistrer toutes les données SIG</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <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="523"/>
+        <source>Ctrl+S</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Configurer le fuseau horaire</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Ajouter un projet vide</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Recherche Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Fermer tous les projets</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Configurer les unités</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Configurer l'espace de travail</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Sauvegarde de la configuration en quittant</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Importer une base de données QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>Importer une base de données QLandkarte GT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>Générateur de VRT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>Interface utilisateur pour gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Enregistrer une vue cartographique</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Sauvegarder les cartes et calques DEM actives et leurs paramètres dans un fichier</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Charger une vue cartographique</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Rétablir une vue avec les cartes et calques DEM et leurs paramètres à partir d'un fichier</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Profile externe</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>CTRL + Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Dupliquer une vue cartographique</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Créer une base de données Routino</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Sauvegarder (Imprimer) une capture d'écran de la carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Imprimer une zone sélectionnée de la carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>CTRL + P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Choisir le format de coordonnées</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Modifier le format des coordonnées affichées</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Modifier l'arrière-plan de la carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Modifer les icônes des waypoints</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Modifier le chemin des icônes personnalisés</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Fermer l'onglet</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation>CTRL + W</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation>Aide Rapide</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Réglages barre d'outils</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Activer les docks</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Activer la visibilité des fenêtres dockables</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation>CTRL + D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Plein écran</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation>Valeurs Min./Max. des traces</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation>Afficher les valeurs min/max le long de la trace dans la vue carte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation>Ctrl+N</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation>Base de données</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Pour ajouter des cartes utilisez <b>Fichier->Configurer les répertoires des cartes</b>.  Ou cliquez <a href='réglages'><b>ici</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Utilisez le menu contextuel (clic droite sur la carte) pour activer une carte. Utilisez glisser-déposer pour changer la position de la carte dans la liste.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Au secours ! Je veux des cartes !
+Je n'ai pas envie de lire la documentation !</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Activer</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Déplacer vers le haut</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Cacher la carte derrière la carte précédente</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Déplacer vers le bas</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Montrer la carte au sommet de la carte suivante</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Recharger les cartes</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>L'affichage de cette carte nécessite l'utilisation d'OpenSSL. Par défaut OpenSSL n'est pas inclus dans QMapShack à cause de restriction légales dans certains pays. Vous pouvez consulter <a href='https://www.openssl.org/community/binaries.html'>la page d'accueil OpenSSL</a> pour trouver des fichiers binaires. Vous devez copier libeay32.dll et ssleay32.dll dans le répertoire programme de QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Erreur...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: %2 tuiles à charger<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Configurer les répertoires des cartes</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Répertoire racine du cache de tuiles pour les cartes en ligne :</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Au secours ! Je veux des cartes !
+Je n'ai pas envie de lire la documentation !</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Régler la transparence de la carte</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle minimale d'affichage de la carte.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Définissez la plage d'échelle pour l'affichage de la carte. Utilisez les deux boutons à droite et à gauche pour définir l'échelle courante comme échelle maximale ou minimale.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Cliquez pour utilser l'échelle courante comme échelle maximale d'affichage de la carte.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Surfaces</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Lignes</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Points</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Détails</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Répertoire du cache</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>Type de fichier :</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Ne pas utiliser de TYP¨externe et utiliser le TYP interne.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Charger un fichier TYP externe.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Taille du cache (MO)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Durée du cache (jours)</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Options avancées</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Sélectionnez les fichiers source:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Fichier cible:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Démarrer</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Nouvelle ligne</b><br/>Déplacez la souris et utilisez le bouton gauche pour ajouter des points. Cliquez droit pour terminer.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Supprimer un point</b><br/>Approchez le pointeur du point et cliquez gauche pour le supprimer.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Sélectionner une série de points</b><br/> Pour commencer la sélection, cliquez gauche sur le premier point. Cliquez gauche sur le sur le deuxième point pour terminer la sélection et choisissez une option. Utilisez le bouton droit pour annuler.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Déplacer un point</b><br/>Approchez le pointeur près d'un point et cliquez gauche pour le coller au pointeur. Déplacez le point avec la souris. Déposez le point avec un clic gauche. Utilisez le bouton droit pour annuler.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Ajouter un point</b><br/>Placez le pointeur de la souris près d'un segment de ligne et cliquez gauche pour ajouter un point. Le nouveau point va coller au pointeur et vous pouvez le déplacer. Déposez le point par un clic gauche. Utilisez le clic droit pour annuler.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Aucun calcul d'itinéraire</b><br/>Les points seront connectés par une ligne droite.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Calcul d'itinéraire automatique</b><br/>Les paramètres de calcul d'itinéraire actuels serviront pour calculer un tracé entre les points. <b>Remarque :</b>Le routeur sélectionné doit être capable de faire le calcul à la volée. Généralement, les routeurs hors ligne en sont capables, les routeurs en ligne ne le sont pas.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Calcul d'itinéraire vecteur</b><br/>Connecter les points avec une ligne basée sur une carte vecteur active, si possible.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1 Mesures</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Distance:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Montée:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Descente:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Zoom à la valeur initiale</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translatorcomment>tbc: range</translatorcomment>
+        <translation>Terminer la série</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Enregistrer...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Ajouter un waypoint</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Couper...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Enfoncez CTRL pour zoomer uniquement sur l'axe vertical.
+Enfoncez ALT pour zoomer uniquement sur l'axe horizontal.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Aucune donnée ou données invalides.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Sélectionner le fichier de sortie</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Saisissez la nouvelle position</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Mauvais format de position. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Imprimer la carte...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>Pour l'impression de cartes en lignes assurez-vous que l'ensemble de la zone à imprimer est bien déjà stockée dans le cache.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Enregistrer</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>Poursauvegarder des cartes en lignes assurez-vous que l'ensemble de la zone à sauvegarder est bien déjà stockée dans le cache.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Impression</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Patientez s'il-vous-plaît</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>personnalisé</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Date</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Resultat:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Nord (pôle nord)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Sud (pôle sud)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Dupliquer un waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Dupliquer le waypoint et déplacer de:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Alternative</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation type="unfinished">Port</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Autoroutes</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Routes saisonnières</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Langue</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Frontières</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Profil</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Eviter:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Bac</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Routes à péages</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Routes non revêtues</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Itinéraires fournis par <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Profile</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Mode</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Base de données</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Ajouter des répertoires qui contiennent des bases de données Routino.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Langue</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Pour pouvoir utiliser le calcul d'itinéraire hors ligne, vous devez spécifier les répertoires qui contiennent les données locales de calcul d'itinéraire. Utilisez le bouton de configuration pour ajouter des répertoires. Vous pouvez créer vos propres données de calcul d'itinéraires avec <b>Outils->Créer une base de données Routino</b>.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Configurez la base de données Routino...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Sélectionnez les fichiers source:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Démarrer</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Chemin cible:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Préfixe du fichier</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished">Source</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished">Libellé</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Sauvegarder sur l'original</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Enregistrer sous...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Déplacer les points. (CTRL + M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>CTRL + M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Ajouter des points (CTRL + + )</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>CTRL + + </translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Selectionner une plage de points (CTRL + R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>CTRL + R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Pas d'autoroutge ou de suivi le ligne automatique (CTRL + O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>CTRL + O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Utiliser l'autoroutage entre les points. (CTRL + A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>CTRL + A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Suivre les lignes de la carte vectorielle (CTRL + V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Supprimer un point. (Ctrl+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation>Ctrl+-</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>CTRL + V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Annuler la dernière modification</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Rétablir la dernière modification</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Voir les détails et éditer.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Copier la surface dans un autre projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Supprimer la surface du projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Modifier la forme de la surface.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished">Activer zone interdite</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation>Sauvegarder la zone sélectionnée comme image</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Imprimer la zone sélectionnée</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Supprimer tous les points entre le premier et le dernier point.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Calculer un itinéraire entre le premier et le dernier point sélectionné.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Cacher tous les points.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Afficher tous les points.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Sélectionner une activité pour la plage sélectionnée.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Créer une nouvelle trace à partir des points sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Copier la route dans un autre projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Voir les détails et éditer.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Supprimer la route du projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Calculer la route.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Réinitialisationdu calcul d'itinéraire</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Déplacer les points de la route.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Convertir la route en trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Copier tous les éléments sélectionnés dans un projet</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Créer une route à partir des waypoints sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Changer les icônes de tous les waypoints sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Combiner toutes les trcaes sélectionnées dans une seule nouvelle</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Choisir un activité pour toutes les traces sélectionnées.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Supprimer tous les objets sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Sélectionner tous les objets dont au moins une partie est présente dans la zone sélectionnée</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Sélectionner tous les objets qui sont totalement inclues dans la zone sélectionnée.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Ajouter des traces à la sélection</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Ajouter des waypoints à la sélection</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Ajouter des routes à la sélection</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Ajouter des surfaces à la sélection</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Copier la trace dans un autre projet</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Voir les détails et éditer les paramètres de la trace.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Supprimer la trace du projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Afficher le profil d'altitude et des informations detaillées sur les points</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Sélectionner une séquence de points.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Modifier la position des points de la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Inverser la trace</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Joindre des traces</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Couper la trace au point selectionné. Vous pouvez faire ceci pour:
+
+* Supprimer des points erronnés au début ou à la fin de la trace
+* Utiliser les segments de trace obtenus pour préparer une nouvelle trace
+* Tronçonner une trace en plusieurs étapes
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Choisir une activité pour la totalité de la trace.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Copier la trace et ses waypoints attachés dans une autre projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Voir les détails et éditer.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Copier le waypoint dans un autre projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translatorcomment>tbc: waypoint</translatorcomment>
+        <translation>Supprimer le waypoint du projet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Afficher le contenu comme bulle statique.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Déplacer le waypoint.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Dupliquer le waypoint et déplacer la copie d'une distance et d'un angle défini.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation>changer le rayon de la zone circulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>basculer entre proximité et zone interdite</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Supprimer le cercle défini par le waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation>changer le rayon de la zone circulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>basculer entre proximité et zone interdite</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Supprimer le cercle défini par le waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Rechercher...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Entrez le mot à rechercher et cliquez sur le bouton "Rechercher".
+Si vous entrez 'mot' alors 'mot' uniquement sera recherché. Si vous entrez 'mot*', 'mot' doit âtre au début de la chaîne de caractères recherchée.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Rechercher</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Fermer</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Sélectionner les appareils...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Copier un élément...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Remplacer l'élément existant</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Libellé</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>Ne pas copier l'élément</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Dupliquer l'élément</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Remplacer par:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Conserver l'élément:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Le nom de la copie aura le suffixe '_Clone'</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>et pour tous les autres éléments</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Sélectionner le répertoire parent...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Disponible</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Ajouter aux objets sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Enlever des objets sélectionnés</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Sélectionné</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Déplacer les objets sémectionnés vers le haut</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Déplacer les objets sémectionnés vers le bas</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Choisissez un projet...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Choisissez un projet dans la liste ou entrez le nom d'un nouveau projet.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Nom du nouveau projet</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>Le nouveau projet sera de type:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Base de données</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Copier un élément...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Remplacer l'élément existant</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Ajouter un clone</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>Le nom du clone aura le suffixe '_Clone'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Remplacer par:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>Ne pas remplacer l'élément</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Utiliser l'élément:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>et pour tous les autres éléments</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Ajouter une base de données...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Attention!</span> Il est recommandé de laisser le champ "mot de passe" vide,car QMapShack stocke les mots de passe en clair. Une mot de passe sera alors demandé à chaque démarrage.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>Ne pas utiliser de mot de passe</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Serveur</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation>Port</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Utilisateur</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Mot de passe</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Port:</b> Laissez le champ "Port" vide pour utiliser le port par défaut.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Fichier:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Ajouter une nouvelle base de données.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Ouvrir une base de données existante.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulaire</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Appliquer le filtre à</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>nom seulement</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>texte complet</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Dossier de base donnée...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Nom du dossier</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Groupe</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Projet</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Autre</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Nouveau waypoint...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Symbole</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Position</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Nom</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Mauvais format de position. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Configurer l'espace de travail...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>Sauvegarde de l'espace de travail en quittant et toutes les</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>Détecter des modiications de la base de données par d'autres instances de QMapShack. Sur le port</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Insérer un template</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Templates</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Séléctionner le chemin vers vos propres templates.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Aperçu</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Éditer le texte...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Annuler</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Répéter</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Couper</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Copier</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Coller</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Templ.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation>A:G</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation>A:C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation>A:D</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation>A:J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation>G</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation>S</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation>C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Standard</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation>Puce de liste (disque)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation>Puce de liste (Cercle)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation>Puce de liste (Carré)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation>Liste numérotée (chiffres)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation>Liste numérotée (lettres minuscules)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation>Liste numérotée (lettres majuscules)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation>Liste numérotée (chiffres romains  minuscules)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation>Liste numérotée (chiffres romains  majuscules)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Aligné à gauche</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Aligné à droite</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Centré</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Justifié</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Soulignage</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Gras</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Italique</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Texte brut</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Réinitialiser la mise en forme du texte avant de coller</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Tout sélectionner</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation>CTRL + A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Supprimer</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Réinitialiser la police</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Réinitialiser la mise en forme</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Normal</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Coller sans réinitialiser la mise en forme du texte</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Insérer depuis le template</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Créer le texte depuis le template</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Couper</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Copier</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Coller</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Configurer le fuseau horaire</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>UTC</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Local</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automatique</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Afficher la date au format</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>long</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>court</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Note:</b> Le changement d'unités ne sera totalement visible qu'après le redémarrage de QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Réglages de la barre d'outils</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>Barre d'outils visible en mode plein écran</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Echec de l'execution du programme externe %1: </translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Le process ne peut être démarré</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Assurez-vous que les paquets requis sont installés, '%1' existe et est exécutable.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>Process externe planté.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Une erreur inconnue a eu lieu.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! échec !!!</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Erreur</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Format de position incorrect. Formats valides: "[N|S] ddd mm.sss [W|E] ddd mm.sss" ou "[N|S] ddd.ddd [W|E] ddd.ddd" </translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Valeurs de la position hors de la plage autorisée.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Configurer les unités</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation>Unité de longueur</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Métrique</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation>Unité de pente</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation>Degrés (°)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation>Pourcents (%)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Note:</b> Le changement d'unités ne sera totalement visible qu'après le redémarrage de QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Impérial</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Icônes</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Icônes externes:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Les icônes personnalisés doivent être de type *.bmp ou *.png</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmapshack/locale/qmapshack_nl.ts b/src/qmapshack/locale/qmapshack_nl.ts
new file mode 100644
index 0000000..1697078
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_nl.ts
@@ -0,0 +1,10874 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="nl_NL">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API V%2, verwachte V%3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API V%2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>Wandelen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Fiets</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Motorfiets</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Kabelbaan</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Zwemmen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Boot</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Ski/Winter</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Vliegtuig</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Afstand:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Bewogen snelheid:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Totale snelheid:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Bewogen tijd:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Totale tijd:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Venster %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Toon debug resultaat op scherm.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Sla debug resultaat op als bestand (tijdelijk psd).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Toon geen splash scherm.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Bestand met QMapShack. configuratie.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>bestand</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Bestanden voor toekomstig gebruik.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Alle gegevens gegroepeerd per map.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Lost & Found (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Lost & Found</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>MySQL Database</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Fout: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>SQLite Database</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Bestand: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation type="unfinished">Fout: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>Het item %1 is verand door %2 (%3). 
+
+Om dit conflict op te lossen kan een kloon gemaakt en opgelagen worden, forceer huidige versie of verwijder deze versie en kies een ander uit de database</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Conflict met database...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Kloon && Opslaan</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Forceer opslaan</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Neem huidige</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Opslaan...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Fout</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Er is een onverwachte database fout opgetreden:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>Het project '%1' zal geupdated worden met de database.Er zijn nog veranderingen niet opgeslagen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Veranderingen opslaan?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Deactiveer</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Activeer</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Maak of verwijder mappen naar DEM gegevens.-Er kunnen meerdere bestanden in een map zijn maar geen submappen Ondersteunende formaten zijn: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Selecteer map met DEM bestanden...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>Kan bestand %1 niet laden</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>DEM moet 16 bit of 32 bit gegevens bevatten.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>Geen geografische gegevens gevonden.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>geen</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Zoeken naar afbeeldingen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>Geen afbeeldingen gevonden</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Om wayponts van een track te sorteren dient de correlatie van track en waypoints ingeschakeld zijn.. Moet dit weer ingeschakeld worden?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Correlatie...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>geen</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Dagboek maken...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Overzicht van alle tracks in project</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Waypoints</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Notitie</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Tracks</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Gebieden</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Routes</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Bewerk naam...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Geef  project een nieuwe naam.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Bewerkt sleutelwoorden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Geef sleutelwoorden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Dagboek afdrukken</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Reduceer zichtbare trackpunten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation>Verander hoogte van trackpunten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <source>Change timestamp of track points</source>
+        <translation>Verander tijdstempels van trackpunten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
+        <source>Miscellaneous</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Kleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Activiteit</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Geef nieuwe afstand in voor nabijheid.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Afbeelding%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Onbekend</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>Geen OEM gegevens gevonden voor dit punt.</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Kan bestand %1 niet laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Waarschuwing...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation>Dit is een bestand met onbekende polygon codering. Alstublieft melden!</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation>Dit is een bestand met onbekende polylijn codering. Alstublieft melden!</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>dun</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>normaal</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>breed</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>vet</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Kloon</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Gebied: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Vorm gebied aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Naam aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Lijndikte aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Opvulling aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Transparantie aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Notitie aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Beschrijving aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Link aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Kleur aangepast</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_Kloon</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Naam aangepast.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Notitie aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Beschrijving aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Link aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished">Lengte: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation type="unfinished">Tijd: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation type="unfinished">Afstand: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Lengte: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Tijd: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Laatste routeberekening:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>met %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Routepunten aangepast.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Kan %1 niet openen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Alleen lon/lat WGS 84 formaat word ondersteunt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Failed to read data.</source>
+        <translation>Lezen gegevens mislukt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_Kloon</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <source>Changed trackpoints, sacrificed all previous data.</source>
+        <translation>Trackpunten aangepast, vorige gegevens overschreven.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Start: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Einde: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Punten: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... en %1 tags niet getoont</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>, %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation type="unfinished">Lengte: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <source>, %1%2%3, %4%5%6</source>
+        <translation type="unfinished">, %1%2 %3, %4%5%6 {1%2%3,?}</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="393"/>
+        <source>, %1-, %2-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="463"/>
+        <source>Invalid slopes!</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished">Hoogte.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation type="unfinished">Afstand: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Permanent verwijderde punten %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Toon punten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Naam aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Notitie aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Beschrijving aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Link aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Activiteit aangepast naar '%1' voor gehele track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Activiteit aangepast naar '%1' voor bereik(%2..%3).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Verberg alle punten via Douglas Peuker algoritme (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Verander alle verborgen trackpunten naar zichtbaar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Alle verborgen trackpunten permanent verwijderd</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Vloeiend profiel met een median filter van grootte %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Vervang hoogte gegevens met gegevens van DEM bestanden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Start van track veranderd naar %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Verwijder tijdstempels.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Snelheid veranderd naar %1%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (Segment %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Kopieer flag informatie vanuit QLandkarte GT track</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Gearchiveerd</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Beschikbaar</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>Niet beschikbaar</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_Kloon</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation type="unfinished">Hoogte: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation type="unfinished">Nabijheid: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Naam aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Positie aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Hoogte aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Nabijheid aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Pictogram aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Notitie aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Beschrijving aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Link aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Afbeelding aangepast</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Afbeelding toevoegen</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Door  een aanpassing in het database systeem is QMapShack de bestandnaam van database ''%1' vergeten. Selecteer dit weer in de volgende stap.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Selecteer database bestand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Database toevoegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Map toevoegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Map verwijderen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Element verwijderen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Syngroniseren met database</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Database verwijderen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Leeg</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Database verwijderen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Moet '%1' werkelijk uit de lijst verwijderd worden?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Verwijder database map...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Elementen verwijderen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Moeten alle elementen worden verwijderd uit Verloren & Gevonden? Dit zal pemanent zijn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Moeten alle geselecteerde elementen worden verwijderd uit Verloren & Gevonden? Dit zal pemanent zijn.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Moet '%1' uit map '%2' verwijderd worden?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Verwijderen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Bewerken..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Toon op kaart</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Toon niet op kaart</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Opslaan</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Verzend naar GPS</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Syngroniseren met database</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Sluiten</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Update project op GPS</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Verwijder</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Bewerken...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Kopieer naar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Track profiel</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Selecteer afstand</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Trackpunten bewerken</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Track omdraaien</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Combineer tracks</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Toon ballon</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Verplaats waypoint</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Projecteer waypoint...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Route instructies</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Route berekenen</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Route omkeren</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Bewerk route</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Bewerk gebied punten</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Maak route</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Elementen wissen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
+        <translation><b>Updaten GPS</b><p>Updaten %1<br/>Moment geduld...</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Werkruimte opslaan. Moment geduld.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Laden werkruimte. Moment geduld.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Sluit alle projecten...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>Dit zal alle projecten uit de werkruimte verwijderen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation>Project verwijderen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Moet %1 werkelijk verwijderd worden?</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation type="unfinished">Project laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation type="unfinished">Het project "%1" is al geopend.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation type="unfinished">Kopieer elementen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation type="unfinished">Track knippen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation type="unfinished">Moet de orginele track verwijderd worden?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation type="unfinished">Geen GPX bestand: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation type="unfinished">Bestand bestaat al...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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 type="unfinished">Dit bestand bestaat al en is niet in QMapShack gemaakt. Wanneer op 'Ja' geklikt wordt zullen er gegevens verloren gaan. Alhoewel QMapShack dit GPX bestand kan openen is het mogelijk dat niet alle elementen opgeslagen kunnen worden. Geadviseerd wordt om een ander bestand te kiezen. <b>Moet dit bestand werkelijk overschreven worden?<b/></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation type="unfinished">Maken bestand mislukt '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation type="unfinished">Schrijven bestand mislukt '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation type="unfinished">Opslaan GIS gegevens mislukt...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1m, %2m </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>N %1m, O %2m </translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation> per %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>QLandkarte database importeren</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Bron database selecteren...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Doel database selecteren...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Snelheid</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Cadans</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Diepte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Diepte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Cadans</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Snelheid</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Richting</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Richting</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Afstand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished">Hoogte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Helling</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished">Voortgang</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Lost & Found</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation type="unfinished">Hoogte.: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Raster: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>GIS gegevens laden...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Selecteer bestand</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Selecteer bestand</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Mislukt...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Ongespecificeerd</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Frans</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Duits</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Nederlands</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Engels</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Italiaans</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Fins</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Zweeds</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Spaans</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Baskisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Catalaans</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Galicisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Wels</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Gaelisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Deens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Noors</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Portugees</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Slowaaks</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Tsjechisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Kroatisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Hongaars</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Pools</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Turks</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Grieks</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Sloveens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Russisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Ests</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Lets</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Roemeens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Albanisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Bosnisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Litouws</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Servisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Macedonisch</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Bulgaars</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Belangrijke snelweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Gewone snelweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Andere snelweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Uitvalsweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Verzamelweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Woonstraat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Laan/privéweg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Snelweg oprit, langzame snelheid</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Snelweg oprit, hoge snelheid</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Onverharde weg</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Belangrijke snelwegknooppunt</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Rotonde</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Spoorlijn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Kustlijn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Pad</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Stroom</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Tijdzone</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Veerdienst</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Staat/provinciegrens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Provincie/gemeentegrens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Internationale grens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Rivier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Klein hoogteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Gemiddeld hoogteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Groot hoogteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Klein diepteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Gemiddeld diepteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Groot diepteverschil</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Intermitterende beek</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Landingsbaan</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Pijplijn</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Hoogspanningsleiding</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Zeegrens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Gevaarlijke grens</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Groot bevolkt gebied (&gt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Klein bevolt gebied (&lt;200K)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Landelijk woongebied</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Militaire basis</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Parkeerterrein</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Parkeergarage</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Vliegveld</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Winkelcentrum</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Jachthaven</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Universiteit/College</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Ziekenhuis</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Industrie</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Reservaat</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Gemaakt gebied</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Sprtcomplex</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Golfbaan</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Begraafplaats</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Nationaal park</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Stadspark</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Staatspark</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Bos</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Oceaan</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation>Blauw (onbekend</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Zee</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Groot meer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Middelmatig meer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>Klein meer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Belangrijk meer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Belangrijke rivier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Groot rivier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Middelmatig rivier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Klein rivier</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Intermitterende water</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Moeras</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Gletsjer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Boomgaard/Plantage</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Struikgewas</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Toendra</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Vlak</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Lezen mislukt:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Openen mislukt:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Verkeerd bestandsformaat:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Lezen bestandsstructuur mislukt:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Laden %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Afgebroken door gebruiker: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>Bestand is in NT formaat. QMapShack kan geen kaarten lezen met NT formaat:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Interessant punt</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Onbekend</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Gebied</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Deactiveer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Activeer</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>Waar moeten de kaarten opgeslagen worden?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Openen mislukt:</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Verkeerd bestandsformaat:</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Maak of verwijder mappen naar kaarten.-Er kunnen meerdere kaarten in een map zijn maar geen submappen Ondersteunende formaten zijn: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Selecteer kaartmap...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Selecteer hoofdmap...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Dit is geen TwoNav RMAP bestand.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Onbekend sub formaat.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Onbekende versie.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Kan geen referentiepunten lezen.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Onbekende projectie en datum (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Laag-%1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Bestand laden mislukt: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Bestand moet 8 bit kleur of grijs geindexeerd zijn.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>Geen geografische gegevens gevonden.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>GDAL VRT maken</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Selecteer bestanden...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Selecteer doel bestand...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! klaar !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Lezen mislukt: %1
+Onbekende structuur.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Onverwachte service. '*WMTS 1.0.0' is verwacht. '%1 %2' is gelezen.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>Geen geografische gegevens gevonden.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Gebied</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Bewerk gebied</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Route</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Bewerk route punten</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Bewerk track punten</b><br/>Selecteer een functie en een routeoptie via de gereedschapknoppen. Selecteer dan een punt op de lijn. Alleen zwarte vierkante punten kunnen gewijzigd worden. De ronde zwarte subpunten niet.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Waarschuwing!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Dit zal alle gegevens overschrijven van het origineel door een simpele lijn met coördinaten. Alle andere gegevens zullen verloren gaan.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Maak waypoint</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Maak track</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Maak route</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Maak gebied</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Kopieer positie</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Kopieer positie (Raster)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Selecteer afbeeldingen...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation type="unfinished">Tijd</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Kaart afdrukken...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Sla kaart op als afbeelding...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Printer instellingen...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Pagina's: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Zoom met muiswiel op kaart om resulotie te veranderen:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Pagina's afdrukken.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Kaart opslaan...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Verstreken tijd: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Verstreken tijd: %1 seconden.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>noord</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>zuid</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>De waarde
+'%1'
+is geen geldig coordinaat definitie:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Bewerk naam...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Geef  waypoint een nieuwe naam.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation type="unfinished">Openen mislukt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Migreren database van versie 4 naar 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Migreren database van versie 5 naar 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Migreren database van versie 6 naar 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Migreren database van versie 7 naar 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Migreren database van versie 8 naar 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Open database: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Mappen:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Tracks:           %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Routes:           %1 (Alleen de basis route zal gekopieerd worden)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Waypoints:        %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Overlays:         %1 (gebieden zullen worden omgezet als gebieden, afstandlijnen zullen worden omgezet als tracks, alle andere overlay onderdelen zullen verloren gaan)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Dagboeken:          %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Kaarselecties: %1 Kunnen niet omgezet worden door QMapShack)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Start omzetten database naar %1------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Kan geen database maken.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------ Geannuleerd ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------ Klaar ------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Herstel mappen...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>Geimporteerd %1 mappen en %2 dagboeken</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Kopieer elementen...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>Geimporteerd %1 tracks, %2 waypoints, %3 routes, %4 gebieden</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Importeer mappen...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>Overlay van type '%1' kan niet omgezet worden</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Slechte track...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Bestaand bestand...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Verwijder bestaand %1?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Verwijder bestaand bestand %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: verwerp element met QLTG DB ID %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Openen mislukt...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Openen mislukt-%1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation type="unfinished">Bereken route met %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation type="unfinished"><br/>Berekenen tijd: %1s</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation type="unfinished">Waarschuwing...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation type="unfinished">Waarschuwing...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation type="unfinished">!!! klaar !!!
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation type="unfinished">!!! Mislukt !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Snelst</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Kortst</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Fiets</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Wandelen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>VS Engels</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Brits Engels</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Deens</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Nederlands</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Frans</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Duits</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Italiaans</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Noors</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Spaans</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Zweeds</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>Modus '%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>geen snelwegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>geen tolwegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>geen seizoenswegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>onverhard</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>geen veer</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>geen grensovergangen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Route aanvraag naar server gezonden. Moment geduld...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Geen reactie van server:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Berekenen tijd: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Waarschuwing...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Routini gevonden met verkeerde versie. Verwachtte %1 gevonden %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>Kortst</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>Snelst</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>Wandelen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>Paard</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Rolstoel</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Fiets</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Brommer</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Motorfiets</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Auto</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Goederen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Engels</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Duits</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Frans</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Hongaars</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Nederlands</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Russisch</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Pools</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Een functie werd aangeroepen zonder database variabelen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Een functie werd aangeroepen zonder profiel variabelen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Een functie werd aangeroepen zonder vertaling variabelen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>De opgegeven database bestaat niet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>De opgegeven database kan niet geladen worden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>Het opgegeven XML profiel bestaat niet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>Het opgegeven XML profiel kan niet geladen worden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>De opgegeven XML vertaling bestaat niet.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>De opgegeven XML vertaling kan niet geladen worden.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>De opgevraagde profielnaam bestaat niet in geladen XML bestand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>De opgevraagde vertaling bestaat niet in geladen XML bestand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>Profiel en database kunnen niet samenwerken.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>Het gebruikte profiel is niet gevalideerd.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>Door gebruiker opgegeven profiel bevat ongeldige gegevens.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>De opgegeven routing opties komen niet overeen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>Er is een verschil is tussen de bibliotheek en de gebruiker API-versie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>Berekening route was geanuleerd door gebruiker.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>Er kon geen route gevonden worden naar waypoint %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Onbekende fout: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>Profiel "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, modus "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Bereken route met %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Berekenen tijd: %1s</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Maak of verwijder mappen naar Routino gegevens.-Er kunnen meerdere bestanden in een map zijn maar geen submappen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Selecteer routing gegevensmap...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (offline)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (online)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Maak Routino database</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Selecteer bestanden...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Selecteer doel map...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! klaar !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation type="unfinished">Fout...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Onbekende reactie</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Fout: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>Er is al een database met naam '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Nieuwe database...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Open database...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Instelling database...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Veranderingen zullen na herstart toegepast worden.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Kan bestand %1 niet laden...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 bestaat niet</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>Geen SLF bestand: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Niet ondersteunende revisie %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Pauze %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Ronde %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation type="unfinished">%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation type="unfinished">Kan bestand %1 niet laden...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation type="unfinished">Openen mislukt-%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation type="unfinished">Lezen mislukt: %1
+lijn %2, kolom %3:
+ %4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation type="unfinished">Bestand bestaat al...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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 type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation type="unfinished">Richting</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation type="unfinished">Activiteit</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation type="unfinished">Maken bestand mislukt '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation type="unfinished">Schrijven bestand mislukt '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation type="unfinished">Opslaan GIS gegevens mislukt...</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Kleur...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Kan %1 niet openen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Sla GIS gegevens op naar...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Alleen lon/lat WGS 84 formaat word ondersteunt.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Lezen gegevens mislukt.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>Over...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation><b>QMapShack<b>, Versie</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>TextLabel</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation>Qt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation>GDAL</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation>Proj4</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Tsjechisch:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Duits:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Nederlands:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Frans:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation>Rainer Unseld</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation type="unfinished">© 2014 Oliver Eichler (oliver.eichler at gmx.de) {2016 ?} {2017 ?}</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation>Pavel Fric</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Vertaling:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Spaans:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation>Win64:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation>OS X:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Binaries:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Medewerkers:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation>Jose Luis Domingo Lopez</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation>Ivo Kronenberg</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation>Helmut Schmidt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>..en een dank naar alle Linux binarie beheerders voor het geleverde werk. Speciale dank aan  Dan Horák en Bas Couwenberg voor het tonen van hun aanwezigheid op de mailinglijst om de distributie-gerelateerde onderwerpen te bespreken.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Deze software is gelicenseerd onder GPL3 of latere versies</translation>
+    </message>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Kaartinstellingen...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Projectie & Datum</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Schalen</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Logarithmisch</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialoog</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Combineer tracks...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Coördinaat formaat...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>N48° 53.660 O013° 31.113</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>N48.8943° O013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>N48° 53' 39.6" O13° 31' 6.78"</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Maak route van waypoints</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Track knippen</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Verwijder eerste deel van track en bewaar tweede deel</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Bewaar beide delen van track</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Bewaar eerste deel van track en verwijder tweede deel</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Controleer eerst voordat dit in een nieuwe track opgelagen wordt. 
+
+Voor het opslaan van beide delen dienen er nieuwe tracks gemaakt te worden. 
+
+Als er alleen een halve track bewaard moet worden kunnen de overige punten verwijderd worden, of controleer dit bij het maken van de nieuwe track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Maak een nieuwe track</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Migreren database...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Fout...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Wachtwoord...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Wachtwoord voor database '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Map met DEM bestanden instellen</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Verander transparantie van kaart</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klik om huidige schaal als minimumschaal op kaart te tonen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Instellen van het bereik van de schaal van de kaart wordt weergegeven. Gebruik de twee knoppen links en rechts om de omvang te definiëren als minimale of maximale omvang.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klik om huidige schaal als maximumschaal op kaart te tonen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Hillshading</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Helling </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation>> </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Gebruik het menu (rechter muisklik op item) om bestand te activeren. Gebruik selecteer en slepen om geactiveerde bestanden in volgorde te plaatsen.</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Activeer</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Omhoog</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Verberg DEM onder vorige</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Omlaag</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Toon DEM op de volgende</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>DEM herladen</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation>Dialoog</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Positie:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Moeilijkheid</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Terrein</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Spoilers bijwerken</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation>Over:leeg</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Hint:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialoog</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Kleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Lijndikte</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Stijl</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Transparantie</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Punten</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Positie</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>Historie</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Sleutelwoorden:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Behoud volgorde van project</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Sorteer langs route (multi)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Sorteer langs route (enkel)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Dagboek afdrukken</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Dagboek herindelen.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation>-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Profiel</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Snelheid</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Stijl</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Bron</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Maximum</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Minimum</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Grafieken</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Kleur</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Activiteit</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Om de track statistieken te onderscheiden selecteer een activiteit uit de lijst voor de volledige track. Of selecteer een deel van de track om een activieteit toe te kennen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Punten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Tijd</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Hoogte</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Delta</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Afstand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Helling</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Positie</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Filter</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Dialoog</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Info</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Positie:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Hoogte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Nabijheid:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Schrijfbeveiliging ingeschakeld. Klik op het slot om te kunnen bewerken.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Datum/Tijd:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Afbeelding toevoegen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Verwijder geselecteerde afbeelding.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>Hist.</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Er is al een ander project met dezelfde naam. Bij drukken op 'OK' zal deze overschreven worden.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Bewerk hoogte...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Hoogte</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Neem hoogte gegevens over van DEM (digital elevation model).</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation type="unfinished">Start</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation type="unfinished">Annuleren</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation type="unfinished">Sluiten</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Verwijder trackpunten</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Verwijder permanent alle verborgen trackpunten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Verberg punten (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Verberg trackpunten wanneer de afstand tussen naaste punten minder is dan</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Nu filter toepassen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Verberg ongeldige punten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Vloeiend profiel (Mediaans methode)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Vloeiend hoogteverschil van trackpunten-maken met een Mediaans filter van </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation>punten</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Verander tijd</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Verander start van track naar </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>dd.MM.yy UU:mm:ss</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Onduidelijke tijdstempels</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Verhoog tijdstempels met</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation> sec.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>voor elk trackpunt. 0 sec. zal tijdstempels verwijderen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Hoogte aanpassen</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Verander hoogte naar</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>van trackpunt hoogte.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Vervang hoogtegegevens</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Vervang hoogte van trackpunten met gegevens van geladen DEM bestand.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Herstel verborgen trackpunten</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Maak alle trackpunten weer zichtbaar.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Verander snelheid</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation type="unfinished">Snelheid</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> km/u</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation type="unfinished">Nu filter toepassen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Maak delen in een track</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Maakt een nieuwe track van delen in deze track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation type="unfinished">Om nieuwe database te maken doe een rechterklik op database erboven.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[geen naam]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>Het item is geen deel van het project in de database.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>Het item is niet in de database.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>Het item dient opgeslagen te worden</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Orginele versie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1<h3>Dit element is waarschijnlijk alleen lezen omdat dit niet gemaakt is in QMapShack. Normaal hoeven geen gegevens aangepast te worden na het importeren.  Om toch aan te passen druk dan op 'OK'.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Alleen lezen modus...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Beschrijving:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>--- geen beschrijving ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Notitie:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>--- geen notitie ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Links:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>--- geen links ---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation type="unfinished">Bewerk naam...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Project opslaan?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3>Het project is veranderd. Voor het sluiten opslaan?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: Correlatie van tracks en waypointen.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3>Duurde dit te lang? Moet de correlatie van tracks en waypointen in dit project in de toekomst overgeslagen worden?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Correlatie geanuleerd...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Opslaan "%1" als...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Bestandsnaam: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Waypoints: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Tracks: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Routes: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Gebieden: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <source>Are you sure you want to delete '%1' from project '%2'?</source>
+        <translation>Moet '%1' werkelijk verwijderd worden uit project '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Verwijderen...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation type="unfinished">Transparantie</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation type="unfinished">Filter</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Raster instelling...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Projectie</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>standaardinstellingen herstellen</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Neem projectie van huidige kaart.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>projectie wizzard</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Rasterkleur</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>Instelling rasterkleur</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Bron database:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Doel database:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Bewerken...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Links...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Soort</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Tekst</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>URL</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Bestand</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Instellingen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Venster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Extra</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Kaarten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Dig. Elev. Model (DEM)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Nieuw venster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Toon schaal</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Lettertype kaart instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Toon raster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Raster instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation>Ctrl+Alt+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Draai muiswiel om</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Map met kaarten instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>POI tekst</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Dag/Nacht</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Map Tool Tip</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Map DEM instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>Over</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Help</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Kaartinstellingen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>GIS gegevens laden</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Project laden uit bestand</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>GIS gegevens opslaan</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation>Sla alle projecten op in werkruimte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Tijdzone instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Nieuw leeg project</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Zoeken Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Sluit alle projecten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation>F8</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Eenheden instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Werkruimte instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Oplaan bij afsluiten instellen.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Database van QLandkarte importeren</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>QLandkarte database importeren</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>VRT maken</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>GUI front end naar gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Kaart opslaan</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Schrijf huidige actieve kaart en DEM lijst inclusief de eigenschappen naar een bestand</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Kaart laden</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translation>Herstel huidige actieve kaart en DEM lijst inclusief de eigenschappen naar een bestand</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Ext. profiel</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Sluiten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Kloon venster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation>Ctrl+Shift+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Maak Routino database</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Kaartdeel opslaan/afdrukken</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Geselecteerde deel van kaart afdrukken</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Coördinaat formaat instellen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Getoonde coördinaat formaat aanpassen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation type="unfinished">Ctrl+D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation type="unfinished">F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation type="unfinished">Database</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Gebruik het menu (rechter muisklik op item) om kaart te activeren. Gebruik selecteer en slepen om geactiveerde kaarten in volgorde te plaatsen.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Help! Ik wil kaarten!
+Ik wil de documentatie niet lezen!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Activeer</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Omhoog</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Verberg DEM onder vorige kaart</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Omlaag</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Toon DEM op de volgende kaart</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Kaarten herladen</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation type="unfinished">Deze kaart heeft OpenSSL onderteuning nodig. Door restricte beperkingen in bepaalde landen kan QMapShack geen OpenSSL pakket aanbieden. Neem een kijkje op <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> voor binaries. Er kan wel libeay32.dll en ssleay32.dll in de QMapShack map gekopieerd worden.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation type="unfinished">Fout...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation type="unfinished"><b>%1</b>: %2 delen ontvangen<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Map met kaarten instellen</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Hoofdmap voor oplslaan van online kaarten:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Help! Ik wil kaarten!
+Ik wil de documentatie niet lezen!</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Verander transparantie van kaart</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klik om huidige schaal als minimumschaal op kaart te tonen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Instellen van het bereik van de schaal van de kaart wordt weergegeven. Gebruik de twee knoppen links en rechts om de omvang te definiëren als minimale of maximale omvang.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Klik om huidige schaal als maximumschaal op kaart te tonen.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Gebieden</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Lijnen</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Punten</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Cache grootte (MB)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Vervaltijd (dagen)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Cachemap</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Selecteer bronbestand:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Doel bestandsnaam:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Nieuwe lijn</b><br/>Verplaats de muis en gebruik linker muisknop om een punt te plaatsen. Gebruik rechter muisknop om te stoppen.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Verwijder punt</b><br/>Beweeg de muis dicht bij een punt en druk op linkermuisknop om te verwijderen.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Selecteer reeks punten</b><br/>Klik op eerste punt van reeks. Klik op laatste punt van reeks en selecteer een optie. Gebruik rechter muisknop om te annuleren.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Verplaats punt</b><br/>Beweeg de muis dicht bij een punt en druk op linkermuisknop om het punt te laten plakken. Beweeg de muis om het punt te verplaatsen. Laat het punt los met linker muisknop. Gebruik rechterknop om te annuleren.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Punt toevoegen</b><br/>Beweeg de muis dicht bij een lijndeel en druk op linkermuisknop om het punt te laten plakken. Beweeg de muis om het punt te verplaatsen. Laat het punt los met linker muisknop. Gebruik rechterknop om te annuleren.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Geen routing</b><br/>Alle punten zullen met rechte lijnen verbonden worden.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Auto routing</b><br/>De huidige instelling wordt gebruikt voor berekening van een route tussen punten. <b>Notitie:</b>De geselecteerd route moet zelf routes kunnen maken. Offline routers kunnen dit online routers meestal niet.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Vector routing</b><br/>Verbind punten met een lijn op een geladen vector kaart indien mogelijk.</br></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1 gegevens</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Afstand:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Herstel zoom</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Stop bereik</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Opslaan...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation type="unfinished">Maak waypoint</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Geen of ontbrekende gegevens.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Selecteer bestand</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Positie...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Geef nieuwe positie op</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Verkeerde invoer. Moet zijn: 
+"[N|Z] ddd mm.sss [W|O] ddd mm.sss"
+of
+"[N|Z] ddd.ddd [W|O] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Kaart afdrukken...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Opslaan</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Afdrukken</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Moment geduld...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation>Mercator</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation>UTM</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>zone</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>gebruikersinstelling</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation>Wereld Mercator (OSM)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Resultaat:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS noord (Noordpool)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS zuid (Zuidpool)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Projectie</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Waypoint projectie</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Kopieer waypoint en verplaats naar:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation>m</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation type="unfinished">Profiel</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translation type="unfinished">Over:leeg</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Snelwegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Seizoenswegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Taal</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Landgrenzen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Profiel</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Vermijd:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Veerboten</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Tolwegen</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Onverhard</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Routebeschrijving afkomstig van <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Profiel</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Modus</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>Database</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Map toevoegen met Routino database.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Taal</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Routino database instellen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Selecteer bronbestand:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Doelmap:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Bestandsextentie</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation type="unfinished">Bron</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Opslaan als origineel</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Opslaan als nieuw</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Annuleren</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Verplaats punten. (Ctrl+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Maak nieuwe punten. (Ctrl++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>Ctrl++</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Selecteer een reeks punten. (Ctrl+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Geen auto-routing of startlijn (Ctrl+O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation>O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Gebruik auto-routing tussen punten. (Ctrl+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Start de lijn langs een lijn van een vector kaart. (Ctrl+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Wis laatste verandering</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Herplaats laatste verandering</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Bekijk details en bewerk.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Kopieer gebied in ander project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Verwijder gebied uit project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Verander vorm van het gebied.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>TextLabel</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Verwijder alle punten tussen eerste en laatste punt.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Bereken een route tussen het eerste en laatst geselecteerde punt..</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Verberg alle punten.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Toon alle punten.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Kopieer trackpunten naar een nieuwe track.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Bekijk details en bewerk.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Kopieer route in een ander project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Verwijder route uit project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Bereken route.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Herstel route berekening.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Verplaats route punten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Bekijk details en bewerk eigenschappen van de track.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Kopieer track in een ander project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Verwijder track uit project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Toon op scherm het profiel en gedetaileerde informatie van de punten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Selecteer een reeks punten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Bewerk positie van trackpunten.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Draai trackrichting.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Combineer tracks.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Knip track op geselecteerde punt. Dit kan ook gebruikt worden om:
+
+* ongeldige punten aan start of eind van track te verwijderen
+* trackdelen te gebruiken voor nieuwe track
+* een lange track in etappes te verdelen
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Bekijk details en bewerk.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Kopieer waypoint in een ander project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Verwijder waypoint uit project.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Toon gegevens in een statische ballon.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Verplaats waypoint naar een nieuwe locatie.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Kloon waypoint en verplaats deze naar aangegeven afstand en hoek.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation type="unfinished">Sluiten</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Selecteer GPS...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation>Formulier</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Element kopiëren...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Vervang bestand element</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>Element niet kopiëren</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Maak een kloon</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Vervang door:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Behoud element:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>De naam van de kloon zal aangeduid worden als '_Kloon'</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>En ook voor alle andere elementen.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Selecteer map...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Naam</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation type="unfinished">Beschikbaar</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Selecteer een project...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Selecteer project uit lijst of maak nieuw project.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Naam nieuw project</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>Nieuw project wordt gemaakt als:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation>*.qms</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation>*.gpx</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>Database</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Element kopiëren...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Vervang bestand element</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Maak een kloon</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>De naam van de kloon zal aangeduid worden als '_Kloon'</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Vervang door:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>Benaming</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>Vervang element niet</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Gebruik element:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>En ook voor alle andere elementen.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Database toevoegen...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Naam </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Server</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>O {00000?}</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Gebruiker</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Wachtwoord</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Bestand:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Maak nieuwe database.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Open bestaande database.</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished">Formulier</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Databasemap...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Mapnaam</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Groep</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Project</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Anders</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Nieuw waypoint...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Symbool</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Positie</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Naam</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Verkeerde invoer. Moet zijn: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+of
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Instelling werkruimte...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>sla werkruimte op bij afsluiten en elke</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>minuten</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>O {00000?}</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Bewerk tekst...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Ongedaan maken</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Opnieuw</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Knippen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Kopiëren</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Plakken</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Links uitlijnen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Rechts uitlijnen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Gecentreerd</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Uitgevuld</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Onderstrepen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Vet</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Cursief</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation type="unfinished">Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation type="unfinished">Verwijder</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation type="unfinished">Knippen</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation type="unfinished">Kopiëren</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation type="unfinished">Plakken</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Tijdzone instellen...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>UTC</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Lokaal</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automatisch</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Toon datum/tijd als</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>lang formaat, of</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>kort formaat</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation type="unfinished"><b>Notitie:</b>Na het wijzigingen  van de eenheden is het nodig om QMapShack opnieuw op te starten.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Starten van extern programma `%1` mislukt:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Het proces kan niet gestart worden.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>De benodigde pakketten dienen geïnstalleerd te zijn, `%1` bestaat en is uitvoerbaar.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>Extern proces is vast gelopen.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Een onbekende fout is opgetreden.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! Mislukt !!!
+</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Fout</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Verkeerde invoer. Moet zijn: 
+"[N|Z] ddd mm.sss [W|O] ddd mm.sss"
+of
+"[N|Z] ddd.ddd [W|O] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Positiewaarden vallen buiten bereik. </translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Eenheden instellen...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Metrisch</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Notitie:</b>Na het wijzigingen  van de eenheden is het nodig om QMapShack opnieuw op te starten.</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Imperial</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Iconen...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation type="unfinished">-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation type="unfinished">...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/src/locale/qmapshack_ru.desktop b/src/qmapshack/locale/qmapshack_ru.desktop
similarity index 100%
rename from src/locale/qmapshack_ru.desktop
rename to src/qmapshack/locale/qmapshack_ru.desktop
diff --git a/src/qmapshack/locale/qmapshack_ru.ts b/src/qmapshack/locale/qmapshack_ru.ts
new file mode 100644
index 0000000..992fa73
--- /dev/null
+++ b/src/qmapshack/locale/qmapshack_ru.ts
@@ -0,0 +1,10901 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="ru_RU">
+<context>
+    <name>CAbout</name>
+    <message>
+        <location filename="../CAbout.cpp" line="46"/>
+        <source>%1 (API V%2, expected V%3)</source>
+        <translation>%1 (API версия %2, ожидаемая версия: %3)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="50"/>
+        <source>%1 (API V%2)</source>
+        <translation>%1 (API версия %2)</translation>
+    </message>
+    <message>
+        <location filename="../CAbout.cpp" line="57"/>
+        <source>(no DBUS: device detection and handling disabled)</source>
+        <translation>(Нет DBUS: обнаружение устройств и управление ими отключено)</translation>
+    </message>
+</context>
+<context>
+    <name>CActivityTrk</name>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="51"/>
+        <source>Foot</source>
+        <translation>Пешком</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="59"/>
+        <source>Bicycle</source>
+        <translation>Велосипед</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="67"/>
+        <source>Motor Bike</source>
+        <translation>Мотоцикл</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="75"/>
+        <source>Car</source>
+        <translation>Автомобиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="83"/>
+        <source>Cable Car</source>
+        <translation>Фуникулёр</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="91"/>
+        <source>Swim</source>
+        <translation>Плавание</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="99"/>
+        <source>Ship</source>
+        <translation>Корабль</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="115"/>
+        <source>Ski/Winter</source>
+        <translation>Лыжи/зима</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="161"/>
+        <source>No Activity</source>
+        <translation>Нет активности</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="318"/>
+        <source>Total</source>
+        <translation>Всего</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="348"/>
+        <source>Ascent:</source>
+        <translation>Подъём:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="372"/>
+        <source>Descent:</source>
+        <translation>Спуск:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="107"/>
+        <source>Aeronautics</source>
+        <translation>Аэронавтика</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="123"/>
+        <source>Public Transport</source>
+        <translation>Общественный транспорт</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="324"/>
+        <source>Distance:</source>
+        <translation>Расстояние:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="396"/>
+        <source>Speed Moving:</source>
+        <translation>Скорость движения:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="420"/>
+        <source>Speed Total:</source>
+        <translation>Общая скорость:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="444"/>
+        <source>Time Moving:</source>
+        <translation>Время движения:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CActivityTrk.cpp" line="468"/>
+        <source>Time Total:</source>
+        <translation>Общее время:</translation>
+    </message>
+</context>
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="65"/>
+        <source>View %1</source>
+        <translation>Вид %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="748"/>
+        <source>Setup Map Background</source>
+        <translation>Настройка фона карт</translation>
+    </message>
+</context>
+<context>
+    <name>CColorChooser</name>
+    <message>
+        <location filename="../widgets/CColorChooser.cpp" line="54"/>
+        <source>Esc.</source>
+        <translation>Esc.</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Печатать отладочный вывод на консоль.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Печатать отладочную информацию в файл журнала (путь Temp).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Не показывать экран-заставку.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapShack configuration.</source>
+        <translation>Файл с конфигурацией QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>файл</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="43"/>
+        <source>Files for future use.</source>
+        <translation>Файлы для будущего использования.</translation>
+    </message>
+</context>
+<context>
+    <name>CCreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/CCreateRouteFromWpt.cpp" line="68"/>
+        <source>route</source>
+        <translation>маршрут</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderLostFound</name>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="30"/>
+        <source>All your data grouped by folders.</source>
+        <translation>Все ваши данные сгруппированы по папкам.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="59"/>
+        <source>Lost & Found (%1)</source>
+        <translation>Потеряно и найдено (%1)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderLostFound.cpp" line="64"/>
+        <source>Lost & Found</source>
+        <translation>Потеряно и найдено</translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderMysql</name>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="59"/>
+        <source>MySQL Database</source>
+        <translation>База данных MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="62"/>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="66"/>
+        <source>Server: </source>
+        <translation>Сервер: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="71"/>
+        <source> (No PW)</source>
+        <translation> (Нет пароля)</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderMysql.cpp" line="79"/>
+        <source>Error: </source>
+        <translation>Ошибка: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBFolderSqlite</name>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="51"/>
+        <source>SQLite Database</source>
+        <translation>База данных SQLite</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="61"/>
+        <source>File: </source>
+        <translation>Файл: </translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBFolderSqlite.cpp" line="65"/>
+        <source>Error: </source>
+        <translation>Ошибка: </translation>
+    </message>
+</context>
+<context>
+    <name>CDBItem</name>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="91"/>
+        <source>%1 min.</source>
+        <translation>%1 мин.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="95"/>
+        <source>%1 h</source>
+        <translation>%1 ч.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBItem.cpp" line="99"/>
+        <source>%1 days</source>
+        <translation>%1 дней</translation>
+    </message>
+</context>
+<context>
+    <name>CDBProject</name>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="114"/>
+        <source>Failed to load...</source>
+        <translation>Не удалось загрузить...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="115"/>
+        <source>Can't load file "%1" . It will be skipped.</source>
+        <translation>Загрузить файл %1 не удалось. Он будет пропущен.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="128"/>
+        <source>Project already in database...</source>
+        <translation>Проект уже в базе данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="129"/>
+        <source>The project "%1" has already been imported into the database. It will be skipped.</source>
+        <translation>Проект "%1" уже был загружен в базу данных. Он будет пропущен.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="294"/>
+        <source>The item %1 has been changed by %2 (%3). 
+
+To solve this conflict you can create and save a clone, force your version or drop your version and take the one from the database</source>
+        <translation>Элемент %1 изменен пользователем %2 (%3).
+
+Для решения этого конфликта можно создать и сохранить клон, заставить вашу версию или бросить вашу версию и взять версию базы данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="300"/>
+        <source>Conflict with database...</source>
+        <translation>Конфликт с базой данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="301"/>
+        <source>Clone && Save</source>
+        <translation>Клонировать и сохранить</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="302"/>
+        <source>Force Save</source>
+        <translation>Сохранить принудительно</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="303"/>
+        <source>Take remote</source>
+        <translation>Взять удаленную версию</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="590"/>
+        <source>Missing folder...</source>
+        <translation>Отсутствует папка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="591"/>
+        <source>Failed to save project. The folder has been deleted in the database.</source>
+        <translation>Не удалось сохранить проект. Папка удалена из базы данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="598"/>
+        <source>Save ...</source>
+        <translation>Сохранить ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>Error</source>
+        <translation>Ошибка</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="662"/>
+        <source>There was an unexpected database error:
+
+%1</source>
+        <translation>Неожиданная ошибка в базе данных:
+
+%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="778"/>
+        <source>The project '%1' is about to update itself from the database. However there are changes not saved.</source>
+        <translation>Проект '%1' собирается обновить себя с базы данных. Однако имеются несохранённые изменения.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CDBProject.cpp" line="779"/>
+        <source>Save changes?</source>
+        <translation>Сохранить изменения?</translation>
+    </message>
+</context>
+<context>
+    <name>CDemList</name>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Deactivate</source>
+        <translation>Деактивировать</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemList.cpp" line="195"/>
+        <source>Activate</source>
+        <translation>Активировать</translation>
+    </message>
+</context>
+<context>
+    <name>CDemPathSetup</name>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="41"/>
+        <source>Add or remove paths containing DEM data. There can be multiple files in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Добавить или удалить путь к данным ЦМР. Несколько файлов может быть в пути, но вложенные пути не проанализированы. Поддерживаемые форматы: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemPathSetup.cpp" line="56"/>
+        <source>Select DEM file path...</source>
+        <translation>Выбрать путь к файлам ЦМР...</translation>
+    </message>
+</context>
+<context>
+    <name>CDemVRT</name>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="44"/>
+        <source>Failed to load file: %1</source>
+        <translation>Не удалось загрузить файл: %1</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="52"/>
+        <location filename="../dem/CDemVRT.cpp" line="61"/>
+        <source>DEM must have one band with 16bit or 32bit data.</source>
+        <translation>ЦМР должен иметь одну полосу с 16бит или 32бит данными.</translation>
+    </message>
+    <message>
+        <location filename="../dem/CDemVRT.cpp" line="90"/>
+        <source>No georeference information found.</source>
+        <translation>Отсутствует геопозиционная информация.</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <source>none</source>
+        <translation>Нет</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="61"/>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="131"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="158"/>
+        <source>Searching for images...</source>
+        <translation>Поиск изображений...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CDetailsGeoCache.cpp" line="264"/>
+        <source>No images found</source>
+        <translation>Изображения не найдены</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="127"/>
+        <source>You want to sort waypoints along a track, but you switched off track and waypoint correlation. Do you want to switch it on again?</source>
+        <translation>Вы желаете отсортировать маршрутные точки вдоль трека, но отключили корреляцию между треком и точками. Желаете включить её снова?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="128"/>
+        <source>Correlation...</source>
+        <translation>Корреляция...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="267"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="782"/>
+        <source>none</source>
+        <translation>нет</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="340"/>
+        <source>Build diary...</source>
+        <translation>Построить дневник...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="395"/>
+        <source><b>Summary over all tracks in project</b><br/></source>
+        <translation><b>Резюме всех треков в проекте</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="419"/>
+        <source><h2>Waypoints</h2></source>
+        <translation><h2>Маршрутные точки</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="426"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="452"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="579"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="717"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="747"/>
+        <source>Info</source>
+        <translation>Информация</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="427"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="453"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="580"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="718"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="748"/>
+        <source>Comment</source>
+        <translation>Комментарий</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="445"/>
+        <source><h2>Tracks</h2></source>
+        <translation><h2>Треки</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="597"/>
+        <source>Arrival: </source>
+        <translation>Прибытие: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>From Start</source>
+        <translation>С начала</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To Next</source>
+        <translation>До следующего</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="608"/>
+        <source>To End</source>
+        <translation>До конца</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="611"/>
+        <source>Distance: </source>
+        <translation>Расстояние: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="621"/>
+        <source>Time: </source>
+        <translation>Время: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="631"/>
+        <source>Ascent: </source>
+        <translation>Подъём: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="641"/>
+        <source>Descent: </source>
+        <translation>Спуск: </translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="710"/>
+        <source><h2>Areas</h2></source>
+        <translation><h2>Области</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="740"/>
+        <source><h2>Routes</h2></source>
+        <translation><h2>Маршруты</h2></translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Edit name...</source>
+        <translation>Изменить имя...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="768"/>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="795"/>
+        <source>Enter new project name.</source>
+        <translation>Ввести новое имя проекта.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Edit keywords...</source>
+        <translation>Изменить ключевые слова...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="777"/>
+        <source>Enter keywords.</source>
+        <translation>Ввести ключевые слова.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/CDetailsPrj.cpp" line="923"/>
+        <source>Print Diary</source>
+        <translation>Печатать дневник</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="168"/>
+        <source>Reduce visible track points</source>
+        <translation>Уменьшить число видимых точек трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="171"/>
+        <source>Change elevation of track points</source>
+        <translation>Изменить высоту точек трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="174"/>
+        <source>Change timestamp of track points</source>
+        <translation>Изменить метки времени точек трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="177"/>
+        <source>Miscellaneous</source>
+        <translation>Разное</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="407"/>
+        <source>Color</source>
+        <translation>Цвет</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CDetailsTrk.cpp" line="408"/>
+        <source>Activity</source>
+        <translation>Активность</translation>
+    </message>
+</context>
+<context>
+    <name>CDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/CDetailsWpt.cpp" line="167"/>
+        <source>Enter new proximity range.</source>
+        <translation>Ввести новый радиус близости.</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarmin</name>
+    <message>
+        <location filename="../device/CDeviceGarmin.cpp" line="272"/>
+        <source>Picture%1</source>
+        <translation>Изображение %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="1068"/>
+        <source>Unknown</source>
+        <translation>Неизвестно</translation>
+    </message>
+</context>
+<context>
+    <name>CDeviceGarminArchive</name>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="30"/>
+        <source>Archive - expand to load</source>
+        <translation>Архив - развернуть, чтобы загрузить</translation>
+    </message>
+    <message>
+        <location filename="../device/CDeviceGarminArchive.cpp" line="43"/>
+        <source>Archive - loaded</source>
+        <translation>Архив - загружен</translation>
+    </message>
+</context>
+<context>
+    <name>CElevationDialog</name>
+    <message>
+        <location filename="../helpers/CElevationDialog.cpp" line="92"/>
+        <source>No DEM data found for that point.</source>
+        <translation>Данные ЦМР для этой точки не найдены.</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabase</name>
+    <message>
+        <location filename="../gis/db/CExportDatabase.cpp" line="90"/>
+        <source>Select export path...</source>
+        <translation>Выбрать путь экспорта...</translation>
+    </message>
+</context>
+<context>
+    <name>CExportDatabaseThread</name>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="79"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="123"/>
+        <source>Create %1</source>
+        <translation>Создать %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="82"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="126"/>
+        <source>Failed to create %1</source>
+        <translation>Не удалось создать %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="88"/>
+        <source>Done!</source>
+        <translation>Сделано!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="100"/>
+        <source>Abort by user!</source>
+        <translation>Прекращение пользователем!</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="108"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="140"/>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="165"/>
+        <source>Database Error: %1</source>
+        <translation>Ошибка базы данных: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="153"/>
+        <source>Save project as %1</source>
+        <translation>Сохранить проект как %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CExportDatabaseThread.cpp" line="157"/>
+        <source>Failed!</source>
+        <translation>Не удалось!</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterDeleteExtension.cpp" line="57"/>
+        <source>No extension available</source>
+        <translation>Нет расширения</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="30"/>
+        <source>coarse</source>
+        <translation>грубо</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="31"/>
+        <source>medium</source>
+        <translation>нормально</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterInterpolateElevation.cpp" line="32"/>
+        <source>fine</source>
+        <translation>точно</translation>
+    </message>
+</context>
+<context>
+    <name>CFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="44"/>
+        <source>City</source>
+        <translation>городской</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="52"/>
+        <source>Trekking</source>
+        <translation>треккинг</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="55"/>
+        <source>Sportive</source>
+        <translation>спортивный</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="58"/>
+        <source>Mountain</source>
+        <translation>горный</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="61"/>
+        <source>Custom 0</source>
+        <translation>пользовательский 0</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="64"/>
+        <source>Custom 1</source>
+        <translation>пользовательский 1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="67"/>
+        <source>Custom 2</source>
+        <translation>пользовательский 2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/CFilterSpeed.cpp" line="181"/>
+        <source>Track has no or invalid elevation data. Please correct or set constant speed!</source>
+        <translation>Высотные данные трека отсутствуют или неверны. Пожалуйста исправьте или установите постоянную скорость!</translation>
+    </message>
+</context>
+<context>
+    <name>CFitCrcState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitCrcState.cpp" line="32"/>
+        <source>FIT decoding error : invalid CRC.</source>
+        <translation>Ошибка декодирования FIT: неверная контрольная сумма.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitDecoder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitDecoder.cpp" line="132"/>
+        <source>FIT decoding error: unexpected end of file %1.</source>
+        <translation>Ошибка декодирования FIT: неожиданный конец файла %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldBuilder</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldBuilder.cpp" line="77"/>
+        <source>FIT decoding error: unknown base type %1.</source>
+        <translation>Ошибка декодирования FIT: неизвестный базовый тип %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitFieldDataState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="116"/>
+        <source>Missing field definition for development field.</source>
+        <translation>Отсутствует определение поля для поля развития.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitFieldDataState.cpp" line="226"/>
+        <source>FIT decoding error: invalid field def nr %1 while creating dev field profile.</source>
+        <translation>Ошибка декодирования FIT: неправильный номер определения поля %1 при создании профиля поля развития.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitHeaderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="69"/>
+        <source>FIT decoding error: protocol %1 version not supported.</source>
+        <translation>Ошибка декодирования FIT: версия протокола %1 не поддерживается.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitHeaderState.cpp" line="120"/>
+        <source>FIT decoding error: file header signature mismatch. File is not FIT.</source>
+        <translation>Ошибка декодирования FIT: некорректная сигнатура в заголовке файла. Это не файл типа FIT.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitProject</name>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="61"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/CFitProject.cpp" line="93"/>
+        <source>Failed to open FIT file %1.</source>
+        <translation>Не удалось открыть FIT файл %1.</translation>
+    </message>
+</context>
+<context>
+    <name>CFitRecordContentState</name>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="70"/>
+        <source>FIT decoding error: architecture %1 not supported.</source>
+        <translation>Ошибка декодирования FIT: архитектура %1 не поддерживается.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/CFitRecordContentState.cpp" line="110"/>
+        <source>FIT decoding error: invalid offset %1 for state 'record content'</source>
+        <translation>Ошибка декодирования FIT: неправильное смещение %1 для состояния 'содержимое записи'</translation>
+    </message>
+</context>
+<context>
+    <name>CGarminTyp</name>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>Warning...</source>
+        <translation>Предупреждение...</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="457"/>
+        <source>This is a typ file with unknown polygon encoding. Please report!</source>
+        <translation>Файл типов с неизвестной кодировкой полигона. Сообщите об этой проблеме!</translation>
+    </message>
+    <message>
+        <location filename="../map/garmin/CGarminTyp.cpp" line="838"/>
+        <source>This is a typ file with unknown polyline encoding. Please report!</source>
+        <translation>Файл типов с неизвестной кодировкой полилинии. Сообщите об этой проблеме!</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="36"/>
+        <source>thin</source>
+        <translation>Тонко</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="37"/>
+        <source>normal</source>
+        <translation>Нормально</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="38"/>
+        <source>wide</source>
+        <translation>Широко</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="39"/>
+        <source>strong</source>
+        <translation>Строго</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_клон</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="400"/>
+        <source>Area: %1%2</source>
+        <translation>Область: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="471"/>
+        <source>Changed area shape.</source>
+        <translation>Изменена фигура области.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="479"/>
+        <source>Changed name.</source>
+        <translation>Изменено имя.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="485"/>
+        <source>Changed border width.</source>
+        <translation>Изменена ширина границы.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="491"/>
+        <source>Changed fill pattern.</source>
+        <translation>Изменён узор заливки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="497"/>
+        <source>Changed opacity.</source>
+        <translation>Изменена прозрачность.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="503"/>
+        <source>Changed comment.</source>
+        <translation>Изменён комментарий.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="509"/>
+        <source>Changed description.</source>
+        <translation>Изменено описание.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="515"/>
+        <source>Changed links</source>
+        <translation>Изменены ссылки</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/CGisItemOvlArea.cpp" line="526"/>
+        <source>Changed color</source>
+        <translation>Изменён цвет</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemRte</name>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="67"/>
+        <source>_Clone</source>
+        <translation>_клон</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="285"/>
+        <source>route</source>
+        <translation>маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="329"/>
+        <source>track</source>
+        <translation>трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="355"/>
+        <source>Changed name.</source>
+        <translation>Изменено имя.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="361"/>
+        <source>Changed comment</source>
+        <translation>Изменён комментарий</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="367"/>
+        <source>Changed description</source>
+        <translation>Изменено описание</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="373"/>
+        <source>Changed links</source>
+        <translation>Изменены ссылки</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="389"/>
+        <source>Length: %1%2</source>
+        <translation>Длина: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="400"/>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="650"/>
+        <source>Time: %1%2</source>
+        <translation>Время: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="652"/>
+        <source>Distance: %1%2</source>
+        <translation>Расстояние: %1 %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="393"/>
+        <source>Length: -</source>
+        <translation>Длина: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="404"/>
+        <source>Time: -</source>
+        <translation>Время: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="414"/>
+        <source>%1%2 %3, %4%5 %6</source>
+        <translation>%1%2 %3, %4%5 %6</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="420"/>
+        <source>Last time routed:<br/>%1</source>
+        <translation>Последнее время маршрутизации:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="422"/>
+        <source>with %1</source>
+        <translation>с %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/CGisItemRte.cpp" line="767"/>
+        <source>Changed route points.</source>
+        <translation>Изменены точки маршрута.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemTrk</name>
+    <message>
+        <location filename="../gis/fit/serialization.cpp" line="285"/>
+        <source>FIT file %1 contains no GPS data.</source>
+        <translation>FIT файл %1 не содержит данных GPS.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="211"/>
+        <location filename="../gis/tnv/serialization.cpp" line="347"/>
+        <source>Failed to open %1.</source>
+        <translation>Не удалось открыть %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="376"/>
+        <location filename="../gis/tnv/serialization.cpp" line="387"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Поддерживается долгота/широта только в формате WGS 84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="420"/>
+        <source>Failed to read data.</source>
+        <translation>Не удалось читать данные.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="78"/>
+        <source>_Clone</source>
+        <translation>_клон</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="261"/>
+        <source>Changed trackpoints, sacrificed all previous data.</source>
+        <translation>Изменены точки трека, удалены все предыдущие данные.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="393"/>
+        <source>, %1-, %2-</source>
+        <translation>, %1-, %2-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="401"/>
+        <source>Time: %1%2, Speed: %3%4</source>
+        <translation>Время: %1%2, скорость: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="405"/>
+        <source>Time: -, Speed: -</source>
+        <translation>Время: -, скорость: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="413"/>
+        <source>Moving: %1%2, Speed: %3%4</source>
+        <translation>В движении: %1%2, скорость: %3%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="417"/>
+        <source>Moving: -, Speed: -</source>
+        <translation>В движении: -, скорость: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="426"/>
+        <source>Start: %1</source>
+        <translation>Начало: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="430"/>
+        <source>Start: -</source>
+        <translation>Начало: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="436"/>
+        <source>End: %1</source>
+        <translation>Конец: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="440"/>
+        <source>End: -</source>
+        <translation>Конец: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="444"/>
+        <source>Points: %1 (%2)</source>
+        <translation>Точки: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="448"/>
+        <source>Invalid elevations!</source>
+        <translation>Неверные высоты!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="453"/>
+        <source>Invalid timestamps!</source>
+        <translation>Неверные метки времени!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="458"/>
+        <source>Invalid positions!</source>
+        <translation>Неверные позиции!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="472"/>
+        <source>Activities: %1</source>
+        <translation>Активности: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="584"/>
+        <source>Index: %1</source>
+        <translation>Индекс: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="588"/>
+        <source>Index: visible %1, total %2</source>
+        <translation>Индекс: видимо %1, всего %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="603"/>
+        <source>, Slope: %1%2</source>
+        <translation>, Склон: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="636"/>
+        <source>... and %1 tags not displayed</source>
+        <translation>... и %1 не показанных элементов</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="648"/>
+        <source>Distance: - (-)</source>
+        <translation>Расстояние: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="649"/>
+        <source>Moving: - (-)</source>
+        <translation>В движении: - (-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1339"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1352"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1408"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1452"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1591"/>
+        <source>track</source>
+        <translation>трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1543"/>
+        <source>Hide point %1.</source>
+        <translation>Скрыть точку %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1547"/>
+        <source>Hide points %1..%2.</source>
+        <translation>Скрыть точки %1..%2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="699"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="711"/>
+        <source>, %1%2</source>
+        <translation>, %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="124"/>
+        <source>Invalid points....</source>
+        <translation>Неверные точки...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="125"/>
+        <source>The track '%1' has %2 invalid points out of %3 visible points. Do you want to hide invalid points now?</source>
+        <translation>Трек '%1' имеет %2 неверных точек из %3 видимых точек. Вы хотите скрыть неверные очки?</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>min.</source>
+        <translation>мин.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="321"/>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1774"/>
+        <source>max.</source>
+        <translation>макс.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="382"/>
+        <source>Length: %1%2</source>
+        <translation>Длина: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="389"/>
+        <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="463"/>
+        <source>Invalid slopes!</source>
+        <translation>Неверные склоны!</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="599"/>
+        <source>Ele.: %1%2</source>
+        <translation>Высота: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="608"/>
+        <source>, Speed: %1%2</source>
+        <translation>, Скорость: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="646"/>
+        <source>Ascent: - (-)</source>
+        <translation>Подъём: -(-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="647"/>
+        <source>Descent: - (-)</source>
+        <translation>Спуск: -(-)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="654"/>
+        <source>Ascent: %1%2 (%3%)</source>
+        <translation>Подъём: %1 %2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="660"/>
+        <source>, Descent: %1%2 (%3%)</source>
+        <translation>, Спуск: %1 %2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="666"/>
+        <source>Distance: %1%2 (%3%)</source>
+        <translation>Расстояние: %1 %2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="672"/>
+        <source>, Moving: %1%2 (%3%)</source>
+        <translation>, В движении: %1%2 (%3%)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="688"/>
+        <source>Ascent: -</source>
+        <translation>Подъём: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="689"/>
+        <source>Descent: -</source>
+        <translation>Спуск: -</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="694"/>
+        <source>Ascent: %1%2</source>
+        <translation>Подъём: %1 %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="706"/>
+        <source>, Descent: %1%2</source>
+        <translation>, Спуск: %1 %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="716"/>
+        <source>Distance: %1%2</source>
+        <translation>Расстояние: %1 %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="721"/>
+        <source>, Time: %1%2</source>
+        <translation>, Время: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1398"/>
+        <source>Permanently removed points %1..%2</source>
+        <translation>Удалены безвозвратно точки %1..%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="1576"/>
+        <source>Show points.</source>
+        <translation>Показать точки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2213"/>
+        <source>Changed name</source>
+        <translation>Изменено имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2219"/>
+        <source>Changed comment</source>
+        <translation>Изменён комментарий</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2225"/>
+        <source>Changed description</source>
+        <translation>Изменено описание</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2231"/>
+        <source>Changed links</source>
+        <translation>Изменены ссылки</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2242"/>
+        <source>Changed elevation of point %1 to %2 %3</source>
+        <translation>Изменена высота точки %1 на %2 %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2266"/>
+        <source>Changed activity to '%1' for complete track.</source>
+        <translation>Активность изменена на '%1' для всего трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CGisItemTrk.cpp" line="2305"/>
+        <source>Changed activity to '%1' for range(%2..%3).</source>
+        <translation>Активность изменена на '%1' для интервала (%2..%3).</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="97"/>
+        <source>Hide points by Douglas Peuker algorithm (%1%2)</source>
+        <translation>Скрыть точки при помощи алгоритма Douglas-Peuker (%1%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="123"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Скрыть точки с неверными данными.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="133"/>
+        <source>Reset all hidden track points to visible</source>
+        <translation>Сделать видимыми все скрытые точки трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="163"/>
+        <source>Permanently removed all hidden track points</source>
+        <translation>Удалены безвозвратно все скрытые точки трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="200"/>
+        <source>Smoothed profile with a Median filter of size %1</source>
+        <translation>Сгладить профиль используя фильтр Медиан с размером %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="222"/>
+        <source>Added terrain slope from DEM file.</source>
+        <translation>Добавлен склон местности с файла ЦМР.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="244"/>
+        <source>Replaced elevation data with data from DEM files.</source>
+        <translation>Заменены высоты данными файлов ЦМР.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="262"/>
+        <source>Replaced elevation data with interpolated values. (M=%1, RMSErr=%2)</source>
+        <translation>Заменены высоты интерполированными значениями. (M=%1, RMSErr=%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="278"/>
+        <source>Offset elevation data by %1%2.</source>
+        <translation>Добавить %1 %2 к высоте.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="291"/>
+        <source>Changed start of track to %1.</source>
+        <translation>Изменено начало трека на %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="304"/>
+        <source>Remove timestamps.</source>
+        <translation>Удалить метки времени.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="321"/>
+        <source>Set artificial timestamps with delta of %1 sec.</source>
+        <translation>Установить искусственные метки времени с интервалом в %1 секунд.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="387"/>
+        <source>Changed average moving speed depending on slope to %1%2.</source>
+        <translation>Изменена средняя скорость движения в зависимости от склона до %1 %2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="412"/>
+        <source>Changed speed to %1%2.</source>
+        <translation>Изменена скорость на %1 %2.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="438"/>
+        <source>%1 (Segment %2)</source>
+        <translation>%1 (сегмент %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="456"/>
+        <source>Removed extension %1 from all Track Points</source>
+        <translation>Удалено расширение %1 со всех точек трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/filter.cpp" line="467"/>
+        <source>Converted subpoints from routing to track points</source>
+        <translation>Преобразованы подточки с маршрутных в точки трека</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/converter.cpp" line="196"/>
+        <source>Copy flag information from QLandkarte GT track</source>
+        <translation>Скопировать информацию о флагах с трека QLandkarte GT</translation>
+    </message>
+</context>
+<context>
+    <name>CGisItemWpt</name>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="609"/>
+        <source>Archived</source>
+        <translation>Архивировано</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="613"/>
+        <source>Available</source>
+        <translation>Доступно</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/serialization.cpp" line="617"/>
+        <source>Not Available</source>
+        <translation>Не доступно</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="106"/>
+        <source>_Clone</source>
+        <translation>_клон</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="277"/>
+        <source>Elevation: %1%2</source>
+        <translation>Высота: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="288"/>
+        <source>Proximity: %1%2</source>
+        <translation>Радиус близости: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="334"/>
+        <source>Created: %1</source>
+        <translation>Создан: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="393"/>
+        <source>Changed name</source>
+        <translation>Изменено имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="403"/>
+        <source>Changed position</source>
+        <translation>Изменена позиция</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="409"/>
+        <source>Changed elevation</source>
+        <translation>Изменена высота</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="418"/>
+        <source>Removed proximity</source>
+        <translation>Удалён радиус близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="423"/>
+        <source>Changed proximity</source>
+        <translation>Изменён радиус близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="442"/>
+        <source>Changed icon</source>
+        <translation>Изменена пиктограмма</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="448"/>
+        <source>Changed comment</source>
+        <translation>Изменён комментарий</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="454"/>
+        <source>Changed description</source>
+        <translation>Изменено описание</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="460"/>
+        <source>Changed links</source>
+        <translation>Изменены ссылки</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="466"/>
+        <source>Changed images</source>
+        <translation>Изменены изображения</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CGisItemWpt.cpp" line="472"/>
+        <source>Add image</source>
+        <translation>Добавить изображение</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListDB</name>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="88"/>
+        <source>Due to changes in the database system QMapShack forgot about the filename of your database '%1'. You have to select it again in the next step.</source>
+        <translation>Из-за изменений в системе баз данных QMapShack забыл об имени файла базы данных '%1'. Выберите его снова на следующем шаге.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="89"/>
+        <source>Select database file.</source>
+        <translation>Выбрать файл базы данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="120"/>
+        <source>Add Database</source>
+        <translation>Добавить базу данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="123"/>
+        <source>Add Folder</source>
+        <translation>Добавить папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="124"/>
+        <source>Rename Folder</source>
+        <translation>Переименовать папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="125"/>
+        <source>Copy Folder</source>
+        <translation>Копировать папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="126"/>
+        <source>Move Folder</source>
+        <translation>Переместить папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="127"/>
+        <source>Delete Folder</source>
+        <translation>Удалить папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="129"/>
+        <source>Import from Files...</source>
+        <translation>Импортировать файлы...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="130"/>
+        <source>Export to GPX...</source>
+        <translation>Экспортировать в GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="133"/>
+        <location filename="../gis/CGisListDB.cpp" line="149"/>
+        <source>Delete Item</source>
+        <translation>Удалить элемент</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="137"/>
+        <source>Search Database</source>
+        <translation>Искать в базе данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="138"/>
+        <source>Sync. with Database</source>
+        <translation>Синхронизировать с базой данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="139"/>
+        <source>Remove Database</source>
+        <translation>Удалить базу данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="146"/>
+        <source>Empty</source>
+        <translation>Удалить все элементы</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Remove database...</source>
+        <translation>Удалить базу данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="462"/>
+        <source>Do you really want to remove '%1' from the list?</source>
+        <translation>Вы действительно хотите удалить '%1' из списка?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Delete database folder...</source>
+        <translation>Удалить папку с базы данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="526"/>
+        <source>Are you sure you want to delete selected folders and all subfolders from the database?</source>
+        <translation>Вы действительно хотите удалить все выбранные папки вместе с вложенными папками из базы данных?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>Bad operation....</source>
+        <translation>Неверная операция...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="694"/>
+        <source>The target folder is a subfolder of the one to move. This will not work.</source>
+        <translation>Целевая папка есть вложенная папка папки которая перемещается. Так нельзя.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Folder name...</source>
+        <translation>Имя папки...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="753"/>
+        <source>Rename folder:</source>
+        <translation>Переименовать папку:</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Remove items...</source>
+        <translation>Удалить элементы...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="774"/>
+        <source>Are you sure you want to delete all items from Lost&Found? This will remove them permanently.</source>
+        <translation>Вы действительно хотите удалить все элементы с 'Потеряно и найдено'? Это удалит их безвозвратно.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="795"/>
+        <source>Are you sure you want to delete all selected items from Lost&Found? This will remove them permanently.</source>
+        <translation>Вы действительно хотите удалить все выбранные элементы с 'Потеряно и найдено'? Это удалит их безвозвратно.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="882"/>
+        <source>Are you sure you want to delete '%1' from folder '%2'?</source>
+        <translation>Вы действительно хотите удалить '%1' с папки '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="883"/>
+        <source>Delete...</source>
+        <translation>Удалить...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListDB.cpp" line="1073"/>
+        <source>Import GIS Data...</source>
+        <translation>Импортировать данные GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisListWks</name>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="107"/>
+        <source>Edit..</source>
+        <translation>Изменить..</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="109"/>
+        <source>Show on Map</source>
+        <translation>Показать на карте</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="110"/>
+        <source>Hide from Map</source>
+        <translation>Скрыть с карты</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="115"/>
+        <source>Sort by Time</source>
+        <translation>Сортировать по времени</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="116"/>
+        <source>Sort by Name</source>
+        <translation>Сортировать по именам</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="123"/>
+        <source>Save</source>
+        <translation>Сохранить</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="125"/>
+        <source>Save as GPX 1.1 w/o ext...</source>
+        <translation>Сохранить как GPX 1.1 без расширений...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="128"/>
+        <source>Send to Devices</source>
+        <translation>Отправить в устройства</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="129"/>
+        <source>Sync. with Database</source>
+        <translation>Синхронизировать с базой данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="132"/>
+        <source>Close</source>
+        <translation>Закрыть</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="141"/>
+        <source>Update Project on Device</source>
+        <translation>Обновить проект на устройстве</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="143"/>
+        <location filename="../gis/CGisListWks.cpp" line="170"/>
+        <source>Delete</source>
+        <translation>Удалить</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="155"/>
+        <source>Edit...</source>
+        <translation>Изменить...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="108"/>
+        <location filename="../gis/CGisListWks.cpp" line="156"/>
+        <source>Copy to...</source>
+        <translation>Копировать в...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="119"/>
+        <source>Autom. Save</source>
+        <translation>Сохранить автоматически</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="124"/>
+        <source>Save as...</source>
+        <translation>Сохранить как...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="158"/>
+        <source>Track Profile</source>
+        <translation>Профиль трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="160"/>
+        <source>Select Range</source>
+        <translation>Выделить интервал</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="161"/>
+        <source>Edit Track Points</source>
+        <translation>Изменить точки трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="162"/>
+        <source>Reverse Track</source>
+        <translation>Обратить трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="163"/>
+        <source>Combine Tracks</source>
+        <translation>Соединить треки</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="164"/>
+        <source>Set Track Activity</source>
+        <translation>Добавить активность</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="166"/>
+        <source>Copy Track with Waypoints</source>
+        <translation>Копировать трек с маршрутными точками</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="177"/>
+        <source>Show Bubble</source>
+        <translation>Показать пузырёк</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="179"/>
+        <source>Move Waypoint</source>
+        <translation>Переместить маршрутную точку</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="180"/>
+        <source>Proj. Waypoint...</source>
+        <translation>Проекция маршрутной точки...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="181"/>
+        <source>Change Radius</source>
+        <translation>Изменить радиус близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="183"/>
+        <location filename="../gis/CGisListWks.cpp" line="211"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Переключить запретную зону</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="182"/>
+        <source>Delete Radius</source>
+        <translation>Удалить радиус близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="167"/>
+        <location filename="../gis/CGisListWks.cpp" line="200"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Переключить запретную линию</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="193"/>
+        <source>Route Instructions</source>
+        <translation>Маршрутные инструкции</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="195"/>
+        <source>Calculate Route</source>
+        <translation>Вычислить маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="196"/>
+        <source>Reset Route</source>
+        <translation>Сбросить маршрутизацию</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="197"/>
+        <source>Edit Route</source>
+        <translation>Изменить маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="198"/>
+        <source>Reverse Route</source>
+        <translation>Обратить маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="199"/>
+        <source>Convert to Track</source>
+        <translation>Преобразовать в трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="210"/>
+        <source>Edit Area Points</source>
+        <translation>Изменить точки области</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="219"/>
+        <source>Create Route</source>
+        <translation>Создать маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="220"/>
+        <source>Change Icon (sel. waypt. only)</source>
+        <translation>Изменить пиктограмму (выбрать только маршрутные точки)</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="165"/>
+        <source>Set Track Color</source>
+        <translation>Установить цвет трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="654"/>
+        <source>Drop items...</source>
+        <translation>Удалить элементы...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="679"/>
+        <location filename="../gis/CGisListWks.cpp" line="1828"/>
+        <location filename="../gis/CGisListWks.cpp" line="1866"/>
+        <source><b>Update devices</b><p>Update %1<br/>Please wait...</p></source>
+        <translation><b>Обновить устройства</b><p>Обновить %1<br/>Подождите...</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="805"/>
+        <source>Saving workspace. Please wait.</source>
+        <translation>Сохранение рабочей области. Подождите.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="851"/>
+        <source>Loading workspace. Please wait.</source>
+        <translation>Загрузка рабочей области. Подождите.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>Close all projects...</source>
+        <translation>Закрыть все проекты...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1253"/>
+        <source>This will remove all projects from the workspace.</source>
+        <translation>Это удалит все проекты из рабочей области.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Delete project...</source>
+        <translation>Удалить проект...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisListWks.cpp" line="1279"/>
+        <source>Do you really want to delete %1?</source>
+        <translation>Вы действительно хотите удалить %1?</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummary</name>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="107"/>
+        <source>Failed to restore all folders in the summary drop zones. Probably the folder or database has been removed. Please check summary drop zone setup.</source>
+        <translation>Не удалось восстановить все папки в сводных зонах перетаскивания. Вероятно, папка или база данных была удалена. Пожалуйста, проверьте настройку сводных зон перетаскивания.</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummary.cpp" line="111"/>
+        <source>Failed....</source>
+        <translation>Не удалось...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummaryDropZone</name>
+    <message>
+        <location filename="../gis/summary/CGisSummaryDropZone.cpp" line="38"/>
+        <source>Drag-n-drop items from the workspace into this drop zone.</source>
+        <translation>Перетащите элементы рабочей области в эту зону перетаскивания.</translation>
+    </message>
+</context>
+<context>
+    <name>CGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="41"/>
+        <source><b>What is this about?</b><br/>When using the database GIS items can be referenced by several projects. A common use-case is to store tour data in it's own project folder. Additionally the items are copied (referenced) into folders summarizing items of a certain time span, e.g. monthly, yearly, total. You can do this manually by loading the summary projects into the workspace, coping the items and saving the changes. Or you use this dialog to define [...]
+        <translation><b>Что это значит?</b><br/>При использовании базы данных элементы ГИС могут использоваться в нескольких проектах. Обычный вариант использования - это хранение данных тур в собственной папке проекта. Кроме того, элементы копируются в папки, суммирующие элементы определенного периода времени, например, ежемесячно, ежегодно, итого. Это можно сделать вручную: загрузить сводные проекты в рабочую область, скопировать элементы и сохранить изменения. Другая [...]
+    </message>
+    <message>
+        <location filename="../gis/summary/CGisSummarySetup.cpp" line="110"/>
+        <source>Select summary project...</source>
+        <translation>Выберите сводный проект...</translation>
+    </message>
+</context>
+<context>
+    <name>CGisWorkspace</name>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>Load project...</source>
+        <translation>Загрузить проект...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="115"/>
+        <source>The project "%1" is already in the workspace.</source>
+        <translation>Проект "%1" уже находится в рабочей области.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="217"/>
+        <source><b>Item Selection: </b>Item selected from workspace list. Click on the map to switch back to normal mouse selection behavior.</source>
+        <translation><b>Выбор элементов: </b>Элемент выбран из списка рабочей области. Нажать на карту, чтобы вернуться к обычному поведению мышки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="631"/>
+        <source>Copy items...</source>
+        <translation>Копировать элементы ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="650"/>
+        <source>Change waypoint symbols.</source>
+        <translation>Изменить символы путевых точек.</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Cut Track...</source>
+        <translation>Вырезать трек...</translation>
+    </message>
+    <message>
+        <location filename="../gis/CGisWorkspace.cpp" line="818"/>
+        <source>Do you want to delete the original track?</source>
+        <translation>Желаете удалить изначальный трек?</translation>
+    </message>
+</context>
+<context>
+    <name>CGpxProject</name>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="91"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="113"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="125"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="133"/>
+        <source>Not a GPX file: %1</source>
+        <translation>Это не файл GPX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="268"/>
+        <source>File exists ...</source>
+        <translation>Файл существует...</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="269"/>
+        <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>Файл существует и не создан в QMapShack. Если нажать 'да' все данные в этом файле будут потеряны. Даже если этот файл содержит данные GPX и был загружен в QMapShack, QMapShack не может загрузить и сохранить все элементы этого файла. Такие элементы будут потеряны. Рекомендуется использовать другой файл. <b>Вы действительно хотите перезаписать этот файл?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="386"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Не удалось создать файл '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="396"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Не удалось записать файл '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/gpx/CGpxProject.cpp" line="408"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Не удалось сохранить данные GIS...</translation>
+    </message>
+</context>
+<context>
+    <name>CGrid</name>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="61"/>
+        <source>%1 %2 </source>
+        <translation>%1 %2 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="65"/>
+        <source>%1%2%5 %3%4%5 </source>
+        <translation>%1%2%5 %3%4%5 </translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="72"/>
+        <source>%1m, %2m </source>
+        <translation>%1м, %2м</translation>
+    </message>
+    <message>
+        <location filename="../grid/CGrid.cpp" line="76"/>
+        <source>N %1m, E %2m </source>
+        <translation>С %1м, В %2м</translation>
+    </message>
+</context>
+<context>
+    <name>CHistoryListWidget</name>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="65"/>
+        <source> by %1</source>
+        <translation>от %1</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="37"/>
+        <source>Cut history before</source>
+        <translation>Удалить историю до этого шага</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="38"/>
+        <source>Cut history after</source>
+        <translation>Удалить историю после этого шага</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="155"/>
+        <source>History removal</source>
+        <translation>Удалить историю</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CHistoryListWidget.cpp" line="156"/>
+        <source>The removal is permanent and cannot be undone. <b>Do you really want to delete history before this step?</b></source>
+        <translation>Удаление является постоянным и не может быть отменено. <b>Вы действительно хотите удалить историю перед этим шагом?</b></translation>
+    </message>
+</context>
+<context>
+    <name>CImportDatabase</name>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="29"/>
+        <source>Import QLandkarte Database</source>
+        <translation>Импортировать базу данных QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="75"/>
+        <source>Select source database...</source>
+        <translation>Выбрать исходную базу данных...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CImportDatabase.cpp" line="97"/>
+        <source>Select target database...</source>
+        <translation>Выбрать целевую базу данных...</translation>
+    </message>
+</context>
+<context>
+    <name>CKnownExtension</name>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Темп. возд.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="68"/>
+        <source>Air Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Температура воздуха</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Темп. воды</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="72"/>
+        <source>Water Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Температура воды</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extShortName</comment>
+        <translation>Глубина</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="76"/>
+        <source>Depth</source>
+        <comment>extLongName</comment>
+        <translation>Глубина</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart R.</source>
+        <comment>extShortName</comment>
+        <translation>Пульс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="80"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="92"/>
+        <source>Heart Rate</source>
+        <comment>extLongName</comment>
+        <translation>Пульс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extShortName</comment>
+        <translation>Каденс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="84"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="96"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="115"/>
+        <source>Cadence</source>
+        <comment>extLongName</comment>
+        <translation>Каденс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed</source>
+        <comment>extShortName</comment>
+        <translation>Скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="100"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="140"/>
+        <source>Speed</source>
+        <comment>extLongName</comment>
+        <translation>Скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Accel.</source>
+        <comment>extShortName</comment>
+        <translation>Ускор.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="104"/>
+        <source>Acceleration</source>
+        <comment>extLongName</comment>
+        <translation>Ускорение</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extShortName</comment>
+        <translation>Курс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="108"/>
+        <source>Course</source>
+        <comment>extLongName</comment>
+        <translation>Курс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temp.</source>
+        <comment>extShortName</comment>
+        <translation>Темп.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="119"/>
+        <source>Temperature</source>
+        <comment>extLongName</comment>
+        <translation>Температура</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Dist.</source>
+        <comment>extShortName</comment>
+        <translation>Расстояние</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="123"/>
+        <source>Distance</source>
+        <comment>extLongName</comment>
+        <translation>Расстояние</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Ele.</source>
+        <comment>extShortName</comment>
+        <translation>Высота</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="127"/>
+        <source>Elevation</source>
+        <comment>extLongName</comment>
+        <translation>Высота</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extShortName</comment>
+        <translation>Энергия</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="131"/>
+        <source>Energy</source>
+        <comment>extLongName</comment>
+        <translation>Энергия</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Lev. Pres.</source>
+        <comment>extShortName</comment>
+        <translation>Давление</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="136"/>
+        <source>Sea Level Pressure</source>
+        <comment>extLongName</comment>
+        <translation>Давление на уровне моря</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>v. Speed</source>
+        <comment>extShortName</comment>
+        <translation>Скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="144"/>
+        <source>Vertical Speed</source>
+        <comment>extLongName</comment>
+        <translation>Скорость (вертикальная)</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope</source>
+        <comment>extShortName</comment>
+        <translation>Наклон</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="153"/>
+        <source>Slope*</source>
+        <translation>Наклон*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="158"/>
+        <source>Speed over Distance*</source>
+        <comment>extLongName</comment>
+        <translation>Скорость(расстояние)*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="163"/>
+        <source>Speed over Time*</source>
+        <comment>extLongName</comment>
+        <translation>Скорость(время)*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="168"/>
+        <source>Elevation*</source>
+        <comment>extLongName</comment>
+        <translation>Высота*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress</source>
+        <comment>extShortName</comment>
+        <translation>Расстояние</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="173"/>
+        <source>Progress*</source>
+        <comment>extLongName</comment>
+        <translation>Расстояние*</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terr. Slope</source>
+        <comment>extShortName</comment>
+        <translation>Склон местн.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CKnownExtension.cpp" line="178"/>
+        <source>Terrain Slope*</source>
+        <comment>extLongName</comment>
+        <translation>Склон местности*</translation>
+    </message>
+</context>
+<context>
+    <name>CLogProject</name>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="62"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="84"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="95"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="102"/>
+        <source>Not an Openambit log file: %1</source>
+        <translation>Это не файл Openambit LOG: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="113"/>
+        <source>Device: %1<br/></source>
+        <translation>Устройство: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="140"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Время восстановления: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="145"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Пиковый эффект тренинга: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="150"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Энергия: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="182"/>
+        <source>Use of local time...</source>
+        <translation>Использование местного времени...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="183"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>Не найдено время UTC в файле %1. Используется локальное время компьютера. При необходимости вы можете настроить время, используя фильтр времени.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CLogProject.cpp" line="245"/>
+        <source>This LOG file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Этот файл LOG не содержит данных о местоположении и не может отображаться в QMapShack: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CLostFoundProject</name>
+    <message>
+        <location filename="../gis/db/CLostFoundProject.cpp" line="39"/>
+        <source>Lost & Found</source>
+        <translation>Потеряно и найдено</translation>
+    </message>
+</context>
+<context>
+    <name>CMainWindow</name>
+    <message>
+        <location filename="../CMainWindow.cpp" line="886"/>
+        <source>Use <b>Menu->View->Add Map View</b> to open a new view. Or <b>Menu->File->Load Map View</b> to restore a saved one. Or click <a href='newview'>here</a>.</source>
+        <translation>Использовать <b>Меню->Вид->Добавить окно карты</b> для добавления нового вида. Или <b>Меню->Файл->Загрузить вид карты</b> для восстановления сохраненного вида. Или нажмите <a href='newview'>здесь</a>.</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1014"/>
+        <source>Ele.: %1%2</source>
+        <translation>Высота: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1026"/>
+        <source>Slope: %1%2</source>
+        <comment>terrain</comment>
+        <translation>Склон: %1%2</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1042"/>
+        <source>[Grid: %1]</source>
+        <translation>[Координатная сетка: %1]</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1183"/>
+        <source>Load GIS Data...</source>
+        <translation>Загрузить данные ГИС...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <source>Select output file</source>
+        <translation>Выбрать выходной файл</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1217"/>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>QMapShack View (*.view)</source>
+        <translation>QMapShack вид (*.view)</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1243"/>
+        <source>Select file to load</source>
+        <translation>Выбрать файл для загрузки</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1564"/>
+        <source>Fatal...</source>
+        <translation>Неустранимая ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../CMainWindow.cpp" line="1565"/>
+        <source>QMapShack detected a badly installed Proj4 library. The translation tables for EPSG projections usually stored in /usr/share/proj are missing. Please contact the package maintainer of your distribution to fix it.</source>
+        <translation>QMapShack обнаружил плохо установленную библиотеку Proj4. Таблицы перевода для проекций EPSG обычно находятся в /usr/share/pro отсутствуют. Пожалуйста, сообщите об этом администратору пакета, чтобы поправить это.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapDraw</name>
+    <message>
+        <location filename="../map/CMapDraw.cpp" line="457"/>
+        <source>There are no maps right now. QMapShack is no fun without maps. You can install maps by pressing the 'Help! I want maps!' button in the 'Maps' dock window. Or you can press the F1 key to open the online documentation that tells you how to use QMapShack. 
+
+If it's no fun, why don't you provide maps? Well to host maps ready for download and installation requires a good server. And this is not a free service. The project lacks the money. Additionally map and DEM data has a copyright. Therefore the copyright holder has to be asked prior to package the data. This is not that easy as it might sound and for some data you have to pay royalties. The project simply lacks resources to do this. And we think installing the stuff yourself is  [...]
+        <translation>В данный момент карт ещё нет. Использование QMapShack без карт совсем непривлекательно. Вы можете установить карты, нажав кнопку 'Помогите! Я хочу карты!' в окне 'Карты'. Или Вы можете нажать клавишу F1, чтобы открыть документацию в Интернете, которая объяснит как использовать QMapShack.
+
+Так не очень удобно, почему не поставлять сразу с картами? Поддержка готовых для загрузки и установки карт требует хорошего сервера. И это не бесплатно. У проекта нет денег. Вдобавок карты и данные ЦМР зачастую распространяются под ограничительными лицензиями. Поэтому требуется разрешение правообладателя перед упаковкой его данных. Это не так просто как звучит, к тому же за некоторые данные требуется платить комиссионные. У проекта просто нет ресурсов для этого. И мы надеемся, что устано [...]
+    </message>
+</context>
+<context>
+    <name>CMapIMG</name>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="146"/>
+        <source>Failed ...</source>
+        <translation>Не удалось...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="175"/>
+        <source>Unspecified</source>
+        <translation>Не указано</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="176"/>
+        <source>French</source>
+        <translation>Французский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="177"/>
+        <source>German</source>
+        <translation>Немецкий</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="178"/>
+        <source>Dutch</source>
+        <translation>Голландский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="179"/>
+        <source>English</source>
+        <translation>Английский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="180"/>
+        <source>Italian</source>
+        <translation>Итальянский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="181"/>
+        <source>Finnish</source>
+        <translation>Финский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="182"/>
+        <source>Swedish</source>
+        <translation>Шведский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="183"/>
+        <source>Spanish</source>
+        <translation>Испанский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="184"/>
+        <source>Basque</source>
+        <translation>Баскский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="185"/>
+        <source>Catalan</source>
+        <translation>Каталонский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="186"/>
+        <source>Galician</source>
+        <translation>Галисийский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="187"/>
+        <source>Welsh</source>
+        <translation>Валлийский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="188"/>
+        <source>Gaelic</source>
+        <translation>Гэльский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="189"/>
+        <source>Danish</source>
+        <translation>Датский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="190"/>
+        <source>Norwegian</source>
+        <translation>Норвежский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="191"/>
+        <source>Portuguese</source>
+        <translation>Португальский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="192"/>
+        <source>Slovak</source>
+        <translation>Словацкий</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="193"/>
+        <source>Czech</source>
+        <translation>Чешский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="194"/>
+        <source>Croatian</source>
+        <translation>Хорватский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="195"/>
+        <source>Hungarian</source>
+        <translation>Венгерский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="196"/>
+        <source>Polish</source>
+        <translation>Польский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="197"/>
+        <source>Turkish</source>
+        <translation>Турецкий</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="198"/>
+        <source>Greek</source>
+        <translation>Греческий</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="199"/>
+        <source>Slovenian</source>
+        <translation>Словенский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="200"/>
+        <source>Russian</source>
+        <translation>Русский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="201"/>
+        <source>Estonian</source>
+        <translation>Эстонский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="202"/>
+        <source>Latvian</source>
+        <translation>Латвийский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="203"/>
+        <source>Romanian</source>
+        <translation>Румынский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="204"/>
+        <source>Albanian</source>
+        <translation>Албанский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="205"/>
+        <source>Bosnian</source>
+        <translation>Боснийский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="206"/>
+        <source>Lithuanian</source>
+        <translation>Литовский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="207"/>
+        <source>Serbian</source>
+        <translation>Сербский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="208"/>
+        <source>Macedonian</source>
+        <translation>Македонский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="209"/>
+        <source>Bulgarian</source>
+        <translation>Болгарский</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="266"/>
+        <source>Major highway</source>
+        <translation>Автомагистраль</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="267"/>
+        <source>Principal highway</source>
+        <translation>Шоссе основное</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="268"/>
+        <source>Other highway</source>
+        <translation>Прочие загородные дороги</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="269"/>
+        <source>Arterial road</source>
+        <translation>Городская магистраль</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="270"/>
+        <source>Collector road</source>
+        <translation>Улица крупная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="271"/>
+        <source>Residential street</source>
+        <translation>Улица малая</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="272"/>
+        <source>Alley/Private road</source>
+        <translation>Переулок, внутриквартальный проезд</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="273"/>
+        <source>Highway ramp, low speed</source>
+        <translation>Наклонный съезд с путепровода</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="274"/>
+        <source>Highway ramp, high speed</source>
+        <translation>Наклонный съезд с путепровода скоростной</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="275"/>
+        <source>Unpaved road</source>
+        <translation>Грунтовая дорога</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="276"/>
+        <source>Major highway connector</source>
+        <translation>Соединительное шоссе</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="277"/>
+        <source>Roundabout</source>
+        <translation>Круговое движение</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="278"/>
+        <source>Railroad</source>
+        <translation>Железная дорога</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="279"/>
+        <source>Shoreline</source>
+        <translation>Береговая линия</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="280"/>
+        <source>Trail</source>
+        <translation>Тропа</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="281"/>
+        <source>Stream</source>
+        <translation>Ручей</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="282"/>
+        <source>Time zone</source>
+        <translation>Граница часового пояса</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="283"/>
+        <location filename="../map/CMapIMG.cpp" line="284"/>
+        <source>Ferry</source>
+        <translation>Паром</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="285"/>
+        <source>State/province border</source>
+        <translation>Граница области</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="286"/>
+        <source>County/parish border</source>
+        <translation>Граница района, округа</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="287"/>
+        <source>International border</source>
+        <translation>Международная граница</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="288"/>
+        <source>River</source>
+        <translation>Река</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="289"/>
+        <source>Minor land contour</source>
+        <translation>Изолиния высоты, вспомогательная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="290"/>
+        <source>Intermediate land contour</source>
+        <translation>Изолиния высоты, основная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="291"/>
+        <source>Major land contour</source>
+        <translation>Изолиния высоты, утолщённая</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="292"/>
+        <source>Minor depth contour</source>
+        <translation>Изолиния глубины, вспомогательная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="293"/>
+        <source>Intermediate depth contour</source>
+        <translation>Изолиния глубины, основная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="294"/>
+        <source>Major depth contour</source>
+        <translation>Изолиния глубины, утолщённая</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="295"/>
+        <source>Intermittent stream</source>
+        <translation>Пересыхающая река, ручей или канава</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="296"/>
+        <location filename="../map/CMapIMG.cpp" line="378"/>
+        <source>Airport runway</source>
+        <translation>Взлётно-посадочная полоса</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="297"/>
+        <source>Pipeline</source>
+        <translation>Трубопровод</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="298"/>
+        <source>Powerline</source>
+        <translation>Линия электропередачи</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="299"/>
+        <source>Marine boundary</source>
+        <translation>Морская граница</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="300"/>
+        <source>Hazard boundary</source>
+        <translation>Опасность для плавания</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="365"/>
+        <source>Large urban area (&gt;200K)</source>
+        <translation>Городская застройка (&gt;200 тыс.ж)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="366"/>
+        <source>Small urban area (&lt;200K)</source>
+        <translation>Городская застройка (&lt;200 тыс.ж)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="367"/>
+        <source>Rural housing area</source>
+        <translation>Застройка сельского типа</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="368"/>
+        <source>Military base</source>
+        <translation>Военная база</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="369"/>
+        <source>Parking lot</source>
+        <translation>Автостоянка</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="370"/>
+        <source>Parking garage</source>
+        <translation>Гараж</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="371"/>
+        <source>Airport</source>
+        <translation>Аэропорт</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="372"/>
+        <source>Shopping center</source>
+        <translation>Место для торговли</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="373"/>
+        <source>Marina</source>
+        <translation>Пристань</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="374"/>
+        <source>University/College</source>
+        <translation>Университет или колледж</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="375"/>
+        <source>Hospital</source>
+        <translation>Больница</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="376"/>
+        <source>Industrial complex</source>
+        <translation>Промышленная зона</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="377"/>
+        <source>Reservation</source>
+        <translation>Резервация, заповедник</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="379"/>
+        <source>Man-made area</source>
+        <translation>Здание, искусственное сооружение</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="380"/>
+        <source>Sports complex</source>
+        <translation>Спортивный комплекс</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="381"/>
+        <source>Golf course</source>
+        <translation>Площадка для гольфа</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="382"/>
+        <source>Cemetery</source>
+        <translation>Кладбище</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="383"/>
+        <location filename="../map/CMapIMG.cpp" line="384"/>
+        <location filename="../map/CMapIMG.cpp" line="385"/>
+        <source>National park</source>
+        <translation>Национальный парк</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="386"/>
+        <source>City park</source>
+        <translation>Городской парк</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="387"/>
+        <location filename="../map/CMapIMG.cpp" line="388"/>
+        <location filename="../map/CMapIMG.cpp" line="389"/>
+        <source>State park</source>
+        <translation>Парк регионального значения</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="390"/>
+        <source>Forest</source>
+        <translation>Лес</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="391"/>
+        <source>Ocean</source>
+        <translation>Море/океан</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="392"/>
+        <location filename="../map/CMapIMG.cpp" line="394"/>
+        <location filename="../map/CMapIMG.cpp" line="404"/>
+        <source>Blue (unknown)</source>
+        <translation>Синий (неизвестно)</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="393"/>
+        <source>Sea</source>
+        <translation>Море</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="395"/>
+        <location filename="../map/CMapIMG.cpp" line="396"/>
+        <location filename="../map/CMapIMG.cpp" line="403"/>
+        <source>Large lake</source>
+        <translation>Озеро, большое</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="397"/>
+        <location filename="../map/CMapIMG.cpp" line="398"/>
+        <source>Medium lake</source>
+        <translation>Озеро, среднее</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="399"/>
+        <location filename="../map/CMapIMG.cpp" line="400"/>
+        <source>Small lake</source>
+        <translation>Озеро, малое</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="401"/>
+        <location filename="../map/CMapIMG.cpp" line="402"/>
+        <source>Major lake</source>
+        <translation>Озеро, крупное</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="405"/>
+        <source>Major River</source>
+        <translation>Река, крупная</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="406"/>
+        <source>Large River</source>
+        <translation>Река, большая</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="407"/>
+        <source>Medium River</source>
+        <translation>Река, средняя</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="408"/>
+        <source>Small River</source>
+        <translation>Река, малая</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="411"/>
+        <source>Intermittent water</source>
+        <translation>Пересыхающая река, озеро</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="412"/>
+        <source>Wetland/Swamp</source>
+        <translation>Болото</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="413"/>
+        <source>Glacier</source>
+        <translation>Ледник</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="414"/>
+        <source>Orchard/Plantation</source>
+        <translation>Фруктовый сад, огород</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="415"/>
+        <source>Scrub</source>
+        <translation>Кустарник</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="416"/>
+        <source>Tundra</source>
+        <translation>Тундра</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="417"/>
+        <source>Flat</source>
+        <translation>Равнина</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="418"/>
+        <source>???</source>
+        <translation>???</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Read external type file...</source>
+        <translation>Загрузить внешний файл типов...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="432"/>
+        <source>Failed to read type file: %1
+Fall back to internal types.</source>
+        <translation>Не удалось читать файл типов: %1
+Возврат к внутренним типам.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="474"/>
+        <source>Failed to read: </source>
+        <translation>Не удалось читать: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="517"/>
+        <source>Failed to open: </source>
+        <translation>Не удалось открыть: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="541"/>
+        <location filename="../map/CMapIMG.cpp" line="545"/>
+        <source>Bad file format: </source>
+        <translation>Неверный формат файла: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="634"/>
+        <source>Failed to read file structure: </source>
+        <translation>Не удалось читать структуру файла: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="669"/>
+        <source>Loading %1</source>
+        <translation>Идет загрузка %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="675"/>
+        <source>User abort: </source>
+        <translation>Прекращение пользователем: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="678"/>
+        <source>File is NT format. QMapShack is unable to read map files with NT format: </source>
+        <translation>Файл имеет формат NT. QMapShack не может считывать этот формат: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="769"/>
+        <source>File contains locked / encrypted data. Garmin does not want you to use this file with any other software than the one supplied by Garmin.</source>
+        <translation>Файл содержит заблокированные / зашифрованные данные. Garmin позволяет использовать этот файл только с помощью программного обеспечения Garmin.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2388"/>
+        <location filename="../map/CMapIMG.cpp" line="2394"/>
+        <location filename="../map/CMapIMG.cpp" line="2398"/>
+        <source>Point of Interest</source>
+        <translation>Достопримечательность</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2484"/>
+        <source>Unknown</source>
+        <translation>Неизвестно</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapIMG.cpp" line="2526"/>
+        <location filename="../map/CMapIMG.cpp" line="2534"/>
+        <location filename="../map/CMapIMG.cpp" line="2541"/>
+        <source>Area</source>
+        <translation>Область</translation>
+    </message>
+</context>
+<context>
+    <name>CMapList</name>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Deactivate</source>
+        <translation>Деактивировать</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="202"/>
+        <source>Activate</source>
+        <translation>Активировать</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapList.cpp" line="227"/>
+        <source>Where do you want to store maps?</source>
+        <translation>Где вы хотите хранить карты?</translation>
+    </message>
+</context>
+<context>
+    <name>CMapMAP</name>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="46"/>
+        <source>Failed ...</source>
+        <translation>Не удалось...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="63"/>
+        <source>Failed to open: </source>
+        <translation>Не удалось открыть: </translation>
+    </message>
+    <message>
+        <location filename="../map/CMapMAP.cpp" line="73"/>
+        <source>Bad file format: </source>
+        <translation>Неверный формат файла: </translation>
+    </message>
+</context>
+<context>
+    <name>CMapPathSetup</name>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="47"/>
+        <source>Add or remove paths containing maps. There can be multiple maps in a path but no sub-path is parsed. Supported formats are: %1</source>
+        <translation>Добавить или удалить путь с картами. Несколько карт может быть в пути, но вложенные пути не поддерживаются. Поддерживаемые форматы: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="62"/>
+        <source>Select map path...</source>
+        <translation>Выбрать путь к картам...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapPathSetup.cpp" line="81"/>
+        <source>Select root path...</source>
+        <translation>Выбрать корневой путь...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapPropSetup</name>
+    <message>
+        <location filename="../map/CMapPropSetup.cpp" line="196"/>
+        <source>Select type file...</source>
+        <translation>Выбрать файл типов...</translation>
+    </message>
+</context>
+<context>
+    <name>CMapRMAP</name>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="48"/>
+        <source>This is not a TwoNav RMAP file.</source>
+        <translation>Это не файл TwoNav RMAP.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="57"/>
+        <source>Unknown sub-format.</source>
+        <translation>Неизвестный подформат.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="127"/>
+        <source>Unknown version.</source>
+        <translation>Неизвестная версия.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="144"/>
+        <location filename="../map/CMapRMAP.cpp" line="165"/>
+        <location filename="../map/CMapRMAP.cpp" line="187"/>
+        <location filename="../map/CMapRMAP.cpp" line="209"/>
+        <source>Failed to read reference point.</source>
+        <translation>Не удалось читать опорную точку.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapRMAP.cpp" line="237"/>
+        <source>Unknown projection and datum (%1%2).</source>
+        <translation>Неизвестные проекция и датум (%1%2).</translation>
+    </message>
+</context>
+<context>
+    <name>CMapTMS</name>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="68"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="78"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapTMS.cpp" line="116"/>
+        <source>Layer %1</source>
+        <translation>Слой %1</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVRT</name>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="45"/>
+        <location filename="../map/CMapVRT.cpp" line="59"/>
+        <source>Failed to load file: %1</source>
+        <translation>Не удалось загрузить файл: %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="83"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Файл должен быть 8 битной палитрой или серый проиндексирован.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapVRT.cpp" line="133"/>
+        <source>No georeference information found.</source>
+        <translation>Не удалось найти геопозиционную информацию.</translation>
+    </message>
+</context>
+<context>
+    <name>CMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="29"/>
+        <source>Build GDAL VRT</source>
+        <translation>Построить GDAL VRT</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="77"/>
+        <source>Select files...</source>
+        <translation>Выбрать файлы...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="101"/>
+        <source>Select target file...</source>
+        <translation>Выбрать целевой файл...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CMapVrtBuilder.cpp" line="199"/>
+        <source>!!! done !!!
+</source>
+        <translation>Сделано!</translation>
+    </message>
+</context>
+<context>
+    <name>CMapWMTS</name>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="43"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="53"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="63"/>
+        <source>Failed to read: %1
+Unknown structure.</source>
+        <translation>Не удалось читать: %1. 
+Неизвестная структура.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="72"/>
+        <source>Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.</source>
+        <translation>Неожиданный сервис. Ожидается '* WMTS 1.0.0'. Получено '%1 %2'.</translation>
+    </message>
+    <message>
+        <location filename="../map/CMapWMTS.cpp" line="218"/>
+        <source>No georeference information found.</source>
+        <translation>Не удалось найти геопозиционную информацию.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditArea</name>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditArea.cpp" line="36"/>
+        <source>Area</source>
+        <translation>Область</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="38"/>
+        <source><b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Изменить область</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Те с черной точкой являются подточки добавлены маршрутизацией<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditArea.cpp" line="89"/>
+        <source>area</source>
+        <translation>область</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditRte</name>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="31"/>
+        <location filename="../mouse/CMouseEditRte.cpp" line="38"/>
+        <source>Route</source>
+        <translation>Маршрут</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="40"/>
+        <source><b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Изменить точки маршрута</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Точки с черным пунктиром являются подточки введены маршрутизацией<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditRte.cpp" line="100"/>
+        <source>route</source>
+        <translation>маршрут</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseEditTrk</name>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="29"/>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="36"/>
+        <source>Track</source>
+        <translation>Трек</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="39"/>
+        <source><b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/></source>
+        <translation><b>Изменить точки трека</b><br/>Выберите функцию и режим маршрутизации с помощью кнопок панели инструментов. Потом выберите точку на линии. Только точки, отмеченные большим квадратиком могут быть изменены. Точки с черным пунктиром являются подточки введены маршрутизацией<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>Warning!</source>
+        <translation>Предупреждение!</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="75"/>
+        <source>This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently.</source>
+        <translation>Это заменит все данные оригинала простой линией. Все остальные данные будут потеряны безвозвратно.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseEditTrk.cpp" line="105"/>
+        <source>track</source>
+        <translation>трек</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseNormal</name>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="42"/>
+        <source>Add POI as Waypoint</source>
+        <translation>Добавить достопримечательность как маршрутную точку</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="43"/>
+        <source>Add Waypoint</source>
+        <translation>Добавить маршрутную точку</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="44"/>
+        <source>Add Track</source>
+        <translation>Добавить трек</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="45"/>
+        <source>Add Route</source>
+        <translation>Добавить маршрут</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="46"/>
+        <source>Add Area</source>
+        <translation>Добавить область</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="48"/>
+        <source>Select Items On Map</source>
+        <translation>Выбрать элементы на карте</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="50"/>
+        <source>Copy position</source>
+        <translation>Скопировать позицию</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseNormal.cpp" line="51"/>
+        <source>Copy position (Grid)</source>
+        <translation>Скопировать позицию (координатная сетка)</translation>
+    </message>
+</context>
+<context>
+    <name>CMousePrint</name>
+    <message>
+        <location filename="../mouse/CMousePrint.cpp" line="32"/>
+        <source><b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Сохранить (Печатать) карту</b><br/> Выберите прямоугольную область на карте. Используйте левую кнопку мышки и двигайте её. Прервать с правой кнопкой мышки. Уточните выбор с помощью метода указать-нажать-переместить по углам.</translation>
+    </message>
+</context>
+<context>
+    <name>CMouseRangeTrk</name>
+    <message>
+        <location filename="../mouse/CMouseRangeTrk.cpp" line="195"/>
+        <source><b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/></source>
+        <translation><b>Выбрать интервал</b><br/> Выберите первую точку трека с левой кнопкой мышки. А затем второй. Закончите выбор интервала с помощью щелчка правой кнопкой мышки. <br/></translation>
+    </message>
+</context>
+<context>
+    <name>CMouseSelect</name>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="32"/>
+        <source><b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners.</source>
+        <translation><b>Выбрать элементы на карте</b><br/> Выберите прямоугольную область на карте. Используйте левую кнопку мышки и двигайте её. Прервать с правой кнопкой мышки. Уточните выбор с помощью метода указать-нажать-переместить по углам.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="100"/>
+        <source><b>Selected:</b><br/></source>
+        <translation><b>Выбрано:</b><br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="108"/>
+        <source>%1 waypoints<br/></source>
+        <translation>%1 маршрутных точек<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="103"/>
+        <source>%1 tracks<br/></source>
+        <translation>%1 треков<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="113"/>
+        <source>%1 routes<br/></source>
+        <translation>%1 маршрутов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CMouseSelect.cpp" line="118"/>
+        <source>%1 areas<br/></source>
+        <translation>%1 областей<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/CPhotoAlbum.cpp" line="73"/>
+        <source>Select images...</source>
+        <translation>Выбрать изображения...</translation>
+    </message>
+</context>
+<context>
+    <name>CPlot</name>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="55"/>
+        <source>Distance [%1]</source>
+        <translation>Расстояние [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlot.cpp" line="60"/>
+        <source>Time</source>
+        <translation>Время</translation>
+    </message>
+</context>
+<context>
+    <name>CPlotProfile</name>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="79"/>
+        <source>Distance [%1]</source>
+        <translation>Расстояние [%1]</translation>
+    </message>
+    <message>
+        <location filename="../plot/CPlotProfile.cpp" line="80"/>
+        <source>Ele. [%1]</source>
+        <translation>Высота: [%1]</translation>
+    </message>
+</context>
+<context>
+    <name>CPrintDialog</name>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="67"/>
+        <source>Print Map...</source>
+        <translation>Печатать карту...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="74"/>
+        <source>Save Map as Image...</source>
+        <translation>Сохранить карту как изображение...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="94"/>
+        <source>Printer Properties...</source>
+        <translation>Свойства принтера...</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="169"/>
+        <source>Pages: %1 x %2</source>
+        <translation>Страницы: %1 x %2</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="170"/>
+        <source>Zoom with mouse wheel on map below to change resolution:
+
+%1x%2 pixel
+x: %3 m/px
+y: %4 m/px</source>
+        <translation>Использовать колёсико мышки на нижней карте для изменения разрешения:
+
+%1x%2 пиксель 
+x: %3 м/пиксель
+y: %4 м/пиксель</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="216"/>
+        <source>Printing pages.</source>
+        <translation>Вывод страниц на печать.</translation>
+    </message>
+    <message>
+        <location filename="../print/CPrintDialog.cpp" line="260"/>
+        <source>Save map...</source>
+        <translation>Сохранить карту...</translation>
+    </message>
+</context>
+<context>
+    <name>CProgressDialog</name>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="48"/>
+        <source>Elapsed time: %1</source>
+        <translation>Истёкшее время: %1</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CProgressDialog.cpp" line="134"/>
+        <source>Elapsed time: %1 seconds.</source>
+        <translation>Истёкшее время: %1 сек.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>север</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>юг</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="222"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>Значение 
+'%1'
+недопустимое определение координатной системы:
+%2</translation>
+    </message>
+    <message>
+        <location filename="../grid/CProjWizard.cpp" line="230"/>
+        <source>Lat/Lon projection is not allowed in this case.</source>
+        <translation>Lat/Lon проекция в этом случае не допускается.</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Edit name...</source>
+        <translation>Изменить имя...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/CProjWpt.cpp" line="62"/>
+        <source>Enter new waypoint name.</source>
+        <translation>Ввести новое имя маршрутной точки.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlbProject</name>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open...</source>
+        <translation>Не удалось открыть...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="55"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="138"/>
+        <source>Could not convert...</source>
+        <translation>Не удалось преобразовать...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qlb/CQlbProject.cpp" line="139"/>
+        <source>The file contains overlays that can not be converted. This is because QMapShack does not support all overlay types of QLandkarte.</source>
+        <translation>Файл содержит наложения, которые невозможно преобразовать. Это связано с тем, что QMapShack не поддерживает все типы наложений QLandkarte.</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtDb</name>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="308"/>
+        <source>Migrating database from version 4 to 5.</source>
+        <translation>Миграции базы данных с версии 4 до версии 5.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="362"/>
+        <source>Migrating database from version 5 to 6.</source>
+        <translation>Миграции базы данных с версии 5 до версии 6.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="420"/>
+        <source>Migrating database from version 6 to 7.</source>
+        <translation>Миграции базы данных с версии 6 до версии 7.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="486"/>
+        <source>Migrating database from version 7 to 8.</source>
+        <translation>Миграции базы данных с версии 7 до версии 8.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="515"/>
+        <source>Migrating database from version 8 to 9.</source>
+        <translation>Миграции базы данных с версии 8 до версии 9.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="538"/>
+        <source>Open database: %1</source>
+        <translation>Открыть базы данных: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="547"/>
+        <source>Folders:          %1</source>
+        <translation>Папки:           %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="556"/>
+        <source>Tracks:           %1</source>
+        <translation>Треки:           %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="564"/>
+        <source>Routes:           %1 (Only the basic route will be copied)</source>
+        <translation>Маршруты:         %1 (скопируется только основной маршрут)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="572"/>
+        <source>Waypoints:        %1</source>
+        <translation>Маршрутные точки: %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="580"/>
+        <source>Overlays:         %1 (areas will be converted as areas, distance lines will be converted to tracks, all other overlay items will be lost)</source>
+        <translation>Наложения:        %1 (области будут преобразованы в области, линии расстояния будут преобразованы в треки, все остальные элементы наложения будут потеряны)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="587"/>
+        <source>Diaries:          %1</source>
+        <translation>Дневники:         %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="594"/>
+        <source>Map selections:   %1 (can't be converted to QMapShack)</source>
+        <translation>Выборки карт:     %1 (невозможно преобразовать в QMapShack)</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="600"/>
+        <source>------ Start to convert database to %1------</source>
+        <translation>------ Начиная преобразовать базу данных до %1------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="604"/>
+        <source>Failed to create target database.</source>
+        <translation>Не удалось создать целевую базу данных.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="605"/>
+        <source>------ Abort ------</source>
+        <translation>------Прекращение------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="633"/>
+        <source>------ Done ------</source>
+        <translation>------Сделано!------</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="641"/>
+        <source>Restore folders...</source>
+        <translation>Восстановить папки...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="661"/>
+        <source>Imported %1 folders and %2 diaries</source>
+        <translation>Импортированы %1 папок и %2 дневников</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="667"/>
+        <source>Copy items...</source>
+        <translation>Копировать элементы ...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="685"/>
+        <source>Imported %1 tracks, %2 waypoints, %3 routes, %4 areas</source>
+        <translation>Импортированы %1 треков, %2 маршрутных точек, %3 маршрутов, %4 областей</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="686"/>
+        <source>Import folders...</source>
+        <translation>Импортировать папки...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtDb.cpp" line="751"/>
+        <source>Overlay of type '%1' cant be converted</source>
+        <translation>Наложение типа '%1' не может быть преобразовано</translation>
+    </message>
+</context>
+<context>
+    <name>CQlgtTrack</name>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Corrupt track ...</source>
+        <translation>Поврежденный трек...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="164"/>
+        <source>Number of trackpoints is not equal the number of training data trackpoints.</source>
+        <translation>Количество точек трека не равно количеству точек трека в данных тренировки.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="218"/>
+        <source>Number of trackpoints is not equal the number of extended data trackpoints.</source>
+        <translation>Количество точек трека не равно количеству расширенных точек трека.</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="265"/>
+        <location filename="../qlgt/CQlgtTrack.cpp" line="291"/>
+        <source>Number of trackpoints is not equal the number of shadow data trackpoints.</source>
+        <translation>Количество точек трека не равно количеству затененных точек трека.</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsDb</name>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Existing file...</source>
+        <translation>Файл существует...</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="47"/>
+        <source>Remove existing %1?</source>
+        <translation>Удалить существующий %1?</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="52"/>
+        <source>Remove existing file %1</source>
+        <translation>Удалить существующий файл %1</translation>
+    </message>
+    <message>
+        <location filename="../qlgt/CQmsDb.cpp" line="164"/>
+        <source>%1: drop item with QLGT DB ID %2</source>
+        <translation>%1: удалить элемент с QLGT DB ID %2</translation>
+    </message>
+</context>
+<context>
+    <name>CQmsProject</name>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open...</source>
+        <translation>Не удалось открыть...</translation>
+    </message>
+    <message>
+        <location filename="../gis/qms/CQmsProject.cpp" line="48"/>
+        <location filename="../gis/qms/CQmsProject.cpp" line="80"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="50"/>
+        <source>original</source>
+        <translation>Оригинал</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="51"/>
+        <source>first alternative</source>
+        <translation>Первая альтернатива</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="52"/>
+        <source>second alternative</source>
+        <translation>Вторая альтернатива</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="53"/>
+        <source>third alternative</source>
+        <translation>Третья альтернатива</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="160"/>
+        <source>BRouter (offline)</source>
+        <translation>BRouter (без Интернета)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="167"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (требуется связь с Интернетом)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="197"/>
+        <source>profile: %1, alternative: %2</source>
+        <translation>Профиль: %1, альтернатива: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="768"/>
+        <source>Error:</source>
+        <translation>Ошибка:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="774"/>
+        <source>QMapShack communicates with BRouter via a network connection. Usually this is done on a special address that can't be reached from outside your device. However BRouter listens for connections on all available interfaces. If you are in your own private network with an active firewall, this is not much of a problem. If you are in a public network every open port is a risk as it can be used by someone else to compromise your system. We do not recommend to use the local  [...]
+        <translation>QMapShack связывается с маршрутизатором через сетевое соединение. Обычно это делается по специальному адресу, который не может быть достигнут вне вашего устройства. Однако BRouter прослушивает соединения на всех доступных интерфейсах. Если вы находитесь в своей собственной частной сети с активным брандмауэром, это не проблема. Если вы находитесь в общедоступной сети, каждый открытый порт представляет собой риск, поскольку он может быть использован кем-то другим для к [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="386"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="519"/>
+        <source>response is empty</source>
+        <translation>Ответ пуст</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="434"/>
+        <source>Bad response from server: %1</source>
+        <translation>Плохой ответ от сервера: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="485"/>
+        <source><b>BRouter</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>BRouter</b><br/>Запрос маршрутизации отправлен на сервер. Пожалуйста, подождите...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="359"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="488"/>
+        <source>Calculate route with %1</source>
+        <translation>Вычислить маршрут с %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="372"/>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="507"/>
+        <source>this version of BRouter does not support more then 1 nogo-area</source>
+        <translation>эта версия BRouter не поддерживает более 1 запретной зоны</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="553"/>
+        <source><b>BRouter</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>BRouter</b><br/>Плохой ответ от сервера:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="543"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Время расчёта: %1 сек.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="821"/>
+        <source>running</source>
+        <translation>Запущено</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="813"/>
+        <source>starting</source>
+        <translation>Идет запуск</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="706"/>
+        <source>BRouter (Version %1.%2.%3)</source>
+        <translation>BRouter (Версия %1.%2.%3)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="803"/>
+        <source>Warning...</source>
+        <translation>Предупреждение...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="808"/>
+        <source>I understand the risk. Don't tell me again.</source>
+        <translation>Я понимаю риск. Больше не говорите.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="828"/>
+        <source>stopped</source>
+        <translation>Остановлено</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="839"/>
+        <source>not installed</source>
+        <translation>Не установлено</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterBRouter.cpp" line="850"/>
+        <source>online</source>
+        <translation>Онлайн</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="482"/>
+        <source>%1 not accessible</source>
+        <translation>%1 не доступно</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="492"/>
+        <source>%1 invalid result</source>
+        <translation>%1 неверный результат</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="536"/>
+        <source>Error parsing online-config:</source>
+        <translation>Ошибка при анализе онлайн конфигурации:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetup.cpp" line="541"/>
+        <source>Network error:</source>
+        <translation>Ошибка сети:</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="38"/>
+        <source>Restore Default Values</source>
+        <translation>Восстановить умолчание</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="371"/>
+        <source>Open Directory</source>
+        <translation>Открыть папку</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="378"/>
+        <source>select Java Executable</source>
+        <translation>Выбрать исполняемый файл Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="414"/>
+        <source>please select BRouter installation directory</source>
+        <translation>Выбрать папку установки BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="419"/>
+        <source>selected directory does not exist</source>
+        <translation>Выбранная папка не существует</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="420"/>
+        <source>create directory and install BRouter there</source>
+        <translation>Создать папку и установить там BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="427"/>
+        <source>existing BRouter installation</source>
+        <translation>Существующая установка BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="428"/>
+        <source>update existing BRouter installation</source>
+        <translation>Обновить существующую установку BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="433"/>
+        <source>empty directory, create new BRouter installation here</source>
+        <translation>Пустая папка, создать там новую установку BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="434"/>
+        <source>create new BRouter installation</source>
+        <translation>Создать новую установку BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="442"/>
+        <source>seems to be a valid Java-executable</source>
+        <translation>Вероятно, является допустимым исполняемым файлом Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="446"/>
+        <source>doesn't seem to be a valid Java-executable</source>
+        <translation>Не похоже на допустимый исполняемый файл Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="451"/>
+        <source>Java Executable not found</source>
+        <translation>Исполняемый файл Java не найден</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="496"/>
+        <source>Error loading installation-page at %1</source>
+        <translation>Ошибка загрузки страницы установки в %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="505"/>
+        <source>no brouter-version to install selected</source>
+        <translation>Версия BRouter для установки не выбрана</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="513"/>
+        <source>selected %1 for download and installation</source>
+        <translation>Выбрано %1 для загрузки и установки</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="524"/>
+        <source>Warning...</source>
+        <translation>Предупреждение...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="529"/>
+        <source>Download: %1<br/><br/>This will download and install a zip file from a download location that is not secured by any standard at all, using plain HTTP. Usually this should be HTTPS. The risk is someone redirecting the request and sending you a replacement zip with malware. There is no way for QMapShack to detect this. <br/>If you do not understand this or if you are in doubt, do not proceed and abort. Use the Web version of BRouter instead.</source>
+        <translation>Загрузка:%1 <br/>Это загрузит и установит файл ZIP из места загрузки, которое не защищено никаким стандартом вообще, используя простой HTTP. Обычно это должно быть HTTPS. Риск заключается в том, что кто-то перенаправляет запрос и отправляет вам заменяющий ZIP с помощью вредоносной программы. QMapShack не может обнаружить это. <br/> Если вы не понимаете этого или если у вас есть сомнения, не начинайте и прерываете. Вместо этого используйте веб-версию BRout [...]
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="541"/>
+        <source>I understand the risk and wish to proceed.</source>
+        <translation>Я понимаю риск и хочу продолжить.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="553"/>
+        <source>download %1 started</source>
+        <translation>Загрузка %1 началась</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="565"/>
+        <source>Network Error: %1</source>
+        <translation>Ошибка сети: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="586"/>
+        <source>download %1 finished</source>
+        <translation>Загрузка %1 завершена</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="588"/>
+        <source>unzipping:</source>
+        <translation>Распаковка:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="593"/>
+        <source>ready.</source>
+        <translation>Готово.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="613"/>
+        <source>download of brouter failed: %1</source>
+        <translation>Загрузка BRouter не удалась: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="623"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="630"/>
+        <source>retrieving available profiles from %1</source>
+        <translation>Получить доступные профили из %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="654"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="736"/>
+        <source>content of profile</source>
+        <translation>Содержание профиля</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="729"/>
+        <source>Error:</source>
+        <translation>Ошибка: </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="466"/>
+        <source>Error creating directory %1</source>
+        <translation>Ошибка создания папки %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="571"/>
+        <source>Error directory %1 does not exist</source>
+        <translation>Ошибка: папка %1 не существует</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="578"/>
+        <source>Error creating file %1</source>
+        <translation>Ошибка создания файла %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterSetupWizard.cpp" line="582"/>
+        <source>Error writing to file %1</source>
+        <translation>Ошибка записи в файл %1</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesPage</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesPage.cpp" line="82"/>
+        <source>Continue with Setup</source>
+        <translation>Продолжать настройку</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterTilesSelect</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="98"/>
+        <source>available routing-data is being determined.</source>
+        <translation>Определяются доступные данные маршрутизации.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="108"/>
+        <source>Select outdated</source>
+        <translation>Выбрать устаревшее</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="109"/>
+        <source>Clear Selection</source>
+        <translation>Очистить выделение</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="110"/>
+        <source>Delete selection</source>
+        <translation>Удалить выделение</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="111"/>
+        <source>Download</source>
+        <translation>Загрузка</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="281"/>
+        <source>Error creating segments directory %1</source>
+        <translation>Ошибка создания каталога сегментов %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="365"/>
+        <source>cannot parse: %1 is not a date</source>
+        <translation>Невозможно разобрать: %1 не является допустимой датой</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="390"/>
+        <source>cannot parse: %1 is not a valid size</source>
+        <translation>Невозможно разобрать: %1 не является допустимым размером</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="409"/>
+        <source>Error retrieving available routing data from %1: %2</source>
+        <translation>Ошибка получения доступных данных маршрутизации из %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="490"/>
+        <source>segments directory does not exist: </source>
+        <translation>Папка сегментов не существует:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="504"/>
+        <source>error creating file %1: %2</source>
+        <translation>Ошибка создания файла сегментов %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="536"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="576"/>
+        <source>no valid request for filename %1</source>
+        <translation>Недействительный запрос имени файла %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="541"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="584"/>
+        <source>no open file assigned to request for %1</source>
+        <translation>К запросу для %1 не был назначен открытый файл</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="551"/>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="594"/>
+        <source>error writing to file %1: %2</source>
+        <translation>Ошибка записи в файл %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="620"/>
+        <source>error renaming file %1 to %2: %3</source>
+        <translation>Ошибка переименования файла %1 до %2: %3</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="694"/>
+        <source>up-to-date: %1 (%2), outdated: %3 (%4), to be downloaded: %5 (%6)</source>
+        <translation>Верно: %1 (%2), устарело: %3 (%4), загрузить: %5 (%6)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="792"/>
+        <source>being downloaded: %1 of %2</source>
+        <translation>Загружено: %1 от %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="812"/>
+        <source>no local data, online available: %1 (%2)</source>
+        <translation>Нет локальных данных, доступно в Интернете: %1 (%2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="798"/>
+        <source>local data outdated (%1, %2 - remote %3, %4)</source>
+        <translation>Локальные данные устарели (%1, %2 - удаленные %3, %4)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="190"/>
+        <source>Error removing %1: %2</source>
+        <translation>Ошибка удаления %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="321"/>
+        <source>Network Error</source>
+        <translation>Ошибка сети</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="330"/>
+        <source>invalid result, no files found</source>
+        <translation>Неверный результат, файлы не найдены</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="806"/>
+        <source>local data up to date (%1, %2)</source>
+        <translation>Локальные данные верны (%1, %2)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterTilesSelect.cpp" line="818"/>
+        <source>no routing-data available</source>
+        <translation>Нет доступных данных маршрутизации</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterBRouterToolShell</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="93"/>
+        <source>!!! done !!!
+</source>
+        <translation>Сделано!</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/CRouterBRouterToolShell.cpp" line="98"/>
+        <source>!!! failed !!!
+</source>
+        <translation>Не удалось!</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="37"/>
+        <source>Fastest</source>
+        <translation>Самый быстрый</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="38"/>
+        <source>Shortest</source>
+        <translation>Самый короткий</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="39"/>
+        <source>Bicycle</source>
+        <translation>Велосипед</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="40"/>
+        <source>Pedestrian</source>
+        <translation>Пешеход</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="42"/>
+        <source>US English</source>
+        <translation>Английский (США)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="43"/>
+        <source>British English</source>
+        <translation>Английский (Британский)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="44"/>
+        <source>Danish</source>
+        <translation>Датский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="45"/>
+        <source>Dutch</source>
+        <translation>Голландский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="46"/>
+        <source>French</source>
+        <translation>Французский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="47"/>
+        <source>German</source>
+        <translation>Немецкий</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="48"/>
+        <source>Italian</source>
+        <translation>Итальянский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="49"/>
+        <source>Norwegian</source>
+        <translation>Норвежский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="50"/>
+        <source>Spanish</source>
+        <translation>Испанский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="51"/>
+        <source>Swedish</source>
+        <translation>Шведский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="110"/>
+        <source>mode "%1"</source>
+        <translation>режим "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="114"/>
+        <source>no highways</source>
+        <translation>без шоссе</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="125"/>
+        <source>no toll roads</source>
+        <translation>без платных дорог</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="136"/>
+        <source>no seasonal</source>
+        <translation>без сезонных</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="147"/>
+        <source>no unpaved</source>
+        <translation>нет без покрытия</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="158"/>
+        <source>no ferry</source>
+        <translation>без парома</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="169"/>
+        <source>no crossing of country borders</source>
+        <translation>без пересечений государственных границ</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="301"/>
+        <source><b>MapQuest</b><br/>Routing request sent to server. Please wait...</source>
+        <translation><b>MapQuest</b><br/>Запрос маршрутизации отправленный до сервера. Пожалуйста, подождите...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="312"/>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="346"/>
+        <source><b>MapQuest</b><br/>Bad response from server:<br/>%1</source>
+        <translation><b>MapQuest</b><br/>Плохой ответ от сервера:<br/>%1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterMapQuest.cpp" line="363"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Время расчёта: %1 сек.</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Warning...</source>
+        <translation>Предупреждение...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="55"/>
+        <source>Found Routino with a wrong version. Expected %1 found %2</source>
+        <translation>Найдено Routino с неправильной версией. Ожидаема %1б найдена %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="59"/>
+        <source>Shortest</source>
+        <translation>Самый короткий</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="60"/>
+        <source>Quickest</source>
+        <translation>Самый быстрый</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="78"/>
+        <source>Foot</source>
+        <translation>Пешком</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="79"/>
+        <source>Horse</source>
+        <translation>Лошадь</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="80"/>
+        <source>Wheelchair</source>
+        <translation>Инвалидная коляска</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="81"/>
+        <source>Bicycle</source>
+        <translation>Велосипед</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="82"/>
+        <source>Moped</source>
+        <translation>Мопед</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="83"/>
+        <source>Motorcycle</source>
+        <translation>Мотоцикл</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="84"/>
+        <source>Motorcar</source>
+        <translation>Автомобиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="85"/>
+        <source>Goods</source>
+        <translation>Товары</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="87"/>
+        <source>English</source>
+        <translation>Английский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="88"/>
+        <source>German</source>
+        <translation>Немецкий</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="89"/>
+        <source>French</source>
+        <translation>Французский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="90"/>
+        <source>Hungarian</source>
+        <translation>Венгерский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="91"/>
+        <source>Dutch</source>
+        <translation>Голландский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="92"/>
+        <source>Russian</source>
+        <translation>Русский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="93"/>
+        <source>Polish</source>
+        <translation>Польский</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="128"/>
+        <source>A function was called without the database variable set.</source>
+        <translation>Функция была вызвана без переменной для базы данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="131"/>
+        <source>A function was called without the profile variable set.</source>
+        <translation>Функция была вызвана без переменной профиля.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="134"/>
+        <source>A function was called without the translation variable set.</source>
+        <translation>Функция была вызвана без переменной перевода.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="137"/>
+        <source>The specified database to load did not exist.</source>
+        <translation>Указанная к загрузке база данных не существует.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="140"/>
+        <source>The specified database could not be loaded.</source>
+        <translation>Указанная база данных не может быть загружена.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="143"/>
+        <source>The specified profiles XML file did not exist.</source>
+        <translation>Указанный XML файл профилей не существует.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="146"/>
+        <source>The specified profiles XML file could not be loaded.</source>
+        <translation>Указанный XML файл профилей невозможно загрузить.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="149"/>
+        <source>The specified translations XML file did not exist.</source>
+        <translation>Указанный XML файл перевода не существует.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="152"/>
+        <source>The specified translations XML file could not be loaded.</source>
+        <translation>Указанный XML файл перевода невозможно загрузить.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="155"/>
+        <source>The requested profile name does not exist in the loaded XML file.</source>
+        <translation>Запрошенное имя профиля не существует в загруженном XML файле.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="158"/>
+        <source>The requested translation language does not exist in the loaded XML file.</source>
+        <translation>Запрошенный язык перевода не существует в загруженном XML файле.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="161"/>
+        <source>In the routing database there is no highway near the coordinates to place a waypoint.</source>
+        <translation>В базе данных маршрутизации нет дороги вблизи координат данной маршрутной точки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="164"/>
+        <source>The profile and database do not work together.</source>
+        <translation>Профиль и базы данных не работают совместно.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="167"/>
+        <source>The profile being used has not been validated.</source>
+        <translation>Использованный профиль не был подтвержден.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="170"/>
+        <source>The user specified profile contained invalid data.</source>
+        <translation>Указанный профиль содержит недопустимые данные.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="173"/>
+        <source>The routing options specified are not consistent with each other.</source>
+        <translation>Параметры маршрутизации несовместимы между собой.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="176"/>
+        <source>There is a mismatch between the library and caller API version.</source>
+        <translation>Есть несоответствие между API версиями библиотеки и абонента.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="179"/>
+        <source>Route calculation was aborted by user.</source>
+        <translation>Расчет маршрута был прерван пользователем.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="185"/>
+        <source>A route could not be found to waypoint %1.</source>
+        <translation>Невозможно найти маршрут к маршрутной точке %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="188"/>
+        <source>Unknown error: %1</source>
+        <translation>Неизвестная ошибка: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="200"/>
+        <source>profile "%1"</source>
+        <translation>профиль "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="201"/>
+        <source>, mode "%1"</source>
+        <translation>, режим "%1"</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="332"/>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="415"/>
+        <source>Calculate route with %1</source>
+        <translation>Вычислить маршрут с %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterRoutino.cpp" line="340"/>
+        <source><br/>Calculation time: %1s</source>
+        <translation><br/>Время расчета: %1 сек.</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="40"/>
+        <source>Add or remove paths containing Routino data. There can be multiple databases in a path but no sub-path is parsed.</source>
+        <translation>Добавить или удалить пути, содержащие данные Routino. Несколько баз данных возможно в папке, но вложенные папки не просматриваются.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/CRouterRoutinoPathSetup.cpp" line="55"/>
+        <source>Select routing data file path...</source>
+        <translation>Выбрать путь к файлу с данными маршрутизации...</translation>
+    </message>
+</context>
+<context>
+    <name>CRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="38"/>
+        <source>Routino (offline)</source>
+        <translation>Routino (без Интернета)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="39"/>
+        <source>MapQuest (online)</source>
+        <translation>MapQuest (требуется связь с Интернетом)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/CRouterSetup.cpp" line="40"/>
+        <source>BRouter (online)</source>
+        <translation>BRouter (требуется связь с Интернетом)</translation>
+    </message>
+</context>
+<context>
+    <name>CRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="33"/>
+        <source>Create Routino Database</source>
+        <translation>Создать базу данных Routino</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="58"/>
+        <source>Select files...</source>
+        <translation>Выбрать файлы...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="82"/>
+        <source>Select target path...</source>
+        <translation>Выбрать целевой путь...</translation>
+    </message>
+    <message>
+        <location filename="../tool/CRoutinoDatabaseBuilder.cpp" line="143"/>
+        <source>!!! done !!!
+</source>
+        <translation>Сделано!</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSky</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="96"/>
+        <source><b>OpenSky</b><br/>An online service that provides positional data of civil aircrafts</source>
+        <translation><b>OpenSky</b><br/>Онлайн-сервис, который предоставляет позиционные данные гражданских самолетов</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="170"/>
+        <source>unkn.</source>
+        <translation>не известно</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="201"/>
+        <source>key:</source>
+        <translation>ключ:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="202"/>
+        <source>callsign:</source>
+        <translation>позывной:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="203"/>
+        <source>origin country:</source>
+        <translation>страна происхождения:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="204"/>
+        <source>time position:</source>
+        <translation>время для позиции:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="205"/>
+        <source>last contact:</source>
+        <translation>последний контакт:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="206"/>
+        <source>longitude:</source>
+        <translation>долгота:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="207"/>
+        <source>latitude:</source>
+        <translation>ширина:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="208"/>
+        <source>geo. alt.:</source>
+        <translation>геом. высота:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="209"/>
+        <source>on ground:</source>
+        <translation>на земле:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="210"/>
+        <source>velocity:</source>
+        <translation>скорость:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="211"/>
+        <source>heading:</source>
+        <translation>курс:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="212"/>
+        <source>vert. rate:</source>
+        <translation>верт. скорость:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="213"/>
+        <source>baro. alt.:</source>
+        <translation>баром. высота:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="214"/>
+        <source>squawk:</source>
+        <translation>ответчик:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="215"/>
+        <source>spi:</source>
+        <translation>индик. спец. назнач.:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSky.cpp" line="216"/>
+        <source>position source:</source>
+        <translation>источник позиции:</translation>
+    </message>
+</context>
+<context>
+    <name>CRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="78"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="89"/>
+        <source>Select record file</source>
+        <translation>Выбрать файл записи</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Reset record...</source>
+        <translation>Сбросить запись...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="114"/>
+        <source>Do you really want to reset the current record?</source>
+        <translation>Вы действительно хотите сбросить текущую запись?</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/CRtOpenSkyInfo.cpp" line="160"/>
+        <source>Failed...</source>
+        <translation>Не удалось...</translation>
+    </message>
+</context>
+<context>
+    <name>CRtSelectSource</name>
+    <message>
+        <location filename="../realtime/CRtSelectSource.cpp" line="62"/>
+        <source>Select a real time source from the list. Some sources can be added multiple times. For others only a single instance can be added.</source>
+        <translation>Выбрать источник данных в реальном времени из списка. Некоторые источники могут быть добавлены несколько раз. Другие можно добавить только один раз.</translation>
+    </message>
+</context>
+<context>
+    <name>CRtWorkspace</name>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="65"/>
+        <source>To add a real time source do a right click on the list above. </source>
+        <translation>Чтобы добавить источник данных в реальном времени, щелкните правой кнопкой мышки на верхнем списке.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Delete Source...</source>
+        <translation>Удалить источник...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/CRtWorkspace.cpp" line="254"/>
+        <source>Do you really want to remove the realtime source?</source>
+        <translation>Вы действительно хотите удалить источник данных в реальном времени?</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/CScrOptRangeTrk.cpp" line="38"/>
+        <source>No range selected</source>
+        <translation>Не выбран интервал</translation>
+    </message>
+</context>
+<context>
+    <name>CScrOptSelect</name>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="94"/>
+        <source><b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/></source>
+        <translation><b>Точный режим</b><br/> Все выбранные элементы должны полностью находиться внутри выбранной области<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="98"/>
+        <source><b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/></source>
+        <translation><b>Режим пересечения </b><br/> Все выбранные элементы должны пересекать выбранную область<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="102"/>
+        <source><b>Add Tracks</b><br/>Add tracks to list of selected items<br/></source>
+        <translation><b>Добавить треки </b><br/>Добавить треки к списку выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="106"/>
+        <source><b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/></source>
+        <translation><b>Добавить маршрутные точки </b><br/>Добавить маршрутные точки к списку выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="110"/>
+        <source><b>Add Routes</b><br/>Add routes to list of selected items<br/></source>
+        <translation><b>Добавить маршруты </b><br/>Добавить маршруты к списку выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="114"/>
+        <source><b>Add Areas</b><br/>Add areas to list of selected items<br/></source>
+        <translation><b>Добавить области </b><br/>Добавить области к списку выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="125"/>
+        <source><b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/></source>
+        <translation><b>Игнорировать треки </b><br/> Игнорировать треки в списке выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="129"/>
+        <source><b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/></source>
+        <translation><b>Игнорировать маршрутные точки </b><br/> Игнорировать маршрутные точки в списке выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="133"/>
+        <source><b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/></source>
+        <translation><b>Игнорировать маршруты </b><br/> Игнорировать маршруты в списке выбранных элементов<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/CScrOptSelect.cpp" line="137"/>
+        <source><b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/></source>
+        <translation><b>Игнорировать области </b><br/> Игнорировать области в списке выбранных элементов<br/></translation>
+    </message>
+</context>
+<context>
+    <name>CSearchDatabase</name>
+    <message>
+        <location filename="../gis/db/CSearchDatabase.cpp" line="38"/>
+        <source>Search database '%1':</source>
+        <translation>Искать в базе данных '%1':</translation>
+    </message>
+</context>
+<context>
+    <name>CSearchGoogle</name>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="118"/>
+        <source>Unknown response</source>
+        <translation>Неизвестный ответ</translation>
+    </message>
+    <message>
+        <location filename="../gis/search/CSearchGoogle.cpp" line="128"/>
+        <source>Error: </source>
+        <translation>Ошибка: </translation>
+    </message>
+</context>
+<context>
+    <name>CSetupDatabase</name>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="47"/>
+        <source>Missing Requirement</source>
+        <translation>Отсутствует требование</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="48"/>
+        <source>MySQL cannot be used at this point, because the corresponding driver (QMYSQL) is not available.<br />Please make sure you have installed the corresponding package.<br />If you don't know what to do now you should have <a href="%1">a look at the wiki</a>.</source>
+        <translation>MySQL не может быть сейчас использован, так как соответствующий драйвер (QMYSQL) не доступен. <br />Пожалуйста, убедитесь, что установлен соответствующий пакет.<br/> Если вы не знаете, что делать, вам следует просмотреть <a href="%1">Wiki</a>.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="103"/>
+        <source>There is already a database with name '%1'</source>
+        <translation>База данных с именем '%1' уже существует</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="116"/>
+        <source>New database...</source>
+        <translation>Новая база данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupDatabase.cpp" line="141"/>
+        <source>Open database...</source>
+        <translation>Открыть базу данных...</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Setup database...</source>
+        <translation>Настройка базы данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/CSetupWorkspace.cpp" line="55"/>
+        <source>Changes will become active after an application's restart.</source>
+        <translation>Изменения вступят в силу после перезапуска приложения.</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfProject</name>
+    <message>
+        <location filename="../gis/slf/CSlfProject.cpp" line="42"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+</context>
+<context>
+    <name>CSlfReader</name>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="63"/>
+        <source>Failed to parse timestamp `%1`</source>
+        <translation>Не удалось проанализировать метку времени `%1`</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="76"/>
+        <source>%1 does not exist</source>
+        <translation>%1 не существует</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="81"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="92"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="99"/>
+        <source>Not a SLF file: %1</source>
+        <translation>Это не файл SLF: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="106"/>
+        <source>Unsupported revision %1: %2</source>
+        <translation>Версия не поддерживается: %1: %2</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="181"/>
+        <source>Break %1</source>
+        <translation>Прерывание %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/slf/CSlfReader.cpp" line="185"/>
+        <source>Lap %1</source>
+        <translation>Круг %1</translation>
+    </message>
+</context>
+<context>
+    <name>CSmlProject</name>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="63"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="85"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="96"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="103"/>
+        <source>Not an sml file: %1</source>
+        <translation>Это не файл SML: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="129"/>
+        <source>Recovery time: %1 h<br/></source>
+        <translation>Время восстановления: %1 h<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="134"/>
+        <source>Peak Training Effect: %1<br/></source>
+        <translation>Пиковый эффект тренинга: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="139"/>
+        <source>Energy: %1 kCal<br/></source>
+        <translation>Энергия: %1 kCal<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="160"/>
+        <source>Device: %1<br/></source>
+        <translation>Устройство: %1<br/></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="148"/>
+        <source>Battery usage: %1 %/hour</source>
+        <translatorcomment>Изпользование батареи: %1 %/час</translatorcomment>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="195"/>
+        <source>Use of local time...</source>
+        <translation>Использование местного времени...</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="196"/>
+        <source>No UTC time has been found in file %1. Local computer time will be used. You can adjust time using a time filter if needed.</source>
+        <translation>Не найдено время UTC в файле %1. Используется локальное время компьютера. При необходимости вы можете настроить время, используя фильтр времени.</translation>
+    </message>
+    <message>
+        <location filename="../gis/suunto/CSmlProject.cpp" line="245"/>
+        <source>This SML file does not contain any position data and can not be displayed by QMapShack: %1</source>
+        <translation>Этот файл SML не содержит данных о местоположении и не может отображаться в QMapShack: %1</translation>
+    </message>
+</context>
+<context>
+    <name>CTableTrk</name>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="99"/>
+        <source>Double click to edit elevation value</source>
+        <translation>Двойной щелчок для изменения высоты</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/CTableTrk.cpp" line="125"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="133"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="136"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="141"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="155"/>
+        <location filename="../gis/trk/CTableTrk.cpp" line="157"/>
+        <source>%1%2</source>
+        <translation>%1%2</translation>
+    </message>
+</context>
+<context>
+    <name>CTcxProject</name>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="51"/>
+        <source>Failed to load file %1...</source>
+        <translation>Не удалось загрузить файл %1...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="73"/>
+        <source>Failed to open %1</source>
+        <translation>Не удалось открыть %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="84"/>
+        <source>Failed to read: %1
+line %2, column %3:
+ %4</source>
+        <translation>Не удалось читать %1
+строка %2, столбец %3:
+%4</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="91"/>
+        <source>Not a TCX file: %1</source>
+        <translation>Это не файл TCX: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="101"/>
+        <source>This TCX file contains at least 1 workout, but neither an activity nor a course. As workouts do not contain position data, they can not be imported to QMapShack.</source>
+        <translation>Этот файл TCX содержит по крайней мере 1 тренировку, но нет ни активности, ни курса. Поскольку тренировки не содержат данных позиции, они не могут быть импортированы в QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="106"/>
+        <source>This TCX file does not contain any activity or course: %1</source>
+        <translation>В файле TCX %1 нет активностей или курсов</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="275"/>
+        <source>File exists ...</source>
+        <translation>Файл существует...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="276"/>
+        <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 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>Файл существует и не создан в QMapShack. Если нажать 'да' все данные в этом файле будут потеряны. Даже если этот файл содержит данные GPX и был загружен в QMapShack, QMapShack не может загрузить и сохранить все элементы этого файла. Такие элементы будут потеряны. Рекомендуется использовать другой файл. <b>Вы действительно хотите перезаписать этот файл?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="315"/>
+        <source>The track <b>%1</b> you have selected contains trackpoints with invalid timestamps. Device might not accept the generated TCX course file if left as is. <b>Do you want to apply a filter with constant speed (10 m/s) and continue?</b></source>
+        <translation>Выбранный трек <b>%1</b> содержит точки трека с недопустимыми временными метками. Устройство может не принять сгенерированный файл курса TCX, если оставить его как есть. <b>Хотите вы применить фильтр с постоянной скоростью (10 м/с) и продолжить?</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="339"/>
+        <source>Course</source>
+        <translation>Курс</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="340"/>
+        <source>Activity</source>
+        <translation>Активность</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="341"/>
+        <source>Cancel</source>
+        <translation>Отменить</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="314"/>
+        <source>Track with invalid timestamps...</source>
+        <translation>Трек с неверными метками времени...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="334"/>
+        <source>Activity or course?</source>
+        <translation>Активность или курс?</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="335"/>
+        <source>QMapShack does not know how track <b>%1</b> should be saved. <b>Do you want to save it as a course or as an activity? </b>Remember that only waypoints close enough to the track will be saved when saving as a course. Waypoints will not be saved when saving as an activity.</source>
+        <translation>QMapShack не знает, как следует сохранить трек <b>%1</b>.<b> Сохранить его как курс или как активность? </b>Помните, что только путевые точки, достаточно близкие к треку, будут сохранены при сохранении в качестве курса. Путевые точки не сохраняются при сохранении в качестве активности.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="432"/>
+        <source>Failed to create file '%1'</source>
+        <translation>Не удалось создать файл '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="453"/>
+        <source>Failed to write file '%1'</source>
+        <translation>Не удалось записать файл '%1'</translation>
+    </message>
+    <message>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="435"/>
+        <location filename="../gis/tcx/CTcxProject.cpp" line="454"/>
+        <source>Saving GIS data failed...</source>
+        <translation>Не удалось сохранить данные ГИС...</translation>
+    </message>
+</context>
+<context>
+    <name>CTemplateWidget</name>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="40"/>
+        <source>choose one...</source>
+        <translation>выбрать один...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="41"/>
+        <source>Hiking Tour Summary (built-in)</source>
+        <translation>Сводка пеших экскурсий (встроенная)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="159"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="169"/>
+        <source>Template path...</source>
+        <translation>Путь к шаблонам...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="193"/>
+        <source>Failed to read template file %1.</source>
+        <translation>Не удалось читать шаблон %1.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTemplateWidget.cpp" line="247"/>
+        <source>Preview...</source>
+        <translation>Просмотр...</translation>
+    </message>
+</context>
+<context>
+    <name>CTextEditWidget</name>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="71"/>
+        <source>&Color...</source>
+        <translation>&Цвет...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/CTextEditWidget.cpp" line="117"/>
+        <source>Reset format</source>
+        <translation>Сбросить форматирование</translation>
+    </message>
+</context>
+<context>
+    <name>CToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="43"/>
+        <source>Available Actions</source>
+        <translation>Доступные действия</translation>
+    </message>
+    <message>
+        <location filename="../helpers/CToolBarSetupDialog.cpp" line="44"/>
+        <source>Selected Actions</source>
+        <translation>Выбранные действия</translation>
+    </message>
+</context>
+<context>
+    <name>CTwoNavProject</name>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="560"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="88"/>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="192"/>
+        <source>Failed to open %1.</source>
+        <translation>Не удалось открыть %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/CTwoNavProject.cpp" line="160"/>
+        <source>Save GIS data to...</source>
+        <translation>Сохранить данные ГИС в...</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="588"/>
+        <location filename="../gis/tnv/serialization.cpp" line="599"/>
+        <source>Only support lon/lat WGS 84 format.</source>
+        <translation>Поддерживается долгота/широта только в формате WGS 84.</translation>
+    </message>
+    <message>
+        <location filename="../gis/tnv/serialization.cpp" line="617"/>
+        <location filename="../gis/tnv/serialization.cpp" line="645"/>
+        <location filename="../gis/tnv/serialization.cpp" line="719"/>
+        <source>Failed to read data.</source>
+        <translation>Не удалось читать данные.</translation>
+    </message>
+</context>
+<context>
+    <name>CWptIconDialog</name>
+    <message>
+        <location filename="../helpers/CWptIconDialog.cpp" line="161"/>
+        <source>Path to user icons...</source>
+        <translation>Путь к пользовательским пиктограммам...</translation>
+    </message>
+</context>
+<context>
+    <name>Form</name>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="20"/>
+        <source>Participants</source>
+        <translation>Участники</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="32"/>
+        <source>Weather</source>
+        <translation>Погода</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="38"/>
+        <source>rain</source>
+        <translation>дождь</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="48"/>
+        <source>sunny</source>
+        <translation>солнце</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="58"/>
+        <source>snow</source>
+        <translation>снег</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="68"/>
+        <source>clouds</source>
+        <translation>облака</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="128"/>
+        <source>windy</source>
+        <translation>ветер</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="81"/>
+        <source>hot</source>
+        <translation>жарко</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="91"/>
+        <source>warm</source>
+        <translation>тепло</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="101"/>
+        <source>cold</source>
+        <translation>холодно</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="111"/>
+        <source>freezing</source>
+        <translation>заморозка</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="121"/>
+        <source>foggy</source>
+        <translation>туман</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="138"/>
+        <source>humid</source>
+        <translation>влажно</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="171"/>
+        <source>Character</source>
+        <translation>Характер</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="242"/>
+        <source>easy hiking</source>
+        <translation>легкий поход</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="184"/>
+        <source>climbing</source>
+        <translation>альпинизм</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="256"/>
+        <source>alpine</source>
+        <translation>высокогорно</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="177"/>
+        <source>large ascend</source>
+        <translation>большой подъём</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="249"/>
+        <source>long distance</source>
+        <translation>длинная дистанция</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="194"/>
+        <source>via ferrata</source>
+        <translation>феррата</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="161"/>
+        <source>hail/soft hail</source>
+        <translation>град</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="201"/>
+        <source>Rating</source>
+        <translation>Рейтинг</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="214"/>
+        <source>Rating 5 stars</source>
+        <translation>Рейтинг 5 звёзд</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="219"/>
+        <source>Rating 4 stars</source>
+        <translation>Рейтинг 4 звезды</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="224"/>
+        <source>Rating 3 stars</source>
+        <translation>Рейтинг 3 звезды</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="229"/>
+        <source>Rating 2 stars</source>
+        <translation>Рейтинг 2 звезды</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="234"/>
+        <source>Rating 1 star</source>
+        <translation>Рейтинг 1 звезда</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="263"/>
+        <source>aborted</source>
+        <translation>прервано</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="273"/>
+        <source>Equipment</source>
+        <translation>Экипировка</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="293"/>
+        <source>ferrata gear</source>
+        <translation>принадлежности для ферраты</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="307"/>
+        <source>night gear</source>
+        <translation>ночные принадлежности</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="314"/>
+        <source>snow shoes</source>
+        <translation>снежная обувь</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="286"/>
+        <source>climbing gear</source>
+        <translation>альпинистские принадлежности</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="279"/>
+        <source>ski</source>
+        <translation>лыжи</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="300"/>
+        <source>camping gear</source>
+        <translation>походные принадлежности</translation>
+    </message>
+    <message>
+        <location filename="../templates/Hiking_Tour_Summary.ui" line="324"/>
+        <source>Details</source>
+        <translation>Детали</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About....</source>
+        <translation>О программе....</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="55"/>
+        <source><b>QMapShack</b>, Version</source>
+        <translation><b>QMapShack</b>, версия</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="62"/>
+        <location filename="../IAbout.ui" line="113"/>
+        <location filename="../IAbout.ui" line="127"/>
+        <location filename="../IAbout.ui" line="141"/>
+        <location filename="../IAbout.ui" line="155"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="106"/>
+        <source>Qt</source>
+        <translation>Qt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="120"/>
+        <source>GDAL</source>
+        <translation>GDAL</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="134"/>
+        <source>Proj4</source>
+        <translation>Proj4</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="148"/>
+        <source>Routino</source>
+        <translation>Routino</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="179"/>
+        <source>Czech:</source>
+        <translation>Чешский:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="189"/>
+        <source>Pavel Fric</source>
+        <translation>Pavel Fric</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="202"/>
+        <source>German:</source>
+        <translation>Немецкий:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="212"/>
+        <source>Oliver Eichler</source>
+        <translation>Oliver Eichler</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="225"/>
+        <source>Dutch:</source>
+        <translation>Голландский:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="235"/>
+        <source>Harrie Klomp</source>
+        <translation>Harrie Klomp</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="248"/>
+        <source>French:</source>
+        <translation>Французский:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="258"/>
+        <source>Rainer Unseld </source>
+        <translation>Rainer Unseld</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="265"/>
+        <source>Jose Luis Domingo Lopez</source>
+        <translation>Jose Luis Domingo Lopez</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="278"/>
+        <source>Spanish:</source>
+        <translation>Испанский:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="288"/>
+        <source><b>Translation:</b></source>
+        <translation><b>Перевод:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="295"/>
+        <source>Russian:</source>
+        <translation>Русский:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="302"/>
+        <source>Wolfgang Thämelt</source>
+        <translation>Wolfgang Thämelt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="326"/>
+        <source>Win64:</source>
+        <translation>Win64:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="342"/>
+        <source>OS X:</source>
+        <translation>OS X:</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="352"/>
+        <source>Helmut Schmidt</source>
+        <translation>Helmut Schmidt</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="359"/>
+        <source>Ivo Kronenberg</source>
+        <translation>Ivo Kronenberg</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="366"/>
+        <source><b>Binaries:</b></source>
+        <translation><b>Бинарники:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="375"/>
+        <source>...and thanks to all Linux binary maintainers for doing a great job. Special thanks to Dan Horák and Bas Couwenberg for showing presence on the mailing list to discuss distribution related topics.</source>
+        <translation>... и благодарность всем поставщикам пакетов для дистрибутивов Linux за отличную работу. Особая благодарность Dan Horák и Bas Couwenberg за участие в дискуссиях о распределении QMapShack в списке рассылки.</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="395"/>
+        <source><b>Contributors:</b></source>
+        <translation><b>Участники:</b></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="402"/>
+        <source>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</source>
+        <translation>Christian Eichler (qms at christian-eichler.de)
+Ivo Kronenberg
+Norbert Truchsess (norbert.truchsess at t-online.de)</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="421"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Это программное обеспечение лицензировано под GPL3 или любой более поздней версией</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="428"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</translation>
+    </message>
+</context>
+<context>
+    <name>ICanvasSetup</name>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="14"/>
+        <source>Setup Map View...</source>
+        <translation>Настройка вида карт...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="22"/>
+        <source>Projection & Datum</source>
+        <translation>Проекция и датум</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="32"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="53"/>
+        <source>Scales</source>
+        <translation>Масштаб</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="59"/>
+        <source>Logarithmic</source>
+        <translation>Логарифмический</translation>
+    </message>
+    <message>
+        <location filename="../canvas/ICanvasSetup.ui" line="66"/>
+        <source>Square (optimized for TMS and WMTS tiles)</source>
+        <translation>Квадратичный (оптимальный для карт TMS и WMTS)</translation>
+    </message>
+</context>
+<context>
+    <name>IColorChooser</name>
+    <message>
+        <location filename="../widgets/IColorChooser.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Диалог</translation>
+    </message>
+</context>
+<context>
+    <name>ICombineTrk</name>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="14"/>
+        <source>Combine Tracks...</source>
+        <translation>Объединить треки...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="24"/>
+        <source>Available Tracks</source>
+        <translation>Доступные треки</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="54"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="81"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="139"/>
+        <location filename="../gis/trk/ICombineTrk.ui" line="166"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICombineTrk.ui" line="109"/>
+        <source>Combined Tracks</source>
+        <translation>Объединённые треки</translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Формат координат...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="22"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation>С48° 53' 39.6" В13° 31' 6.78"</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="29"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation>С48.8943° В013.51855°</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="36"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation>С48° 53.660 В013° 31.113</translation>
+    </message>
+</context>
+<context>
+    <name>ICreateRouteFromWpt</name>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="14"/>
+        <source>Create Route from Waypoints</source>
+        <translation>Создать маршрут из маршрутных точек</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="30"/>
+        <location filename="../gis/rte/ICreateRouteFromWpt.ui" line="50"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ICutTrk</name>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="14"/>
+        <source>Cut Track</source>
+        <translation>Вырезать трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="20"/>
+        <source>Delete first part of the track and keep second one</source>
+        <translation>Удалить первую часть трека и сохранить вторую</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="30"/>
+        <source>Keep both parts of the track</source>
+        <translation>Сохранить обе части трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="43"/>
+        <source>Keep first part of the track and delete second one</source>
+        <translation>Сохранить первую часть трека и удалить вторую</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="55"/>
+        <source>Cut Mode:</source>
+        <translation>Режим вырезания:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="136"/>
+        <source>Check this to store the result into a new track. 
+
+If you keep both parts of the track you have to create new ones. 
+
+If you want to keep just one half you can simply remove the points, or check this to create a new track.</source>
+        <translation>Выбрать, чтобы сохранить результат в новый трек.
+
+Если вы сохраните обе части трека, вы должны создать новые.
+
+Если вы желаете сохранить только одну часть вы можете просто удалить точки или выбрать это, чтобы создать новый трек.
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/ICutTrk.ui" line="143"/>
+        <source>Create a new track</source>
+        <translation>Создать новый трек</translation>
+    </message>
+</context>
+<context>
+    <name>IDB</name>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="60"/>
+        <source>The internal database format of '%1' has changed. QMapShack will migrate your database, now. After the migration the database won't be usable with older versions of QMapShack. It is recommended to backup the database first.</source>
+        <translation>Внутренний формат базы данных '%1' изменился. Сейчас QMapShack будет мигрировать вашу базу данных. После миграции база данных не будет работать с более старыми версиями QMapShack. Рекомендуется создать резервную копию базы данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="64"/>
+        <source>Migrate database...</source>
+        <translation>Перенести базу данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="69"/>
+        <source>Migration aborted by user</source>
+        <translation>Перенесение прервано пользователем</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="75"/>
+        <source>Failed to migrate '%1'.</source>
+        <translation>Не удалось перенести %1.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="77"/>
+        <location filename="../gis/db/IDB.cpp" line="106"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="81"/>
+        <source>Migration failed</source>
+        <translation>Не удалось перенесение</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="88"/>
+        <source>The database version of '%1' is more advanced as the one understood by your QMapShack installation. This won't work.</source>
+        <translation>Версия базы данных '%1' является более продвинутой чем та, которую знает ваша установка. Это не будет работать.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="110"/>
+        <source>Initialization failed</source>
+        <translation>Инициализация не удалось</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="91"/>
+        <source>Wrong database version...</source>
+        <translation>Неверная версия базы данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="95"/>
+        <source>Database created by newer version of QMapShack</source>
+        <translation>База данных создана при помощи более новой версии QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDB.cpp" line="104"/>
+        <source>Failed to initialize '%1'.</source>
+        <translation>Не удалось инициализировать %1.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBMysql</name>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password...</source>
+        <translation>Пароль...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="60"/>
+        <source>Password for database '%1':</source>
+        <translation>Пароль для базы данных '%1':</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBMysql.cpp" line="222"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Обновить базы данных к версии 5. Перенести все элементы ГИС.</translation>
+    </message>
+</context>
+<context>
+    <name>IDBSqlite</name>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="306"/>
+        <source>Update to database version 3. Migrate all GIS items.</source>
+        <translation>Обновить базы данных к версии 3. Перенести все элементы ГИС.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="375"/>
+        <source>Update to database version 5. Migrate all GIS items.</source>
+        <translation>Обновить базы данных к версии 5. Перенести все элементы ГИС.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IDBSqlite.cpp" line="449"/>
+        <source>Update to database version 6. Migrate all GIS items.</source>
+        <translation>Обновить базы данных к версии 6. Перенести все элементы ГИС.</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPathSetup</name>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="14"/>
+        <source>Setup DEM file paths</source>
+        <translation>Настройка путей ЦМР</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="31"/>
+        <location filename="../dem/IDemPathSetup.ui" line="51"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPathSetup.ui" line="112"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IDemPropSetup</name>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Изменить прозрачность карты</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как минимальный масштаб для отображения карты.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="53"/>
+        <location filename="../dem/IDemPropSetup.ui" line="90"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Контролировать диапазон масштаба отображения карты. С помощью двух кнопок слева и справа определить данный масштаб как минимальный или максимальный масштаб.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как максимальный масштаб для отображения карты.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="118"/>
+        <source>Hillshading</source>
+        <translation>Затенения холмов</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="144"/>
+        <source>Slope </source>
+        <translation>Наклон </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="226"/>
+        <location filename="../dem/IDemPropSetup.ui" line="326"/>
+        <location filename="../dem/IDemPropSetup.ui" line="410"/>
+        <location filename="../dem/IDemPropSetup.ui" line="494"/>
+        <location filename="../dem/IDemPropSetup.ui" line="578"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="229"/>
+        <location filename="../dem/IDemPropSetup.ui" line="329"/>
+        <location filename="../dem/IDemPropSetup.ui" line="413"/>
+        <location filename="../dem/IDemPropSetup.ui" line="497"/>
+        <location filename="../dem/IDemPropSetup.ui" line="581"/>
+        <source>> </source>
+        <translation>> </translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemPropSetup.ui" line="251"/>
+        <location filename="../dem/IDemPropSetup.ui" line="270"/>
+        <location filename="../dem/IDemPropSetup.ui" line="354"/>
+        <location filename="../dem/IDemPropSetup.ui" line="438"/>
+        <location filename="../dem/IDemPropSetup.ui" line="522"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IDemsList</name>
+    <message>
+        <location filename="../dem/IDemList.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="112"/>
+        <source>To add files with elevation data use <b>File->Setup DEM Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Чтобы добавить файлы с высотными данными, использовать <b>Файл->Настройка пути к ЦМР</b>. Или нажать <a href='setup'><b>здесь</b></a></translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="125"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a file. Use drag-n-drop to move the activated file in the process order. </source>
+        <translation>Использовать контекстное меню (нажать правой кнопкой мышки на элемент), чтобы активировать файл. Использовать перетаскивание мышкой, чтобы переместить активированный файл в порядке обработки.</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="150"/>
+        <source>Activate</source>
+        <translation>Активировать</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="159"/>
+        <source>Move Up</source>
+        <translation>Переместить вверх</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="162"/>
+        <source>Hide DEM behind previous one</source>
+        <translation>Скрыть ЦМР за предыдущей</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="171"/>
+        <source>Move down</source>
+        <translation>Переместить вниз</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="174"/>
+        <source>Show DEM on top of next one</source>
+        <translation>Показать ЦМР над следующей</translation>
+    </message>
+    <message>
+        <location filename="../dem/IDemList.ui" line="183"/>
+        <source>Reload DEM</source>
+        <translation>Перезагрузить ЦМР</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsGeoCache</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="20"/>
+        <source>Dialog</source>
+        <translation>Диалог</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="40"/>
+        <source>Position:</source>
+        <translation>Позиция:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="47"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="73"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="86"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="99"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="112"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="125"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="151"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="164"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="177"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="190"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="203"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="252"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="60"/>
+        <source>Difficulty</source>
+        <translation>Сложность</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="138"/>
+        <source>Terrain</source>
+        <translation>Местность</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="214"/>
+        <source>Update spoilers</source>
+        <translation>Обновить спойлеры</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="217"/>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="275"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="267"/>
+        <source>about:blank</source>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="293"/>
+        <source>Hint:</source>
+        <translation>Подсказка:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsGeoCache.ui" line="324"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Диалог</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="132"/>
+        <source>The area was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Область была импортирована в QMapShack и была изменена. Она больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="160"/>
+        <source>This is a NoGo-Area</source>
+        <translation>Это запретная зона</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="176"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="179"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="207"/>
+        <source>Color</source>
+        <translation>Цвет</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="224"/>
+        <source>Border width</source>
+        <translation>Ширина границы</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="234"/>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="251"/>
+        <source>Opacity</source>
+        <translation>Прозрачность</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="264"/>
+        <source>Info</source>
+        <translation>Сведение</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="293"/>
+        <source>Points</source>
+        <translation>Точки</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="320"/>
+        <source>Position</source>
+        <translation>Позиция</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IDetailsOvlArea.ui" line="329"/>
+        <source>Hist.</source>
+        <translation>История</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsPrj</name>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="43"/>
+        <source>Keywords:</source>
+        <translation>Ключевые слова:</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="50"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="57"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="71"/>
+        <source>Keep order of project</source>
+        <translation>Сохранить порядок проекта</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="76"/>
+        <source>Sort along track (multiple)</source>
+        <translation>Отсортировать вдоль трека (кратно)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="81"/>
+        <source>Sort along track (single)</source>
+        <translation>Отсортировать вдоль трека (одинарно)</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="89"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="113"/>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="133"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="110"/>
+        <source>Print diary</source>
+        <translation>Печатать дневник</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IDetailsPrj.ui" line="130"/>
+        <source>Rebuild diary.</source>
+        <translation>Перестроить дневник.</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsRte</name>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="36"/>
+        <source>Info</source>
+        <translation>Сведение</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="154"/>
+        <source>The route was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Маршрут импортирован в QMapShack и был изменён. Он больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="182"/>
+        <source>This Route is a NoGo-Line</source>
+        <translation>Этот маршрут является запретной линией</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="198"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="201"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="233"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IDetailsRte.ui" line="257"/>
+        <source>Hist.</source>
+        <translation>История</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsTrk</name>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="81"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="105"/>
+        <source>-
+-</source>
+        <translation>-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="315"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="318"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="482"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="511"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="576"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="602"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="631"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="720"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="749"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1078"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1107"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1139"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1175"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1204"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1236"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1272"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1301"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1333"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="344"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="383"/>
+        <source>Info</source>
+        <translation>Сведение</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="415"/>
+        <source>Style</source>
+        <translation>Стиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="457"/>
+        <source>Source</source>
+        <translation>Источник</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="662"/>
+        <source>Maximum</source>
+        <translation>Максимум</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="479"/>
+        <source>Use/edit user defined visibility of arrows for this track</source>
+        <translation>Использовать/изменить определённую пользователем видимость стрелок направления для этого трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="508"/>
+        <source>Use/edit system's visibility of arrows for all tracks</source>
+        <translation>Использовать/изменить системную видимость стрелок направления для всех треков</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="802"/>
+        <source>Minimum</source>
+        <translation>Минимум</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="870"/>
+        <source>Graphs</source>
+        <translation>Графики</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1057"/>
+        <source>Profile</source>
+        <translation>Профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="464"/>
+        <source>Width</source>
+        <translation>Ширина</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="717"/>
+        <source>Use/edit user defined scale factor for this track</source>
+        <translation>Использовать/изменить пользовательский коэффициент масштабирования для этого трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="746"/>
+        <source>Use/edit system's default factor for all tracks</source>
+        <translation>Использовать/изменить фактор по умолчанию система для всех треков</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="669"/>
+        <source>with arrows</source>
+        <translation>со стрелками</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="676"/>
+        <source>x </source>
+        <translation>х </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="573"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1075"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1172"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1269"/>
+        <source>User defined limits for this track</source>
+        <translation>Определённые пользователем пределы для этого трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="56"/>
+        <source>-
+-
+-</source>
+        <translation>-
+-
+-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="265"/>
+        <source>The track was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Трек был импортирован в QMapShack и был изменён. Он больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="293"/>
+        <source>This Track is a NoGo-Line</source>
+        <translation>Этот трек является запретной линией</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="599"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1104"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1201"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1298"/>
+        <source>Automatic limits</source>
+        <translation>Автоматическая установка пределов</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="628"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1136"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1233"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1330"/>
+        <source>User defined limits for all tracks</source>
+        <translation>Определённые пользователем пределы для всех треков</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="822"/>
+        <source>Color</source>
+        <translation>Цвет</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="883"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="903"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="989"/>
+        <source>max.</source>
+        <translation>Макс.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1022"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1029"/>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1043"/>
+        <source>min.</source>
+        <translation>Мин.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1362"/>
+        <source>Activity</source>
+        <translation>Активность</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1385"/>
+        <source>Set Track Activity</source>
+        <translation>Добавить активность</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1428"/>
+        <source>To differentiate the track statistics select an activity from the list for the complete track. Or select a part of the track to assign an activity.</source>
+        <translation>Чтобы получить статистику трека, выберите активность для полного трека из списка. Или выберите часть трека, чтобы назначить активность.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1455"/>
+        <source>Points</source>
+        <translation>Точки</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1503"/>
+        <source>Time</source>
+        <translation>Время</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1508"/>
+        <source>Ele.</source>
+        <translation>Высота</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1513"/>
+        <source>Delta</source>
+        <translation>Разница</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1518"/>
+        <source>Dist.</source>
+        <translation>Расстояние</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1523"/>
+        <source>Speed</source>
+        <translation>Скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1528"/>
+        <source>Slope</source>
+        <translation>Наклон</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1533"/>
+        <source>Ascent</source>
+        <translation>Подъём</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1538"/>
+        <source>Descent</source>
+        <translation>Спуск</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1543"/>
+        <source>Position</source>
+        <translation>Позиция</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1552"/>
+        <source>Filter</source>
+        <translation>Фильтр</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IDetailsTrk.ui" line="1589"/>
+        <source>Hist.</source>
+        <translation>История</translation>
+    </message>
+</context>
+<context>
+    <name>IDetailsWpt</name>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="14"/>
+        <source>Dialog</source>
+        <translation>Диалог</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="43"/>
+        <source>Info</source>
+        <translation>Сведение</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="77"/>
+        <source>Position:</source>
+        <translation>Позиция:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="84"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="110"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="136"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="362"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="97"/>
+        <source>Ele.</source>
+        <translation>Высота</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="123"/>
+        <source>Proximity:</source>
+        <translation>Радиус близости:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="268"/>
+        <source>The waypoint was imported to QMapShack and was changed. It does not show the original data anymore. Please see history for changes. </source>
+        <translation>Маршрутная точка была импортирована в QMapShack и была изменена. Она больше не показывает исходные данные. Пожалуйста, смотрите в историю изменений.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="296"/>
+        <source>This Waypoint is a NoGo-Area</source>
+        <translation>Эта маршрутная точка определяет запретную зону</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="312"/>
+        <source>Toggle read only mode. You have to open the lock to edit the item.</source>
+        <translation>Переключить режим 'только чтение'. Вы должны открыть замок для изменения элемента.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="315"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="376"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="396"/>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="428"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="349"/>
+        <source>Date/Time:</source>
+        <translation>Дата/время:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="373"/>
+        <source>Add images.</source>
+        <translation>Добавить изображения.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="393"/>
+        <source>Delete selected image.</source>
+        <translation>Удалить выбранное изображение.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IDetailsWpt.ui" line="447"/>
+        <source>Hist.</source>
+        <translation>История</translation>
+    </message>
+</context>
+<context>
+    <name>IDevice</name>
+    <message>
+        <location filename="../device/IDevice.cpp" line="314"/>
+        <source>There is another project with the same name. If you press 'ok' it will be removed and replaced.</source>
+        <translation>Существует другой проект с таким же именем. Если нажать кнопку 'ОК', он будет удалён и заменён.</translation>
+    </message>
+</context>
+<context>
+    <name>IElevationDialog</name>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="14"/>
+        <source>Edit elevation...</source>
+        <translation>Изменить высоту...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="22"/>
+        <source>Elevation</source>
+        <translation>Высота</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="32"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="39"/>
+        <source>Get elevation from active digital elevation model.</source>
+        <translation>Получить высоту из активной цифровой модели рельефа.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IElevationDialog.ui" line="42"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IExportDatabase</name>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="14"/>
+        <source>Export database to GPX...</source>
+        <translation>Экспортировать в GPX...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="33"/>
+        <source>Export Path:</source>
+        <translation>Путь для экспорта:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="46"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="55"/>
+        <source>GPX 1.1 without extensions</source>
+        <translation>GPX 1.1 без расширений</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="83"/>
+        <source>Start</source>
+        <translation>Начать</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="93"/>
+        <source>Abort</source>
+        <translation>Прервать</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/IExportDatabase.ui" line="100"/>
+        <source>Close</source>
+        <translation>Закрыть</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDelete</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="51"/>
+        <source><b>Remove Track Points</b></source>
+        <translation><b>Удалить точки трека</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="63"/>
+        <source>Remove all hidden track points permanently.</source>
+        <translation>Удалить все скрытые точки безвозвратно.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDelete.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDeleteExtension</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="51"/>
+        <source><b>Remove Extension from all Track Points</b></source>
+        <translation><b>Удалить расширение от всех маршрутных точек</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="63"/>
+        <source>Remove </source>
+        <translation>Удалить </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="83"/>
+        <source>from all Track Points</source>
+        <translation>от всех точек трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDeleteExtension.ui" line="103"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterDouglasPeuker</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="45"/>
+        <source><b>Hide Points (Douglas Peuker)</b></source>
+        <translation><b>Скрыть точки (Douglas Peuker)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="57"/>
+        <source>Hide track points if the distance to a line between neighboring points is less than</source>
+        <translation>Скрыть точки трека если расстояние до линии между соседними точками меньше чем</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="70"/>
+        <source>m</source>
+        <translation> м</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="93"/>
+        <source>Apply filter now.</source>
+        <translation>Применить фильтр.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterDouglasPeuker.ui" line="96"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInterpolateElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="51"/>
+        <source><b>Interpolate Elevation Data</b></source>
+        <translation><b>Интерполировать высотные данные</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="69"/>
+        <source>Replace elevation of track points with interpolated data.</source>
+        <translation>Заменить высоты точек трека интерполированными значениями.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="76"/>
+        <source>Quality</source>
+        <translation>Качество</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="105"/>
+        <source>Preview</source>
+        <translation>Просмотр</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInterpolateElevation.ui" line="112"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterInvalid</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="41"/>
+        <source>Hide Invalid Points</source>
+        <translation>Скрыть неверные точки</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="56"/>
+        <source>Hide points with invalid data.</source>
+        <translation>Скрыть точки с неверными данными.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterInvalid.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterMedian</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="51"/>
+        <source><b>Smooth Profile (Median Method)</b></source>
+        <translation><b>Сгладить профиль (метод медиана)</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="63"/>
+        <source>Smooth deviation of the track points elevation with a Median filter of size </source>
+        <translation>Сгладить отклонение высот точек используя фильтр медиана размера </translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="76"/>
+        <source>points</source>
+        <translation> точек</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterMedian.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterNewDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="35"/>
+        <source><b>Change Time</b></source>
+        <translation><b>Изменить метки времени</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="44"/>
+        <source>Change start of track to </source>
+        <translation>Изменить начало трека на</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="51"/>
+        <source>dd.MM.yy HH:mm:ss</source>
+        <translation>дд.ММ.гг ЧЧ.мм.сс</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="61"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterNewDate.ui" line="81"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterObscureDate</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="45"/>
+        <source><b>Obscure Timestamps</b></source>
+        <translation><b>Скрыть метки времени</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="54"/>
+        <source>Increase timestamp by</source>
+        <translation>Увеличить метку времени на</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="61"/>
+        <source> sec.</source>
+        <translation> сек.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="68"/>
+        <source>with each track point. 0 sec. will remove timestamps.</source>
+        <translation>для каждой точки трека. Значение 0 сек.: удалить метки времени.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterObscureDate.ui" line="88"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterOffsetElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="51"/>
+        <source><b>Offset Elevation</b></source>
+        <translation><b>Сместить высоту</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="69"/>
+        <source>Add offset of</source>
+        <translation>Добавить смещение</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="95"/>
+        <source>to track points elevation.</source>
+        <translation>к высотам точек трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterOffsetElevation.ui" line="115"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReplaceElevation</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="51"/>
+        <source><b>Replace Elevation Data</b></source>
+        <translation><b>Заменить высотные данные</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="63"/>
+        <source>Replace elevation of track points with the values from loaded DEM files.</source>
+        <translation>Заменить высотные данные данными файлов ЦМР.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReplaceElevation.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterReset</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="35"/>
+        <source><b>Reset Hidden Track Points</b></source>
+        <translation><b>Восстановить скрытые точки трека</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="47"/>
+        <source>Make all trackpoints visible again.</source>
+        <translation>Восстановить все скрытые точки трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterReset.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSpeed</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="23"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="52"/>
+        <source><b>Change Speed</b></source>
+        <translation><b>Изменить скорость</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="75"/>
+        <source>labelWarning</source>
+        <translation>Метка предупреждения</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="163"/>
+        <source>Speed</source>
+        <translation>Скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="247"/>
+        <source> Type</source>
+        <translation> Тип</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="320"/>
+        <source>Max Speed</source>
+        <translation>Макс. скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="330"/>
+        <source>Plain Level:</source>
+        <translation>Плоский:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="362"/>
+        <source>at positive Slope</source>
+        <translation>на положительном склоне</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="372"/>
+        <source>Min Speed</source>
+        <translation>Мин. скорость</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="382"/>
+        <source>Uphill:</source>
+        <translation>Подъем:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="392"/>
+        <source>Downhill:</source>
+        <translation>Спуск:</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="402"/>
+        <source>Speed at zero Slope</source>
+        <translation>Скорость при нулевом склоне</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="450"/>
+        <source>at negative Slope</source>
+        <translation>на отрицательном склоне</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="501"/>
+        <source>User defined positive and negative slope values will be replaced by the minimum and maximum slope values from the track.</source>
+        <translation>Заданные пользователем положительные и отрицательные значения склона будут заменены минимальными и максимальными значениями склона с трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="504"/>
+        <source>Set min/max slopes from Track</source>
+        <translation>Установить мин./макс. склоны с трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="551"/>
+        <source>not yet implemented</source>
+        <translation>еще не реализовано</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="572"/>
+        <source>Constant</source>
+        <translation>постоянная</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="577"/>
+        <source>Cycling</source>
+        <translation>велосипедная</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="170"/>
+        <source> km/h</source>
+        <translation> км/ч</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="102"/>
+        <source>Apply filter now.</source>
+        <translation>Применить фильтр.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSpeed.ui" line="105"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSplitSegment</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="51"/>
+        <source><html><head/><body><p><span style=" font-weight:600;">Split Segments into Tracks</span></p></body></html></source>
+        <translation><html><head/><body><p><span style=" font-weight:600;">Разделить сегменты в треки</span></p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="63"/>
+        <source>Creates a new track for every segment within this track.</source>
+        <translation>Создать новый трек для каждого сегмента трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSplitSegment.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterSubPt2Pt</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="35"/>
+        <source><b>Convert track subpoints to points</b></source>
+        <translation><b>Преобразовать подточки трека в точки трека</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="47"/>
+        <source>Convert subpoints obtained from routing to ordinary track points </source>
+        <translation>Преобразовать подточки полученные от маршрутизации в точки трека</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterSubPt2Pt.ui" line="54"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFilterTerrainSlope</name>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="14"/>
+        <source>Form</source>
+        <translatorcomment>Вычислить склон местности</translatorcomment>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="51"/>
+        <source><b>Calculate Terrain Slope</b></source>
+        <translation><b>Вычислить склон местности</b></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="63"/>
+        <source>Calculate slope of the terrain based on loaded DEM files.</source>
+        <translation>Вычислить склон местности с помощью данных ЦМР.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/filter/IFilterTerrainSlope.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IFitDecoderState</name>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="31"/>
+        <source>FIT decoding error: Decoder not in correct state %1 after last data byte in file.</source>
+        <translation>Ошибка декодирования FIT: декодер в неверном состоянии %1 после последнего байта в файле.</translation>
+    </message>
+    <message>
+        <location filename="../gis/fit/decoder/IFitDecoderState.cpp" line="124"/>
+        <source>FIT decoding error: a development field with the field_definition_number %1 already exists.</source>
+        <translation>Ошибка декодирования FIT: поле развития с номером определения поля %1 уже существует.</translation>
+    </message>
+</context>
+<context>
+    <name>IGisDatabase</name>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="62"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="67"/>
+        <source>Age</source>
+        <translation>Срок</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="112"/>
+        <source>To add a database do a right click on the database list above.</source>
+        <translation>Для добавления базы данных сделайте щелчок правой кнопкой мышки на списке баз данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisDatabase.ui" line="135"/>
+        <source>Show Summary Drop Zones</source>
+        <translation>Показать сводные зоны перетаскивания</translation>
+    </message>
+</context>
+<context>
+    <name>IGisItem</name>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="45"/>
+        <source>[no name]</source>
+        <translation>[нет имени]</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="317"/>
+        <source>The item is not part of the project in the database.</source>
+        <translation>Элемент не является частью проекта в базе данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="318"/>
+        <source>
+It is either a new item or it has been deleted in the database by someone else.</source>
+        <translation>
+Это или новый элемент, или элемент был удален из базы данных кем-то другим.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="324"/>
+        <source>The item is not in the database.</source>
+        <translation>Элемент не в базе данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="330"/>
+        <source>The item might need to be saved</source>
+        <translation>Возможно, нужно сохранить элемент</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="414"/>
+        <source>Initial version.</source>
+        <translation>Исходная версия.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="534"/>
+        <source>Never ask again.</source>
+        <translation>Больше не спрашивать.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="535"/>
+        <source><h3>%1</h3> This element is probably read-only because it was not created within QMapShack. Usually you should not want to change imported data. But if you think that is ok press 'Ok'.</source>
+        <translation><h3>%1</h3> Вероятно, это элемент доступен только для чтения, потому что он не был создан внутри QMapShack. Обычно нет необходимости изменить импортированные данные. Но если для вас это приемлемо нажмите "Да".</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="536"/>
+        <source>Read Only Mode...</source>
+        <translation>Режим 'только чтения'...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="739"/>
+        <location filename="../gis/IGisItem.cpp" line="792"/>
+        <source><h4>Description:</h4></source>
+        <translation><h4>Описание:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="742"/>
+        <location filename="../gis/IGisItem.cpp" line="795"/>
+        <source><p>--- no description ---</p></source>
+        <translation><p>---нет описания---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="753"/>
+        <source><h4>Comment:</h4></source>
+        <translation><h4>Комментарий:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="756"/>
+        <source><p>--- no comment ---</p></source>
+        <translation><p>---нет комментария---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="767"/>
+        <location filename="../gis/IGisItem.cpp" line="806"/>
+        <source><h4>Links:</h4></source>
+        <translation><h4>Ссылки:</h4></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="770"/>
+        <location filename="../gis/IGisItem.cpp" line="809"/>
+        <source><p>--- no links ---</p></source>
+        <translation><p>---нет ссылок---</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Edit name...</source>
+        <translation>Изменить имя...</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisItem.cpp" line="932"/>
+        <source>Enter new %1 name.</source>
+        <translation>Задать новое имя (%1).</translation>
+    </message>
+</context>
+<context>
+    <name>IGisProject</name>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source>Save project?</source>
+        <translation>Сохранить проект?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="175"/>
+        <source><h3>%1</h3>The project was changed. Save before closing it?</source>
+        <translation><h3>%1</h3> Проект изменён. Сохранить его перед закрытием?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="375"/>
+        <source>%1: Correlate tracks and waypoints.</source>
+        <translation>%1: коррелировать треки и маршрутные точки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="385"/>
+        <source><h3>%1</h3>Did that take too long for you? Do you want to skip correlation of tracks and waypoints for this project in the future?</source>
+        <translation><h3>%1</h3> Было слишком долго? Желаете ли вы пропускать корреляцию треков и маршрутных точек для этого проекта в будущем?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="386"/>
+        <source>Canceled correlation...</source>
+        <translation>Корреляция отменена ...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="431"/>
+        <location filename="../gis/prj/IGisProject.cpp" line="488"/>
+        <source>Save "%1" to...</source>
+        <translation>Сохранить "%1" в...</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="573"/>
+        <source><br/>
+Filename: %1</source>
+        <translation><br/>
+Имя файла: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="578"/>
+        <source>Waypoints: %1</source>
+        <translation>Маршрутные точки: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="582"/>
+        <source>Tracks: %1</source>
+        <translation>Треки: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="586"/>
+        <source>Routes: %1</source>
+        <translation>Маршруты: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="590"/>
+        <source>Areas: %1</source>
+        <translation>Области: %1</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="728"/>
+        <source>Are you sure you want to delete '%1' from project '%2'?</source>
+        <translation>Вы уверены что хотите удалить '%1' из проекта '%2'?</translation>
+    </message>
+    <message>
+        <location filename="../gis/prj/IGisProject.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Удалить...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummary</name>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="35"/>
+        <source>Setup summary drop zones.</source>
+        <translation>Настройка сводных зон перетаскивания.</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="38"/>
+        <source>...</source>
+        <translatorcomment>...</translatorcomment>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummary.ui" line="49"/>
+        <source>Needs setup...</source>
+        <translation>Необходимо настройка...</translation>
+    </message>
+</context>
+<context>
+    <name>IGisSummarySetup</name>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="14"/>
+        <source>Setup summary projects...</source>
+        <translation>Настройка сводных проектов...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="20"/>
+        <source>-</source>
+        <translatorcomment>-</translatorcomment>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="37"/>
+        <source>Drop Zone 1</source>
+        <translation>Зона перетаскивания 1</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="52"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="66"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="122"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="136"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="206"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="220"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="276"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="290"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="94"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="164"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="185"/>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="255"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="107"/>
+        <source>Drop Zone 2</source>
+        <translation>Зона перетаскивания 2</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="177"/>
+        <source>Drop Zone 3</source>
+        <translation>Зона перетаскивания 3</translation>
+    </message>
+    <message>
+        <location filename="../gis/summary/IGisSummarySetup.ui" line="247"/>
+        <source>Drop Zone 4</source>
+        <translation>Зона перетаскивания 4</translation>
+    </message>
+</context>
+<context>
+    <name>IGisWorkspace</name>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="43"/>
+        <source>Opacity</source>
+        <translation>Прозрачность</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="50"/>
+        <source>Change the opacity of all GIS Items on the map.</source>
+        <translation>Изменить прозрачность всех элементов ГИС на карте.</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="66"/>
+        <source>Filter</source>
+        <translation>Фильтр</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="115"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="127"/>
+        <source>Clear Filter</source>
+        <translation>Очистить фильтр</translation>
+    </message>
+    <message>
+        <location filename="../gis/IGisWorkspace.ui" line="136"/>
+        <source>Setup Filter</source>
+        <translation>Настройка фильтра</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetup</name>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="14"/>
+        <source>Setup Grid...</source>
+        <translation>Настройка координатной сетки...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="22"/>
+        <source>Projection</source>
+        <translation>Проекция</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="37"/>
+        <source>restore default</source>
+        <translation>восстановить умолчание</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="40"/>
+        <location filename="../grid/IGridSetup.ui" line="66"/>
+        <location filename="../grid/IGridSetup.ui" line="92"/>
+        <location filename="../grid/IGridSetup.ui" line="146"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="63"/>
+        <source>Get projection from current map.</source>
+        <translation>Получить проекцию с текущей карты.</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="89"/>
+        <source>projection wizzard</source>
+        <translation>Мастер проекций</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="130"/>
+        <source>Grid color</source>
+        <translation>Цвет координатной сетки</translation>
+    </message>
+    <message>
+        <location filename="../grid/IGridSetup.ui" line="143"/>
+        <source>setup grid color</source>
+        <translation>настройка цвета координатной сетки</translation>
+    </message>
+</context>
+<context>
+    <name>IImportDatabase</name>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="22"/>
+        <location filename="../tool/IImportDatabase.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="45"/>
+        <source>Source Database:</source>
+        <translation>Исходная база данных:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="52"/>
+        <location filename="../tool/IImportDatabase.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="86"/>
+        <source>Target Database:</source>
+        <translation>Целевая база данных:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IImportDatabase.ui" line="102"/>
+        <source>Start</source>
+        <translation>Начать</translation>
+    </message>
+</context>
+<context>
+    <name>IInputDialog</name>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="14"/>
+        <source>Edit...</source>
+        <translation>Изменить...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IInputDialog.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>ILineOp</name>
+    <message>
+        <location filename="../mouse/line/ILineOp.cpp" line="190"/>
+        <source>Routing</source>
+        <translation>Маршрутизация</translation>
+    </message>
+</context>
+<context>
+    <name>ILinksDialog</name>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="14"/>
+        <source>Links...</source>
+        <translation>Ссылки...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="23"/>
+        <source>Type</source>
+        <translation>Тип</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="28"/>
+        <source>Text</source>
+        <translation>Текст</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="33"/>
+        <source>Uri</source>
+        <translation>URI</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ILinksDialog.ui" line="43"/>
+        <location filename="../helpers/ILinksDialog.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="17"/>
+        <source>QMapShack</source>
+        <translation>QMapShack</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="63"/>
+        <source>File</source>
+        <translation>Файл</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="80"/>
+        <source>View</source>
+        <translation>Вид</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="104"/>
+        <source>Window</source>
+        <translation>Окно</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="114"/>
+        <source>?</source>
+        <translation>?</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="133"/>
+        <source>Tool</source>
+        <translation>Инструмент</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="153"/>
+        <source>Maps</source>
+        <translation>Карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="190"/>
+        <source>Dig. Elev. Model (DEM)</source>
+        <translation>Цифровая модель рельефа (ЦМР)</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="122"/>
+        <location filename="../IMainWindow.ui" line="223"/>
+        <source>Workspace</source>
+        <translation>Рабочая область</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="232"/>
+        <source>Toolbar</source>
+        <translation>Панель инструментов</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="258"/>
+        <source>Routing</source>
+        <translation>Маршрутизация</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="276"/>
+        <source>Realtime</source>
+        <translation>Реальное время</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="289"/>
+        <location filename="../IMainWindow.ui" line="292"/>
+        <source>Add Map View</source>
+        <translation>Добавить окно карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="295"/>
+        <source>Ctrl+T</source>
+        <translation>Ctrl+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="310"/>
+        <source>Show Scale</source>
+        <translation>Показать масштаб</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="322"/>
+        <source>Setup Map Font</source>
+        <translation>Настройка шрифта карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="337"/>
+        <source>Show Grid</source>
+        <translation>Показать координатную сетку</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="340"/>
+        <source>Ctrl+G</source>
+        <translation>Ctrl+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="352"/>
+        <source>Setup Grid</source>
+        <translation>Настройка координатной сетки</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="355"/>
+        <source>Ctrl+Alt+G</source>
+        <translation>Ctrl+Alt+G</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="370"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Флип колесо мышки</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="382"/>
+        <location filename="../IMainWindow.ui" line="385"/>
+        <source>Setup Map Paths</source>
+        <translation>Настройка пути к картам</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="400"/>
+        <source>POI Text</source>
+        <translation>Текст для точек интереса</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="415"/>
+        <source>Night / Day</source>
+        <translation>Ночь/день</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="430"/>
+        <source>Map Tool Tip</source>
+        <translation>Подсказка карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="433"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="445"/>
+        <source>Setup DEM Paths</source>
+        <translation>Настройка пути к ЦМР</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="457"/>
+        <source>About</source>
+        <translation>О программе</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="469"/>
+        <source>Help</source>
+        <translation>Справки</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="472"/>
+        <source>F1</source>
+        <translation>F1</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="484"/>
+        <location filename="../IMainWindow.ui" line="487"/>
+        <source>Setup Map View</source>
+        <translation>Настройка вида карт</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="499"/>
+        <source>Load GIS Data</source>
+        <translation>Загрузить данные ГИС</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="502"/>
+        <source>Load projects from file</source>
+        <translation>Загрузить проекты с файла</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="505"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="517"/>
+        <source>Save All GIS Data</source>
+        <translation>Сохранить все данные ГИС</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="520"/>
+        <source>Save all projects in the workspace</source>
+        <translation>Сохранить все проекты в рабочей области</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="523"/>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="535"/>
+        <source>Setup Time Zone</source>
+        <translation>Настройка часового пояса</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="547"/>
+        <source>Add empty project</source>
+        <translation>Добавить пустой проект</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="562"/>
+        <source>Search Google</source>
+        <translation>Поиск в Google</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="574"/>
+        <source>Close all projects</source>
+        <translation>Закрыть все проекты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="577"/>
+        <source>F8</source>
+        <translation>F8</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="589"/>
+        <source>Setup Units</source>
+        <translation>Настройка единиц</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="601"/>
+        <source>Setup Workspace</source>
+        <translation>Настройка рабочей области</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="604"/>
+        <source>Setup save on exit.</source>
+        <translation>Настройка рабочей области.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="616"/>
+        <source>Import Database from QLandkarte</source>
+        <translation>Импортировать базу данных QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="619"/>
+        <source>Import QLandkarte GT database</source>
+        <translation>Импортировать базу данных QLandkarte</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="631"/>
+        <source>VRT Builder</source>
+        <translation>Создать файл VRT</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="634"/>
+        <source>GUI front end to gdalbuildvrt</source>
+        <translation>Графический интерфейс к gdalbuildvrt</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="646"/>
+        <source>Store Map View</source>
+        <translation>Сохранить вид карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="649"/>
+        <source>Write current active map and DEM list including the properties to a file</source>
+        <translation>Сохранить вид карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="661"/>
+        <source>Load Map View</source>
+        <translation>Загрузить вид карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="664"/>
+        <source>Restore view with active map and DEM list including the properties from a file</source>
+        <translatorcomment>Tooltip??</translatorcomment>
+        <translation>Загрузить вид карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="679"/>
+        <source>Ext. Profile</source>
+        <translation>Расширенный профиль</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="682"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="694"/>
+        <source>Close</source>
+        <translation>Закрыть</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="697"/>
+        <source>Ctrl+Q</source>
+        <translation>Ctrl+Q</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="709"/>
+        <source>Clone Map View</source>
+        <translation>Клонировать вид карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="712"/>
+        <source>Ctrl+Shift+T</source>
+        <translation>Ctrl+Shift+T</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="724"/>
+        <source>Create Routino Database</source>
+        <translation>Создать базу данных Routino</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="736"/>
+        <source>Save(Print) Map Screenshot</source>
+        <translation>Сохранить (Печатать) снимок экрана карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="739"/>
+        <source>Print a selected area of the map</source>
+        <translation>Печатать выбранную область карты</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="742"/>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="754"/>
+        <source>Setup Coord. Format</source>
+        <translation>Настройка формата координат</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="757"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Изменить формат отображения координат</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="769"/>
+        <source>Setup Map Background</source>
+        <translation>Настройка фона карт</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="781"/>
+        <source>Setup Waypoint Icons</source>
+        <translation>Настройка пиктограмм для маршрутных точек</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="784"/>
+        <source>Setup path to custom icons</source>
+        <translation>Настройка пути к пользовательским пиктограммам</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="793"/>
+        <source>Close Tab</source>
+        <translation>Закрыть вкладку</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="796"/>
+        <source>Ctrl+W</source>
+        <translation>Ctrl+W</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="805"/>
+        <source>Quickstart Help</source>
+        <translation>Помощь для быстрого старта</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="814"/>
+        <source>Setup Toolbar</source>
+        <translation>Настройка панели инструментов</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="826"/>
+        <source>Toggle Docks</source>
+        <translation>Переключить закреплённые окна</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="829"/>
+        <source>Toggle visibility of dockable windows</source>
+        <translation>Переключить видимость закреплённых окон</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="832"/>
+        <source>Ctrl+D</source>
+        <translation>Ctrl+D</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="841"/>
+        <source>Full Screen</source>
+        <translation>Во весь экран</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="844"/>
+        <source>F11</source>
+        <translation>F11</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="856"/>
+        <source>Min./Max. Track Values</source>
+        <translation>Мин./макс. значения трека</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="859"/>
+        <source>Show the minimum and maximum values of the track properties along the track in the map view.</source>
+        <translation>Показать минимальные и максимальные значения свойств трека в просмотре карт.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="862"/>
+        <source>Ctrl+N</source>
+        <translation>Ctrl+N</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="871"/>
+        <source>Start QMapTool</source>
+        <translation>Запуск QMapTool</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="246"/>
+        <source>Database</source>
+        <translation>База данных</translation>
+    </message>
+</context>
+<context>
+    <name>IMapList</name>
+    <message>
+        <location filename="../map/IMapList.ui" line="14"/>
+        <source>Form</source>
+        <translation>форма</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="103"/>
+        <source>To add maps use <b>File->Setup Map Paths</b>.  Or click <a href='setup'><b>here</b></a></source>
+        <translation>Чтобы добавить карты, использовать <b>Файл->Настройка пути к картам</b>. Или нажать <a href='setup'><b>здесь</b></a></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="116"/>
+        <source>Use the context menu (right mouse button click on entry) to activate a map. Use drag-n-drop to move the activated map in the draw order. </source>
+        <translation>Использовать контекстное меню (нажать правой кнопкой мышки на элемент), чтобы активировать карту. Использовать перетаскивание мышкой, для перемещения активированной карты в порядке рисования.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="129"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Помогите! Я хочу карты!
+Мне не хочется читать документацию!</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="149"/>
+        <source>Activate</source>
+        <translation>Активировать</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="158"/>
+        <source>Move Up</source>
+        <translation>Переместить вверх</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="161"/>
+        <source>Hide map behind previous map</source>
+        <translation>Скрыть карту за предыдущей картой</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="170"/>
+        <source>Move down</source>
+        <translation>Переместить вниз</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="173"/>
+        <source>Show map on top of next map</source>
+        <translation>Показать карту над следующей картой</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapList.ui" line="182"/>
+        <source>Reload Maps</source>
+        <translation>Перезагрузить карты</translation>
+    </message>
+</context>
+<context>
+    <name>IMapOnline</name>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="41"/>
+        <source>This map requires OpenSSL support. However due to legal restrictions in some countries OpenSSL is not packaged with QMapShack. You can have a look at the <a href='https://www.openssl.org/community/binaries.html'>OpenSSL Homepage</a> for binaries. You have to copy libeay32.dll and ssleay32.dll into the QMapShack program directory.</source>
+        <translation>Эта карта требует поддержки OpenSSL. Однако для соблюдения законов некоторых стран OpenSSL не поставляется с QMapShack. Вы можете посетить <a href='https://www.openssl.org/community/binaries.html'> домашнюю страницу OpenSSL</a> для бинарных файлов. Вы должны скопировать libeay32.dll и ssleay32.dll в папку программы QMapShack.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="47"/>
+        <source>Error...</source>
+        <translation>Ошибка...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapOnline.cpp" line="98"/>
+        <source><b>%1</b>: %2 tiles pending<br/></source>
+        <translation><b>%1</b>: %2 плиток ожидается<br/></translation>
+    </message>
+</context>
+<context>
+    <name>IMapPathSetup</name>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="14"/>
+        <source>Setup map paths</source>
+        <translation>Настройка путей к картам</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="20"/>
+        <source>Root path of tile cache for online maps:</source>
+        <translation>Корневой путь к кэшу плиток онлайновых карт:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="29"/>
+        <location filename="../map/IMapPathSetup.ui" line="154"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="36"/>
+        <location filename="../map/IMapPathSetup.ui" line="73"/>
+        <location filename="../map/IMapPathSetup.ui" line="93"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPathSetup.ui" line="185"/>
+        <source>Help! I want maps!
+I don't want to read the documentation!</source>
+        <translation>Помогите! Я хочу карты!
+Мне не хочется читать документацию!</translation>
+    </message>
+</context>
+<context>
+    <name>IMapPropSetup</name>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="35"/>
+        <source><html><head/><body><p>Change opacity of map</p></body></html></source>
+        <translation><html><head/><body><p>Изменить прозрачность карты</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="50"/>
+        <source><html><head/><body><p>Click to use current scale as minimum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как минимальный масштаб для отображения карты.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="53"/>
+        <location filename="../map/IMapPropSetup.ui" line="90"/>
+        <location filename="../map/IMapPropSetup.ui" line="370"/>
+        <location filename="../map/IMapPropSetup.ui" line="384"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="74"/>
+        <source><html><head/><body><p>Control the range of scale the map is displayed. Use the two buttons left and right to define the actual scale as either minimum or maximum scale.</p></body></html></source>
+        <translation><html><head/><body><p>Контролировать диапазон масштаба отображения карты. С помощью двух кнопок слева и справа определить данный масштаб как минимальный или максимальный масштаб.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="87"/>
+        <source><html><head/><body><p>Click to use current scale as maximum scale to display the map.</p></body></html></source>
+        <translation><html><head/><body><p>Нажать, чтобы использовать текущий масштаб как максимальный масштаб для отображения карты.</p></body></html></translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="139"/>
+        <source>Areas</source>
+        <translation>Области</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="146"/>
+        <source>Lines</source>
+        <translation>Линии</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="153"/>
+        <source>Points</source>
+        <translation>Точки</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="170"/>
+        <source>Details</source>
+        <translation>Деталь</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="227"/>
+        <source>Cache Size (MB)</source>
+        <translation>Размер кэша (МБ)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="247"/>
+        <source>Expiration (Days)</source>
+        <translation>Срок хранения (дни)</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="264"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="271"/>
+        <source>Cache Path</source>
+        <translation>Путь к кэшу</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="353"/>
+        <source>Type File:</source>
+        <translation>Файл типов:</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="367"/>
+        <source>Forget external type file and use internal types.</source>
+        <translation>Забыть внешний файл типов и использовать внутренние типы.</translation>
+    </message>
+    <message>
+        <location filename="../map/IMapPropSetup.ui" line="381"/>
+        <source>Load an external type file.</source>
+        <translation>Загрузить внешний файл типов.</translation>
+    </message>
+</context>
+<context>
+    <name>IMapVrtBuilder</name>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="61"/>
+        <source>Advanced Options</source>
+        <translation>Дополнительные параметры</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="73"/>
+        <source>Source No Data (-srcnodata)</source>
+        <translation>Нет данных в источнике (-srcnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="80"/>
+        <source>Target No Data (-vrtnodata)</source>
+        <translation>Нет данных в цели (-vrtnodata)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="90"/>
+        <source>Target Projection (-a_srs)</source>
+        <translation>Целевая проекция (-a_srs)</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="97"/>
+        <source>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</source>
+        <translation>Эти параметры относятся к частным случаям и обычно не заполняются. Сравните <a href='http://www.gdal.org/gdalbuildvrt.html'>GDAL справка </a> для дополнительной информации.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="157"/>
+        <source><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></source>
+        <translation><ol>
+<li>Выберите один или несколько исходных файлов.</li>
+<li>Выберите имя файла для целевого файла VRT.</li>
+<li>Нажмите кнопку "Начать".</li>
+</ol>
+
+Намек:
+<ul>
+<li>Если у вас несколько файлов, поместите их в подпапку вашей папки к карте. Создайте файл VRT в вашей папки к картам.</li>
+<li>Используйте дополнительные параметры, чтобы добавить значение для "нет данных", если исходные файлы не имеют этого и не образуют прямоугольную карту. Области без файла карты станут прозрачными.</li>
+<li>Параметр "-a_srs" предназначен для назначения проекции/датума, когда в исходном файле этого нет. Это НЕ перепроектирует данные.</li>
+</ul>
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="22"/>
+        <location filename="../tool/IMapVrtBuilder.ui" line="245"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="39"/>
+        <source>Select source files:</source>
+        <translation>Выбрать исходные файлы:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="183"/>
+        <source>Overviews will allow you to show the map for a larger range of zooms.</source>
+        <translation>Обзоры позволят вам отображать карту для большего диапазона масштабирования.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="186"/>
+        <source>Create overviews for result.</source>
+        <translation>Создать обзоры для результата.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="198"/>
+        <source>:2</source>
+        <translation>:2</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="205"/>
+        <source>:4</source>
+        <translation>:4</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="212"/>
+        <source>:8</source>
+        <translation>:8</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="219"/>
+        <source>:16</source>
+        <translation>:16</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="226"/>
+        <source>:32</source>
+        <translation>:32</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="233"/>
+        <source>:64</source>
+        <translation>:64</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="268"/>
+        <source>Target Filename:</source>
+        <translation>Имя целевого файла:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="275"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IMapVrtBuilder.ui" line="284"/>
+        <source>Start</source>
+        <translation>Начать</translation>
+    </message>
+</context>
+<context>
+    <name>IMouseEditLine</name>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="251"/>
+        <source><b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/></source>
+        <translation><b>Новая линия</b><br/>Переместить мышку и использовать левую кнопку мышки, чтобы создать точки. Когда это сделано остановить с помощью правой кнопки мышки.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="286"/>
+        <source><b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/></source>
+        <translation><b>Удалить точку</b><br/>Переместить мышку близко к точке и нажать левую кнопку, чтобы удалить её.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="294"/>
+        <source><b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Выбрать интервал точек</b><br/>Нажать левой кнопкой на первой точке, чтобы начать выбор. Нажать левой кнопкой на второй точке, чтобы завершить выбор и выбрать параметры. Использовать правую кнопку мышки для отмены.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="302"/>
+        <source><b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Переместить точку</b><br/>Переместить мышку близко к точке и нажать левую кнопку. Точка будет прилипать к курсору, и вы можете переместить её. Использовать правую кнопку мышки для отмены.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="310"/>
+        <source><b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/></source>
+        <translation><b>Добавить точку</b><br/>Переместить мышку близко к сегменту линии и нажать левую кнопку, чтобы добавить точку. Точка будет прилипать к курсору, и вы можете переместить его. Отбросьте точку с помощью левой кнопки мышки. Использовать правую кнопку мышки для отмены.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="318"/>
+        <source><b>No Routing</b><br/>All points will be connected with a straight line.<br/></source>
+        <translation><b>Без маршрутизации</b><br/>Все точки будут соединены прямыми линиями.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="324"/>
+        <source><b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/></source>
+        <translation><b>Автоматическая маршрутизация</b><br/>Настройка маршрутизатора используется для вычисления маршрута между точками.<b>Замечание</b>Выбранный маршрутизатор должен быть способным вычислять маршруты налету. Оффлайновые маршрутизаторы обычно это могут, Интернет маршрутизаторы этого не могут.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="329"/>
+        <source><b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/></source>
+        <translation><b>Векторная маршрутизация</b><br/>Если возможно соединить точки линией с загруженной векторной карты.<br/></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="501"/>
+        <source><b>%1 Metrics</b></source>
+        <translation><b>%1. Метрика</b></translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="504"/>
+        <source>Distance:</source>
+        <translation>Расстояние:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="506"/>
+        <source>Ascent:</source>
+        <translation>Подъём:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.cpp" line="508"/>
+        <source>Descent:</source>
+        <translation>Спуск:</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IMouseEditLine.h" line="138"/>
+        <source><br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/></source>
+        <translation><br/><b>Переместить карту</b><br/>Если удержите нажатой левую кнопку мышки и переместите мышку, вы будете перемещать карту.<br/><br/></translation>
+    </message>
+</context>
+<context>
+    <name>IPhotoAlbum</name>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="20"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../widgets/IPhotoAlbum.ui" line="50"/>
+        <location filename="../widgets/IPhotoAlbum.ui" line="77"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>IPlot</name>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="94"/>
+        <source>Reset Zoom</source>
+        <translation>Сбросить увеличение</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="95"/>
+        <source>Stop Range</source>
+        <translation>Отменить интервал</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="96"/>
+        <source>Save...</source>
+        <translation>Сохранить...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="98"/>
+        <source>Add Waypoint</source>
+        <translation>Добавить маршрутную точку</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="99"/>
+        <source>Cut...</source>
+        <translation>Вырезать...</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="542"/>
+        <source>Hold CTRL key for vertical zoom, only.
+Hold ALT key for horizontal zoom, only.</source>
+        <translation>Удерживать клавишу CTRL для вертикального увеличения.
+Удерживать клавишу ALT для горизонтального увеличения.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="697"/>
+        <source>No or bad data.</source>
+        <translation>Отсутствующие или неверные данные.</translation>
+    </message>
+    <message>
+        <location filename="../plot/IPlot.cpp" line="1298"/>
+        <source>Select output file</source>
+        <translation>Выбрать выходной файл</translation>
+    </message>
+</context>
+<context>
+    <name>IPositionDialog</name>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="14"/>
+        <source>Position ...</source>
+        <translation>Позиция ...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="20"/>
+        <source>Enter new position</source>
+        <translation>Ввести новую позицию</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IPositionDialog.ui" line="30"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Неверный формат позиции. Должен быть:
+"[С|Ю] ddd mm.sss [З|В] ddd mm.sss"
+или
+"[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IPrintDialog</name>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="20"/>
+        <source>Print map...</source>
+        <translation>Печатать карту...</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="37"/>
+        <source>When saving online maps make sure that the map has been loaded into the cache for the extent to be saved.</source>
+        <translation>При сохранении онлайн-карты убедитесь, что карта была загружена в кэш в размере печати.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="60"/>
+        <source>Save</source>
+        <translation>Сохранить</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="79"/>
+        <source>When printing online maps make sure that the map has been loaded into the cache for the extent to be printed.</source>
+        <translation>При печати онлайн-карты убедитесь, что карта была загружена в кэш в размере печати.</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="89"/>
+        <location filename="../print/IPrintDialog.ui" line="102"/>
+        <location filename="../print/IPrintDialog.ui" line="151"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+    <message>
+        <location filename="../print/IPrintDialog.ui" line="118"/>
+        <source>Print</source>
+        <translation>Печатать</translation>
+    </message>
+</context>
+<context>
+    <name>IProgressDialog</name>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="14"/>
+        <source>Please wait...</source>
+        <translation>Пожалуйста, подождите...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IProgressDialog.ui" line="20"/>
+        <location filename="../helpers/IProgressDialog.ui" line="27"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation>Proj4 мастер</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation>Меркатор</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation>UTM</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>Зона</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>Задание пользователя</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Датум</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation>World Mercator(OSM)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Результат:</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Север (Северный полюс)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Юг (Южный полюс)</translation>
+    </message>
+    <message>
+        <location filename="../grid/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Проекция</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWpt</name>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="14"/>
+        <source>Waypoint Projection</source>
+        <translation>Переместить маршрутную точку</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="22"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="45"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="54"/>
+        <source>Clone waypoint and move by:</source>
+        <translation>Клонировать маршрутную точку и переместить на:</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="66"/>
+        <source>m</source>
+        <translation>м</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IProjWpt.ui" line="76"/>
+        <source>°</source>
+        <translation>°</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouter</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="20"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="43"/>
+        <source>Profile</source>
+        <translation>Профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="50"/>
+        <source>Alternative</source>
+        <translation>Альтернатива</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="79"/>
+        <source>display selected routing profile</source>
+        <translation>Отобразить выбранный профиль маршрутизации</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="82"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="143"/>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="157"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="102"/>
+        <source>on-the-fly routing</source>
+        <translation>Маршрутизация на лету</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="126"/>
+        <source>BRouter: </source>
+        <translation>BRouter:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="133"/>
+        <source>not running</source>
+        <translation>Не запущено</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="140"/>
+        <source>start/stop BRouter</source>
+        <translation>Старт / стоп BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="154"/>
+        <source>show BRouter console</source>
+        <translation>Показать консоль BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="187"/>
+        <source>Setup</source>
+        <translation>Настройка</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="196"/>
+        <source>Caution! BRouter is listening on all ports for connections.</source>
+        <translation>Осторожно! BRouter прослушивает все порты для соединений.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="234"/>
+        <source>Dismiss</source>
+        <translation>Отклонить</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="256"/>
+        <source><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, Licence GPLv3</a></p></source>
+        <translation><p><a href="http://brouter.de/brouter/" target="_blank">BRouter</a> © <a href="https://github.com/abrensch/brouter/blob/master/LICENSE" target="_blank">ABrensch, лицензия GPLv3</a></p></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="269"/>
+        <source><p>Directions Courtesy of <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></source>
+        <translation><p>Любезность <a href="http://brouter.de/brouter-web/" target="_blank">BRouter-web</a> </p></translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterBRouter.ui" line="282"/>
+        <source><p>Routing data <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a> contributors</p></source>
+        <translation><p>Данные маршрутизации <a href="http://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a></p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterInfo</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="14"/>
+        <source>BRouter Profile</source>
+        <translation>Профиль BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterInfo.ui" line="20"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterBRouterSetupWizard</name>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="23"/>
+        <source>BRouter Setup</source>
+        <translation>Настройка BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="48"/>
+        <source>choose which BRouter to use</source>
+        <translation>Выберите, какой BRouter использовать</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="54"/>
+        <source>BRouter-Web (online)</source>
+        <translation>BRouter-Web (онлайн)</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="61"/>
+        <source>local Installation</source>
+        <translation>Локальная установка</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="68"/>
+        <source>Expert Mode</source>
+        <translation>Экспертный режим</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="91"/>
+        <source>local BRouter Installation directory:</source>
+        <translation>Папка для локальной установки:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="103"/>
+        <source>select installation directory</source>
+        <translation>Выбрать папку установки</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="106"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="162"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="342"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="356"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="389"/>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="400"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="119"/>
+        <source>labelLocalDirResult</source>
+        <translation>labelLocalDirResult</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="128"/>
+        <source>create or update installation</source>
+        <translation>Создать или обновить установку</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="152"/>
+        <source>Java Executable</source>
+        <translation>Исполняемый файл Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="175"/>
+        <source>labelLocalJavaResult</source>
+        <translation>labelLocalJavaResult</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="184"/>
+        <source>search for installed java</source>
+        <translation>Искать установленный Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="241"/>
+        <source>Download and install BRouter Version</source>
+        <translation>Загрузить и установить версия BRouter</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="255"/>
+        <source>about:blank</source>
+        <translatorcomment>about:blank</translatorcomment>
+        <translation>about:blank</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="263"/>
+        <source>File to install</source>
+        <translation>Файл для установки</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="272"/>
+        <source>Download and Install</source>
+        <translation>Загрузить и установить</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="321"/>
+        <source>available Profiles</source>
+        <translation>Доступные профили</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="339"/>
+        <source>install profile</source>
+        <translation>Установить профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="353"/>
+        <source>remove profile</source>
+        <translation>Удалить профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="371"/>
+        <source>installed Profiles</source>
+        <translation>Установленные профили</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="415"/>
+        <source>content of profile</source>
+        <translation>Содержание профиля</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="451"/>
+        <source>BRouter-Web URL:</source>
+        <translation>BRouter-Web URL:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="501"/>
+        <source>Service-URL</source>
+        <translation>URL для сервисов</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="511"/>
+        <source>Profile-URL</source>
+        <translation>URL для профилей</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="561"/>
+        <source>Hostname</source>
+        <translation>Имя узла </translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="571"/>
+        <source>Port</source>
+        <translation>Порт</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="581"/>
+        <source>Profile directory</source>
+        <translation>Папка для профилей</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="591"/>
+        <source>Segments directory</source>
+        <translation>Папка для сегментов</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="601"/>
+        <source>Custom Profiles dir</source>
+        <translation>Папка для настраиваемого профиля</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="611"/>
+        <source>Max Runtime</source>
+        <translation>Максимальная продолжительность выполнения</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="621"/>
+        <source>Number Threads</source>
+        <translation>Количество потоков</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="631"/>
+        <source>Java Options</source>
+        <translation>Параметры Java</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="641"/>
+        <source>Bind to hostname only</source>
+        <translation>Привязать только к localhost</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/brouter/IRouterBRouterSetupWizard.ui" line="551"/>
+        <source>Profiles Url</source>
+        <translation>URL для профилей</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterMapQuest</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="37"/>
+        <source>Highways</source>
+        <translation>Автомагистрали</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="44"/>
+        <source>Seasonal</source>
+        <translation>Сезонные дороги</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="51"/>
+        <source>Language</source>
+        <translation>Язык</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="58"/>
+        <source>Country Border</source>
+        <translation>Государственная граница</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="68"/>
+        <source>Profile</source>
+        <translation>Профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="75"/>
+        <source>Avoid:</source>
+        <translation>Избегать:</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="82"/>
+        <source>Ferry</source>
+        <translation>Парома</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="89"/>
+        <source>Toll Road</source>
+        <translation>Платные дороги</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="99"/>
+        <source>Unpaved</source>
+        <translation>Дороги без покрытия</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterMapQuest.ui" line="121"/>
+        <source><p>Directions Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></source>
+        <translation><p>Маршрутные направления с разрешением <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> </p></translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutino</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="46"/>
+        <source>Profile</source>
+        <translation>Профиль</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="53"/>
+        <source>Mode</source>
+        <translation>Режим</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="60"/>
+        <source>Database</source>
+        <translation>База данных</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="67"/>
+        <source>Add paths with Routino database.</source>
+        <translation>Добавить путь к базе данных Routino.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="70"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="81"/>
+        <source>Language</source>
+        <translation>Язык</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/IRouterRoutino.ui" line="148"/>
+        <source>To use offline routing you need to define paths to local routing data. Use the setup tool button to register a path. You can create your own routing data with <b>Tool->Create Routino Database</b>.</source>
+        <translation>Для использования маршрутизации без доступа к сети вам необходимо определить пути к локальным данным маршрутизации. Использовать кнопку настройки, чтобы зарегистрировать пути. Вы можете создать свои собственные данные для маршрутизации с помощью <b>Инструмент->Создать базу данных Routino</b>.</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterRoutinoPathSetup</name>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="14"/>
+        <source>Setup Routino database...</source>
+        <translation>Настройка базы данных Routino...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="27"/>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="47"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/router/routino/IRouterRoutinoPathSetup.ui" line="99"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+</context>
+<context>
+    <name>IRouterSetup</name>
+    <message>
+        <location filename="../gis/rte/router/IRouterSetup.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+</context>
+<context>
+    <name>IRoutinoDatabaseBuilder</name>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="25"/>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="63"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="42"/>
+        <source>Select source files:</source>
+        <translation>Выбрать исходные файлы:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="54"/>
+        <source>Start</source>
+        <translation>Начать</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="86"/>
+        <source>Target Path:</source>
+        <translation>Целевой путь:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="93"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="100"/>
+        <source>File Prefix</source>
+        <translation>Префикс файла</translation>
+    </message>
+    <message>
+        <location filename="../tool/IRoutinoDatabaseBuilder.ui" line="133"/>
+        <source><p>To create a Routino routing database you need to download *pbf files from <a href='http://download.geofabrik.de/'>GeoFabrik</a>. The process of creating a Routino database is quite slow and the resulting files quite large. Therefore it's recommended not to download whole continents. Limit your download to those countries you really need. However as Routino can't route over several databases you have to include all countries that ar [...]
+
+<ol>
+<li>Select one or multiple source *.pbf files.</li>
+<li>Select a path for your Routino database.</li>
+<li>Select a prefix. The database will be listed by this prefix.</li>
+<li>Press "Start" button.</li>
+</ol></source>
+        <translation><p>Чтобы создать базу данных маршрутизации Routino, вам необходимо загрузить файлы *.pbf из <a href='http://download.geofabrik.de/'>GeoFabrik</a>. Процесс создания базы данных Routino довольно медленный, и результирующие файлы довольно большие. Поэтому рекомендуется не загружать целые континенты. Ограничьте загрузку теми странами, которые вам действительно нужны. Однако, поскольку Routino не может маршрутизировать через несколько баз данны [...]
+
+<ol>
+<li>Выберите один или несколько исходных файлов *.pbf.</li>
+<li>Выберите путь для вашей базы данных Routino.</li>
+<li>Выберите префикс. База данных будет указана с этим префиксом.</li>
+<li>Нажмите кнопку "Начать".</li>
+</ol></translation>
+    </message>
+</context>
+<context>
+    <name>IRtOpenSkyInfo</name>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="42"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="63"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="35"/>
+        <source>Last update</source>
+        <translation>Последнее обновление</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="49"/>
+        <source>Aircrafts seen:</source>
+        <translation>Замеченные самолеты:</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="56"/>
+        <source>Show names</source>
+        <translation>Показать имена</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="70"/>
+        <source>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</source>
+        <translation>Подробности см. <a href='https://opensky-network.org/'>OpenSky</a>.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="80"/>
+        <source>Enter a valid key.</source>
+        <translation>Ввести действительный ключ.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="87"/>
+        <source>Record by key</source>
+        <translation>Запись по ключу</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="102"/>
+        <source>Start recording.</source>
+        <translation>Начать запись.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="105"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="125"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="148"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="162"/>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="122"/>
+        <source>Pause recording.</source>
+        <translation>Приостановить запись.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="145"/>
+        <source>Convert record to track.</source>
+        <translation>Преобразовать запись в трек.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="159"/>
+        <source>Reset record.</source>
+        <translation>Сбросить запись.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/opensky/IRtOpenSkyInfo.ui" line="173"/>
+        <source>Select record file.</source>
+        <translation>Выбрать файл записи.</translation>
+    </message>
+</context>
+<context>
+    <name>IRtRecord</name>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="44"/>
+        <source>Failed to open record for reading.</source>
+        <translation>Не удалось открыть запись для чтения.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="63"/>
+        <source>Failed to read entry. Truncate record to last valid entry.</source>
+        <translation>Не удалось прочитать запись. Запись обрезана до последнего допустимого элемента.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="81"/>
+        <source>Failed to open record for writing.</source>
+        <translation>Не удалось открыть запись для записи.</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtRecord.cpp" line="94"/>
+        <source>Failed to write entry.</source>
+        <translation>Не удалось записать элемент.</translation>
+    </message>
+</context>
+<context>
+    <name>IRtSelectSource</name>
+    <message>
+        <location filename="../realtime/IRtSelectSource.ui" line="14"/>
+        <source>Select a source...</source>
+        <translation>Выбрать источник...</translation>
+    </message>
+</context>
+<context>
+    <name>IRtWorkspace</name>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="47"/>
+        <source>Source</source>
+        <translation>Источник</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="95"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="115"/>
+        <source>Add Source</source>
+        <translation>Добавить источник</translation>
+    </message>
+    <message>
+        <location filename="../realtime/IRtWorkspace.ui" line="124"/>
+        <source>Delete Source</source>
+        <translation>Удалить источник</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptEditLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="32"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="40"/>
+        <source>Save to original</source>
+        <translation>Сохранить в оригинал</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="47"/>
+        <source>Save as new</source>
+        <translation>Сохранить как новый</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="54"/>
+        <source>Abort</source>
+        <translation>Прервать</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="89"/>
+        <source>Move points. (Ctrl+M)</source>
+        <translation>Переместить точки. (Ctrl+M)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="92"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="118"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="141"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="164"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="300"/>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="317"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="99"/>
+        <source>Ctrl+M</source>
+        <translation>Ctrl+M</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="115"/>
+        <source>Add new points. (Ctrl++)</source>
+        <translation>Добавить новые точки. (Ctrl++)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="125"/>
+        <source>Ctrl++</source>
+        <translation>Ctrl++</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="138"/>
+        <source>Select a range of points. (Ctrl+R)</source>
+        <translation>Выбрать интервал точек. (Ctrl+R)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="148"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="161"/>
+        <source>Delete a point. (Ctrl+-)</source>
+        <translation>Удалить точку. (Ctrl+-)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="171"/>
+        <source>Ctrl+-</source>
+        <translation>Ctrl+-</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="215"/>
+        <source>No auto-routing or line snapping (Ctrl+O)</source>
+        <translation>Без автоматической маршрутизации и прикрепления к линии (Ctrl+O)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="218"/>
+        <source>0</source>
+        <translation>0</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="225"/>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="238"/>
+        <source>Use auto-routing to between points. (Ctrl+A)</source>
+        <translation>Использовать автоматическую маршрутизацию между точками. (Ctrl+A)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="241"/>
+        <source>A</source>
+        <translation>A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="248"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="261"/>
+        <source>Snap line along lines of a vector map. (Ctrl+V)</source>
+        <translation>Прикрепления линии к линиям векторной карты. (Ctrl+V)</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="264"/>
+        <source>V</source>
+        <translation>V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="271"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="297"/>
+        <source>Undo last change</source>
+        <translation>Отменить последнее изменение</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptEditLine.ui" line="314"/>
+        <source>Redo last change</source>
+        <translation>Вернуть последнее изменение</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptOvlArea</name>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Показать и изменить детали.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="43"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="57"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="71"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="92"/>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="106"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="54"/>
+        <source>Copy area into another project.</source>
+        <translation>Копировать область в другой проект.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="68"/>
+        <source>Delete area from project.</source>
+        <translation>Удалить область с проекта.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="89"/>
+        <source>Edit shape of the area.</source>
+        <translation>Изменить фигуру области.</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="103"/>
+        <source>Toggle Nogo-Area</source>
+        <translation>Переключить запретную зону</translation>
+    </message>
+    <message>
+        <location filename="../gis/ovl/IScrOptOvlArea.ui" line="138"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptPrint</name>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="35"/>
+        <source>Save selected area as image.</source>
+        <translation>Сохранить выбранную область как изображение.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="38"/>
+        <location filename="../mouse/IScrOptPrint.ui" line="58"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptPrint.ui" line="55"/>
+        <source>Print selected area.</source>
+        <translation>Печатать выбранную область.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeLine</name>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="32"/>
+        <source>Delete all points between the first and last one.</source>
+        <translation>Удалить все точки между первой и последней.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="35"/>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="49"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/line/IScrOptRangeLine.ui" line="46"/>
+        <source><html><head/><body><p>Calculate a route between the first and last selected point.</p></body></html></source>
+        <translation><html><head/><body><p>Вычислить маршрут между первой и последней выбранной точками.</p></body></html></translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRangeTrk</name>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="40"/>
+        <source>Hide all points.</source>
+        <translation>Скрыть все точки.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="43"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="57"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="71"/>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="85"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="54"/>
+        <source>Show all points.</source>
+        <translation>Показать все точки.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="68"/>
+        <source>Set an activity for the selected range.</source>
+        <translation>Установить активность для выбранного интервала.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="82"/>
+        <source>Copy track points as new track.</source>
+        <translation>Скопировать точки трека в новый трек.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptRangeTrk.ui" line="117"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptRte</name>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="40"/>
+        <source>View details and edit.</source>
+        <translation>Показать и изменить детали.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="43"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="57"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="71"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="89"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="106"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="120"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="134"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="148"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="162"/>
+        <location filename="../gis/rte/IScrOptRte.ui" line="176"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="54"/>
+        <source>Copy route into another project.</source>
+        <translation>Скопировать маршрут в другой проект.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="68"/>
+        <source>Delete route from project.</source>
+        <translation>Удалить маршрут с проекта.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="103"/>
+        <source>Calculate route.</source>
+        <translation>Вычислить маршрут.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="117"/>
+        <source>Reset route calculation.</source>
+        <translation>Сбросить маршрутизацию.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="131"/>
+        <source>Move route points.</source>
+        <translation>Переместить точки маршрута.</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="145"/>
+        <source>Reverse Route</source>
+        <translation>Обратить маршрут</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="159"/>
+        <source>Convert route to track</source>
+        <translation>Преобразовать маршрут в трек</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="173"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Переключить запретную линию</translation>
+    </message>
+    <message>
+        <location filename="../gis/rte/IScrOptRte.ui" line="205"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptSelect</name>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="59"/>
+        <source>Copy all selected items to a project.</source>
+        <translation>Скопировать все выбранные элементы в проект.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="62"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="82"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="102"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="122"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="142"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="156"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="170"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="224"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="253"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="313"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="340"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="367"/>
+        <location filename="../mouse/IScrOptSelect.ui" line="394"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="79"/>
+        <source>Create a route from selected waypoints.</source>
+        <translation>Создать маршрут с выбранных маршрутных точек.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="99"/>
+        <source>Change the icon of all selected waypoints.</source>
+        <translation>Изменить пиктограммы всех выбранных маршрутных точек.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="119"/>
+        <source>Combine all selected tracks to a new one.</source>
+        <translation>Объединить все выбранные треки в новый трек.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="139"/>
+        <source>Set an activity for all selected tracks.</source>
+        <translation>Установить активность для всех выбранных треков.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="153"/>
+        <source>Change the color of all selected tracks.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="167"/>
+        <source>Delete all selected items.</source>
+        <translation>Удалить все выбранные элементы.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="221"/>
+        <source>Select all items that intersect the selected area.</source>
+        <translation>Выбрать все элементы, которые пересекают выбранную область.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="250"/>
+        <source>Select all items that are completely inside the selected area.</source>
+        <translation>Выбрать все элементы полностью внутри выбранной области.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="310"/>
+        <source>Add tracks to selection.</source>
+        <translation>Добавить треки к выбору.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="337"/>
+        <source>Add waypoints to selection.</source>
+        <translation>Добавить маршрутные точки к выбору.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="364"/>
+        <source>Add routes to selection.</source>
+        <translation>Добавить маршруты к выбору.</translation>
+    </message>
+    <message>
+        <location filename="../mouse/IScrOptSelect.ui" line="391"/>
+        <source>Add areas to selection.</source>
+        <translation>Добавить области к выбору.</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptTrk</name>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="40"/>
+        <source>View details and edit properties of track.</source>
+        <translation>Показать детали и изменить свойства трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="43"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="57"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="71"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="92"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="109"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="123"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="137"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="151"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="170"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="184"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="198"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="212"/>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="226"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="54"/>
+        <source>Copy track into another project.</source>
+        <translation>Скопировать трек в другой проект.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="68"/>
+        <source>Delete track from project.</source>
+        <translation>Удалить трек с проекта.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="89"/>
+        <source>Show on-screen profile and detailed information about points.</source>
+        <translation>Показать на экране профиль и подробные сведения о точках.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="106"/>
+        <source>Select a range of points.</source>
+        <translation>Выбрать интервал трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="120"/>
+        <source>Edit position of track points.</source>
+        <translation>Изменить позиции точек трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="134"/>
+        <source>Reverse track.</source>
+        <translation>Обратить трек.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="148"/>
+        <source>Combine tracks.</source>
+        <translation>Объединить треки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="162"/>
+        <source>Cut track at selected point. You can use this to:
+
+* remove bad points at the start or end of the track
+* use the track parts to plan a new tour
+* cut a long track into stages
+</source>
+        <translation>Разрезать трек в выбранной точки. Можно использовать это чтобы:
+
+* удалить неверные точки с начала или с конца трека,
+* создать новый трек из частей трека,
+* разрезать длинный трек на меньшие составляющие
+</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="181"/>
+        <source>Set an activity for the complete track.</source>
+        <translation>Установить активность для всего трека.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="195"/>
+        <source>Change the color of the track.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="209"/>
+        <source>Copy track together with all attached waypoints into another project.</source>
+        <translation>Скопировать трек вместе со всеми присоединёнными маршрутными точками в другой проект.</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="223"/>
+        <source>Toggle Nogo-Line</source>
+        <translation>Переключить запретную линию</translation>
+    </message>
+    <message>
+        <location filename="../gis/trk/IScrOptTrk.ui" line="255"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWpt</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="20"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="49"/>
+        <source>View details and edit.</source>
+        <translation>Показать детали и изменить.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="80"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="101"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="118"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="132"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="153"/>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="184"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="63"/>
+        <source>Copy waypoint into another project.</source>
+        <translation>Скопировать маршрутную точку в другой проект.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="77"/>
+        <source>Delete waypoint from project.</source>
+        <translation>Удалить маршрутную точку с проекта.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="98"/>
+        <source>Show content as static bubble.</source>
+        <translation>Показать содержимое в статическом пузырьке.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="115"/>
+        <source>Move waypoint to a new location.</source>
+        <translation>Переместить маршрутную точку в новую позицию.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="129"/>
+        <source>Clone waypoint and move clone a given distance and angle.</source>
+        <translation>Клонировать маршрутную точку и переместить клон на данное расстояние под указанным углом.</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="150"/>
+        <source>edit radius of circular area</source>
+        <translation>Изменить радиус круга близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="181"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>Переключить между кругом близости и запретной зоной</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="167"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Удалить круг близости маршрутной точки</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWpt.ui" line="231"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>IScrOptWptRadius</name>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="20"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="49"/>
+        <source>edit radius of circular area</source>
+        <translation>Изменить радиус круга близости</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="52"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="66"/>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="80"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="77"/>
+        <source>Switch between proximity and nogo-area</source>
+        <translation>Переключить между кругом близости и запретной зоной</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="63"/>
+        <source>Delete circle defined by waypoint</source>
+        <translation>Удалить круг близости маршрутной точки</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/IScrOptWptRadius.ui" line="127"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+</context>
+<context>
+    <name>ISearchDatabase</name>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="14"/>
+        <source>Search...</source>
+        <translation>Поиск...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="34"/>
+        <source>Type the word you want to search for and press the search button. 
+If you enter 'word' a search with an exact match is done. If you enter 'word*', 'word' has to be at the beginning of a string.</source>
+        <translation>Ввести слово, которое желаете найти, и нажать кнопку 'Найти'.
+Если ввести 'слово', будет произведён поиск с точным совпадением. Если ввести 'слово*', то 'слово' должно быть в начале строки.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="51"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="79"/>
+        <source>Search</source>
+        <translation>Найти</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISearchDatabase.ui" line="86"/>
+        <source>Close</source>
+        <translation>Закрыть</translation>
+    </message>
+</context>
+<context>
+    <name>ISelDevices</name>
+    <message>
+        <location filename="../gis/ISelDevices.ui" line="14"/>
+        <source>Select devices...</source>
+        <translation>Выбрать устройства...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectActivityColor</name>
+    <message>
+        <location filename="../gis/trk/ISelectActivityColor.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectCopyAction</name>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="14"/>
+        <source>Copy item...</source>
+        <translation>Скопировать элемент...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="29"/>
+        <source>Replace existing item</source>
+        <translation>Заменить существующий элемент</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="36"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="46"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="79"/>
+        <location filename="../helpers/ISelectCopyAction.ui" line="89"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="72"/>
+        <source>Do not copy item</source>
+        <translation>Не копировать элемент</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="115"/>
+        <source>Create a clone</source>
+        <translation>Создать клон</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="122"/>
+        <source>Replace with:</source>
+        <translation>Заменить на:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="129"/>
+        <source>Keep item:</source>
+        <translation>Оставить элемент:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="136"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>'_клон' будет добавлено к имени клона</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectCopyAction.ui" line="153"/>
+        <source>And for all other items, too.</source>
+        <translation>Также для всех остальных элементов.</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDBFolder</name>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="14"/>
+        <source>Select Parent Folder...</source>
+        <translation>Выбрать корневую папку...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectDBFolder.ui" line="26"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectDoubleListWidget</name>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="22"/>
+        <source>Available</source>
+        <translation>Доступно</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="46"/>
+        <source>Add to selected items</source>
+        <translation>Добавить к выбранным элементам</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="60"/>
+        <source>Remove from selected items</source>
+        <translation>Удалить из выбранных элементов</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="78"/>
+        <source>Selected</source>
+        <translation>Выбрано</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="102"/>
+        <source>Move selected items up</source>
+        <translation>Переместить выбранные элементы вверх</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="116"/>
+        <source>Move selected items down</source>
+        <translation>Переместить выбранные элементы вниз</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="49"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="63"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="105"/>
+        <location filename="../widgets/ISelectDoubleListWidget.ui" line="119"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectProjectDialog</name>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="14"/>
+        <source>Select a project...</source>
+        <translation>Выбрать проект...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="20"/>
+        <source>Select project from list or enter new project name.</source>
+        <translation>Выбрать проект со списка или ввести имя нового проекта.</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="33"/>
+        <source>New project's name</source>
+        <translation>Имя нового проекта</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="43"/>
+        <source>New project is created as:</source>
+        <translation>Создать новый проект как:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="93"/>
+        <source>*.qms</source>
+        <translation>*.qms</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="103"/>
+        <source>*.gpx</source>
+        <translation>*.gpx</translation>
+    </message>
+    <message>
+        <location filename="../helpers/ISelectProjectDialog.ui" line="110"/>
+        <source>Database</source>
+        <translation>База данных</translation>
+    </message>
+</context>
+<context>
+    <name>ISelectSaveAction</name>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="20"/>
+        <source>Copy item...</source>
+        <translation>Копировать элемент...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="35"/>
+        <source>Replace existing item</source>
+        <translation>Заменить существующий элемент</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="42"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="68"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="130"/>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="140"/>
+        <source>TextLabel</source>
+        <translation>Метка текста</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="61"/>
+        <source>Do not replace item</source>
+        <translation>Не заменять элемент</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="87"/>
+        <source>Add a clone</source>
+        <translation>Добавить клон</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="100"/>
+        <source>The clone's name will be appended with '_Clone'</source>
+        <translation>'_клон' будет добавлено к имени клона</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="116"/>
+        <source>And for all other items, too.</source>
+        <translation>Также для всех остальных элементов.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="123"/>
+        <source>Use item:</source>
+        <translation>Использовать элемент:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISelectSaveAction.ui" line="171"/>
+        <source>Replace with:</source>
+        <translation>Заменить на:</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupDatabase</name>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="14"/>
+        <source>Add database...</source>
+        <translation>Добавить базу данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="25"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="181"/>
+        <source>Server</source>
+        <translation>Сервер</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="193"/>
+        <source>Port</source>
+        <translation>Порт</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="206"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="215"/>
+        <source>User</source>
+        <translation>Пользователь</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="225"/>
+        <source>Password</source>
+        <translation>Пароль</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="252"/>
+        <source><p align="justify"><span style=" font-weight:600;">Caution!</span> It is recommended to leave the password blank, as QMapShack will store it as plain text. If you don't give a password you will be asked for it on each startup.</p></source>
+        <translation><p align="justify"><span style=" font-weight:600;">Внимание!</span> Рекомендуется оставить поле пароля пустым, так как QMapShack сохранит его как простой текст. Если нет пароля, то программа будет запрашивать его при каждом запуске.</p></translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="275"/>
+        <source><b>Port:</b> Leave the port field empty to use the default port.</source>
+        <translation><b>Порт:</b> Если оставить поле порт пустым, то будет использоваться порт по умолчанию.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="239"/>
+        <source>Do not use a password.</source>
+        <translation>Не использовать пароль.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="61"/>
+        <source>File:</source>
+        <translation>Файл:</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="68"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="75"/>
+        <source>Add new database.</source>
+        <translation>Добавить новую базу данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="78"/>
+        <location filename="../gis/db/ISetupDatabase.ui" line="92"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="89"/>
+        <source>Open existing database.</source>
+        <translation>Открыть существующую базу данных.</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="115"/>
+        <source>MySQL</source>
+        <translation>MySQL</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupDatabase.ui" line="153"/>
+        <source>SQLite</source>
+        <translation>SQLite</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFilter</name>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="14"/>
+        <source>Form</source>
+        <translation>Форма</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="38"/>
+        <source>Apply filter to</source>
+        <translation>Применить фильтр</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="45"/>
+        <source>name only</source>
+        <translation>только к имени</translation>
+    </message>
+    <message>
+        <location filename="../gis/ISetupFilter.ui" line="52"/>
+        <source>complete text</source>
+        <translation>к полному тексту</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupFolder</name>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="14"/>
+        <source>Database Folder...</source>
+        <translation>Папка базы данных...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="20"/>
+        <source>Folder name</source>
+        <translation>Имя папки</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="30"/>
+        <source>Group</source>
+        <translation>Группа</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="41"/>
+        <source>Project</source>
+        <translation>Проект</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupFolder.ui" line="55"/>
+        <source>Other</source>
+        <translation>Остальное</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupNewWpt</name>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="14"/>
+        <source>New Waypoint...</source>
+        <translation>Новая маршрутная точка...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="22"/>
+        <source>Symbol</source>
+        <translation>Символ</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="29"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="39"/>
+        <source>Position</source>
+        <translation>Позиция</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="49"/>
+        <source>Name</source>
+        <translation>Имя</translation>
+    </message>
+    <message>
+        <location filename="../gis/wpt/ISetupNewWpt.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Неверный формат позиции. Должен быть:
+"[С|Ю] ddd mm.sss [З|В] ddd mm.sss"
+ или 
+"[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupWorkspace</name>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="14"/>
+        <source>Setup workspace...</source>
+        <translation>Настройка рабочей области...</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="35"/>
+        <source>save workspace on exit, and every</source>
+        <translation>Сохранять рабочую область при выходе и каждые</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="45"/>
+        <source>minutes</source>
+        <translation>минут</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="56"/>
+        <source>listen for database changes from other instances of QMapShack. On port</source>
+        <translation>Прослушивать изменений в базе данных другой работающей QMapShack. Порт</translation>
+    </message>
+    <message>
+        <location filename="../gis/db/ISetupWorkspace.ui" line="63"/>
+        <source>00000</source>
+        <translation>00000</translation>
+    </message>
+</context>
+<context>
+    <name>ITemplateWidget</name>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="14"/>
+        <source>Insert Template...</source>
+        <translation>Вставить шаблон...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="32"/>
+        <source>Templates</source>
+        <translation>Шаблоны</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="42"/>
+        <source>Select a path with your own templates.</source>
+        <translation>Выбрать путь собственных шаблонов.</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="45"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITemplateWidget.ui" line="77"/>
+        <source>Preview</source>
+        <translation>Просмотр</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidget</name>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="14"/>
+        <source>Edit text...</source>
+        <translation>Изменить текст...</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="45"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="351"/>
+        <source>Undo</source>
+        <translation>Отменить</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="354"/>
+        <source>Ctrl+Z</source>
+        <translation>Ctrl+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="58"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="363"/>
+        <source>Redo</source>
+        <translation>Вернуть</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="366"/>
+        <source>Ctrl+Shift+Z</source>
+        <translation>Ctrl+Shift+Z</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="71"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="375"/>
+        <source>Cut</source>
+        <translation>Вырезать</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="378"/>
+        <source>Ctrl+X</source>
+        <translation>Ctrl+X</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="84"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="387"/>
+        <source>Copy</source>
+        <translation>Копировать</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="390"/>
+        <source>Ctrl+C</source>
+        <translation>Ctrl+C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="97"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="395"/>
+        <source>Paste</source>
+        <translation>Вставить</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="25"/>
+        <source>Templ.</source>
+        <translation>Шаблон</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="120"/>
+        <source>A:L</source>
+        <translation>A:L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="133"/>
+        <source>A:C</source>
+        <translation>A:C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="146"/>
+        <source>A:R</source>
+        <translation>A:R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="159"/>
+        <source>A:B</source>
+        <translation>A:B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="192"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="205"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="218"/>
+        <source>U</source>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="238"/>
+        <source>C</source>
+        <translation>C</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="285"/>
+        <source>Standard</source>
+        <translation>Стандарт</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="290"/>
+        <source>Bullet List (Disc)</source>
+        <translation>Маркированный список (диск)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="295"/>
+        <source>Bullet List (Circle)</source>
+        <translation>Маркированный список (круг)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="300"/>
+        <source>Bullet List (Square)</source>
+        <translation>Маркированный список (квадрат)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="305"/>
+        <source>Ordered List (Decimal)</source>
+        <translation>Упорядоченный список (цифра, арабская)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="310"/>
+        <source>Ordered List (Alpha lower)</source>
+        <translation>Упорядоченный список (буква маленькая)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="315"/>
+        <source>Ordered List (Alpha upper)</source>
+        <translation>Упорядоченный список (буква большая)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="320"/>
+        <source>Ordered List (Roman lower)</source>
+        <translation>Упорядоченный список (цифра, латинская маленькая)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="325"/>
+        <source>Ordered List (Roman upper)</source>
+        <translation>Упорядоченный список (цифра, латинская большая)</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="398"/>
+        <source>Ctrl+V</source>
+        <translation>Ctrl+V</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="410"/>
+        <source>Align Left</source>
+        <translation>Выровнять по левому краю</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="413"/>
+        <source>Ctrl+L</source>
+        <translation>Ctrl+L</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="425"/>
+        <source>Align Right</source>
+        <translation>Выровнять по правому краю</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="428"/>
+        <source>Ctrl+R</source>
+        <translation>Ctrl+R</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="440"/>
+        <source>Align Center</source>
+        <translation>Выровнять по центру</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="443"/>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="455"/>
+        <source>Align Block</source>
+        <translation>Выровнять в блок</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="458"/>
+        <source>Ctrl+J</source>
+        <translation>Ctrl+J</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="470"/>
+        <source>Underline</source>
+        <translation>Подчеркнуть</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="473"/>
+        <source>Ctrl+U</source>
+        <translation>Ctrl+U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="485"/>
+        <source>Bold</source>
+        <translation>Жирный</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="488"/>
+        <source>Ctrl+B</source>
+        <translation>Ctrl+B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="500"/>
+        <source>Italic</source>
+        <translation>Курсив</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="503"/>
+        <source>Ctrl+I</source>
+        <translation>Ctrl+I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="515"/>
+        <source>Plain</source>
+        <translation>Обычный</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="518"/>
+        <source>Reset the text's format before pasting</source>
+        <translation>Сбросить форматирование текста до вставки</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="523"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="526"/>
+        <source>Select All</source>
+        <translation>Выделить все</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="529"/>
+        <source>Ctrl+A</source>
+        <translation>Ctrl+A</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="534"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="537"/>
+        <source>Delete</source>
+        <translation>Удалить</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="542"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="545"/>
+        <source>Reset Font</source>
+        <translation>Сбросить шрифт</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="550"/>
+        <location filename="../widgets/ITextEditWidget.ui" line="553"/>
+        <source>Reset Layout</source>
+        <translation>Сбросить раскладку</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="565"/>
+        <source>Normal</source>
+        <translation>Нормально</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="568"/>
+        <source>Paste without resetting the text's format</source>
+        <translation>Вставить без сброса форматирования текста</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="577"/>
+        <source>Insert From Template</source>
+        <translation>Вставить из шаблона</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidget.ui" line="580"/>
+        <source>Create text from template.</source>
+        <translation>Создать текст из шаблона.</translation>
+    </message>
+</context>
+<context>
+    <name>ITextEditWidgetSelMenu</name>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="55"/>
+        <source>B</source>
+        <translation>B</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="68"/>
+        <source>I</source>
+        <translation>I</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="81"/>
+        <source>U</source>
+        <translatorcomment>???</translatorcomment>
+        <translation>U</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="101"/>
+        <source>Cut</source>
+        <translation>Вырезать</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="114"/>
+        <source>Copy</source>
+        <translation>Скопировать</translation>
+    </message>
+    <message>
+        <location filename="../widgets/ITextEditWidgetSelMenu.ui" line="127"/>
+        <source>Paste</source>
+        <translation>Вставить</translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Настройка часового пояса...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation>UTC</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Местный</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Автоматический</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Печатать дату/время в</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>длинном формате, или</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>сокращённом формате</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="123"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Примечание:</b> Изменение единиц для некоторых элементов графического пользовательского интерфейса вступит в силу только после перезапуска QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IToolBarSetupDialog</name>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="14"/>
+        <source>Setup Toolbar</source>
+        <translation>Настройка панели инструментов</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IToolBarSetupDialog.ui" line="23"/>
+        <source>Toolbar is visible in Fullscreen-mode</source>
+        <translation>Панель инструментов видна в полноэкранном режиме</translation>
+    </message>
+</context>
+<context>
+    <name>IToolShell</name>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="46"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Не удалось выполнить внешнюю программу `%1`: </translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="50"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Невозможно запустить процесс.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="51"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Убедитесь, что установлены необходимые пакеты, `%1` существует и разрешено его исполнение.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="55"/>
+        <source>External process crashed.
+</source>
+        <translation>Крах внешнего процесса.
+</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="59"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Случилась неизвестная ошибка.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolShell.cpp" line="172"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!Не удалось!</translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Error</source>
+        <translation>Ошибка</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="792"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Неверный формат позиции. Должен быть: "[С|Ю] ddd mm.sss [З|В] ddd mm.sss" или "[С|Ю] ddd.ddd [З|В] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="798"/>
+        <source>Position values out of bounds. </source>
+        <translation>Значения позиции вне допустимого интервала.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Настройка единиц измерения...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Length unit</source>
+        <translation>Единица длины</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="30"/>
+        <source>Nautical</source>
+        <translation>Морские</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="37"/>
+        <source>Imperial</source>
+        <translation>Британские</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="44"/>
+        <source>Metric</source>
+        <translation>Метрические</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="52"/>
+        <source>Slope unit</source>
+        <translation>Единица спуска</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="58"/>
+        <source>Degrees (°)</source>
+        <translation>Градус (°)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="65"/>
+        <source>Percent (%)</source>
+        <translation>Процент (%)</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="95"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</source>
+        <translation><b>Примечание:</b> Изменение единиц для некоторых элементов графического пользовательского интерфейса вступят в силу только после перезапуска QMapShack.</translation>
+    </message>
+</context>
+<context>
+    <name>IWptIconDialog</name>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="14"/>
+        <source>Icons...</source>
+        <translation>Пиктограммы...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="68"/>
+        <source>External Icons:</source>
+        <translation>Внешние пиктограммы:</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="75"/>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="82"/>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <location filename="../helpers/IWptIconDialog.ui" line="95"/>
+        <source>All custom icons have to be *.bmp or *.png format.</source>
+        <translation>Все пользовательские пиктограммы должны быть в *.bmp или *.png формате.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/main.cpp b/src/qmapshack/main.cpp
similarity index 100%
rename from src/main.cpp
rename to src/qmapshack/main.cpp
diff --git a/src/map/CMapDraw.cpp b/src/qmapshack/map/CMapDraw.cpp
similarity index 100%
rename from src/map/CMapDraw.cpp
rename to src/qmapshack/map/CMapDraw.cpp
diff --git a/src/map/CMapDraw.h b/src/qmapshack/map/CMapDraw.h
similarity index 100%
rename from src/map/CMapDraw.h
rename to src/qmapshack/map/CMapDraw.h
diff --git a/src/map/CMapGEMF.cpp b/src/qmapshack/map/CMapGEMF.cpp
similarity index 100%
rename from src/map/CMapGEMF.cpp
rename to src/qmapshack/map/CMapGEMF.cpp
diff --git a/src/map/CMapGEMF.h b/src/qmapshack/map/CMapGEMF.h
similarity index 100%
rename from src/map/CMapGEMF.h
rename to src/qmapshack/map/CMapGEMF.h
diff --git a/src/map/CMapIMG.cpp b/src/qmapshack/map/CMapIMG.cpp
similarity index 100%
rename from src/map/CMapIMG.cpp
rename to src/qmapshack/map/CMapIMG.cpp
diff --git a/src/map/CMapIMG.h b/src/qmapshack/map/CMapIMG.h
similarity index 100%
rename from src/map/CMapIMG.h
rename to src/qmapshack/map/CMapIMG.h
diff --git a/src/map/CMapItem.cpp b/src/qmapshack/map/CMapItem.cpp
similarity index 100%
rename from src/map/CMapItem.cpp
rename to src/qmapshack/map/CMapItem.cpp
diff --git a/src/map/CMapItem.h b/src/qmapshack/map/CMapItem.h
similarity index 100%
rename from src/map/CMapItem.h
rename to src/qmapshack/map/CMapItem.h
diff --git a/src/map/CMapJNX.cpp b/src/qmapshack/map/CMapJNX.cpp
similarity index 100%
rename from src/map/CMapJNX.cpp
rename to src/qmapshack/map/CMapJNX.cpp
diff --git a/src/map/CMapJNX.h b/src/qmapshack/map/CMapJNX.h
similarity index 100%
rename from src/map/CMapJNX.h
rename to src/qmapshack/map/CMapJNX.h
diff --git a/src/map/CMapList.cpp b/src/qmapshack/map/CMapList.cpp
similarity index 100%
rename from src/map/CMapList.cpp
rename to src/qmapshack/map/CMapList.cpp
diff --git a/src/map/CMapList.h b/src/qmapshack/map/CMapList.h
similarity index 100%
rename from src/map/CMapList.h
rename to src/qmapshack/map/CMapList.h
diff --git a/src/map/CMapMAP.cpp b/src/qmapshack/map/CMapMAP.cpp
similarity index 100%
rename from src/map/CMapMAP.cpp
rename to src/qmapshack/map/CMapMAP.cpp
diff --git a/src/map/CMapMAP.h b/src/qmapshack/map/CMapMAP.h
similarity index 100%
rename from src/map/CMapMAP.h
rename to src/qmapshack/map/CMapMAP.h
diff --git a/src/map/CMapPathSetup.cpp b/src/qmapshack/map/CMapPathSetup.cpp
similarity index 100%
rename from src/map/CMapPathSetup.cpp
rename to src/qmapshack/map/CMapPathSetup.cpp
diff --git a/src/map/CMapPathSetup.h b/src/qmapshack/map/CMapPathSetup.h
similarity index 100%
rename from src/map/CMapPathSetup.h
rename to src/qmapshack/map/CMapPathSetup.h
diff --git a/src/map/CMapPropSetup.cpp b/src/qmapshack/map/CMapPropSetup.cpp
similarity index 100%
rename from src/map/CMapPropSetup.cpp
rename to src/qmapshack/map/CMapPropSetup.cpp
diff --git a/src/map/CMapPropSetup.h b/src/qmapshack/map/CMapPropSetup.h
similarity index 100%
rename from src/map/CMapPropSetup.h
rename to src/qmapshack/map/CMapPropSetup.h
diff --git a/src/map/CMapRMAP.cpp b/src/qmapshack/map/CMapRMAP.cpp
similarity index 100%
rename from src/map/CMapRMAP.cpp
rename to src/qmapshack/map/CMapRMAP.cpp
diff --git a/src/map/CMapRMAP.h b/src/qmapshack/map/CMapRMAP.h
similarity index 100%
rename from src/map/CMapRMAP.h
rename to src/qmapshack/map/CMapRMAP.h
diff --git a/src/map/CMapTMS.cpp b/src/qmapshack/map/CMapTMS.cpp
similarity index 100%
rename from src/map/CMapTMS.cpp
rename to src/qmapshack/map/CMapTMS.cpp
diff --git a/src/map/CMapTMS.h b/src/qmapshack/map/CMapTMS.h
similarity index 100%
rename from src/map/CMapTMS.h
rename to src/qmapshack/map/CMapTMS.h
diff --git a/src/qmapshack/map/CMapVRT.cpp b/src/qmapshack/map/CMapVRT.cpp
new file mode 100644
index 0000000..70b02ea
--- /dev/null
+++ b/src/qmapshack/map/CMapVRT.cpp
@@ -0,0 +1,436 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "helpers/CDraw.h"
+#include "map/CMapDraw.h"
+#include "map/CMapVRT.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+#include <gdal_priv.h>
+#include <ogr_spatialref.h>
+
+#define TILELIMIT 2500
+#define TILESIZEX 64
+#define TILESIZEY 64
+
+
+CMapVRT::CMapVRT(const QString &filename, CMapDraw *parent)
+    : IMap(eFeatVisibility,parent)
+    , filename(filename)
+{
+    qDebug() << "------------------------------";
+    qDebug() << "VRT: try to open" << filename;
+
+    dataset = (GDALDataset*)GDALOpen(filename.toUtf8(),GA_ReadOnly);
+
+    if(nullptr == dataset)
+    {
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to load file: %1").arg(filename));
+        return;
+    }
+
+    // ------- setup color table ---------
+    rasterBandCount = dataset->GetRasterCount();
+    if(rasterBandCount == 1)
+    {
+        GDALRasterBand *pBand = dataset->GetRasterBand(1);
+
+        if(nullptr == pBand)
+        {
+            GDALClose(dataset);
+            dataset = nullptr;
+            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to load file: %1").arg(filename));
+            return;
+        }
+
+        if(pBand->GetColorInterpretation() ==  GCI_PaletteIndex )
+        {
+            GDALColorTable * pct = pBand->GetColorTable();
+            for(int i=0; i < pct->GetColorEntryCount(); ++i)
+            {
+                const GDALColorEntry& e = *pct->GetColorEntry(i);
+                colortable << qRgba(e.c1, e.c2, e.c3, e.c4);
+            }
+        }
+        else if(pBand->GetColorInterpretation() ==  GCI_GrayIndex )
+        {
+            for(int i=0; i < 256; ++i)
+            {
+                colortable << qRgba(i, i, i, 255);
+            }
+        }
+        else
+        {
+            GDALClose(dataset);
+            dataset = nullptr;
+            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("File must be 8 bit palette or gray indexed."));
+            return;
+        }
+
+        int success = 0;
+        qreal idx = pBand->GetNoDataValue(&success);
+        if(success)
+        {
+            if((idx >= 0) && (idx < colortable.size()))
+            {
+                QColor tmp(colortable[idx]);
+                tmp.setAlpha(0);
+                colortable[idx] = tmp.rgba();
+            }
+            else
+            {
+                qDebug() << "Index for no data value is out of bound";
+                return;
+            }
+        }
+    }
+
+    if(dataset->GetRasterCount() > 0)
+    {
+        hasOverviews = dataset->GetRasterBand(1)->GetOverviewCount() != 0;
+    }
+
+    qDebug() << "has overviews" << hasOverviews;
+
+
+    // ------- setup projection ---------------
+    char str[1025] = {0};
+    if(dataset->GetProjectionRef())
+    {
+        strncpy(str, dataset->GetProjectionRef(), sizeof(str) - 1);
+    }
+
+    OGRSpatialReference oSRS;
+    char *wkt = str;
+    oSRS.importFromWkt(&wkt);
+
+    char *proj4 = nullptr;
+    oSRS.exportToProj4(&proj4);
+    pjsrc = pj_init_plus(proj4);
+    free(proj4);
+
+    if(pjsrc == 0)
+    {
+        delete dataset;
+        dataset = nullptr;
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("No georeference information found."));
+        return;
+    }
+
+    xsize_px = dataset->GetRasterXSize();
+    ysize_px = dataset->GetRasterYSize();
+
+
+    qreal adfGeoTransform[6];
+    dataset->GetGeoTransform( adfGeoTransform );
+
+    xscale  = adfGeoTransform[1];
+    yscale  = adfGeoTransform[5];
+    xrot    = adfGeoTransform[4];
+    yrot    = adfGeoTransform[2];
+
+    trFwd.translate(adfGeoTransform[0], adfGeoTransform[3]);
+    trFwd.scale(adfGeoTransform[1],adfGeoTransform[5]);
+
+    if(adfGeoTransform[4] != 0.0)
+    {
+        trFwd.rotate(qAtan(adfGeoTransform[2]/adfGeoTransform[4]));
+    }
+
+    if(pj_is_latlong(pjsrc))
+    {
+        // convert to RAD to match internal notations
+        trFwd = trFwd * DEG_TO_RAD;
+    }
+
+    trInv = trFwd.inverted();
+
+    ref1 = trFwd.map(QPointF(0,0));
+    ref2 = trFwd.map(QPointF(xsize_px,0));
+    ref3 = trFwd.map(QPointF(xsize_px,ysize_px));
+    ref4 = trFwd.map(QPointF(0,ysize_px));
+
+    qDebug() << "FF" << trFwd;
+    qDebug() << "RR" << trInv;
+
+    isActivated = true;
+}
+
+CMapVRT::~CMapVRT()
+{
+    GDALClose(dataset);
+}
+
+void CMapVRT::draw(IDrawContext::buffer_t& buf) /* override */
+{
+    if(map->needsRedraw())
+    {
+        return;
+    }
+
+    QPointF bufferScale = buf.scale * buf.zoomFactor;
+
+    // calculate bounding box;
+    QPointF pt1 = ref1;
+    QPointF pt2 = ref2;
+    QPointF pt3 = ref3;
+    QPointF pt4 = ref4;
+
+    pj_transform(pjsrc,pjtar, 1, 0, &pt1.rx(), &pt1.ry(), 0);
+    pj_transform(pjsrc,pjtar, 1, 0, &pt2.rx(), &pt2.ry(), 0);
+    pj_transform(pjsrc,pjtar, 1, 0, &pt3.rx(), &pt3.ry(), 0);
+    pj_transform(pjsrc,pjtar, 1, 0, &pt4.rx(), &pt4.ry(), 0);
+
+    QPolygonF boundingBox;
+    boundingBox << pt1 << pt2 << pt3 << pt4;
+    map->convertRad2Px(boundingBox);
+
+    // get pixel offset of top left buffer corner
+    QPointF pp = buf.ref1;
+    map->convertRad2Px(pp);
+
+    // calculate area to read from file
+    pt1 = buf.ref1;
+    pt2 = buf.ref2;
+    pt3 = buf.ref3;
+    pt4 = buf.ref4;
+
+    pj_transform(pjtar,pjsrc, 1, 0, &pt1.rx(), &pt1.ry(), 0);
+    pj_transform(pjtar,pjsrc, 1, 0, &pt2.rx(), &pt2.ry(), 0);
+    pj_transform(pjtar,pjsrc, 1, 0, &pt3.rx(), &pt3.ry(), 0);
+    pj_transform(pjtar,pjsrc, 1, 0, &pt4.rx(), &pt4.ry(), 0);
+
+    pt1 = trInv.map(pt1);
+    pt2 = trInv.map(pt2);
+    pt3 = trInv.map(pt3);
+    pt4 = trInv.map(pt4);
+
+    qreal left, right, top, bottom;
+    left     = pt1.x() < pt4.x() ? pt1.x() : pt4.x();
+    right    = pt2.x() > pt3.x() ? pt2.x() : pt3.x();
+    top      = pt1.y() < pt2.y() ? pt1.y() : pt2.y();
+    bottom   = pt4.y() > pt3.y() ? pt4.y() : pt3.y();
+
+    if(left < 0)
+    {
+        left = 0;
+    }
+    if(left > xsize_px)
+    {
+        left = xsize_px;
+    }
+
+    if(top < 0)
+    {
+        top  = 0;
+    }
+    if(top > ysize_px)
+    {
+        top  = ysize_px;
+    }
+
+    if(right > xsize_px)
+    {
+        right = xsize_px;
+    }
+    if(right < 0)
+    {
+        right = 0;
+    }
+
+    if(bottom > ysize_px)
+    {
+        bottom = ysize_px;
+    }
+    if(bottom < 0)
+    {
+        bottom = 0;
+    }
+
+    qreal imgw = TILESIZEX;
+    qreal imgh = TILESIZEY;
+    qreal dx =  imgw;
+    qreal dy =  imgh;
+
+
+    // estimate number of tiles and use it as a limit if no
+    // user defined limit is given
+    qreal nTiles = ((right - left) * (bottom - top) / (dx*dy));
+    if(hasOverviews)
+    {
+        // if there are overviews tiles can be reduced by reading
+        // with a scale factor from file. Increase amount of pixel
+        // read until tile limit is met.
+        while(nTiles > TILELIMIT)
+        {
+            dx *= 2;
+            dy *= 2;
+            nTiles /= 4;
+        }
+    }
+    else
+    {
+        nTiles = getMaxScale() == NOFLOAT ? nTiles : 0;
+    }
+
+    // start to draw the map
+    QPainter p(&buf.image);
+    USE_ANTI_ALIASING(p,true);
+    p.setOpacity(getOpacity()/100.0);
+    p.translate(-pp);
+
+
+//    qDebug() << imgw << dx << nTiles;
+    // limit number of tiles to keep performance
+    if(!isOutOfScale(bufferScale) && (nTiles < TILELIMIT))
+    {
+        for(qreal y = top; y < bottom; y += dy)
+        {
+            if(map->needsRedraw())
+            {
+                break;
+            }
+
+            for(qreal x = left; x < right; x += dx)
+            {
+                if(map->needsRedraw())
+                {
+                    break;
+                }
+
+                // read tile from file
+                CPLErr err = CE_Failure;
+
+                // reduce tile size at the border of the file
+                qreal dx_used   = dx;
+                qreal dy_used   = dy;
+                qreal imgw_used = imgw;
+                qreal imgh_used = imgh;
+
+                if((x + dx) > xsize_px)
+                {
+                    dx_used     = xsize_px - x;
+                    imgw_used   = qRound(imgw * dx_used / dx) & 0xFFFFFFFC;
+                }
+                if((y + dy) > ysize_px)
+                {
+                    dy_used     = ysize_px - y;
+                    imgh_used   = imgh * dy_used / dy;
+                }
+
+                x           = qRound(x);
+                y           = qRound(y);
+                dx_used     = qFloor(dx_used);
+                dy_used     = qFloor(dy_used);
+                imgw_used   = qRound(imgw_used);
+                imgh_used   = qRound(imgh_used);
+
+                if(imgw_used < 1 || imgh_used < 1)
+                {
+                    continue;
+                }
+
+                QImage img;
+                if(rasterBandCount == 1)
+                {
+                    GDALRasterBand * pBand;
+                    pBand = dataset->GetRasterBand(1);
+
+                    img = QImage(QSize(imgw_used,imgh_used),QImage::Format_Indexed8);
+                    img.setColorTable(colortable);
+
+                    err = pBand->RasterIO(GF_Read
+                                          ,x,y
+                                          ,dx_used,dy_used
+                                          ,img.bits()
+                                          ,imgw_used,imgh_used
+                                          ,GDT_Byte,0,0);
+                }
+                else
+                {
+                    img = QImage(imgw_used,imgh_used, QImage::Format_ARGB32);
+                    img.fill(qRgba(255,255,255,255));
+
+                    QVector<quint8> buffer(imgw_used * imgh_used);
+
+                    QRgb testPix = qRgba(GCI_RedBand, GCI_GreenBand, GCI_BlueBand, GCI_AlphaBand);
+
+                    for(int b = 1; b <= rasterBandCount; ++b)
+                    {
+                        GDALRasterBand * pBand;
+                        pBand = dataset->GetRasterBand(b);
+
+                        err = pBand->RasterIO(GF_Read
+                                              , x, y
+                                              , dx_used, dy_used
+                                              , buffer.data()
+                                              , imgw_used, imgh_used
+                                              , GDT_Byte, 0, 0);
+
+                        if(!err)
+                        {
+                            int pbandColour = pBand->GetColorInterpretation();
+                            unsigned int offset;
+
+                            for (offset = 0; offset < sizeof(testPix) && *(((quint8 *)&testPix) + offset) != pbandColour; offset++)
+                            {
+                            }
+                            if(offset < sizeof(testPix))
+                            {
+                                quint8 * pTar   = img.bits() + offset;
+                                quint8 * pSrc   = buffer.data();
+                                const int size  = buffer.size();
+
+                                for(int i = 0; i < size; ++i)
+                                {
+                                    *pTar = *pSrc;
+                                    pTar += sizeof(testPix);
+                                    pSrc += 1;
+                                }
+                            }
+                        }
+                    }
+                }
+
+                if(err)
+                {
+                    continue;
+                }
+
+
+                QPolygonF l;
+                l << QPointF(x,y) << QPointF(x+dx_used,y) << QPointF(x+dx_used,y+dy_used) << QPointF(x,y+dy_used);
+                l = trFwd.map(l);
+
+                pj_transform(pjsrc,pjtar, 1, 0, &l[0].rx(), &l[0].ry(), 0);
+                pj_transform(pjsrc,pjtar, 1, 0, &l[1].rx(), &l[1].ry(), 0);
+                pj_transform(pjsrc,pjtar, 1, 0, &l[2].rx(), &l[2].ry(), 0);
+                pj_transform(pjsrc,pjtar, 1, 0, &l[3].rx(), &l[3].ry(), 0);
+
+                drawTile(img, l, p);
+            }
+        }
+    }
+
+    p.setPen(Qt::black);
+    p.setBrush(Qt::NoBrush);
+    p.drawPolygon(boundingBox);
+}
+
diff --git a/src/map/CMapVRT.h b/src/qmapshack/map/CMapVRT.h
similarity index 100%
rename from src/map/CMapVRT.h
rename to src/qmapshack/map/CMapVRT.h
diff --git a/src/qmapshack/map/CMapWMTS.cpp b/src/qmapshack/map/CMapWMTS.cpp
new file mode 100644
index 0000000..4ae9cdf
--- /dev/null
+++ b/src/qmapshack/map/CMapWMTS.cpp
@@ -0,0 +1,560 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "helpers/CDraw.h"
+#include "map/CMapDraw.h"
+#include "map/CMapWMTS.h"
+#include "map/cache/CDiskCache.h"
+#include "units/IUnit.h"
+
+#include <QtNetwork>
+#include <QtWidgets>
+#include <QtXml>
+
+#include <ogr_spatialref.h>
+
+
+CMapWMTS::CMapWMTS(const QString &filename, CMapDraw *parent)
+    : IMapOnline(parent)
+{
+    qDebug() << "------------------------------";
+    qDebug() << "WMTS: try to open" << filename;
+
+
+    QFile file(filename);
+    if(!file.open(QIODevice::ReadOnly))
+    {
+        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to open %1").arg(filename), QMessageBox::Abort, QMessageBox::Abort);
+        return;
+    }
+
+    QString msg;
+    int line, column;
+    QDomDocument dom;
+    if(!dom.setContent(&file, true, &msg, &line, &column))
+    {
+        file.close();
+        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to read: %1\nline %2, column %3:\n %4").arg(filename).arg(line).arg(column).arg(msg), QMessageBox::Abort, QMessageBox::Abort);
+        return;
+    }
+    file.close();
+
+    // start to decode XML
+    // validate content as WMTS capability sheet
+    const QDomElement& xmlCapabilities = dom.documentElement();
+    if(xmlCapabilities.tagName() != "Capabilities")
+    {
+        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Failed to read: %1\nUnknown structure.").arg(filename), QMessageBox::Abort, QMessageBox::Abort);
+        return;
+    }
+    const QDomNode& xmlServiceIdentification = xmlCapabilities.namedItem("ServiceIdentification");
+    QString ServiceType         = xmlServiceIdentification.firstChildElement("ServiceType").text();
+    QString ServiceTypeVersion  = xmlServiceIdentification.firstChildElement("ServiceTypeVersion").text();
+
+    if(!ServiceType.contains("WMTS", Qt::CaseInsensitive) || ServiceTypeVersion != "1.0.0")
+    {
+        QMessageBox::critical(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("Unexpected service. '* WMTS 1.0.0' is expected. '%1 %2' is read.").arg(ServiceType).arg(ServiceTypeVersion), QMessageBox::Abort, QMessageBox::Abort);
+        return;
+    }
+
+    // read setup of all layers
+    const QDomNode& xmlContents = xmlCapabilities.namedItem("Contents");
+    const QDomNodeList& xmlLayers = xmlContents.toElement().elementsByTagName("Layer");
+    const int N = xmlLayers.count();
+    for(int n = 0; n < N; n++)
+    {
+        QString str;
+        QStringList values;
+        const QDomNode& xmlLayer = xmlLayers.at(n);
+        layer_t layer;
+
+        layer.title = xmlLayer.firstChildElement("Title").text();
+
+        // read bounding box
+        const QDomNode& xmlBoundingBox = xmlLayer.firstChildElement("WGS84BoundingBox");
+        str = xmlBoundingBox.namedItem("LowerCorner").toElement().text();
+        values = str.split(" ");
+
+        QPointF bottomLeft;
+        if(values.size() == 2)
+        {
+            bottomLeft = QPointF(values[0].toDouble(), values[1].toDouble());
+        }
+
+        str = xmlBoundingBox.namedItem("UpperCorner").toElement().text();
+        values = str.split(" ");
+        QPointF topRight;
+        if(values.size() == 2)
+        {
+            topRight = QPointF(values[0].toDouble(), values[1].toDouble());
+        }
+
+        layer.boundingBox.setBottomLeft(bottomLeft);
+        layer.boundingBox.setTopRight(topRight);
+
+        const QDomNode& xmlStyle = xmlLayer.firstChildElement("Style");
+        layer.styles << xmlStyle.namedItem("Identifier").toElement().text();
+
+        const QDomNode& xmlTileMatrixSetLink = xmlLayer.firstChildElement("TileMatrixSetLink");
+        layer.tileMatrixSet = xmlTileMatrixSetLink.namedItem("TileMatrixSet").toElement().text();
+
+        // read limits if any
+        const QDomNode& xmlTileMatrixSetLimits = xmlTileMatrixSetLink.firstChildElement("TileMatrixSetLimits");
+        if(xmlTileMatrixSetLimits.isElement())
+        {
+            const QDomNodeList& xmlTileMatrixLimits = xmlTileMatrixSetLimits.toElement().elementsByTagName("TileMatrixLimits");
+            const int L = xmlTileMatrixLimits.count();
+            for(int l = 0; l < L; l++)
+            {
+                const QDomNode& xmlTileMatrixLimit = xmlTileMatrixLimits.at(l);
+                QString Identifier          = xmlTileMatrixLimit.namedItem("TileMatrix").toElement().text();
+                layer.limits[Identifier]    = limit_t();
+                limit_t& limit              = layer.limits[Identifier];
+
+                limit.minTileRow = xmlTileMatrixLimit.namedItem("MinTileRow").toElement().text().toInt();
+                limit.maxTileRow = xmlTileMatrixLimit.namedItem("MaxTileRow").toElement().text().toInt();
+                limit.minTileCol = xmlTileMatrixLimit.namedItem("MinTileCol").toElement().text().toInt();
+                limit.maxTileCol = xmlTileMatrixLimit.namedItem("MaxTileCol").toElement().text().toInt();
+            }
+        }
+
+        // read resource URL of layer and replace placeholders by information that is already available
+        const QDomNode& xmlResourceURL = xmlLayer.firstChildElement("ResourceURL");
+        const QDomNamedNodeMap& attr = xmlResourceURL.attributes();
+
+        layer.resourceURL = attr.namedItem("template").nodeValue();
+        layer.resourceURL = layer.resourceURL.replace("{style}",layer.styles[0], Qt::CaseInsensitive);
+        layer.resourceURL = layer.resourceURL.replace("{TileMatrixSet}",layer.tileMatrixSet, Qt::CaseInsensitive);
+
+        // read and replace dimensions in url string by default value
+        const QDomNodeList& xmlDimensions = xmlLayer.toElement().elementsByTagName("Dimension");
+        const int D = xmlDimensions.count();
+        for(int d = 0; d < D; d++)
+        {
+            const QDomNode& xmlDimension = xmlDimensions.at(d);
+
+            QString Identifier = xmlDimension.namedItem("Identifier").toElement().text();
+            QString Default    = xmlDimension.namedItem("Default").toElement().text();
+
+            layer.resourceURL  = layer.resourceURL.replace("{" + Identifier + "}", Default, Qt::CaseInsensitive);
+        }
+
+        if(!httpsCheck(layer.resourceURL))
+        {
+            return;
+        }
+
+        // enable layer by default
+        layer.enabled = true;
+        layers << layer;
+    }
+
+    // if there is more than one layer the layer list in the properties widget has to be enabled.
+    if(layers.size() > 1)
+    {
+        flagsFeature |= eFeatLayers;
+    }
+
+    // read setup of all tile matrices
+    const QDomNodeList& xmlTileMatrixSets = xmlContents.childNodes();
+    const int M = xmlTileMatrixSets.count();
+    for(int m = 0; m < M; m++)
+    {
+        const QDomNode& xmlTileMatrixSet = xmlTileMatrixSets.at(m);
+        if(xmlTileMatrixSet.nodeName() != "TileMatrixSet")
+        {
+            continue;
+        }
+
+
+        QString Identifier      = xmlTileMatrixSet.namedItem("Identifier").toElement().text();
+        tilesets[Identifier]    = tileset_t();
+        tileset_t& tileset      = tilesets[Identifier];
+
+        // read projection string
+        QString str = xmlTileMatrixSet.namedItem("SupportedCRS").toElement().text();
+
+        char * ptr1 = (char*)malloc(str.toLatin1().size() + 1);
+        char * ptr2 = nullptr;
+
+        strncpy(ptr1,str.toLatin1().data(), str.toLatin1().size() + 1);
+        OGRSpatialReference oSRS;
+
+        if(str.startsWith("EPSG"))
+        {
+            QStringList tokens = str.split(":");
+            oSRS.importFromEPSG(tokens.last().toInt());
+        }
+        else
+        {
+            oSRS.importFromURN(ptr1);
+        }
+        oSRS.exportToProj4(&ptr2);
+
+        qDebug() << ptr1 << ptr2;
+        tileset.pjsrc = pj_init_plus(ptr2);
+
+        free(ptr1);
+        free(ptr2);
+
+        if(tileset.pjsrc == nullptr)
+        {
+            QMessageBox::warning(CMainWindow::getBestWidgetForParent(), tr("Error..."), tr("No georeference information found."));
+            return;
+        }
+
+        // read information about all matrix levels
+        const QDomNodeList& xmlTileMatrixN = xmlTileMatrixSet.toElement().elementsByTagName("TileMatrix");
+        const int N = xmlTileMatrixN.count();
+        for(int n = 0; n < N; n++)
+        {
+            QString str;
+            QStringList values;
+            const QDomNode& xmlTileMatrix = xmlTileMatrixN.at(n);
+            QString Identifier =  xmlTileMatrix.namedItem("Identifier").toElement().text();
+            tileset.tilematrix[Identifier] = tilematrix_t();
+            tilematrix_t& matrix = tileset.tilematrix[Identifier];
+
+            str = xmlTileMatrix.namedItem("TopLeftCorner").toElement().text();
+            values = str.split(" ");
+            matrix.topLeft      = QPointF(values[0].toDouble(), values[1].toDouble());
+            matrix.scale        = xmlTileMatrix.namedItem("ScaleDenominator").toElement().text().toDouble();
+            matrix.tileWidth    = xmlTileMatrix.namedItem("TileWidth").toElement().text().toInt();
+            matrix.tileHeight   = xmlTileMatrix.namedItem("TileHeight").toElement().text().toInt();
+            matrix.matrixWidth  = xmlTileMatrix.namedItem("MatrixWidth").toElement().text().toInt();
+            matrix.matrixHeight = xmlTileMatrix.namedItem("MatrixHeight").toElement().text().toInt();
+        }
+    }
+    // ----  done reading XML file
+
+    // create default cache path from filename
+    QFileInfo fi(filename);
+    slotSetCachePath(QDir(CMapDraw::getCacheRoot()).absoluteFilePath(fi.completeBaseName()));
+
+    name = fi.completeBaseName().replace("_", " ");
+
+    isActivated = true;
+}
+
+void CMapWMTS::getLayers(QListWidget& list)
+{
+    QMutexLocker lock(&mutex);
+
+    list.clear();
+    if(layers.size() < 2)
+    {
+        return;
+    }
+
+    int i = 0;
+    for(const layer_t &layer : layers)
+    {
+        QListWidgetItem * item = new QListWidgetItem(layer.title, &list);
+        item->setCheckState(layer.enabled ? Qt::Checked : Qt::Unchecked);
+        item->setData(Qt::UserRole, i++);
+    }
+
+    connect(&list, &QListWidget::itemChanged, this, &CMapWMTS::slotLayersChanged);
+}
+
+
+void CMapWMTS::saveConfig(QSettings& cfg) /* override */
+{
+    QMutexLocker lock(&mutex);
+
+    IMapOnline::saveConfig(cfg);
+    if(layers.size() < 2)
+    {
+        return;
+    }
+
+    // save indices of enabled layers
+    QStringList enabled;
+    for(int i = 0; i< layers.size(); i++)
+    {
+        if(layers[i].enabled)
+        {
+            enabled << QString::number(i);
+        }
+    }
+    cfg.setValue("enabledLayers", enabled);
+}
+
+void CMapWMTS::loadConfig(QSettings& cfg) /* override */
+{
+    QMutexLocker lock(&mutex);
+
+    IMapOnline::loadConfig(cfg);
+    if(layers.size() < 2)
+    {
+        return;
+    }
+
+    QStringList enabled;
+    // set all layers to disabled first
+    for(int i = 0; i< layers.size(); i++)
+    {
+        layers[i].enabled = false;
+        enabled << QString::number(i);
+    }
+
+    // enable layers stored in configuration
+    enabled = cfg.value("enabledLayers", enabled).toStringList();
+    for(const QString &str : enabled)
+    {
+        int idx = str.toInt();
+        if(idx < layers.size())
+        {
+            layers[idx].enabled = true;
+        }
+    }
+}
+
+
+void CMapWMTS::slotLayersChanged(QListWidgetItem * item)
+{
+    QMutexLocker lock(&mutex);
+
+    bool isChecked = (item->checkState() == Qt::Checked);
+    int idx = item->data(Qt::UserRole).toInt();
+    if(idx < 0)
+    {
+        QListWidget * list = item->listWidget();
+        list->blockSignals(true);
+
+        for(int i = 0; i < layers.size(); i++)
+        {
+            list->item(i + 1)->setCheckState(isChecked ? Qt::Checked : Qt::Unchecked);
+            layers[i].enabled = isChecked;
+        }
+
+        list->blockSignals(false);
+    }
+    else
+    {
+        layers[idx].enabled = isChecked;
+    }
+
+    map->emitSigCanvasUpdate();
+}
+
+
+void CMapWMTS::draw(IDrawContext::buffer_t& buf) /* override */
+{
+    QMutexLocker lock(&mutex);
+
+    timeLastUpdate.start();
+    urlQueue.clear();
+
+    if(map->needsRedraw())
+    {
+        return;
+    }
+
+    QPointF bufferScale = buf.scale * buf.zoomFactor;
+
+    if(isOutOfScale(bufferScale))
+    {
+        return;
+    }
+
+    // get pixel offset of top left buffer corner
+    QPointF pp = buf.ref1;
+    map->convertRad2Px(pp);
+
+    // start to draw the map
+    QPainter p(&buf.image);
+    USE_ANTI_ALIASING(p,true);
+    p.setOpacity(getOpacity()/100.0);
+    p.translate(-pp);
+
+    // calculate maximum viewport
+    qreal x1 = buf.ref1.x() < buf.ref4.x() ? buf.ref1.x() : buf.ref4.x();
+    qreal y1 = buf.ref1.y() > buf.ref2.y() ? buf.ref1.y() : buf.ref2.y();
+
+    qreal x2 = buf.ref2.x() > buf.ref3.x() ? buf.ref2.x() : buf.ref3.x();
+    qreal y2 = buf.ref3.y() < buf.ref4.y() ? buf.ref3.y() : buf.ref4.y();
+
+    if(x1 < -180.0*DEG_TO_RAD)
+    {
+        x1 = -180*DEG_TO_RAD;
+    }
+    if(x2 >  180.0*DEG_TO_RAD)
+    {
+        x2 =  180*DEG_TO_RAD;
+    }
+
+
+    QRectF viewport(QPointF(x1,y1) * RAD_TO_DEG, QPointF(x2,y2) * RAD_TO_DEG);
+
+    // draw layers
+    for(const layer_t &layer : layers)
+    {
+        if(!layer.boundingBox.intersects(viewport) || !layer.enabled)
+        {
+            continue;
+        }
+
+        const tileset_t& tileset            = tilesets[layer.tileMatrixSet];
+        const QMap<QString,limit_t>& limits = layer.limits;
+
+        // convert viewport to layer's coordinate system
+        QPointF pt1(x1,y1);
+        QPointF pt2(x2,y2);
+
+        pj_transform(pjtar, tileset.pjsrc, 1, 0, &pt1.rx(), &pt1.ry(), 0);
+        pj_transform(pjtar, tileset.pjsrc, 1, 0, &pt2.rx(), &pt2.ry(), 0);
+
+        if(pj_is_latlong(tileset.pjsrc))
+        {
+            pt1 *= RAD_TO_DEG;
+            pt2 *= RAD_TO_DEG;
+        }
+
+        // search matrix ID of tile level with best matching scale
+        QString tileMatrixId;
+        QPointF s1 = (pt2 - pt1)/QPointF(buf.image.width(), buf.image.height());
+        qreal d = NOFLOAT;
+        for(const QString &key : tileset.tilematrix.keys())
+        {
+            const tilematrix_t& tilematrix = tileset.tilematrix[key];
+            qreal s2 = tilematrix.scale * 0.28e-3;
+
+
+            if(qAbs(s2 - s1.x()) < d)
+            {
+                tileMatrixId = key;
+                d = qAbs(s2 - s1.x());
+            }
+        }
+
+
+        // get min/max col/row values for that level
+        qint32 minRow, maxRow, minCol, maxCol;
+        const tilematrix_t& tilematrix = tileset.tilematrix[tileMatrixId];
+        if(!limits.isEmpty())
+        {
+            if(limits.contains(tileMatrixId))
+            {
+                const limit_t& limit = limits[tileMatrixId];
+                minCol = limit.minTileCol;
+                maxCol = limit.maxTileCol;
+                minRow = limit.minTileRow;
+                maxRow = limit.maxTileRow;
+            }
+            else
+            {
+                // layer has limits but not for the selected tileMatrixId -> skip layer
+                continue;
+            }
+        }
+        else
+        {
+            minCol = 0;
+            maxCol = tilematrix.matrixWidth;
+            minRow = 0;
+            maxRow = tilematrix.matrixHeight;
+        }
+
+
+        // derive range of col/row to request tiles
+        qreal xscale =  tilematrix.scale * 0.28e-3;
+        qreal yscale = -tilematrix.scale * 0.28e-3;
+
+        qint32 col1 = qFloor((pt1.x() - tilematrix.topLeft.x()) / ( xscale * tilematrix.tileWidth));
+        qint32 row1 = qFloor((pt1.y() - tilematrix.topLeft.y()) / ( yscale * tilematrix.tileHeight));
+        qint32 col2 = qFloor((pt2.x() - tilematrix.topLeft.x()) / ( xscale * tilematrix.tileWidth));
+        qint32 row2 = qFloor((pt2.y() - tilematrix.topLeft.y()) / ( yscale * tilematrix.tileHeight));
+
+
+        if(col1 < minCol)
+        {
+            col1 = minCol;
+        }
+        if(col1 > maxCol)
+        {
+            col1 = maxCol;
+        }
+        if(row1 < minRow)
+        {
+            row1 = minRow;
+        }
+        if(row1 > maxRow)
+        {
+            row1 = maxRow;
+        }
+
+        if(col2 < minCol)
+        {
+            col2 = minCol;
+        }
+        if(col2 > maxCol)
+        {
+            col2 = maxCol;
+        }
+        if(row2 < minRow)
+        {
+            row2 = minRow;
+        }
+        if(row2 > maxRow)
+        {
+            row2 = maxRow;
+        }
+
+
+        // start to request tiles. draw tiles in cache, queue urls of tile yet to be requested
+        for(qint32 row = row1; row <= row2; row++)
+        {
+            for(qint32 col = col1; col <= col2; col++)
+            {
+                QString url = layer.resourceURL;
+                url = url.replace("{TileMatrix}",tileMatrixId, Qt::CaseInsensitive);
+                url = url.replace("{TileRow}",QString::number(row), Qt::CaseInsensitive);
+                url = url.replace("{TileCol}",QString::number(col), Qt::CaseInsensitive);
+
+                if(diskCache->contains(url))
+                {
+                    QImage img;
+                    diskCache->restore(url, img);
+
+                    QPolygonF l;
+
+                    qreal xx1 =  col      * (xscale * tilematrix.tileWidth)  + tilematrix.topLeft.x();
+                    qreal yy1 =  row      * (yscale * tilematrix.tileHeight) + tilematrix.topLeft.y();
+                    qreal xx2 = (col + 1) * (xscale * tilematrix.tileWidth)  + tilematrix.topLeft.x();
+                    qreal yy2 = (row + 1) * (yscale * tilematrix.tileHeight) + tilematrix.topLeft.y();
+
+                    l << QPointF(xx1, yy1) << QPointF(xx2, yy1) << QPointF(xx2, yy2) << QPointF(xx1, yy2);
+                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[0].rx(), &l[0].ry(), 0);
+                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[1].rx(), &l[1].ry(), 0);
+                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[2].rx(), &l[2].ry(), 0);
+                    pj_transform(tileset.pjsrc,pjtar, 1, 0, &l[3].rx(), &l[3].ry(), 0);
+
+                    drawTile(img, l, p);
+                }
+                else
+                {
+                    urlQueue << url;
+                }
+            }
+        }
+
+        emit sigQueueChanged();
+    }
+}
diff --git a/src/map/CMapWMTS.h b/src/qmapshack/map/CMapWMTS.h
similarity index 100%
rename from src/map/CMapWMTS.h
rename to src/qmapshack/map/CMapWMTS.h
diff --git a/src/map/IMap.cpp b/src/qmapshack/map/IMap.cpp
similarity index 100%
rename from src/map/IMap.cpp
rename to src/qmapshack/map/IMap.cpp
diff --git a/src/map/IMap.h b/src/qmapshack/map/IMap.h
similarity index 100%
rename from src/map/IMap.h
rename to src/qmapshack/map/IMap.h
diff --git a/src/map/IMapList.ui b/src/qmapshack/map/IMapList.ui
similarity index 100%
rename from src/map/IMapList.ui
rename to src/qmapshack/map/IMapList.ui
diff --git a/src/map/IMapOnline.cpp b/src/qmapshack/map/IMapOnline.cpp
similarity index 100%
rename from src/map/IMapOnline.cpp
rename to src/qmapshack/map/IMapOnline.cpp
diff --git a/src/map/IMapOnline.h b/src/qmapshack/map/IMapOnline.h
similarity index 100%
rename from src/map/IMapOnline.h
rename to src/qmapshack/map/IMapOnline.h
diff --git a/src/map/IMapPathSetup.ui b/src/qmapshack/map/IMapPathSetup.ui
similarity index 100%
rename from src/map/IMapPathSetup.ui
rename to src/qmapshack/map/IMapPathSetup.ui
diff --git a/src/map/IMapProp.cpp b/src/qmapshack/map/IMapProp.cpp
similarity index 100%
rename from src/map/IMapProp.cpp
rename to src/qmapshack/map/IMapProp.cpp
diff --git a/src/map/IMapProp.h b/src/qmapshack/map/IMapProp.h
similarity index 100%
rename from src/map/IMapProp.h
rename to src/qmapshack/map/IMapProp.h
diff --git a/src/map/IMapPropSetup.cpp b/src/qmapshack/map/IMapPropSetup.cpp
similarity index 100%
rename from src/map/IMapPropSetup.cpp
rename to src/qmapshack/map/IMapPropSetup.cpp
diff --git a/src/map/IMapPropSetup.h b/src/qmapshack/map/IMapPropSetup.h
similarity index 100%
rename from src/map/IMapPropSetup.h
rename to src/qmapshack/map/IMapPropSetup.h
diff --git a/src/map/IMapPropSetup.ui b/src/qmapshack/map/IMapPropSetup.ui
similarity index 100%
rename from src/map/IMapPropSetup.ui
rename to src/qmapshack/map/IMapPropSetup.ui
diff --git a/src/map/OSM_Topo.tms b/src/qmapshack/map/OSM_Topo.tms
similarity index 100%
rename from src/map/OSM_Topo.tms
rename to src/qmapshack/map/OSM_Topo.tms
diff --git a/src/map/OpenCycleMap.tms b/src/qmapshack/map/OpenCycleMap.tms
similarity index 100%
rename from src/map/OpenCycleMap.tms
rename to src/qmapshack/map/OpenCycleMap.tms
diff --git a/src/map/OpenStreetMap.tms b/src/qmapshack/map/OpenStreetMap.tms
similarity index 100%
rename from src/map/OpenStreetMap.tms
rename to src/qmapshack/map/OpenStreetMap.tms
diff --git a/src/map/WorldSat.wmts b/src/qmapshack/map/WorldSat.wmts
similarity index 100%
rename from src/map/WorldSat.wmts
rename to src/qmapshack/map/WorldSat.wmts
diff --git a/src/map/WorldTopo.wmts b/src/qmapshack/map/WorldTopo.wmts
similarity index 100%
rename from src/map/WorldTopo.wmts
rename to src/qmapshack/map/WorldTopo.wmts
diff --git a/src/map/cache/CDiskCache.cpp b/src/qmapshack/map/cache/CDiskCache.cpp
similarity index 100%
rename from src/map/cache/CDiskCache.cpp
rename to src/qmapshack/map/cache/CDiskCache.cpp
diff --git a/src/map/cache/CDiskCache.h b/src/qmapshack/map/cache/CDiskCache.h
similarity index 100%
rename from src/map/cache/CDiskCache.h
rename to src/qmapshack/map/cache/CDiskCache.h
diff --git a/src/map/garmin/CGarminPoint.cpp b/src/qmapshack/map/garmin/CGarminPoint.cpp
similarity index 100%
rename from src/map/garmin/CGarminPoint.cpp
rename to src/qmapshack/map/garmin/CGarminPoint.cpp
diff --git a/src/map/garmin/CGarminPoint.h b/src/qmapshack/map/garmin/CGarminPoint.h
similarity index 100%
rename from src/map/garmin/CGarminPoint.h
rename to src/qmapshack/map/garmin/CGarminPoint.h
diff --git a/src/map/garmin/CGarminPolygon.cpp b/src/qmapshack/map/garmin/CGarminPolygon.cpp
similarity index 100%
rename from src/map/garmin/CGarminPolygon.cpp
rename to src/qmapshack/map/garmin/CGarminPolygon.cpp
diff --git a/src/map/garmin/CGarminPolygon.h b/src/qmapshack/map/garmin/CGarminPolygon.h
similarity index 100%
rename from src/map/garmin/CGarminPolygon.h
rename to src/qmapshack/map/garmin/CGarminPolygon.h
diff --git a/src/map/garmin/CGarminStrTbl6.cpp b/src/qmapshack/map/garmin/CGarminStrTbl6.cpp
similarity index 100%
rename from src/map/garmin/CGarminStrTbl6.cpp
rename to src/qmapshack/map/garmin/CGarminStrTbl6.cpp
diff --git a/src/map/garmin/CGarminStrTbl6.h b/src/qmapshack/map/garmin/CGarminStrTbl6.h
similarity index 100%
rename from src/map/garmin/CGarminStrTbl6.h
rename to src/qmapshack/map/garmin/CGarminStrTbl6.h
diff --git a/src/map/garmin/CGarminStrTbl8.cpp b/src/qmapshack/map/garmin/CGarminStrTbl8.cpp
similarity index 100%
rename from src/map/garmin/CGarminStrTbl8.cpp
rename to src/qmapshack/map/garmin/CGarminStrTbl8.cpp
diff --git a/src/map/garmin/CGarminStrTbl8.h b/src/qmapshack/map/garmin/CGarminStrTbl8.h
similarity index 100%
rename from src/map/garmin/CGarminStrTbl8.h
rename to src/qmapshack/map/garmin/CGarminStrTbl8.h
diff --git a/src/map/garmin/CGarminStrTblUtf8.cpp b/src/qmapshack/map/garmin/CGarminStrTblUtf8.cpp
similarity index 100%
rename from src/map/garmin/CGarminStrTblUtf8.cpp
rename to src/qmapshack/map/garmin/CGarminStrTblUtf8.cpp
diff --git a/src/map/garmin/CGarminStrTblUtf8.h b/src/qmapshack/map/garmin/CGarminStrTblUtf8.h
similarity index 100%
rename from src/map/garmin/CGarminStrTblUtf8.h
rename to src/qmapshack/map/garmin/CGarminStrTblUtf8.h
diff --git a/src/map/garmin/CGarminTyp.cpp b/src/qmapshack/map/garmin/CGarminTyp.cpp
similarity index 100%
rename from src/map/garmin/CGarminTyp.cpp
rename to src/qmapshack/map/garmin/CGarminTyp.cpp
diff --git a/src/map/garmin/CGarminTyp.h b/src/qmapshack/map/garmin/CGarminTyp.h
similarity index 100%
rename from src/map/garmin/CGarminTyp.h
rename to src/qmapshack/map/garmin/CGarminTyp.h
diff --git a/src/map/garmin/Garmin.h b/src/qmapshack/map/garmin/Garmin.h
similarity index 100%
rename from src/map/garmin/Garmin.h
rename to src/qmapshack/map/garmin/Garmin.h
diff --git a/src/map/garmin/IGarminStrTbl.cpp b/src/qmapshack/map/garmin/IGarminStrTbl.cpp
similarity index 100%
rename from src/map/garmin/IGarminStrTbl.cpp
rename to src/qmapshack/map/garmin/IGarminStrTbl.cpp
diff --git a/src/map/garmin/IGarminStrTbl.h b/src/qmapshack/map/garmin/IGarminStrTbl.h
similarity index 100%
rename from src/map/garmin/IGarminStrTbl.h
rename to src/qmapshack/map/garmin/IGarminStrTbl.h
diff --git a/src/map/mapsforge/types.cpp b/src/qmapshack/map/mapsforge/types.cpp
similarity index 100%
rename from src/map/mapsforge/types.cpp
rename to src/qmapshack/map/mapsforge/types.cpp
diff --git a/src/map/mapsforge/types.h b/src/qmapshack/map/mapsforge/types.h
similarity index 100%
rename from src/map/mapsforge/types.h
rename to src/qmapshack/map/mapsforge/types.h
diff --git a/src/qmapshack/mouse/CMouseAdapter.cpp b/src/qmapshack/mouse/CMouseAdapter.cpp
new file mode 100644
index 0000000..2da4b84
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseAdapter.cpp
@@ -0,0 +1,209 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseEditArea.h"
+#include "mouse/CMouseEditRte.h"
+#include "mouse/CMouseEditTrk.h"
+#include "mouse/CMouseMoveWpt.h"
+#include "mouse/CMouseNormal.h"
+#include "mouse/CMousePrint.h"
+#include "mouse/CMouseRadiusWpt.h"
+#include "mouse/CMouseRangeTrk.h"
+#include "mouse/IMouse.h"
+#include <QMouseEvent>
+#include <QPinchGesture>
+#include <QTimer>
+
+CMouseAdapter::CMouseAdapter(CCanvas *canvas) : QObject(canvas),
+    canvas(canvas)
+{
+    longPressTimer = new QTimer(this);
+    longPressTimer->setSingleShot(true);
+    connect(longPressTimer, &QTimer::timeout, this, &CMouseAdapter::slotLongPressTimeout);
+}
+
+CMouseAdapter::~CMouseAdapter()
+{
+}
+
+void CMouseAdapter::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
+{
+    delegate->draw(p, needsRedraw, rect);
+}
+
+void CMouseAdapter::mousePressEvent(QMouseEvent *e)
+{
+    // set firstPos and mouseDidMove to suppress small movements when clicking
+    startMouseMove(e->pos());
+    buttonPressTime.start();
+    if(e->button() == Qt::LeftButton)
+    {
+        lastPos    = firstPos;
+        longPressTimer->start(longButtonPressTimeout);
+        delegate->leftButtonDown(firstPos);
+    }
+    else if (e->button() == Qt::RightButton)
+    {
+        delegate->rightButtonDown(firstPos);
+    }
+    // make sure a click is actually shorter than longButtonPressTimeout
+    ignoreClick = false;
+}
+
+void CMouseAdapter::mouseMoveEvent(QMouseEvent *e)
+{
+    const QPoint& pos = e->pos();
+
+    // do not take the mouse as moving unless it has been moved
+    // by significant distance away from starting point.
+    // this helps doing clicks with the finger on a touchscreen
+    // and suppresses routing triggered by very small movements.
+    if (!mouseDidMove && (pos - firstPos).manhattanLength() >= minimalMouseMovingDistance)
+    {
+        mouseDidMove = true;
+        longPressTimer->stop();
+    }
+
+    if (mouseDidMove)
+    {
+        if(e->buttons() & Qt::LeftButton)
+        {
+            delegate->mouseDragged(firstPos, lastPos, pos);
+        }
+        else
+        {
+            delegate->mouseMoved(pos);
+        }
+    }
+
+    lastPos = pos;
+}
+
+void CMouseAdapter::mouseReleaseEvent(QMouseEvent *e)
+{
+    longPressTimer->stop();
+    if (e->button() == Qt::LeftButton)
+    {
+        // suppress clicks when mouse was moved for more a few pixel
+        if (mouseDidMove)
+        {
+            delegate->dragFinished(e->pos());
+        }
+        //suppress clicks when pressing too long or after zooming or display of CProgressDialog
+        else if (!ignoreClick && buttonPressTime.elapsed() < clickTimeout)
+        {
+            delegate->leftClicked(e->pos());
+        }
+    }
+
+    mouseDidMove = false;
+}
+
+void CMouseAdapter::mouseDoubleClickEvent(QMouseEvent *e)
+{
+    delegate->doubleClicked(e->pos());
+}
+
+void CMouseAdapter::wheelEvent(QWheelEvent *e)
+{
+    // suppress little mouse-movements that are likely to happen when scrolling the mousewheel.
+    startMouseMove(e->pos());
+    if (e->buttons() & Qt::LeftButton)
+    {
+        // no shortclick by releasing button right after scrolling the wheel
+        ignoreClick = true;
+    }
+}
+
+void CMouseAdapter::keyPressEvent(QKeyEvent *e)
+{
+    switch (e->key())
+    {
+    case Qt::Key_Escape:
+    {
+        delegate->abortStep();
+        break;
+    }
+
+    default:
+    {
+        delegate->scaleChanged();
+    }
+    }
+}
+
+void CMouseAdapter::pinchGestureEvent(QPinchGesture *e)
+{
+    // ensure first press of pinch doesn't result in longPress
+    longPressTimer->stop();
+    // no shortclick by lifting the finger right after a pinch
+    ignoreClick = true;
+
+    delegate->scaleChanged();
+}
+
+void CMouseAdapter::afterMouseLostEvent(QMouseEvent *e)
+{
+    // pinch or modal dialog interrupt tracking of mouse. As result the mouse
+    // is at an arbitrary position.
+    if (e->type() == QEvent::MouseMove)
+    {
+        // suppress jump of map when touching screen right afterwards
+        lastPos    = e->pos();
+        // consider the move starting at this position
+        startMouseMove(e->pos());
+    }
+}
+
+void CMouseAdapter::startMouseMove(const QPoint& pos)
+{
+    // the mouse is not considered as moving
+    // as long it has not been moved away from firstPos
+    // by at least a few pixels.
+    firstPos = pos;
+    mouseDidMove = false;
+}
+
+void CMouseAdapter::setDelegate(IMouse *delegate)
+{
+    if (this->delegate != nullptr)
+    {
+        this->delegate->deleteLater();
+    }
+    this->delegate = delegate;
+
+    if(canvas->underMouse())
+    {
+        const QString& src = QString("CMouseAdapter::setDelegate(%1)").arg(delegate->metaObject()->className());
+        CCanvas::restoreOverrideCursor(src);
+        CCanvas::setOverrideCursor(*delegate, src);
+    }
+}
+
+CMouseAdapter::operator const QCursor&() const
+{
+    return *delegate;
+}
+
+void CMouseAdapter::slotLongPressTimeout()
+{
+    delegate->longPress(lastPos);
+}
diff --git a/src/qmapshack/mouse/CMouseAdapter.h b/src/qmapshack/mouse/CMouseAdapter.h
new file mode 100644
index 0000000..ab2e2ed
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseAdapter.h
@@ -0,0 +1,84 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEADAPTER_H
+#define CMOUSEADAPTER_H
+
+#include <QObject>
+#include <QPoint>
+#include <QPointer>
+#include <QTime>
+
+class CCanvas;
+class QMouseEvent;
+class QWheelEvent;
+class QPinchGesture;
+class QKeyEvent;
+class QTimer;
+class IMouse;
+
+class CMouseAdapter : public QObject
+{
+    Q_OBJECT
+public:
+    explicit CMouseAdapter(CCanvas *canvas);
+    virtual ~CMouseAdapter();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect);
+
+    void mousePressEvent(QMouseEvent *e);
+    void mouseMoveEvent(QMouseEvent *e);
+    void mouseReleaseEvent(QMouseEvent *e);
+    void mouseDoubleClickEvent(QMouseEvent *e);
+    void wheelEvent(QWheelEvent *e);
+    void keyPressEvent(QKeyEvent *e);
+    void pinchGestureEvent(QPinchGesture *e);
+    void afterMouseLostEvent(QMouseEvent *e);
+
+    void startMouseMove(const QPoint& pos);
+
+    void setDelegate(IMouse * delegate);
+
+    QPoint getPoint() { return lastPos; }
+
+    operator const QCursor&() const;
+
+    const static int clickTimeout = 400;
+    const static int longButtonPressTimeout = 800;
+    const static int minimalMouseMovingDistance = 4;
+
+private slots:
+    void slotLongPressTimeout();
+
+private:
+
+    CCanvas * canvas { nullptr };
+    IMouse * delegate { nullptr };
+
+    QTime buttonPressTime;
+    QTimer * longPressTimer;
+
+    QPoint lastPos;
+    QPoint firstPos;
+
+    bool ignoreClick = false;
+    bool mouseDidMove = false;
+};
+
+#endif // CMOUSEADAPTER_H
diff --git a/src/qmapshack/mouse/CMouseDummy.cpp b/src/qmapshack/mouse/CMouseDummy.cpp
new file mode 100644
index 0000000..884f6f3
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseDummy.cpp
@@ -0,0 +1,31 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "CMouseDummy.h"
+
+CMouseDummy::CMouseDummy()
+    : IMouse(nullptr, nullptr, nullptr)
+{
+    cursor = QCursor(QPixmap(":/cursors/cursorArrow.png"),0,0);
+}
+
+CMouseDummy::~CMouseDummy()
+{
+}
+
diff --git a/src/qmapshack/mouse/CMouseDummy.h b/src/qmapshack/mouse/CMouseDummy.h
new file mode 100644
index 0000000..84aafee
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseDummy.h
@@ -0,0 +1,50 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEDUMMY_H
+#define CMOUSEDUMMY_H
+
+#include "mouse/IMouse.h"
+
+
+class CMouseDummy : public IMouse
+{
+public:
+    CMouseDummy();
+    virtual ~CMouseDummy();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override
+    {
+    }
+    void leftClicked(const QPoint& point) override
+    {
+    }
+    void mouseMoved(const QPoint& pos) override
+    {
+    }
+    void leftButtonDown(const QPoint& pos) override
+    {
+    }
+    void scaleChanged() override
+    {
+    }
+};
+
+#endif //CMOUSEDUMMY_H
+
diff --git a/src/qmapshack/mouse/CMouseEditArea.cpp b/src/qmapshack/mouse/CMouseEditArea.cpp
new file mode 100644
index 0000000..2d6226f
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditArea.cpp
@@ -0,0 +1,101 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "mouse/CMouseEditArea.h"
+
+#include <QtWidgets>
+
+CMouseEditArea::CMouseEditArea(const QPointF& point, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(IGisItem::key_t(), point, false, tr("Area"), gis, canvas, mouse)
+{
+    startNewLine(point);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+CMouseEditArea::CMouseEditArea(CGisItemOvlArea &area, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(area.getKey(), area, false, tr("Area"), gis, canvas, mouse)
+{
+    canvas->reportStatus(key.item, tr("<b>Edit Area</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+CMouseEditArea::~CMouseEditArea()
+{
+    canvas->reportStatus(key.item, "");
+}
+
+void CMouseEditArea::drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p)
+{
+    p.setPen(QPen(color, width, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.setBrush(QBrush(Qt::magenta, Qt::BDiagPattern));
+    p.drawPolygon(l);
+}
+
+IGisLine * CMouseEditArea::getGisLine() const
+{
+    return dynamic_cast<CGisItemOvlArea*>(CGisWorkspace::self().getItemByKey(key));
+}
+
+void CMouseEditArea::slotAbort()
+{
+    canvas->reportStatus(key.item,"");
+    IMouseEditLine::slotAbortEx(false);
+}
+
+void CMouseEditArea::slotCopyToOrig()
+{
+    canvas->reportStatus(key.item,"");
+    IMouseEditLine::slotCopyToOrig();
+}
+
+void CMouseEditArea::slotCopyToNew()
+{
+    canvas->reportStatus(key.item,"");
+
+    if(points.size() < 3)
+    {
+        return;
+    }
+
+    IGisProject * project = nullptr;
+
+    QString name;
+    CGisItemOvlArea * area = dynamic_cast<CGisItemOvlArea*>(CGisWorkspace::self().getItemByKey(key));
+    if(area != nullptr)
+    {
+        name = area->getName();
+    }
+
+    if(!IGisItem::getNameAndProject(name, project, tr("area")))
+    {
+        return;
+    }
+
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        new CGisItemOvlArea(points, name, project, NOIDX);
+    }
+
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
diff --git a/src/qmapshack/mouse/CMouseEditArea.h b/src/qmapshack/mouse/CMouseEditArea.h
new file mode 100644
index 0000000..07d8d3c
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditArea.h
@@ -0,0 +1,48 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEEDITAREA_H
+#define CMOUSEEDITAREA_H
+
+#include "gis/IGisItem.h"
+#include "mouse/line/IMouseEditLine.h"
+
+class CGisItemOvlArea;
+
+class CMouseEditArea : public IMouseEditLine
+{
+    Q_OBJECT
+public:
+    CMouseEditArea(const QPointF& point, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    CMouseEditArea(CGisItemOvlArea &area, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseEditArea();
+
+protected slots:
+    void slotAbort()      override;
+    void slotCopyToNew()  override;
+    void slotCopyToOrig() override;
+
+protected:
+    void drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p) override;
+
+    IGisLine * getGisLine() const override;
+};
+
+#endif //CMOUSEEDITAREA_H
+
diff --git a/src/qmapshack/mouse/CMouseEditRte.cpp b/src/qmapshack/mouse/CMouseEditRte.cpp
new file mode 100644
index 0000000..ac26a51
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditRte.cpp
@@ -0,0 +1,112 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/rte/CGisItemRte.h"
+#include "mouse/CMouseEditRte.h"
+#include "mouse/line/CScrOptEditLine.h"
+
+#include <QtWidgets>
+
+
+CMouseEditRte::CMouseEditRte(const QPointF &point, CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(IGisItem::key_t(), point, true, tr("Route"), gis, canvas, mouse)
+{
+    startNewLine(point);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+CMouseEditRte::CMouseEditRte(CGisItemRte &rte, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(rte.getKey(), rte, true, tr("Route"), gis, canvas, mouse)
+{
+    canvas->reportStatus(key.item, tr("<b>Edit Route Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
+
+    if(!points.first().subpts.isEmpty())
+    {
+        scrOptEditLine->toolAutoRoute->setChecked(true);
+    }
+    else
+    {
+        scrOptEditLine->toolNoRoute->setChecked(true);
+    }
+
+    /*
+        trigger complete update of GIS components to make sure all changes to
+        the originating object are reflected on the canvas
+     */
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+
+CMouseEditRte::~CMouseEditRte()
+{
+}
+
+IGisLine * CMouseEditRte::getGisLine() const
+{
+    return dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
+}
+
+void CMouseEditRte::slotAbort()
+{
+    canvas->reportStatus(key.item,"");
+    IMouseEditLine::slotAbortEx(false);
+}
+
+void CMouseEditRte::slotCopyToOrig()
+{
+    canvas->reportStatus(key.item,"");
+    IMouseEditLine::slotCopyToOrig();
+}
+
+
+void CMouseEditRte::slotCopyToNew()
+{
+    canvas->reportStatus(key.item,"");
+
+    if(points.size() < 2)
+    {
+        return;
+    }
+
+
+    IGisProject * project = nullptr;
+
+    QString name;
+    CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(key));
+    if(rte != nullptr)
+    {
+        name = rte->getName();
+    }
+
+    if(!IGisItem::getNameAndProject(name, project, tr("route")))
+    {
+        return;
+    }
+
+
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        new CGisItemRte(points,name, project, NOIDX);
+    }
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
diff --git a/src/qmapshack/mouse/CMouseEditRte.h b/src/qmapshack/mouse/CMouseEditRte.h
new file mode 100644
index 0000000..fdcc501
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditRte.h
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEEDITRTE_H
+#define CMOUSEEDITRTE_H
+
+#include "gis/IGisItem.h"
+#include "mouse/line/IMouseEditLine.h"
+
+class CGisItemRte;
+
+class CMouseEditRte : public IMouseEditLine
+{
+    Q_OBJECT
+public:
+    CMouseEditRte(const QPointF& point, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    CMouseEditRte(CGisItemRte &rte, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseEditRte();
+
+protected slots:
+    void slotAbort()      override;
+    void slotCopyToNew()  override;
+    void slotCopyToOrig() override;
+
+protected:
+    IGisLine* getGisLine() const override;
+};
+
+#endif //CMOUSEEDITRTE_H
+
diff --git a/src/qmapshack/mouse/CMouseEditTrk.cpp b/src/qmapshack/mouse/CMouseEditTrk.cpp
new file mode 100644
index 0000000..1d53f47
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditTrk.cpp
@@ -0,0 +1,119 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "mouse/CMouseEditTrk.h"
+
+#include <QtWidgets>
+
+CMouseEditTrk::CMouseEditTrk(const QPointF& point, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(IGisItem::key_t(), point, true, tr("Track"), gis, canvas, mouse)
+{
+    startNewLine(point);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+CMouseEditTrk::CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouseEditLine(trk.getKey(), trk, true, tr("Track"), gis, canvas, mouse)
+    , isNewLine(false)
+{
+    canvas->reportStatus(key.item, tr("<b>Edit Track Points</b><br/>Select a function and a routing mode via the tool buttons. Next select a point of the line. Only points marked with a large square can be changed. The ones with a black dot are subpoints introduced by routing.<br/>") + docPanning);
+
+    // reset any focus the track might have.
+    trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseEditTrk");
+    trk.setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseEditTrk");
+    trk.looseUserFocus();
+
+    /*
+        trigger complete update of GIS components to make sure all changes to
+        the originating object are reflected on the canvas
+     */
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+CMouseEditTrk::~CMouseEditTrk()
+{
+//    canvas->reportStatus(key,"");
+}
+
+IGisLine * CMouseEditTrk::getGisLine() const
+{
+    return dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+}
+
+void CMouseEditTrk::slotAbort()
+{
+    canvas->reportStatus(key.item, "");
+    IMouseEditLine::slotAbortEx(false);
+}
+
+void CMouseEditTrk::slotCopyToOrig()
+{
+    canvas->reportStatus(key.item, "");
+
+    if(!isNewLine)
+    {
+        QMessageBox::StandardButton button = QMessageBox::warning(canvas, tr("Warning!"), tr("This will replace all data of the original by a simple line of coordinates. All other data will be lost permanently."), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+
+        if(button != QMessageBox::Ok)
+        {
+            return;
+        }
+    }
+    IMouseEditLine::slotCopyToOrig();
+}
+
+
+void CMouseEditTrk::slotCopyToNew()
+{
+    canvas->reportStatus(key.item,"");
+
+    if(points.size() < 2)
+    {
+        return;
+    }
+
+
+    IGisProject * project = nullptr;
+
+    QString name;
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk != nullptr)
+    {
+        name = trk->getName();
+    }
+
+    if(!IGisItem::getNameAndProject(name, project, tr("track")))
+    {
+        return;
+    }
+
+
+    CMainWindow::self().getElevationAt(points);
+
+    {
+        QMutexLocker lock(&IGisItem::mutexItems);
+        new CGisItemTrk(points, name, project, NOIDX);
+    }
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
diff --git a/src/qmapshack/mouse/CMouseEditTrk.h b/src/qmapshack/mouse/CMouseEditTrk.h
new file mode 100644
index 0000000..03ed367
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseEditTrk.h
@@ -0,0 +1,47 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEEDITTRK_H
+#define CMOUSEEDITTRK_H
+
+#include "mouse/line/IMouseEditLine.h"
+
+class CGisItemTrk;
+
+class CMouseEditTrk : public IMouseEditLine
+{
+    Q_OBJECT
+public:
+    CMouseEditTrk(const QPointF& point, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    CMouseEditTrk(CGisItemTrk &trk, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseEditTrk();
+
+protected slots:
+    void slotAbort()      override;
+    void slotCopyToNew()  override;
+    void slotCopyToOrig() override;
+
+
+protected:
+    IGisLine* getGisLine() const override;
+    bool isNewLine = true;
+};
+
+#endif //CMOUSEEDITTRK_H
+
diff --git a/src/qmapshack/mouse/CMouseMoveWpt.cpp b/src/qmapshack/mouse/CMouseMoveWpt.cpp
new file mode 100644
index 0000000..86e2dc6
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseMoveWpt.cpp
@@ -0,0 +1,135 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/WptIcons.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseMoveWpt.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+CMouseMoveWpt::CMouseMoveWpt(CGisItemWpt &wpt, CGisDraw * gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse),
+    key(wpt.getKey()),
+    origPos(wpt.getPosition()*DEG_TO_RAD),
+    radius(wpt.getProximity()),
+    avoid(wpt.isNogo())
+{
+    cursor  = QCursor(QPixmap(":/cursors/cursorMoveWpt.png"), 0, 0);
+    icon    = getWptIconByName(wpt.getIconName(), focus);
+    newPos  = origPos;
+    wpt.setHideArea(true);
+    canvas->triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+CMouseMoveWpt::~CMouseMoveWpt()
+{
+}
+
+void CMouseMoveWpt::draw(QPainter& p, CCanvas::redraw_e, const QRect&)
+{
+    QString val, unit;
+    qreal a1 = 0, a2 = 0;
+    QPointF p1 = origPos;
+    QPointF p2 = newPos;
+
+    qreal d = GPS_Math_Distance(p1.x(), p1.y(), p2.x(), p2.y(), a1, a2);
+    IUnit::self().meter2distance(d, val, unit);
+    const QString &str = QString("%1 %2, %3%4").arg(val).arg(unit).arg(a2, 0, 'f', 1).arg(QChar(0260));
+
+    gis->convertRad2Px(p1);
+    gis->convertRad2Px(p2);
+
+    qreal r = CGisItemWpt::calcRadius(newPos,p2,radius,gis);
+    CGisItemWpt::drawCircle(p,p2,r,avoid,false);
+
+    QPointF p11 = p1 + QPoint(17 * qCos((a1 - 90) * DEG_TO_RAD), 17 * qSin((a1 - 90) * DEG_TO_RAD));
+    QPointF p22 = p2 + QPoint(21 * qCos((a2 + 90) * DEG_TO_RAD), 21 * qSin((a2 + 90) * DEG_TO_RAD));
+
+    QPen pen(Qt::darkBlue, 3);
+    pen.setCapStyle(Qt::RoundCap);
+    pen.setJoinStyle(Qt::MiterJoin);
+    p.setPen(pen);
+
+    p.setBrush(Qt::NoBrush);
+    p.drawEllipse(p1, 16, 16);
+    p.drawEllipse(p2, 16, 16);
+    p.drawLine(p11, p22);
+
+    p.save();
+    p.translate(p22);
+    p.rotate(a2 + 180);
+    QPolygonF arrow;
+    arrow << QPointF(0, 0) << QPointF(5, -20) << QPointF(0, -10) << QPointF(-5, -20);
+    p.setBrush(Qt::NoBrush);
+    p.drawPolygon(arrow);
+    p.restore();
+
+    CDraw::text(str, p, (p2 + QPoint(0, -30)).toPoint(), Qt::darkBlue);
+
+    p.drawPixmap(p1 - focus, icon);
+    p.drawPixmap(p2 - focus, icon);
+}
+
+void CMouseMoveWpt::rightButtonDown(const QPoint& point)
+{
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt != nullptr)
+    {
+        wpt->setHideArea(false);
+    }
+    canvas->resetMouse();
+    canvas->triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseMoveWpt::mouseMoved(const QPoint& pos)
+{
+    newPos = pos;
+    gis->convertPx2Rad(newPos);
+    canvas->update();
+}
+
+void CMouseMoveWpt::leftClicked(const QPoint& point)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    QPointF pos(point);
+    gis->convertPx2Rad(pos);
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt != nullptr)
+    {
+        wpt->setPosition(pos * RAD_TO_DEG);
+        wpt->setHideArea(false);
+    }
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseMoveWpt::scaleChanged()
+{
+    canvas->update();
+}
+
diff --git a/src/qmapshack/mouse/CMouseMoveWpt.h b/src/qmapshack/mouse/CMouseMoveWpt.h
new file mode 100644
index 0000000..18ff458
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseMoveWpt.h
@@ -0,0 +1,57 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEMOVEWPT_H
+#define CMOUSEMOVEWPT_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IMouse.h"
+
+#include <QPixmap>
+
+class CCanvas;
+class CGisItemWpt;
+class CGisDraw;
+
+class CMouseMoveWpt : public IMouse
+{
+public:
+    CMouseMoveWpt(CGisItemWpt& wpt, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseMoveWpt();
+
+    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void leftClicked(const QPoint& point) override;
+    void mouseMoved(const QPoint &pos) override;
+    void rightButtonDown(const QPoint& point) override;
+    void scaleChanged() override;
+
+private:
+    const IGisItem::key_t key;
+    const QPointF origPos;
+    const qreal radius;
+    const bool avoid;
+
+    QPointF newPos;
+    QPointF focus;
+    QPixmap icon;
+};
+
+#endif //CMOUSEMOVEWPT_H
+
diff --git a/src/qmapshack/mouse/CMouseNormal.cpp b/src/qmapshack/mouse/CMouseNormal.cpp
new file mode 100644
index 0000000..2951bbd
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseNormal.cpp
@@ -0,0 +1,446 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/prj/IGisProject.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseNormal.h"
+#include "mouse/CScrOptUnclutter.h"
+#include "realtime/CRtWorkspace.h"
+#include "widgets/CFadingIcon.h"
+
+#include <QtWidgets>
+
+CMouseNormal::CMouseNormal(CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+{
+    cursor = QCursor(QPixmap(":/cursors/cursorMoveMap.png"),0,0);
+    screenUnclutter = new CScrOptUnclutter(this);
+
+    menu = new QMenu(canvas);
+    actionPoiAsWpt = menu->addAction(QIcon("://icons/32x32/AddWpt.png"),  tr("Add POI as Waypoint"), this, SLOT(slotAddPoi()));
+    menu->addAction(QIcon("://icons/32x32/AddWpt.png"),  tr("Add Waypoint"), this, SLOT(slotAddWpt()));
+    menu->addAction(QIcon("://icons/32x32/AddTrk.png"),  tr("Add Track"),    this, SLOT(slotAddTrk()));
+    menu->addAction(QIcon("://icons/32x32/AddRte.png"),  tr("Add Route"),    this, SLOT(slotAddRte()));
+    menu->addAction(QIcon("://icons/32x32/AddArea.png"), tr("Add Area"),     this, SLOT(slotAddArea()));
+    menu->addSeparator();
+    menu->addAction(QIcon("://icons/32x32/SelectArea.png"), tr("Select Items On Map"), this, SLOT(slotSelectArea()));
+    menu->addSeparator();
+    menu->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy position"), this, SLOT(slotCopyPosition()));
+    menu->addAction(QIcon("://icons/32x32/Copy.png"), tr("Copy position (Grid)"), this, SLOT(slotCopyPositionGrid()));
+}
+
+CMouseNormal::~CMouseNormal()
+{
+}
+
+void CMouseNormal::stopTracking() const
+{
+    const IGisItem::key_t& key = CGisItemTrk::getKeyUserFocus();
+    if(!key.item.isEmpty())
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(trk != nullptr)
+        {
+            trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
+        }
+    }
+}
+
+void CMouseNormal::rightButtonDown(const QPoint& point)
+{
+    // right button cancels unclutter and item-options
+    if (screenUnclutter->size() > 0 || !screenItemOption.isNull())
+    {
+        resetState();
+    }
+    showContextMenu(point);
+}
+
+void CMouseNormal::longPress(const QPoint& point)
+{
+    // longpress does not simulate right button, it just opens menu if
+    // neiterh unclutter nor options are active
+    if (screenUnclutter->size() == 0 && screenItemOption.isNull())
+    {
+        showContextMenu(point);
+    }
+}
+
+void CMouseNormal::mouseMoved(const QPoint& point)
+{
+    screenUnclutter->mouseMove(point);
+    if(!screenItemOption.isNull())
+    {
+        screenItemOption->mouseMove(point);
+    }
+
+    switch(stateItemSel)
+    {
+    case eStateIdle:
+        CGisWorkspace::self().mouseMove(point);
+        CRtWorkspace::self().mouseMove(point);
+
+    //break; skip break intentionally
+    case eStateHooverSingle:
+    case eStateHooverMultiple:
+    {
+        const IGisItem::key_t& keyTrk = CGisItemTrk::getKeyUserFocus();
+        if(!keyTrk.item.isEmpty())
+        {
+            CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(keyTrk));
+            if(trk != nullptr)
+            {
+                trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseMove, "CMouseNormal");
+            }
+        }
+
+        const IGisItem::key_t& keyRte = CGisItemRte::getKeyUserFocus();
+        if(!keyRte.item.isEmpty())
+        {
+            CGisItemRte * rte = dynamic_cast<CGisItemRte*>(CGisWorkspace::self().getItemByKey(keyRte));
+            if(rte != nullptr)
+            {
+                rte->setMouseFocusByPoint(point, CGisItemRte::eFocusMouseMove, "CMouseNormal");
+            }
+        }
+        break;
+    }
+
+    default:
+        ;
+    }
+
+    curPOI = canvas->findPOICloseBy(point);
+
+    canvas->displayInfo(point);
+    canvas->update();
+}
+
+void CMouseNormal::mouseDragged(const QPoint& start, const QPoint& last, const QPoint &end)
+{
+    // start to block map moving when a previous click
+    // has triggered a selection of any kind
+    if (stateItemSel < eStateNoMapMovePossible)
+    {
+        IMouse::mouseDragged(start,last,end);
+    }
+    else
+    {
+        mouseMoved(end);
+    }
+}
+
+void CMouseNormal::leftClicked(const QPoint& point)
+{
+    switch(stateItemSel)
+    {
+    case eStateIdle:
+    {
+        CGisWorkspace::self().slotWksItemSelectionReset();
+        break;
+    }
+
+    case eStateHooverSingle:
+    {
+        stateItemSel = eStateIdle;
+
+        IGisItem * item = CGisWorkspace::self().getItemByKey(screenUnclutter->getItemKey());
+        if(nullptr != item)
+        {
+            scrollToItem(item);
+            if(setScreenOption(point, item))
+            {
+                stateItemSel = eStateShowItemOptions;
+            }
+            stopTracking();
+        }
+        break;
+    }
+
+    case eStateHooverMultiple:
+    {
+        screenUnclutter->setOrigin(point);
+        stateItemSel = eStateUnclutterMultiple;
+        stopTracking();
+        break;
+    }
+
+    case eStateUnclutterMultiple:
+    {
+        const CScrOptUnclutter::item_t * scrOpt = screenUnclutter->selectItem(point);
+        if(scrOpt != nullptr)
+        {
+            IGisItem * item = CGisWorkspace::self().getItemByKey(scrOpt->key);
+            screenUnclutter->clear(); // CAUTION!! this will delete the object scrOpt is pointing to.
+            scrOpt = nullptr;
+            if(item)
+            {
+                scrollToItem(item);
+                if(setScreenOption(screenUnclutter->getOrigin(), item))
+                {
+                    stateItemSel = eStateShowItemOptions;
+                    break;
+                }
+            }
+        }
+        resetState();
+        CGisWorkspace::self().slotWksItemSelectionReset();
+        break;
+    }
+
+    case eStateShowItemOptions:
+    {
+        resetState();
+        CGisWorkspace::self().slotWksItemSelectionReset();
+        break;
+    }
+    }
+
+    canvas->update();
+}
+
+void CMouseNormal::doubleClicked(const QPoint & point)
+{
+    if(stateItemSel == eStateIdle)
+    {
+        const IGisItem::key_t& keyTrk = CGisItemTrk::getKeyUserFocus();
+        CGisWorkspace::self().focusTrkByKey(false, keyTrk);
+
+        const IGisItem::key_t& keyRte = CGisItemRte::getKeyUserFocus();
+        CGisWorkspace::self().focusRteByKey(false, keyRte);
+    }
+}
+
+void CMouseNormal::scaleChanged()
+{
+    resetState();
+}
+
+void CMouseNormal::resetState()
+{
+    screenUnclutter->clear();
+    if(!screenItemOption.isNull())
+    {
+        screenItemOption->close();
+    }
+    stateItemSel = eStateIdle;
+    canvas->update();
+}
+
+void CMouseNormal::scrollToItem(IGisItem * item)
+{
+    QTreeWidget * treeWidget = item->treeWidget();
+    // block signals as this is an internal
+    // change and no user interaction with
+    // the tree widget
+    treeWidget->blockSignals(true);
+    treeWidget->collapseAll();
+    treeWidget->setCurrentItem(item);
+    treeWidget->scrollToItem(item, QAbstractItemView::PositionAtCenter);
+    treeWidget->blockSignals(false);
+}
+
+bool CMouseNormal::setScreenOption(const QPoint& pt, IGisItem * item)
+{
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(item);
+    if(trk && trk->setMouseFocusByPoint(pt, CGisItemTrk::eFocusMouseClick, "CMouseNormal") == NOPOINTF)
+    {
+        new CFadingIcon(pt, "://icons/48x48/NotPossible.png", canvas);
+        return false;
+    }
+
+    delete screenItemOption;
+    screenItemOption = item->getScreenOptions(pt, this);
+
+    return !screenItemOption.isNull();
+}
+
+void CMouseNormal::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
+{
+    // no mouse interaction while gis thread is running
+    if(gis->isRunning())
+    {
+        return;
+    }
+
+    switch(stateItemSel)
+    {
+    case eStateIdle:
+    case eStateHooverSingle:
+    case eStateHooverMultiple:
+    {
+        if(curPOI.pos != NOPOINTF)
+        {
+            const QSize s = curPOI.symbolSize;
+            const qint32 x = (qMax(qMax(s.width(), s.height()), 7)<<1) & 0xFFFFFFFE;
+
+            p.drawImage(curPOI.pos - QPointF(x,x), QImage("://cursors/wptHighlightBlue.png").scaled(x<<1, x<<1, Qt::KeepAspectRatio, Qt::SmoothTransformation));
+        }
+
+        /*
+            Collect and draw items close to the last mouse position in the draw method.
+
+            This might be a bit odd but there are two reasons:
+
+            1) Multiple update events are combined by the event loop. Thus multiple mouse move
+               events are reduced to a single paint event. As getItemsByPos() is quite cycle
+               intense this seems like a good idea.
+
+            2) The list of items passed back by getItemsByPos() must not be stored. That is why
+               the list has to be generated within the draw handler to access the item's drawHighlight()
+               method.
+
+         */
+        screenUnclutter->clear();
+
+        QList<IGisItem*> items;
+        CGisWorkspace::self().getItemsByPos(mouse->getPoint(), items);
+
+        if(items.empty() || items.size() > 8)
+        {
+            stateItemSel = eStateIdle;
+            break;
+        }
+
+        for(IGisItem * item : items)
+        {
+            item->drawHighlight(p);
+            screenUnclutter->addItem(item);
+        }
+
+        stateItemSel = (screenUnclutter->size() == 1) ? eStateHooverSingle : eStateHooverMultiple;
+        break;
+    }
+
+    case eStateUnclutterMultiple:
+    {
+        screenUnclutter->draw(p);
+        break;
+    }
+
+    case eStateShowItemOptions:
+    {
+        if(screenItemOption.isNull())
+        {
+            stateItemSel = eStateIdle;
+            break;
+        }
+
+        // the screen option might not be destroyed yet, but already hidden
+        if(screenItemOption->isVisible())
+        {
+            screenItemOption->draw(p);
+        }
+        break;
+    }
+
+    default:
+        ;
+    }
+}
+
+void CMouseNormal::slotAddPoi() const
+{
+    QPointF pt = curPOI.pos;
+    gis->convertPx2Rad(pt);
+    pt *= RAD_TO_DEG;
+
+    CGisWorkspace::self().addWptByPos(pt, curPOI.name, curPOI.desc);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseNormal::slotAddWpt() const
+{
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+    pt *= RAD_TO_DEG;
+
+    CGisWorkspace::self().addWptByPos(pt);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseNormal::slotAddTrk() const
+{
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+
+    canvas->setMouseEditTrk(pt);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseNormal::slotAddRte() const
+{
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+
+    canvas->setMouseEditRte(pt);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseNormal::slotAddArea() const
+{
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+
+    canvas->setMouseEditArea(pt);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseNormal::slotCopyPosition() const
+{
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+
+    QString position;
+    IUnit::degToStr(pt.x() * RAD_TO_DEG, pt.y() * RAD_TO_DEG, position);
+
+    QClipboard *clipboard = QApplication::clipboard();
+    clipboard->setText(position);
+}
+
+void CMouseNormal::slotCopyPositionGrid() const
+{
+    QString position;
+    QPointF pt = mouse->getPoint();
+    gis->convertPx2Rad(pt);
+
+    canvas->convertGridPos2Str(pt * RAD_TO_DEG, position, true);
+
+    QClipboard *clipboard = QApplication::clipboard();
+    clipboard->setText(position);
+}
+
+void CMouseNormal::slotSelectArea() const
+{
+    canvas->setMouseSelect();
+}
+
+void CMouseNormal::showContextMenu(const QPoint &point)
+{
+    QPoint p = canvas->mapToGlobal(point);
+
+    actionPoiAsWpt->setEnabled(curPOI.pos != NOPOINTF);
+    menu->exec(p);
+}
diff --git a/src/qmapshack/mouse/CMouseNormal.h b/src/qmapshack/mouse/CMouseNormal.h
new file mode 100644
index 0000000..e51d91c
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseNormal.h
@@ -0,0 +1,94 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSENORMAL_H
+#define CMOUSENORMAL_H
+
+#include "gis/Poi.h"
+#include "mouse/IMouse.h"
+
+#include <QPixmap>
+#include <QPointer>
+#include <QRect>
+#include <QStringList>
+
+class CCanvas;
+class IScrOpt;
+class CScrOptUnclutter;
+class QMenu;
+
+class CMouseNormal : public IMouse
+{
+    Q_OBJECT
+public:
+    CMouseNormal(CGisDraw * gis, CCanvas *canvas, CMouseAdapter *mouse);
+    virtual ~CMouseNormal();
+
+    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void leftClicked(const QPoint& point) override;
+    void mouseMoved(const QPoint& pos) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end) override;
+    void rightButtonDown(const QPoint& point) override;
+    void longPress(const QPoint& point) override;
+    void doubleClicked(const QPoint & point) override;
+    void scaleChanged() override;
+
+private slots:
+    void slotAddPoi()           const;
+    void slotAddWpt()           const;
+    void slotAddTrk()           const;
+    void slotAddRte()           const;
+    void slotAddArea()          const;
+    void slotSelectArea()       const;
+    void slotCopyPosition()     const;
+    void slotCopyPositionGrid() const;
+
+private:
+    bool setScreenOption(const QPoint& pt, IGisItem * item);
+    void scrollToItem(IGisItem * item);
+    void showContextMenu(const QPoint &point);
+
+protected:
+    void stopTracking() const;
+    void resetState();
+
+    enum item_selection_states_e
+    {
+        eStateIdle = 0
+        , eStateHooverSingle      = 1 //< there is only a single item close to the cursor
+        , eStateHooverMultiple    = 2 //< there are multiple items close to the cursor
+        , eStateNoMapMovePossible = 3 //< not a real state, but at this value and above no map move is allowed to take place
+        , eStateUnclutterMultiple = 3 //< the user clicked on multiple cluttered items and gets now an uncluttered representation
+        , eStateShowItemOptions   = 4 //< the user has selected a single item, show options how to proceed
+    };
+
+    item_selection_states_e stateItemSel = eStateIdle;
+
+    CScrOptUnclutter * screenUnclutter;
+    QPointer<IScrOpt>  screenItemOption;
+
+    QMenu * menu;
+    QAction * actionPoiAsWpt;
+
+    poi_t curPOI;
+};
+
+#endif //CMOUSENORMAL_H
+
diff --git a/src/qmapshack/mouse/CMousePrint.cpp b/src/qmapshack/mouse/CMousePrint.cpp
new file mode 100644
index 0000000..6efeb7a
--- /dev/null
+++ b/src/qmapshack/mouse/CMousePrint.cpp
@@ -0,0 +1,64 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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 "gis/CGisDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMousePrint.h"
+#include "mouse/CScrOptPrint.h"
+#include "print/CPrintDialog.h"
+
+#include <QtWidgets>
+
+CMousePrint::CMousePrint(CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouseSelect(gis, canvas, mouse)
+{
+    cursor = QCursor(QPixmap("://cursors/cursorSave.png"),0,0);
+
+    canvas->reportStatus("IMouseSelect", tr("<b>Save(Print) Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners."));
+
+    CScrOptPrint * scrOptPrint;
+    scrOpt = scrOptPrint = new CScrOptPrint(this);
+
+    connect(scrOptPrint->toolSave,  &QToolButton::clicked, this, &CMousePrint::slotSave);
+    connect(scrOptPrint->toolPrint, &QToolButton::clicked, this, &CMousePrint::slotPrint);
+}
+
+CMousePrint::~CMousePrint()
+{
+}
+
+void CMousePrint::slotSave()
+{
+    CPrintDialog dlg(CPrintDialog::eTypeImage, rectSelection, canvas);
+    dlg.exec();
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+
+    canvas->resetMouse();
+}
+
+void CMousePrint::slotPrint()
+{
+    CPrintDialog dlg(CPrintDialog::eTypePrint, rectSelection, canvas);
+    dlg.exec();
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+
+    canvas->resetMouse();
+}
+
diff --git a/src/qmapshack/mouse/CMousePrint.h b/src/qmapshack/mouse/CMousePrint.h
new file mode 100644
index 0000000..14d3a1f
--- /dev/null
+++ b/src/qmapshack/mouse/CMousePrint.h
@@ -0,0 +1,40 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEPRINT_H
+#define CMOUSEPRINT_H
+
+#include "mouse/IMouseSelect.h"
+
+class CGisDraw;
+class CCanvas;
+
+class CMousePrint : public IMouseSelect
+{
+    Q_OBJECT
+public:
+    CMousePrint(CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMousePrint();
+
+private slots:
+    void slotSave();
+    void slotPrint();
+};
+
+#endif //CMOUSEPRINT_H
+
diff --git a/src/qmapshack/mouse/CMouseRadiusWpt.cpp b/src/qmapshack/mouse/CMouseRadiusWpt.cpp
new file mode 100644
index 0000000..540a6f5
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseRadiusWpt.cpp
@@ -0,0 +1,108 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/WptIcons.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseRadiusWpt.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+CMouseRadiusWpt::CMouseRadiusWpt(CGisItemWpt &wpt, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse),
+    key(wpt.getKey()),
+    wptPosition(wpt.getPosition() * DEG_TO_RAD),
+    avoid(wpt.isNogo()),
+    initial(true)
+{
+    startPos = GPS_Math_Wpt_Projection(wptPosition,wpt.getProximity(),90 * DEG_TO_RAD);
+    gis->convertRad2Px(startPos);
+    cursor  = QCursor(QPixmap(":/cursors/cursorRadiusWpt.png"), 0, 0);
+    wpt.setHideArea(true);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+CMouseRadiusWpt::~CMouseRadiusWpt()
+{
+}
+
+void CMouseRadiusWpt::draw(QPainter& p, CCanvas::redraw_e, const QRect&)
+{
+    QPointF pos = initial ? startPos : mouse->getPoint();
+    gis->convertPx2Rad(pos);
+    dist = GPS_Math_Distance(pos.rx(),pos.ry(),wptPosition.x(),wptPosition.y());
+    QPointF screenPos = wptPosition;
+    gis->convertRad2Px(screenPos);
+    qreal radius = CGisItemWpt::calcRadius(wptPosition,screenPos,dist,gis);
+
+    CGisItemWpt::drawCircle(p,screenPos,radius,avoid,initial);
+}
+
+void CMouseRadiusWpt::rightButtonDown(const QPoint& point)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt != nullptr)
+    {
+        wpt->setHideArea(false);
+    }
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    initial = false;
+}
+
+void CMouseRadiusWpt::mouseMoved(const QPoint &pos)
+{
+    canvas->update();
+    initial = false;
+}
+
+void CMouseRadiusWpt::mouseDragged(const QPoint &start, const QPoint &last, const QPoint &end)
+{
+    IMouse::mouseDragged(start,last,end);
+    initial = false;
+}
+
+void CMouseRadiusWpt::leftClicked(const QPoint& point)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt != nullptr)
+    {
+        wpt->setProximity(dist);
+        wpt->setHideArea(false);
+    }
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    initial = false;
+}
+
+void CMouseRadiusWpt::scaleChanged()
+{
+    canvas->update();
+}
diff --git a/src/qmapshack/mouse/CMouseRadiusWpt.h b/src/qmapshack/mouse/CMouseRadiusWpt.h
new file mode 100644
index 0000000..2a14449
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseRadiusWpt.h
@@ -0,0 +1,55 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSERADIUSWPT_H
+#define CMOUSERADIUSWPT_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IMouse.h"
+
+class CGisItemWpt;
+class CGisDraw;
+class CCanvas;
+
+class CMouseRadiusWpt : public IMouse
+{
+    Q_OBJECT
+public:
+    CMouseRadiusWpt(CGisItemWpt& wpt, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseRadiusWpt();
+
+    void draw(QPainter& p,  CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void leftClicked(const QPoint& point) override;
+    void mouseMoved(const QPoint &pos) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end) override;
+    void rightButtonDown(const QPoint& point) override;
+    void scaleChanged() override;
+
+private:
+    const IGisItem::key_t key;
+    const QPointF wptPosition;
+    const bool avoid;
+    bool initial;
+    QPointF startPos;
+    qreal dist;
+};
+
+#endif //CMOUSERADIUSWPT_H
+
diff --git a/src/qmapshack/mouse/CMouseRangeTrk.cpp b/src/qmapshack/mouse/CMouseRangeTrk.cpp
new file mode 100644
index 0000000..6e97dba
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseRangeTrk.cpp
@@ -0,0 +1,254 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CMouseRangeTrk.h"
+#include "mouse/CScrOptRangeTrk.h"
+
+#include <QtWidgets>
+
+
+CMouseRangeTrk::CMouseRangeTrk(CGisItemTrk &trk, CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+{
+    cursor      = QCursor(QPixmap("://cursors/cursorSelectRange.png"),0,0);
+    key         = trk.getKey();
+
+    // switch to full mode to show deleted (hidden) track points, too
+    trk.setMode(CGisItemTrk::eModeRange, "CMouseRangeTrk");
+
+    resetState();
+}
+
+CMouseRangeTrk::~CMouseRangeTrk()
+{
+    canvas->reportStatus(key.item, "");
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk)
+    {
+        trk->setMode(CGisItemTrk::eModeNormal, "CMouseRangeTrk");
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    }
+
+    delete scrOptRange;
+}
+
+void CMouseRangeTrk::draw(QPainter& p,  CCanvas::redraw_e, const QRect &)
+{
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk)
+    {
+        if(anchor != NOPOINTF)
+        {
+            p.setPen(Qt::darkBlue);
+            p.setBrush(QColor(255,255,255,200));
+            p.drawEllipse(anchor, 6, 6);
+
+            QPixmap bullet("://icons/8x8/bullet_magenta.png");
+            p.drawPixmap(anchor.x() - 3, anchor.y() - 3, bullet);
+        }
+    }
+
+    if(!scrOptRange.isNull())
+    {
+        scrOptRange->draw(p);
+    }
+}
+
+void CMouseRangeTrk::leftButtonDown(const QPoint& pos)
+{
+    canvas->reportStatus(key.item, "");
+}
+
+void CMouseRangeTrk::mouseDragged(const QPoint &start, const QPoint &last, const QPoint &end)
+{
+    if (state != eStateRangeSelected)
+    {
+        IMouse::mouseDragged(start, last, end);
+        if (anchor != NOPOINTF)
+        {
+            anchor += end-last;
+        }
+    }
+}
+
+void CMouseRangeTrk::mouseMoved(const QPoint& pos)
+{
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(trk != nullptr)
+        {
+            anchor = trk->setMouseFocusByPoint(pos, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
+            canvas->update();
+        }
+        break;
+    }
+
+    case eStateSelectRange:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(trk != nullptr)
+        {
+            anchor = trk->setMouseFocusByPoint(pos, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
+            canvas->update();
+        }
+        break;
+    }
+
+    default:
+        ;
+    }
+}
+
+void CMouseRangeTrk::leftClicked(const QPoint& point)
+{
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(trk != nullptr && anchor != NOPOINTF)
+        {
+            anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
+            state = eStateSelectRange;
+            canvas->update();
+        }
+        break;
+    }
+
+
+    case eStateSelectRange:
+    {
+        CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+        if(trk != nullptr && anchor != NOPOINTF)
+        {
+            anchor = trk->setMouseFocusByPoint(point, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
+            scrOptRange = new CScrOptRangeTrk(anchor, trk, this);
+            connect(scrOptRange->toolHidePoints, &QToolButton::clicked, this, &CMouseRangeTrk::slotHidePoints);
+            connect(scrOptRange->toolShowPoints, &QToolButton::clicked, this, &CMouseRangeTrk::slotShowPoints);
+            connect(scrOptRange.data(), &CScrOptRangeTrk::activitySelected, this, &CMouseRangeTrk::slotActivity);
+            connect(scrOptRange->toolCopy,       &QToolButton::clicked, this, &CMouseRangeTrk::slotCopy);
+
+            state = eStateRangeSelected;
+            canvas->update();
+        }
+
+        break;
+    }
+
+    case eStateRangeSelected:
+    {
+        resetState();
+        break;
+    }
+    }
+}
+
+void CMouseRangeTrk::scaleChanged()
+{
+    if(state == eStateRangeSelected)
+    {
+        resetState();
+    }
+}
+
+void CMouseRangeTrk::resetState()
+{
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk != nullptr)
+    {
+        trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseMove, "CMouseRangeTrk");
+        trk->setMouseFocusByPoint(NOPOINT, CGisItemTrk::eFocusMouseClick, "CMouseRangeTrk");
+    }
+
+    if(!scrOptRange.isNull())
+    {
+        scrOptRange->deleteLater();
+    }
+    state  = eStateIdle;
+    anchor = NOPOINTF;
+
+    canvas->reportStatus(key.item, tr("<b>Select Range</b><br/>Select first track point with left mouse button. And then a second one. Leave range selection with a click of the right mouse button.<br/>"));
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void CMouseRangeTrk::slotHidePoints()
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk != nullptr)
+    {
+        trk->hideSelectedPoints();
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    }
+
+    resetState();
+}
+
+void CMouseRangeTrk::slotShowPoints()
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk != nullptr)
+    {
+        trk->showSelectedPoints();
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    }
+
+    resetState();
+}
+
+void CMouseRangeTrk::slotActivity(quint32 flags)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(nullptr != trk)
+    {
+        trk->setActivityRange(flags);
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    }
+
+    scrOptRange->deleteLater();
+    canvas->resetMouse();
+}
+
+void CMouseRangeTrk::slotCopy()
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemTrk * trk = dynamic_cast<CGisItemTrk*>(CGisWorkspace::self().getItemByKey(key));
+    if(trk != nullptr)
+    {
+        trk->copySelectedPoints();
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+    }
+    scrOptRange->deleteLater();
+    canvas->resetMouse();
+}
diff --git a/src/qmapshack/mouse/CMouseRangeTrk.h b/src/qmapshack/mouse/CMouseRangeTrk.h
new file mode 100644
index 0000000..d941ce6
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseRangeTrk.h
@@ -0,0 +1,71 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSERANGETRK_H
+#define CMOUSERANGETRK_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IMouse.h"
+#include <QPointer>
+
+class CGisItemTrk;
+class CGisDraw;
+class CCanvas;
+class CScrOptRangeTrk;
+
+class CMouseRangeTrk : public IMouse
+{
+    Q_OBJECT
+public:
+    CMouseRangeTrk(CGisItemTrk& trk, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseRangeTrk();
+
+    void draw(QPainter& p, CCanvas::redraw_e, const QRect &) override;
+
+    void leftClicked(const QPoint& point) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end) override;
+    void mouseMoved(const QPoint& pos) override;
+    void leftButtonDown(const QPoint& pos) override;
+    void scaleChanged() override;
+
+private slots:
+    void slotHidePoints();
+    void slotShowPoints();
+    void slotActivity(quint32 flags);
+    void slotCopy();
+
+private:
+    void resetState();
+    IGisItem::key_t key;
+
+    enum state_e
+    {
+        eStateIdle
+        ,eStateSelectRange
+        ,eStateRangeSelected
+    };
+
+    state_e state   = eStateIdle;
+    QPointF anchor  = NOPOINTF;
+
+    QPointer<CScrOptRangeTrk> scrOptRange;
+};
+
+#endif //CMOUSERANGETRK_H
+
diff --git a/src/qmapshack/mouse/CMouseSelect.cpp b/src/qmapshack/mouse/CMouseSelect.cpp
new file mode 100644
index 0000000..e227e38
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseSelect.cpp
@@ -0,0 +1,202 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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 "gis/CGisDraw.h"
+#include "gis/CGisWorkspace.h"
+#include "helpers/CWptIconDialog.h"
+#include "mouse/CMouseSelect.h"
+#include "mouse/CScrOptSelect.h"
+
+#include <QtWidgets>
+
+CMouseSelect::CMouseSelect(CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouseSelect(gis, canvas, mouse)
+{
+    cursor = QCursor(QPixmap("://cursors/cursorSelectArea.png"),0,0);
+
+    canvas->reportStatus("IMouseSelect", tr("<b>Select Items On Map</b><br/>Select a rectangular area on the map. Use the left mouse button and move the mouse. Abort with a right click. Adjust the selection by point-click-move on the corners."));
+
+    CScrOptSelect * scrOptSelect;
+    scrOpt = scrOptSelect = new CScrOptSelect(this);
+
+    connect(scrOptSelect->toolCopy,         &QToolButton::clicked, this, &CMouseSelect::slotCopy);
+    connect(scrOptSelect->toolRoute,        &QToolButton::clicked, this, &CMouseSelect::slotRoute);
+    connect(scrOptSelect->toolSymWpt,       &QToolButton::clicked, this, &CMouseSelect::slotSymWpt);
+    connect(scrOptSelect->toolCombineTrk,   &QToolButton::clicked, this, &CMouseSelect::slotCombineTrk);
+    connect(scrOptSelect->toolActivityTrk,  &QToolButton::clicked, this, &CMouseSelect::slotActivityTrk);
+    connect(scrOptSelect->toolColorTrk,     &QToolButton::clicked, this, &CMouseSelect::slotColorTrk);
+    connect(scrOptSelect->toolDelete,       &QToolButton::clicked, this, &CMouseSelect::slotDelete);
+}
+
+CMouseSelect::~CMouseSelect()
+{
+    canvas->reportStatus("CMouseSelect::Stat", "");
+}
+
+
+
+void CMouseSelect::findItems(QList<IGisItem*>& items)
+{
+    CScrOptSelect * scrOptSelect = dynamic_cast<CScrOptSelect*>((IScrOpt*)scrOpt);
+    IGisItem::selflags_t modeSelection = scrOptSelect->getModeSelection();
+
+    if((rectSelection == rectLastSel) && (modeSelection == modeLastSel))
+    {
+        if(!itemKeys.isEmpty())
+        {
+            CGisWorkspace::self().getItemsByKeys(itemKeys, items);
+        }
+    }
+    else
+    {
+        itemKeys.clear();
+
+        QRectF area;
+        rectRad2Px(rectSelection, area);
+        CGisWorkspace::self().getItemsByArea(area, modeSelection, items);
+
+        cntWpt = 0;
+        cntTrk = 0;
+        cntRte = 0;
+        cntOvl = 0;
+        for(IGisItem * item : items)
+        {
+            itemKeys << item->getKey();
+            switch(item->type())
+            {
+            case IGisItem::eTypeWpt:
+                cntWpt++;
+                break;
+
+            case IGisItem::eTypeTrk:
+                cntTrk++;
+                break;
+
+            case IGisItem::eTypeRte:
+                cntRte++;
+                break;
+
+            case IGisItem::eTypeOvl:
+                cntOvl++;
+                break;
+            }
+        }
+
+        QString msg = tr("<b>Selected:</b><br/>");
+        if(scrOptSelect->toolItemTrk->isChecked())
+        {
+            msg += tr("%1 tracks<br/>").arg(cntTrk);
+        }
+
+        if(scrOptSelect->toolItemWpt->isChecked())
+        {
+            msg += tr("%1 waypoints<br/>").arg(cntWpt);
+        }
+
+        if(scrOptSelect->toolItemRte->isChecked())
+        {
+            msg += tr("%1 routes<br/>").arg(cntRte);
+        }
+
+        if(scrOptSelect->toolItemOvl->isChecked())
+        {
+            msg += tr("%1 areas<br/>").arg(cntOvl);
+        }
+
+        canvas->reportStatus("CMouseSelect::Stat",msg);
+
+        rectLastSel = rectSelection;
+        modeLastSel = modeSelection;
+    }
+
+    scrOptSelect->frameFunction->setDisabled(items.isEmpty());
+    scrOptSelect->toolSymWpt->setEnabled(cntWpt);
+    scrOptSelect->toolRoute->setEnabled(cntWpt > 1);
+    scrOptSelect->toolCombineTrk->setEnabled(cntTrk > 1);
+    scrOptSelect->toolActivityTrk->setEnabled(cntTrk > 0);
+    scrOptSelect->toolColorTrk->setEnabled(cntTrk > 0);
+}
+
+void CMouseSelect::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
+{
+    if(rectSelection.isNull())
+    {
+        return;
+    }
+
+    QList<IGisItem*> items;
+    findItems(items);
+
+    for(IGisItem * item : items)
+    {
+        item->drawHighlight(p);
+    }
+
+    IMouseSelect::draw(p, needsRedraw, rect);
+}
+
+
+
+void CMouseSelect::slotCopy() const
+{
+    CGisWorkspace::self().copyItemsByKey(itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotDelete() const
+{
+    CGisWorkspace::self().delItemsByKey(itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotRoute() const
+{
+    CGisWorkspace::self().makeRteFromWpt(itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotCombineTrk() const
+{
+    CGisWorkspace::self().combineTrkByKey(itemKeys, itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotActivityTrk() const
+{
+    CGisWorkspace::self().activityTrkByKey(itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotColorTrk() const
+{
+    CGisWorkspace::self().colorTrkByKey(itemKeys);
+    canvas->resetMouse();
+}
+
+void CMouseSelect::slotSymWpt() const
+{
+    QToolButton tb;
+    CWptIconDialog dlg(&tb);
+    if(dlg.exec() == QDialog::Rejected)
+    {
+        return;
+    }
+
+    CGisWorkspace::self().changeWptSymByKey(itemKeys, tb.objectName());
+    canvas->resetMouse();
+}
diff --git a/src/qmapshack/mouse/CMouseSelect.h b/src/qmapshack/mouse/CMouseSelect.h
new file mode 100644
index 0000000..8a6e3ea
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseSelect.h
@@ -0,0 +1,70 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSESELECT_H
+#define CMOUSESELECT_H
+
+#include "canvas/CCanvas.h"
+#include "gis/IGisItem.h"
+#include "mouse/IMouseSelect.h"
+
+class CGisDraw;
+class CCanvas;
+class CScrOptSelect;
+
+class CMouseSelect : public IMouseSelect
+{
+    Q_OBJECT
+public:
+    CMouseSelect(CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseSelect();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+private slots:
+    void slotCopy() const;
+    void slotRoute() const;
+    void slotSymWpt() const;
+    void slotCombineTrk() const;
+    void slotActivityTrk() const;
+    void slotColorTrk() const;
+    void slotDelete() const;
+
+private:
+    /**
+       @brief Get a temporary list of all items
+
+       @Note: The list of items is only temporary and must not be used outside the calling method.
+
+       @param items a temporary list to collect all item pointers
+     */
+    void findItems(QList<IGisItem *> &items);
+
+
+    QList<IGisItem::key_t> itemKeys;
+    IGisItem::selflags_t modeLastSel   = IGisItem::eSelectionNone;
+    QRectF rectLastSel;
+
+    quint32 cntWpt = 0;
+    quint32 cntTrk = 0;
+    quint32 cntRte = 0;
+    quint32 cntOvl = 0;
+};
+
+#endif //CMOUSESELECT_H
+
diff --git a/src/qmapshack/mouse/CMouseWptBubble.cpp b/src/qmapshack/mouse/CMouseWptBubble.cpp
new file mode 100644
index 0000000..a03c72d
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseWptBubble.cpp
@@ -0,0 +1,100 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "mouse/CMouseWptBubble.h"
+
+#include <QtWidgets>
+
+CMouseWptBubble::CMouseWptBubble(const IGisItem::key_t &key, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+    , key(key)
+{
+    cursor = QCursor(QPixmap("://cursors/cursorArrow.png"), 0, 0);
+}
+
+CMouseWptBubble::~CMouseWptBubble()
+{
+}
+
+void CMouseWptBubble::draw(QPainter&, CCanvas::redraw_e, const QRect&)
+{
+}
+
+void CMouseWptBubble::leftClicked(const QPoint &pos)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt)
+    {
+        wpt->leftClicked(pos);
+    }
+    else
+    {
+        canvas->resetMouse();
+    }
+}
+
+void CMouseWptBubble::mouseMoved(const QPoint &pos)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt)
+    {
+        wpt->mouseMove(pos);
+    }
+    else
+    {
+        canvas->resetMouse();
+    }
+}
+
+void CMouseWptBubble::mouseDragged(const QPoint& start, const QPoint &last, const QPoint&end)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt)
+    {
+        wpt->mouseDragged(start,last,end);
+    }
+    else
+    {
+        canvas->resetMouse();
+    }
+}
+
+void CMouseWptBubble::dragFinished(const QPoint& pos)
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    CGisItemWpt * wpt = dynamic_cast<CGisItemWpt*>(CGisWorkspace::self().getItemByKey(key));
+    if(wpt)
+    {
+        wpt->dragFinished(pos);
+    }
+    else
+    {
+        canvas->resetMouse();
+    }
+}
diff --git a/src/qmapshack/mouse/CMouseWptBubble.h b/src/qmapshack/mouse/CMouseWptBubble.h
new file mode 100644
index 0000000..97937ad
--- /dev/null
+++ b/src/qmapshack/mouse/CMouseWptBubble.h
@@ -0,0 +1,49 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CMOUSEWPTBUBBLE_H
+#define CMOUSEWPTBUBBLE_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IMouse.h"
+
+class CGisItemWpt;
+class CGisDraw;
+class CCanvas;
+
+class CMouseWptBubble : public IMouse
+{
+    Q_OBJECT
+public:
+    CMouseWptBubble(const IGisItem::key_t& key, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~CMouseWptBubble();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void leftClicked(const QPoint& pos) override;
+    void mouseMoved(const QPoint &pos) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end) override;
+    void dragFinished(const QPoint& pos) override;
+
+private:
+    const IGisItem::key_t& key;
+};
+
+#endif //CMOUSEWPTBUBBLE_H
+
diff --git a/src/mouse/CScrOptPrint.cpp b/src/qmapshack/mouse/CScrOptPrint.cpp
similarity index 100%
rename from src/mouse/CScrOptPrint.cpp
rename to src/qmapshack/mouse/CScrOptPrint.cpp
diff --git a/src/mouse/CScrOptPrint.h b/src/qmapshack/mouse/CScrOptPrint.h
similarity index 100%
rename from src/mouse/CScrOptPrint.h
rename to src/qmapshack/mouse/CScrOptPrint.h
diff --git a/src/mouse/CScrOptRangeTrk.cpp b/src/qmapshack/mouse/CScrOptRangeTrk.cpp
similarity index 100%
rename from src/mouse/CScrOptRangeTrk.cpp
rename to src/qmapshack/mouse/CScrOptRangeTrk.cpp
diff --git a/src/mouse/CScrOptRangeTrk.h b/src/qmapshack/mouse/CScrOptRangeTrk.h
similarity index 100%
rename from src/mouse/CScrOptRangeTrk.h
rename to src/qmapshack/mouse/CScrOptRangeTrk.h
diff --git a/src/qmapshack/mouse/CScrOptSelect.cpp b/src/qmapshack/mouse/CScrOptSelect.cpp
new file mode 100644
index 0000000..c7895a4
--- /dev/null
+++ b/src/qmapshack/mouse/CScrOptSelect.cpp
@@ -0,0 +1,143 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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 "canvas/CCanvas.h"
+#include "helpers/CSettings.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/CScrOptSelect.h"
+#include "mouse/IMouse.h"
+
+#include <QtWidgets>
+#include <functional>
+
+using std::bind;
+
+CScrOptSelect::CScrOptSelect(IMouse *mouse)
+    : IScrOpt(mouse)
+{
+    setupUi(this);
+    adjustSize();
+
+    SETTINGS;
+    cfg.beginGroup("Selection");
+    toolModeExact->setChecked(cfg.value("modeExact", toolModeExact->isChecked()).toBool());
+    toolModeIntersect->setChecked(cfg.value("modeIntersect", toolModeIntersect->isChecked()).toBool());
+    toolItemTrk->setChecked(cfg.value("itemTrk", toolItemTrk->isChecked()).toBool());
+    toolItemWpt->setChecked(cfg.value("itemWpt", toolItemWpt->isChecked()).toBool());
+    toolItemRte->setChecked(cfg.value("itemRte", toolItemRte->isChecked()).toBool());
+    toolItemOvl->setChecked(cfg.value("itemOvl", toolItemOvl->isChecked()).toBool());
+    cfg.endGroup(); //Selection
+
+    modeSelection |= toolModeExact->isChecked() ? IGisItem::eSelectionExact : 0;
+    modeSelection |= toolModeIntersect->isChecked() ? IGisItem::eSelectionIntersect : 0;
+    modeSelection |= toolItemTrk->isChecked() ? IGisItem::eSelectionTrk : 0;
+    modeSelection |= toolItemWpt->isChecked() ? IGisItem::eSelectionWpt : 0;
+    modeSelection |= toolItemRte->isChecked() ? IGisItem::eSelectionRte : 0;
+    modeSelection |= toolItemOvl->isChecked() ? IGisItem::eSelectionOvl : 0;
+
+    auto slotModeExact      = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionExact, std::placeholders::_1);
+    auto slotModeIntersect  = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionIntersect, std::placeholders::_1);
+    auto slotModeTrk        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionTrk, std::placeholders::_1);
+    auto slotModeWpt        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionWpt, std::placeholders::_1);
+    auto slotModeRte        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionRte, std::placeholders::_1);
+    auto slotModeOvl        = bind(&CScrOptSelect::slotModeSwitch, this, IGisItem::eSelectionOvl, std::placeholders::_1);
+
+    connect(toolModeExact,     &QToolButton::toggled, this, slotModeExact);
+    connect(toolModeIntersect, &QToolButton::toggled, this, slotModeIntersect);
+    connect(toolItemTrk,       &QToolButton::toggled, this, slotModeTrk);
+    connect(toolItemWpt,       &QToolButton::toggled, this, slotModeWpt);
+    connect(toolItemRte,       &QToolButton::toggled, this, slotModeRte);
+    connect(toolItemOvl,       &QToolButton::toggled, this, slotModeOvl);
+}
+
+CScrOptSelect::~CScrOptSelect()
+{
+    SETTINGS;
+    cfg.beginGroup("Selection");
+    cfg.setValue("modeExact", toolModeExact->isChecked());
+    cfg.setValue("modeIntersect", toolModeIntersect->isChecked());
+    cfg.setValue("itemTrk", toolItemTrk->isChecked());
+    cfg.setValue("itemWpt", toolItemWpt->isChecked());
+    cfg.setValue("itemRte", toolItemRte->isChecked());
+    cfg.setValue("itemOvl", toolItemOvl->isChecked());
+    cfg.endGroup(); //Selection
+
+    mouse->getCanvas()->reportStatus("CScrOptSelect","");
+}
+
+void CScrOptSelect::slotModeSwitch(IGisItem::selection_e mode, bool checked)
+{
+    CCanvas * canvas = mouse->getCanvas();
+
+    if(checked)
+    {
+        modeSelection |= mode;
+
+        switch(mode)
+        {
+        case IGisItem::eSelectionExact:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Exact Mode</b><br/>All selected items have to be completely inside the selected area.<br/>"));
+            break;
+
+        case IGisItem::eSelectionIntersect:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Intersecting Mode</b><br/>All selected items have to be inside or at least intersect the selected area.<br/>"));
+            break;
+
+        case IGisItem::eSelectionTrk:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Add Tracks</b><br/>Add tracks to list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionWpt:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Add Waypoints</b><br/>Add waypoints to list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionRte:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Add Routes</b><br/>Add routes to list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionOvl:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Add Areas</b><br/>Add areas to list of selected items<br/>"));
+            break;
+        }
+    }
+    else
+    {
+        modeSelection &= ~mode;
+
+        switch(mode)
+        {
+        case IGisItem::eSelectionTrk:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Tracks</b><br/>Ignore tracks in list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionWpt:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Waypoints</b><br/>Ignore waypoints in list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionRte:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Routes</b><br/>Ignore routes in list of selected items<br/>"));
+            break;
+
+        case IGisItem::eSelectionOvl:
+            canvas->reportStatus("CScrOptSelect", tr("<b>Ignore Areas</b><br/>Ignore areas in list of selected items<br/>"));
+            break;
+        }
+    }
+
+    canvas->update();
+}
diff --git a/src/qmapshack/mouse/CScrOptSelect.h b/src/qmapshack/mouse/CScrOptSelect.h
new file mode 100644
index 0000000..7d9096a
--- /dev/null
+++ b/src/qmapshack/mouse/CScrOptSelect.h
@@ -0,0 +1,52 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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/>.
+
+**********************************************************************************************/
+
+#ifndef CSCROPTSELECT_H
+#define CSCROPTSELECT_H
+
+
+#include "gis/IGisItem.h"
+#include "mouse/IScrOpt.h"
+#include "ui_IScrOptSelect.h"
+
+class CScrOptSelect : public IScrOpt, public Ui::IScrOptSelect
+{
+    Q_OBJECT
+public:
+    CScrOptSelect(IMouse *mouse);
+    virtual ~CScrOptSelect();
+
+    void draw(QPainter& p) override
+    {
+    }
+
+    IGisItem::selflags_t getModeSelection() const
+    {
+        return modeSelection;
+    }
+
+private slots:
+    void slotModeSwitch(IGisItem::selection_e mode, bool checked);
+
+
+private:
+    IGisItem::selflags_t modeSelection = IGisItem::eSelectionNone;
+};
+
+#endif //CSCROPTSELECT_H
+
diff --git a/src/qmapshack/mouse/CScrOptUnclutter.cpp b/src/qmapshack/mouse/CScrOptUnclutter.cpp
new file mode 100644
index 0000000..5295242
--- /dev/null
+++ b/src/qmapshack/mouse/CScrOptUnclutter.cpp
@@ -0,0 +1,214 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "gis/IGisItem.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "helpers/CDraw.h"
+#include "mouse/CScrOptUnclutter.h"
+
+#include <QtWidgets>
+
+const QPoint CScrOptUnclutter::positions[9][8] =
+{
+    {
+    },
+
+    {
+        QPoint(-50,-23)
+    },
+
+    {
+        QPoint(-30,0)
+        , QPoint( 30,0)
+    },
+
+    {
+        QPoint(  0,-30)
+        , QPoint( 30, 30)
+        , QPoint(-30, 30)
+    },
+
+    {
+        QPoint(-30,-30)
+        , QPoint( 30,-30)
+        , QPoint(-30, 30)
+        , QPoint( 30, 30)
+    },
+
+    {
+        QPoint(-25, 40)
+        , QPoint( 25, 40)
+        , QPoint(-40, -5)
+        , QPoint( 40, -5)
+        , QPoint(  0,-40)
+    },
+
+    {
+        QPoint(-40,-22)
+        , QPoint( 40,-22)
+        , QPoint(-40, 22)
+        , QPoint( 40, 22)
+        , QPoint(  0,-55)
+        , QPoint(  0, 55)
+    },
+
+    {
+        QPoint(-50,-23)
+        , QPoint( 50,-23)
+        , QPoint(-45, 21)
+        , QPoint( 45, 21)
+        , QPoint(-22,-55)
+        , QPoint( 22,-55)
+        , QPoint(  0, 50)
+    },
+
+    {
+        QPoint(-50,-23)
+        , QPoint( 50,-23)
+        , QPoint(-50, 23)
+        , QPoint( 50, 23)
+        , QPoint(-22,-55)
+        , QPoint( 22,-55)
+        , QPoint(-22, 55)
+        , QPoint( 22, 55)
+    }
+};
+
+
+CScrOptUnclutter::CScrOptUnclutter(IMouse *mouse)
+    : IScrOpt(mouse)
+{
+}
+
+CScrOptUnclutter::~CScrOptUnclutter()
+{
+}
+
+void CScrOptUnclutter::clear()
+{
+    if(doSpecialCursor)
+    {
+        CCanvas::restoreOverrideCursor("CScrOptUnclutter::clear()");
+        doSpecialCursor = false;
+    }
+    items.clear();
+}
+
+void CScrOptUnclutter::mouseMove(const QPoint& pos)
+{
+    IScrOpt::mouseMove(pos);
+
+    for(const item_t &item : items)
+    {
+        if(item.active.contains(mousePos) || item.text.contains(mousePos))
+        {
+            if(!doSpecialCursor)
+            {
+                CCanvas::setOverrideCursor(Qt::PointingHandCursor,"CScrOptUnclutter::mouseMoveEvent");
+                doSpecialCursor = true;
+            }
+            return;
+        }
+    }
+
+    if(doSpecialCursor)
+    {
+        CCanvas::restoreOverrideCursor("CScrOptUnclutter::mouseMoveEvent");
+        doSpecialCursor = false;
+        return;
+    }
+}
+
+void CScrOptUnclutter::addItem(IGisItem * gisItem)
+{
+    items << item_t();
+    item_t& item        = items.last();
+    item.hasUserFocus   = gisItem->hasUserFocus();
+    item.name           = gisItem->getNameEx();
+    item.key            = gisItem->getKey();
+    item.icon           = gisItem->getDisplayIcon();
+    item.area           = item.icon.rect();
+    item.active         = item.area.adjusted(-10,-10,10,10);
+}
+
+IGisItem::key_t CScrOptUnclutter::getItemKey(int index)
+{
+    if(index < items.size())
+    {
+        return items[index].key;
+    }
+    return IGisItem::key_t();
+}
+
+
+const CScrOptUnclutter::item_t * CScrOptUnclutter::selectItem(const QPoint& point)
+{
+    for(const item_t &item : items)
+    {
+        if(item.active.contains(point) || item.text.contains(point))
+        {
+            return &item;
+        }
+    }
+    return nullptr;
+}
+
+void CScrOptUnclutter::draw(QPainter& p)
+{
+    const int N = items.size();
+    QFontMetrics fm(CMainWindow::self().getMapFont());
+    for(int cnt = 0; cnt < N; cnt++)
+    {
+        item_t& item = items[cnt];
+
+        if(item.text.isNull())
+        {
+            item.area.moveCenter(origin + positions[N][cnt]);
+            item.active.moveCenter(item.area.center());
+            item.text = fm.boundingRect(item.name);
+            if(cnt & 0x01)
+            {
+                item.text.moveTopLeft(item.area.topRight() + QPoint( 17, fm.height()/2));
+            }
+            else
+            {
+                item.text.moveTopRight(item.area.topLeft() + QPoint(-17, fm.height()/2));
+            }
+            item.text.adjust(-4, -3, 4, 3);
+        }
+    }
+
+    for(const item_t &item : items)
+    {
+        p.setPen(Qt::NoPen);
+        p.setBrush(QColor(255,255,255,255));
+        p.drawEllipse(item.area.center(), 20,20);
+        p.drawRoundedRect(item.text, RECT_RADIUS, RECT_RADIUS);
+
+        p.setPen(QPen(item.hasUserFocus ? Qt::red : Qt::lightGray,2));
+        p.setBrush(Qt::NoBrush);
+        p.drawRoundedRect(item.text, RECT_RADIUS, RECT_RADIUS);
+        p.drawEllipse(item.area.center(), 18,18);
+
+        p.drawPixmap(item.area, item.icon);
+        CDraw::text(item.name, p, item.text, Qt::darkBlue);
+    }
+}
+
diff --git a/src/qmapshack/mouse/CScrOptUnclutter.h b/src/qmapshack/mouse/CScrOptUnclutter.h
new file mode 100644
index 0000000..c56e4fa
--- /dev/null
+++ b/src/qmapshack/mouse/CScrOptUnclutter.h
@@ -0,0 +1,63 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CSCROPTUNCLUTTER_H
+#define CSCROPTUNCLUTTER_H
+
+#include "gis/IGisItem.h"
+#include "mouse/IScrOpt.h"
+
+
+class CScrOptUnclutter : public IScrOpt
+{
+public:
+    CScrOptUnclutter(IMouse *mouse);
+    virtual ~CScrOptUnclutter();
+
+    struct item_t
+    {
+        bool hasUserFocus;
+        QString name;
+        IGisItem::key_t key;
+        QPixmap icon;
+        QRect area;
+        QRect text;
+        QRect active;
+    };
+
+    virtual void clear();
+    virtual int  size()
+    {
+        return items.size();
+    }
+
+    void addItem(IGisItem * gisItem);
+    IGisItem::key_t getItemKey(int index = 0);
+    const item_t *selectItem(const QPoint& point);
+
+    void draw(QPainter& p) override;
+    void mouseMove(const QPoint& pos) override;
+
+private:
+    static const QPoint positions[9][8];
+    QList<item_t> items;
+    bool doSpecialCursor = false;
+};
+
+#endif //CSCROPTUNCLUTTER_H
+
diff --git a/src/qmapshack/mouse/IMouse.cpp b/src/qmapshack/mouse/IMouse.cpp
new file mode 100644
index 0000000..5b4c736
--- /dev/null
+++ b/src/qmapshack/mouse/IMouse.cpp
@@ -0,0 +1,50 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/IMouse.h"
+
+IMouse::IMouse(CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse)
+    : QObject(mouse),
+    canvas(canvas),
+    gis(gis),
+    mouse(mouse)
+{
+}
+
+IMouse::~IMouse()
+{
+}
+
+void IMouse::mouseDragged(const QPoint &start, const QPoint &last, const QPoint &end)
+{
+    canvas->moveMap(end-last);
+}
+
+void IMouse::rightButtonDown(const QPoint &pos)
+{
+    canvas->resetMouse();
+    canvas->update();
+}
+
+void IMouse::startMouseMove(const QPoint &pos)
+{
+    mouse->startMouseMove(pos);
+}
diff --git a/src/qmapshack/mouse/IMouse.h b/src/qmapshack/mouse/IMouse.h
new file mode 100644
index 0000000..75cbd80
--- /dev/null
+++ b/src/qmapshack/mouse/IMouse.h
@@ -0,0 +1,79 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef IMOUSE_H
+#define IMOUSE_H
+
+#include "canvas/CCanvas.h"
+#include <QObject>
+#include <QPoint>
+
+class CGisDraw;
+class QPainter;
+class CMouseAdapter;
+
+class IMouse : public QObject
+{
+    Q_OBJECT
+public:
+    explicit IMouse(CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse);
+    virtual ~IMouse();
+
+    virtual void leftClicked(const QPoint& pos) {}
+    virtual void longPress(const QPoint& pos) {}
+    virtual void mouseMoved(const QPoint& pos) {}
+    virtual void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end);
+    virtual void leftButtonDown(const QPoint& pos) {}
+    virtual void rightButtonDown(const QPoint& pos);
+    virtual void doubleClicked(const QPoint& pos) {}
+    virtual void dragFinished(const QPoint& pos) {}
+    virtual void scaleChanged() {}
+    virtual void abortStep() {}
+
+    virtual void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) = 0;
+
+protected:
+    CCanvas * canvas;
+    CGisDraw * gis;
+    CMouseAdapter * mouse;
+
+public:
+    /// the current mouse cursor
+    /**
+        Each mouse function is represented by a special cursor. The main
+        widget uses this method to query the current cursor.
+     */
+    operator const QCursor&() const
+    {
+        return cursor;
+    }
+
+    CCanvas * getCanvas() const
+    {
+        return canvas;
+    }
+
+    void startMouseMove(const QPoint& pos);
+
+protected:
+    /// the functions mouse icon
+    QCursor cursor;
+};
+
+#endif // IMOUSE_H
diff --git a/src/qmapshack/mouse/IMouseSelect.cpp b/src/qmapshack/mouse/IMouseSelect.cpp
new file mode 100644
index 0000000..275db94
--- /dev/null
+++ b/src/qmapshack/mouse/IMouseSelect.cpp
@@ -0,0 +1,288 @@
+/**********************************************************************************************
+    Copyright (C) 2016 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "gis/CGisDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/IMouseSelect.h"
+#include "mouse/IScrOpt.h"
+
+#include <QtWidgets>
+
+IMouseSelect::IMouseSelect(CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+{
+}
+
+IMouseSelect::~IMouseSelect()
+{
+    canvas->reportStatus("IMouseSelect", "");
+    delete scrOpt;
+}
+
+void IMouseSelect::rectRad2Px(const QRectF& rectSrc, QRectF& rectTar) const
+{
+    QPointF pt1 = rectSrc.topLeft();
+    QPointF pt2 = rectSrc.bottomRight();
+
+    gis->convertRad2Px(pt1);
+    gis->convertRad2Px(pt2);
+
+    rectTar = QRectF(pt1,pt2);
+}
+
+void IMouseSelect::placeScrOpt()
+{
+    if(scrOpt.isNull())
+    {
+        return;
+    }
+
+    if((state == eStateMap) || (state == eStateMapMoving))
+    {
+        QRectF rectSel;
+        rectRad2Px(rectSelection, rectSel);
+        scrOpt->move(rectSel.topRight().toPoint());
+        scrOpt->show();
+    }
+    else
+    {
+        scrOpt->hide();
+    }
+}
+
+
+void IMouseSelect::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
+{
+    if(rectSelection.isNull())
+    {
+        return;
+    }
+
+    QRectF rectSel;
+    rectRad2Px(rectSelection, rectSel);
+
+    QRectF rectScr = canvas->rect();
+
+    rectTopLeft.moveTopLeft(rectSel.topLeft());
+    rectTopRight.moveTopRight(rectSel.topRight());
+    rectBottomLeft.moveBottomLeft(rectSel.bottomLeft());
+    rectBottomRight.moveBottomRight(rectSel.bottomRight());
+
+
+    QPainterPath path;
+    path.addRect(rectScr);
+    path.addRect(rectSel);
+
+    p.setPen(Qt::black);
+    p.setBrush(QColor(0,0,0,128));
+    p.drawPath(path);
+
+    p.setBrush(Qt::lightGray);
+    p.drawRect(rectTopLeft);
+    p.drawRect(rectTopRight);
+    p.drawRect(rectBottomLeft);
+    p.drawRect(rectBottomRight);
+
+    p.setBrush(Qt::red);
+    switch(corner)
+    {
+    case eCornerTopLeft:
+        p.drawRect(rectTopLeft);
+        break;
+
+    case eCornerTopRight:
+        p.drawRect(rectTopRight);
+        break;
+
+    case eCornerBottomLeft:
+        p.drawRect(rectBottomLeft);
+        break;
+
+    case eCornerBottomRight:
+        p.drawRect(rectBottomRight);
+        break;
+    }
+
+    placeScrOpt();
+}
+
+void IMouseSelect::leftButtonDown(const QPoint& point)
+{
+    canvas->reportStatus("IMouseSelect", "");
+    canvas->update();
+}
+
+void IMouseSelect::mouseDragged(const QPoint& start, const QPoint& last, const QPoint &end)
+{
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        QPointF pos(start);
+        gis->convertPx2Rad(pos);
+        rectSelection.setTopLeft(pos);
+        rectSelection.setBottomRight(pos);
+        posInitial = pos;
+        state = eStateInitial;
+        break;
+    }
+
+    case eStateMap:
+    {
+        if(corner != eCornerNone)
+        {
+            state = eStateResize;
+        }
+        else
+        {
+            state = eStateMapMoving;
+        }
+        break;
+    }
+
+    case eStateInitial:
+    {
+        QPointF pos(end);
+        gis->convertPx2Rad(pos);
+
+        if(pos.x() < posInitial.x())
+        {
+            rectSelection.setLeft(pos.x());
+        }
+        else
+        {
+            rectSelection.setRight(pos.x());
+        }
+
+        if(pos.y() < posInitial.y())
+        {
+            rectSelection.setBottom(pos.y());
+        }
+        else
+        {
+            rectSelection.setTop(pos.y());
+        }
+
+        canvas->update();
+        break;
+    }
+
+    case eStateResize:
+    {
+        QPointF pos = end - offset;
+        gis->convertPx2Rad(pos);
+        switch(corner)
+        {
+        case eCornerTopLeft:
+            rectSelection.setTopLeft(pos);
+            break;
+
+        case eCornerTopRight:
+            rectSelection.setTopRight(pos);
+            break;
+
+        case eCornerBottomLeft:
+            rectSelection.setBottomLeft(pos);
+            break;
+
+        case eCornerBottomRight:
+            rectSelection.setBottomRight(pos);
+            break;
+        }
+
+        canvas->update();
+        break;
+    }
+
+    case eStateMapMoving:
+    {
+        IMouse::mouseDragged(start, last, end);
+        break;
+    }
+
+    default:
+    {
+        Q_ASSERT(false);
+    }
+    }
+}
+
+void IMouseSelect::mouseMoved(const QPoint &pos)
+{
+    switch(state)
+    {
+    case eStateMap:
+    {
+        corner_e _corner = corner;
+        if(rectTopLeft.contains(pos))
+        {
+            offset = pos - rectTopLeft.topLeft();
+            corner = eCornerTopLeft;
+        }
+        else if(rectTopRight.contains(pos))
+        {
+            offset = pos - rectTopRight.topRight();
+            corner = eCornerTopRight;
+        }
+        else if(rectBottomLeft.contains(pos))
+        {
+            offset = pos - rectBottomLeft.bottomLeft();
+            corner = eCornerBottomLeft;
+        }
+        else if(rectBottomRight.contains(pos))
+        {
+            offset = pos - rectBottomRight.bottomRight();
+            corner = eCornerBottomRight;
+        }
+        else
+        {
+            corner = eCornerNone;
+        }
+
+        if(corner != _corner)
+        {
+            canvas->update();
+        }
+        break;
+    }
+    }
+}
+
+void IMouseSelect::dragFinished(const QPoint& pos)
+{
+    if(!rectSelection.isNull())
+    {
+        QPointF pt1 = rectSelection.topLeft();
+        QPointF pt2 = rectSelection.bottomRight();
+
+        gis->convertRad2Px(pt1);
+        gis->convertRad2Px(pt2);
+
+        QRectF rectSel(pt1,pt2);
+
+        if(rectSel.width() < 40 || rectSel.height() < 40)
+        {
+            rectSelection = QRectF();
+        }
+    }
+
+    state = rectSelection.isNull() ? eStateIdle : eStateMap;
+
+    canvas->update();
+}
diff --git a/src/qmapshack/mouse/IMouseSelect.h b/src/qmapshack/mouse/IMouseSelect.h
new file mode 100644
index 0000000..6192fbe
--- /dev/null
+++ b/src/qmapshack/mouse/IMouseSelect.h
@@ -0,0 +1,83 @@
+/**********************************************************************************************
+    Copyright (C) 2016 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef IMOUSESELECT_H
+#define IMOUSESELECT_H
+
+#include "canvas/CCanvas.h"
+#include "mouse/IMouse.h"
+
+class CGisDraw;
+
+class IMouseSelect : public IMouse
+{
+    Q_OBJECT
+public:
+    IMouseSelect(CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~IMouseSelect();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void mouseMoved(const QPoint& pos) override;
+    void mouseDragged(const QPoint& start, const QPoint& last, const QPoint& end) override;
+    void leftButtonDown(const QPoint &pos) override;
+    void dragFinished(const QPoint& pos) override;
+
+protected:
+    void rectRad2Px(const QRectF& rectSrc, QRectF& rectTar) const;
+    void placeScrOpt();
+
+    QPointF offset;
+    QPointF posInitial;
+
+    QRectF rectSelection;
+    QRectF rectTopLeft     {0, 0, 20, 20};
+    QRectF rectTopRight    {0, 0, 20, 20};
+    QRectF rectBottomLeft  {0, 0, 20, 20};
+    QRectF rectBottomRight {0, 0, 20, 20};
+
+    enum state_e
+    {
+        eStateIdle
+        ,eStateInitial
+        ,eStateMap
+        ,eStateMapMoving
+        ,eStateResize
+    };
+
+    state_e state = eStateIdle;
+
+    enum corner_e
+    {
+        eCornerNone
+        , eCornerTopLeft
+        , eCornerTopRight
+        , eCornerBottomLeft
+        , eCornerBottomRight
+        , eCornerPrint
+        , eCornerImage
+    };
+
+    corner_e corner = eCornerNone;
+
+    QPointer<IScrOpt> scrOpt;
+};
+
+#endif //IMOUSESELECT_H
+
diff --git a/src/qmapshack/mouse/IScrOpt.cpp b/src/qmapshack/mouse/IScrOpt.cpp
new file mode 100644
index 0000000..e5ae2c0
--- /dev/null
+++ b/src/qmapshack/mouse/IScrOpt.cpp
@@ -0,0 +1,63 @@
+/**********************************************************************************************
+    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 "gis/CGisWorkspace.h"
+#include "helpers/CDraw.h"
+#include "mouse/IMouse.h"
+#include "mouse/IScrOpt.h"
+#include "units/IUnit.h"
+#include <QtWidgets>
+
+
+IScrOpt::IScrOpt(IMouse *mouse)
+    : QWidget(mouse->getCanvas())
+    , mouse(mouse)
+{
+    setAttribute(Qt::WA_DeleteOnClose);
+    setFocusPolicy(Qt::WheelFocus);
+}
+
+IScrOpt::~IScrOpt()
+{
+    if(hasFocus() && !mouse.isNull())
+    {
+        CCanvas::setOverrideCursor(*mouse,"IScrOpt::~IScrOpt");
+    }
+    CGisWorkspace::self().slotWksItemSelectionReset();
+}
+
+void IScrOpt::mouseMove(const QPoint& pos)
+{
+    mousePos = pos;
+}
+
+void IScrOpt::enterEvent(QEvent * e)
+{
+    QWidget::enterEvent(e);
+    CCanvas::restoreOverrideCursor("IScrOpt::enterEvent");
+}
+
+void IScrOpt::leaveEvent(QEvent * e)
+{
+    QWidget::leaveEvent(e);
+    if(!mouse.isNull())
+    {
+        CCanvas::setOverrideCursor(*mouse,"IScrOpt::leaveEvent");
+    }
+}
+
diff --git a/src/qmapshack/mouse/IScrOpt.h b/src/qmapshack/mouse/IScrOpt.h
new file mode 100644
index 0000000..46d97fd
--- /dev/null
+++ b/src/qmapshack/mouse/IScrOpt.h
@@ -0,0 +1,62 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef ISCROPT_H
+#define ISCROPT_H
+
+#include <QPixmap>
+#include <QPointer>
+#include <QRect>
+#include <QWidget>
+
+class QMouseEvent;
+class IMouse;
+
+#define SCR_OPT_OFFSET 15
+
+class IScrOpt : public QWidget
+{
+public:
+    IScrOpt(IMouse *mouse);
+    virtual ~IScrOpt();
+
+    void setOrigin(const QPoint& pos)
+    {
+        origin = pos;
+    }
+
+    const QPoint& getOrigin() const
+    {
+        return origin;
+    }
+
+    virtual void draw(QPainter& p) = 0;
+    virtual void mouseMove(const QPoint& pos);
+
+protected:
+    void enterEvent(QEvent *e) override;
+    void leaveEvent(QEvent *e) override;
+
+    QPoint origin;
+    QPoint mousePos;
+
+    QPointer<IMouse> mouse;
+};
+
+#endif //ISCROPT_H
+
diff --git a/src/mouse/IScrOptPrint.ui b/src/qmapshack/mouse/IScrOptPrint.ui
similarity index 100%
rename from src/mouse/IScrOptPrint.ui
rename to src/qmapshack/mouse/IScrOptPrint.ui
diff --git a/src/mouse/IScrOptRangeTrk.ui b/src/qmapshack/mouse/IScrOptRangeTrk.ui
similarity index 100%
rename from src/mouse/IScrOptRangeTrk.ui
rename to src/qmapshack/mouse/IScrOptRangeTrk.ui
diff --git a/src/qmapshack/mouse/IScrOptSelect.ui b/src/qmapshack/mouse/IScrOptSelect.ui
new file mode 100644
index 0000000..fa356b9
--- /dev/null
+++ b/src/qmapshack/mouse/IScrOptSelect.ui
@@ -0,0 +1,358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IScrOptSelect</class>
+ <widget class="QWidget" name="IScrOptSelect">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>31</width>
+    <height>319</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frameFunction">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <property name="spacing">
+       <number>0</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QToolButton" name="toolCopy">
+        <property name="toolTip">
+         <string>Copy all selected items to a project.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Copy.png</normaloff>:/icons/32x32/Copy.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolRoute">
+        <property name="toolTip">
+         <string>Create a route from selected waypoints.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Route.png</normaloff>:/icons/32x32/Route.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolSymWpt">
+        <property name="toolTip">
+         <string>Change the icon of all selected waypoints.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/waypoints/32x32/PinBlue.png</normaloff>:/icons/waypoints/32x32/PinBlue.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolCombineTrk">
+        <property name="toolTip">
+         <string>Combine all selected tracks to a new one.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Combine.png</normaloff>:/icons/32x32/Combine.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolActivityTrk">
+        <property name="toolTip">
+         <string>Set an activity for all selected tracks.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Activity.png</normaloff>:/icons/32x32/Activity.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolColorTrk">
+        <property name="toolTip">
+         <string>Change the color of all selected tracks.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/SelectColor.png</normaloff>:/icons/32x32/SelectColor.png</iconset>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolDelete">
+        <property name="toolTip">
+         <string>Delete all selected items.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QFrame" name="frameMode">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_3">
+      <property name="spacing">
+       <number>0</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QToolButton" name="toolModeIntersect">
+        <property name="toolTip">
+         <string>Select all items that intersect the selected area.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/SelectIntersectArea.png</normaloff>:/icons/32x32/SelectIntersectArea.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+        <property name="autoExclusive">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolModeExact">
+        <property name="toolTip">
+         <string>Select all items that are completely inside the selected area.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/SelectExactArea.png</normaloff>:/icons/32x32/SelectExactArea.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="autoExclusive">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QFrame" name="frameItem">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_4">
+      <property name="spacing">
+       <number>0</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QToolButton" name="toolItemTrk">
+        <property name="toolTip">
+         <string>Add tracks to selection.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Track.png</normaloff>
+          <normalon>:/icons/32x32/TrackOn.png</normalon>:/icons/32x32/Track.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolItemWpt">
+        <property name="toolTip">
+         <string>Add waypoints to selection.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/waypoints/32x32/FlagBlue.png</normaloff>
+          <normalon>:/icons/32x32/WaypointOn.png</normalon>:/icons/waypoints/32x32/FlagBlue.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolItemRte">
+        <property name="toolTip">
+         <string>Add routes to selection.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Route.png</normaloff>
+          <normalon>:/icons/32x32/RouteOn.png</normalon>:/icons/32x32/Route.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QToolButton" name="toolItemOvl">
+        <property name="toolTip">
+         <string>Add areas to selection.</string>
+        </property>
+        <property name="text">
+         <string>...</string>
+        </property>
+        <property name="icon">
+         <iconset resource="../resources.qrc">
+          <normaloff>:/icons/32x32/Area.png</normaloff>
+          <normalon>:/icons/32x32/AreaOn.png</normalon>:/icons/32x32/Area.png</iconset>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
+        </property>
+        <property name="checked">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/mouse/line/CLineOpAddPoint.cpp b/src/qmapshack/mouse/line/CLineOpAddPoint.cpp
new file mode 100644
index 0000000..eb77fe6
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpAddPoint.cpp
@@ -0,0 +1,246 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/line/CLineOpAddPoint.h"
+#include "mouse/line/IMouseEditLine.h"
+
+#include <QtWidgets>
+
+CLineOpAddPoint::CLineOpAddPoint(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
+    : ILineOp(points, gis, canvas, parent)
+{
+    cursor = QCursor(QPixmap(":/cursors/cursorPointAdd.png"), 0, 0);
+}
+
+CLineOpAddPoint::~CLineOpAddPoint()
+{
+}
+
+void CLineOpAddPoint::append()
+{
+    // this is called on construction when creating a complete new line
+    // A new point is appended to what ever line already exists,
+    // and add point mode is entered immediately.
+    idxFocus = points.size();
+    points.insert(idxFocus, IGisLine::point_t(points.last()));
+    addPoint = true;
+    isPoint  = true;
+    // make sure that when starting the line-edit on-the-fly-routing will
+    // not trigger before the mouse has been moved a bit away from last point of line
+    startMouseMove(points.last().pixel);
+}
+
+bool CLineOpAddPoint::abortStep()
+{
+    if(addPoint)
+    {
+        // cancel action and restore last state of line
+        cancelDelayedRouting();
+        parentHandler->restoreFromHistory(points);
+
+        addPoint = false;
+        idxFocus = NOIDX;
+
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+
+        return true;
+    }
+    return false;
+}
+
+void CLineOpAddPoint::leftClick(const QPoint& pos)
+{
+    if(addPoint)
+    {
+        // drop the new point at current position
+        // update subpoints of previous and this point
+        slotTimeoutRouting();
+
+        // if isPoint is true the line has been appended/prepended
+        // in this case go on with adding another point
+        if(isPoint)
+        {
+            if(idxFocus == (points.size() - 1))
+            {
+                idxFocus++;
+            }
+
+            // store current state of line to undo/redo history
+            parentHandler->storeToHistory(points);
+
+            QPointF coord = pos;
+            gis->convertPx2Rad(coord);
+            points.insert(idxFocus, IGisLine::point_t(coord));
+        }
+        else
+        {
+            // store current state of line to undo/redo history
+            parentHandler->storeToHistory(points);
+            // terminate operation if the new point was inbetween a line segment.
+            addPoint = false;
+            idxFocus = NOIDX;
+        }
+    }
+    else if(isPoint)
+    {
+        // as isPoint is set, add a new point either at the start or end of the line
+        if(idxFocus == (points.size() - 1))
+        {
+            idxFocus++;
+        }
+
+        QPointF coord = pos;
+        gis->convertPx2Rad(coord);
+        points.insert(idxFocus, IGisLine::point_t(coord));
+
+        addPoint = true;
+    }
+    else if(idxFocus != NOIDX)
+    {
+        // clear current line segment
+        points[idxFocus].subpts.clear();
+
+        // add a new point to line segment
+        QPointF coord = pos;
+        gis->convertPx2Rad(coord);
+
+        idxFocus++;
+        points.insert(idxFocus, IGisLine::point_t(coord));
+
+        addPoint = true;
+    }
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpAddPoint::mouseMove(const QPoint& pos)
+{
+    ILineOp::mouseMove(pos);
+    if(addPoint)
+    {
+        QPointF coord = pos;
+        gis->convertPx2Rad(coord);
+
+        IGisLine::point_t& pt = points[idxFocus];
+        // update position of point
+        pt.coord = coord;
+
+        // clear subpoints, as they have to be recalculated
+        // by the routing, if any
+        pt.subpts.clear();
+        if(idxFocus > 0)
+        {
+            points[idxFocus - 1].subpts.clear();
+        }
+
+        // retrigger delayed routing
+        startDelayedRouting();
+    }
+    else
+    {
+        isPoint  = false;
+        // find line segment close to cursor
+        idxFocus = isCloseToLine(pos);
+        // if none is found try to find point
+        if(idxFocus == NOIDX)
+        {
+            // if no line segment is found but a point
+            // it is either first or the last point in the line
+            idxFocus = isCloseTo(pos);
+
+            if((idxFocus == 0) || (idxFocus == (points.size() - 1)))
+            {
+                isPoint = true;
+            }
+        }
+    }
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpAddPoint::rightButtonDown(const QPoint &pos)
+{
+    abortStep();
+    idxFocus = NOIDX;
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpAddPoint::drawFg(QPainter& p)
+{
+    if(idxFocus == NOIDX)
+    {
+        return;
+    }
+
+    if(addPoint)
+    {
+        const IGisLine::point_t& pt = points[idxFocus];
+        drawSinglePointSmall(pt.pixel, p);
+    }
+    else if(isPoint)
+    {
+        const IGisLine::point_t& pt = points[idxFocus];
+        drawSinglePointLarge(pt.pixel, p);
+    }
+    else if(idxFocus < (points.size() - 1))
+    {
+        QPolygonF line;
+        const IGisLine::point_t& pt1 = points[idxFocus];
+        const IGisLine::point_t& pt2 = points[idxFocus + 1];
+
+        if(pt1.subpts.isEmpty())
+        {
+            line << pt1.pixel << pt2.pixel;
+        }
+        else
+        {
+            line << pt1.pixel;
+            for(const IGisLine::subpt_t& pt : pt1.subpts)
+            {
+                line << pt.pixel;
+            }
+            line << pt2.pixel;
+        }
+
+        p.setPen(penBgPoint);
+        p.setBrush(brushBgPoint);
+
+        rectPoint.moveCenter(pt1.pixel.toPoint());
+        p.drawRect(rectPoint);
+        rectPoint.moveCenter(pt2.pixel.toPoint());
+        p.drawRect(rectPoint);
+
+        p.setPen(QPen(Qt::white, 7, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+        p.drawPolyline(line);
+
+
+        p.setPen(penFgPoint);
+        p.setBrush(brushFgPoint);
+
+        rectPoint.moveCenter(pt1.pixel.toPoint());
+        p.drawRect(rectPoint);
+        rectPoint.moveCenter(pt2.pixel.toPoint());
+        p.drawRect(rectPoint);
+
+        p.setPen(QPen(Qt::red, 5, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+        p.drawPolyline(line);
+    }
+}
+
diff --git a/src/qmapshack/mouse/line/CLineOpAddPoint.h b/src/qmapshack/mouse/line/CLineOpAddPoint.h
new file mode 100644
index 0000000..af4858d
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpAddPoint.h
@@ -0,0 +1,47 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CLINEOPADDPOINT_H
+#define CLINEOPADDPOINT_H
+
+#include "mouse/line/ILineOp.h"
+
+class CLineOpAddPoint : public ILineOp
+{
+public:
+    CLineOpAddPoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
+    virtual ~CLineOpAddPoint();
+
+    void leftClick(const QPoint& pos) override;
+    void mouseMove(const QPoint& pos) override;
+    void rightButtonDown(const QPoint &pos) override;
+
+    void drawFg(QPainter& p) override;
+
+    void append();
+
+    bool abortStep() override;
+
+private:
+    bool addPoint = false;
+    bool isPoint = false;
+};
+
+#endif //CLINEOPADDPOINT_H
+
diff --git a/src/qmapshack/mouse/line/CLineOpDeletePoint.cpp b/src/qmapshack/mouse/line/CLineOpDeletePoint.cpp
new file mode 100644
index 0000000..87b0aeb
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpDeletePoint.cpp
@@ -0,0 +1,73 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "mouse/line/CLineOpDeletePoint.h"
+#include "mouse/line/IMouseEditLine.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+
+CLineOpDeletePoint::CLineOpDeletePoint(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
+    : ILineOp(points, gis, canvas, parent)
+{
+    cursor  = QCursor(QPixmap(":/cursors/cursorPointDel.png"), 0, 0);
+}
+
+CLineOpDeletePoint::~CLineOpDeletePoint()
+{
+}
+
+void CLineOpDeletePoint::mouseMove(const QPoint &pos)
+{
+    ILineOp::mouseMove(pos);
+    idxFocus = isCloseTo(pos);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpDeletePoint::leftClick(const QPoint &pos)
+{
+    if(idxFocus != NOIDX)
+    {
+        if(idxFocus > 0)
+        {
+            points[idxFocus - 1].subpts.clear();
+        }
+
+        points.remove(idxFocus--);
+        updateLeadLines(idxFocus);
+
+        slotTimeoutRouting();
+
+        // store to undo/redo history
+        parentHandler->storeToHistory(points);
+    }
+    idxFocus = NOIDX;
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpDeletePoint::drawFg(QPainter& p)
+{
+    if(idxFocus == NOIDX)
+    {
+        return;
+    }
+
+    drawSinglePointLarge(points[idxFocus].pixel, p);
+}
diff --git a/src/qmapshack/mouse/line/CLineOpDeletePoint.h b/src/qmapshack/mouse/line/CLineOpDeletePoint.h
new file mode 100644
index 0000000..fbdeb55
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpDeletePoint.h
@@ -0,0 +1,38 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CLINEOPDELETEPOINT_H
+#define CLINEOPDELETEPOINT_H
+
+#include "mouse/line/ILineOp.h"
+
+class CLineOpDeletePoint : public ILineOp
+{
+public:
+    CLineOpDeletePoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
+    virtual ~CLineOpDeletePoint();
+
+    void leftClick(const QPoint& pos) override;
+    void mouseMove(const QPoint& pos) override;
+
+    void drawFg(QPainter& p) override;
+};
+
+#endif //CLINEOPDELETEPOINT_H
+
diff --git a/src/qmapshack/mouse/line/CLineOpMovePoint.cpp b/src/qmapshack/mouse/line/CLineOpMovePoint.cpp
new file mode 100644
index 0000000..decb28f
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpMovePoint.cpp
@@ -0,0 +1,149 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "mouse/line/CLineOpMovePoint.h"
+#include "mouse/line/IMouseEditLine.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+
+CLineOpMovePoint::CLineOpMovePoint(SGisLine &points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine *parent)
+    : ILineOp(points, gis, canvas, parent)
+{
+    cursor = QCursor(QPixmap(":/cursors/cursorPointMove.png"),0,0);
+}
+
+CLineOpMovePoint::~CLineOpMovePoint()
+{
+}
+
+void CLineOpMovePoint::leftClick(const QPoint &pos)
+{
+    if(movePoint)
+    {
+        // update subpoints by triggering the routing, if any.
+        slotTimeoutRouting();
+        // terminate moving the point
+        movePoint = false;
+        // store new state of line to undo/redo history
+        parentHandler->storeToHistory(points);
+    }
+    else if(idxFocus != NOIDX)
+    {
+        QPointF coord = pos;
+        gis->convertPx2Rad(coord);
+
+        // start moving the point
+        IGisLine::point_t& pt = points[idxFocus];
+        pt.coord = coord;
+        // clear the subpoints from this point to the next
+        pt.subpts.clear();
+
+
+        // clear the subpoints from the previous point to this point
+        if(idxFocus != 0)
+        {
+            points[idxFocus - 1].subpts.clear();
+        }
+
+        movePoint = true;
+    }
+
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpMovePoint::rightButtonDown(const QPoint &pos)
+{
+    abortStep();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+
+bool CLineOpMovePoint::abortStep()
+{
+    if(movePoint)
+    {
+        // cancel action and restore last state of line
+        cancelDelayedRouting();
+        parentHandler->restoreFromHistory(points);
+
+        movePoint = false;
+        idxFocus  = NOIDX;
+
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+
+        return true;
+    }
+    return false;
+}
+
+void CLineOpMovePoint::mouseMove(const QPoint &pos)
+{
+    ILineOp::mouseMove(pos);
+
+    if(movePoint)
+    {
+        QPointF coord = pos;
+        gis->convertPx2Rad(coord);
+
+        IGisLine::point_t& pt = points[idxFocus];
+
+        // update position of point
+        pt.coord = coord;
+
+        // clear subpoints, as they have to be recalculated
+        // by the routing, if any
+        pt.subpts.clear();
+        if(idxFocus > 0)
+        {
+            points[idxFocus - 1].subpts.clear();
+        }
+
+        // retrigger delayed routing
+        startDelayedRouting();
+    }
+    else
+    {
+        // no point selected yet, find point to highlight
+        idxFocus = isCloseTo(pos);
+    }
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+
+void CLineOpMovePoint::drawFg(QPainter& p)
+{
+    if(idxFocus == NOIDX)
+    {
+        return;
+    }
+
+    const IGisLine::point_t& pt = points[idxFocus];
+    if(movePoint)
+    {
+        drawSinglePointSmall(pt.pixel, p);
+    }
+    else
+    {
+        drawSinglePointLarge(pt.pixel, p);
+    }
+}
+
diff --git a/src/qmapshack/mouse/line/CLineOpMovePoint.h b/src/qmapshack/mouse/line/CLineOpMovePoint.h
new file mode 100644
index 0000000..e7933cc
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpMovePoint.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CLINEOPMOVEPOINT_H
+#define CLINEOPMOVEPOINT_H
+
+#include "mouse/line/ILineOp.h"
+
+class CLineOpMovePoint : public ILineOp
+{
+public:
+    CLineOpMovePoint(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
+    virtual ~CLineOpMovePoint();
+
+    void leftClick(const QPoint& pos) override;
+    void mouseMove(const QPoint& pos) override;
+    void rightButtonDown(const QPoint &pos) override;
+
+    void drawFg(QPainter& p) override;
+
+    bool abortStep() override;
+
+private:
+    bool movePoint = false;
+};
+
+#endif //CLINEOPMOVEPOINT_H
+
diff --git a/src/qmapshack/mouse/line/CLineOpSelectRange.cpp b/src/qmapshack/mouse/line/CLineOpSelectRange.cpp
new file mode 100644
index 0000000..92e7b11
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpSelectRange.cpp
@@ -0,0 +1,245 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "canvas/CCanvas.h"
+#include "mouse/line/CLineOpSelectRange.h"
+#include "mouse/line/CScrOptRangeLine.h"
+#include "mouse/line/IMouseEditLine.h"
+
+#include <QtWidgets>
+
+CLineOpSelectRange::CLineOpSelectRange(SGisLine& points, CGisDraw *gis, CCanvas * canvas, IMouseEditLine * parent)
+    : ILineOp(points, gis, canvas, parent)
+{
+    cursor = QCursor(QPixmap(":/cursors/cursorSelectRange.png"),0,0);
+}
+
+CLineOpSelectRange::~CLineOpSelectRange()
+{
+    delete scrOptRangeLine;
+}
+
+void CLineOpSelectRange::leftClick(const QPoint &pos)
+{
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        if(idxFocus != NOIDX)
+        {
+            state = eState1st;
+        }
+        break;
+    }
+
+    case eState1st:
+    {
+        if(idx2nd < 0 || points.size() <= idx2nd)
+        {
+            break;
+        }
+
+        qint32 d = qAbs(idxFocus - idx2nd);
+        if(d < 1)
+        {
+            resetState();
+            return;
+        }
+
+        scrOptRangeLine = new CScrOptRangeLine(points[idx2nd].pixel, parentHandler, canvas);
+        connect(scrOptRangeLine->toolDelete,    &QToolButton::clicked, this,            &CLineOpSelectRange::slotDelete);
+        connect(scrOptRangeLine->toolCalcRoute, &QToolButton::clicked, this,            &CLineOpSelectRange::slotCalc);
+        connect(scrOptRangeLine->toolDelete,    &QToolButton::clicked, scrOptRangeLine.data(), &CScrOptRangeLine::hide);
+        connect(scrOptRangeLine->toolCalcRoute, &QToolButton::clicked, scrOptRangeLine.data(), &CScrOptRangeLine::hide);
+
+        if(d < 2)
+        {
+            scrOptRangeLine->toolDelete->setEnabled(false);
+        }
+
+        state = eState2nd;
+        break;
+    }
+    }
+
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpSelectRange::rightButtonDown(const QPoint &pos)
+{
+    resetState();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+bool CLineOpSelectRange::abortStep()
+{
+    if(state != eStateIdle)
+    {
+        resetState();
+        canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+        return true;
+    }
+    return false;
+}
+
+void CLineOpSelectRange::mouseMove(const QPoint &pos)
+{
+    ILineOp::mouseMove(pos);
+
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        // no point selected yet, find point to highlight
+        idxFocus = isCloseTo(pos);
+        break;
+    }
+
+    case eState1st:
+    {
+        idx2nd = isCloseTo(pos);
+        if(idx2nd == NOIDX)
+        {
+            idx2nd = isCloseToLine(pos);
+            if((idx2nd != NOIDX) && ((idx2nd + 1) < points.size()))
+            {
+                idx2nd++;
+            }
+        }
+        break;
+    }
+    }
+
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpSelectRange::scaleChanged()
+{
+    ILineOp::scaleChanged();
+    if(state == eState2nd)
+    {
+        resetState();
+    }
+}
+
+void CLineOpSelectRange::drawFg(QPainter& p)
+{
+    if(idxFocus == NOIDX)
+    {
+        return;
+    }
+
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        const IGisLine::point_t& pt = points[idxFocus];
+        drawSinglePointLarge(pt.pixel, p);
+        break;
+    }
+
+    case eState1st:
+    case eState2nd:
+    {
+        if(idx2nd != NOIDX)
+        {
+            qint32 idx1 = qMin(idxFocus, idx2nd);
+            qint32 idx2 = qMax(idxFocus, idx2nd);
+
+            QPolygonF seg;
+            for(int i = idx1; i < idx2; i++)
+            {
+                const IGisLine::point_t& point = points[i];
+                seg << point.pixel;
+                for(const IGisLine::subpt_t& subpt : point.subpts)
+                {
+                    seg << subpt.pixel;
+                }
+            }
+
+            seg << points[idx2].pixel;
+
+            p.setPen(QPen(Qt::darkGreen, 11, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+            p.drawPolyline(seg);
+
+            p.setPen(QPen(Qt::green, 3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+            p.drawPolyline(seg);
+
+            p.setPen(QPen(Qt::NoPen));
+            p.setBrush(Qt::black);
+
+            QRectF r(0, 0, 8, 8);
+            for(int i = idx1; i <= idx2; i++)
+            {
+                r.moveCenter(points[i].pixel);
+                p.drawRect(r);
+
+                for(const IGisLine::subpt_t& subpt : points[i].subpts)
+                {
+                    p.drawEllipse(subpt.pixel, 2, 2);
+                }
+            }
+        }
+
+        if(!scrOptRangeLine.isNull() && eState2nd == state)
+        {
+            scrOptRangeLine->draw(p);
+        }
+        break;
+    }
+    }
+}
+
+void CLineOpSelectRange::resetState()
+{
+    if(!scrOptRangeLine.isNull())
+    {
+        scrOptRangeLine->deleteLater();
+    }
+    idxFocus = NOIDX;
+    idx2nd   = NOIDX;
+    state    = eStateIdle;
+}
+
+void CLineOpSelectRange::slotDelete()
+{
+    qint32 idx = qMin(idxFocus, idx2nd);
+    qint32 N   = qAbs(idxFocus - idx2nd) - 1;
+
+    points[idx].subpts.clear();
+    points.remove(idx + 1, N);
+    parentHandler->storeToHistory(points);
+
+
+    resetState();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void CLineOpSelectRange::slotCalc()
+{
+    qint32 idx = qMin(idxFocus, idx2nd);
+    qint32 N   = qAbs(idxFocus - idx2nd) - 1;
+
+    points.remove(idx + 1, N);
+
+    finalizeOperation(idx);
+    parentHandler->storeToHistory(points);
+
+    resetState();
+}
diff --git a/src/qmapshack/mouse/line/CLineOpSelectRange.h b/src/qmapshack/mouse/line/CLineOpSelectRange.h
new file mode 100644
index 0000000..8be68d0
--- /dev/null
+++ b/src/qmapshack/mouse/line/CLineOpSelectRange.h
@@ -0,0 +1,66 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef CLINEOPSELECTRANGE_H
+#define CLINEOPSELECTRANGE_H
+
+#include "mouse/line/ILineOp.h"
+
+#include <QPointer>
+
+class CScrOptRangeLine;
+
+class CLineOpSelectRange : public ILineOp
+{
+    Q_OBJECT
+public:
+    CLineOpSelectRange(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent);
+    virtual ~CLineOpSelectRange();
+
+    void leftClick(const QPoint& pos) override;
+    void mouseMove(const QPoint& pos) override;
+    void rightButtonDown(const QPoint &pos) override;
+    void scaleChanged() override;
+
+    void drawFg(QPainter& p) override;
+
+    bool abortStep() override;
+
+private slots:
+    void slotDelete();
+    void slotCalc();
+
+private:
+    void resetState();
+    enum state_e
+    {
+        eStateIdle
+        , eState1st
+        , eState2nd
+    };
+
+    state_e state = eStateIdle;
+
+    qint32 idx2nd = NOIDX;
+
+    QPointer<CScrOptRangeLine>  scrOptRangeLine;
+};
+
+#endif //CLINEOPSELECTRANGE_H
+
diff --git a/src/mouse/line/CScrOptEditLine.cpp b/src/qmapshack/mouse/line/CScrOptEditLine.cpp
similarity index 100%
rename from src/mouse/line/CScrOptEditLine.cpp
rename to src/qmapshack/mouse/line/CScrOptEditLine.cpp
diff --git a/src/mouse/line/CScrOptEditLine.h b/src/qmapshack/mouse/line/CScrOptEditLine.h
similarity index 100%
rename from src/mouse/line/CScrOptEditLine.h
rename to src/qmapshack/mouse/line/CScrOptEditLine.h
diff --git a/src/mouse/line/CScrOptRangeLine.cpp b/src/qmapshack/mouse/line/CScrOptRangeLine.cpp
similarity index 100%
rename from src/mouse/line/CScrOptRangeLine.cpp
rename to src/qmapshack/mouse/line/CScrOptRangeLine.cpp
diff --git a/src/mouse/line/CScrOptRangeLine.h b/src/qmapshack/mouse/line/CScrOptRangeLine.h
similarity index 100%
rename from src/mouse/line/CScrOptRangeLine.h
rename to src/qmapshack/mouse/line/CScrOptRangeLine.h
diff --git a/src/qmapshack/mouse/line/ILineOp.cpp b/src/qmapshack/mouse/line/ILineOp.cpp
new file mode 100644
index 0000000..6c7b330
--- /dev/null
+++ b/src/qmapshack/mouse/line/ILineOp.cpp
@@ -0,0 +1,323 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/rte/router/CRouterSetup.h"
+#include "mouse/line/ILineOp.h"
+#include "mouse/line/IMouseEditLine.h"
+
+#include <QtWidgets>
+
+ILineOp::ILineOp(SGisLine& points, CGisDraw *gis, CCanvas *canvas, IMouseEditLine *parent)
+    : QObject(parent)
+    , parentHandler(parent)
+    , points(points)
+    , canvas(canvas)
+    , gis(gis)
+{
+    timerRouting = new QTimer(this);
+    timerRouting->setSingleShot(true);
+    timerRouting->setInterval(400);
+    connect(timerRouting, &QTimer::timeout, this, &ILineOp::slotTimeoutRouting);
+}
+
+ILineOp::~ILineOp()
+{
+    canvas->reportStatus("Routino", QString());
+}
+
+void ILineOp::cancelDelayedRouting()
+{
+    timerRouting->stop();
+}
+
+void ILineOp::startDelayedRouting()
+{
+    if(parentHandler->useAutoRouting())
+    {
+        timerRouting->start();
+    }
+    else if(parentHandler->useVectorRouting())
+    {
+        slotTimeoutRouting();
+    }
+}
+
+void ILineOp::slotTimeoutRouting()
+{
+    timerRouting->stop();
+    finalizeOperation(idxFocus);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+
+void ILineOp::drawBg(QPainter& p)
+{
+    drawLeadLine(leadLinePixel1,p);
+    drawLeadLine(leadLinePixel2,p);
+}
+
+void ILineOp::drawSinglePointSmall(const QPointF& pt, QPainter& p)
+{
+    QRect r(0,0,3,3);
+    r.moveCenter(pt.toPoint());
+
+    p.setPen(QPen(Qt::white, 2));
+    p.setBrush(Qt::white);
+    p.drawRect(r);
+
+    p.setPen(Qt::black);
+    p.setBrush(Qt::black);
+    p.drawRect(r);
+}
+
+void ILineOp::drawSinglePointLarge(const QPointF &pt, QPainter& p)
+{
+    rectPoint.moveCenter(pt.toPoint());
+
+    p.setPen(penBgPoint);
+    p.setBrush(brushBgPoint);
+    p.drawRect(rectPoint);
+
+    p.setPen(penFgPoint);
+    p.setBrush(brushFgPoint);
+    p.drawRect(rectPoint);
+}
+
+void ILineOp::drawLeadLine(const QPolygonF& line, QPainter& p) const
+{
+    p.setPen(QPen(Qt::yellow, 7, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolyline(line);
+}
+
+void ILineOp::mouseMove(const QPoint& pos)
+{
+    updateLeadLines(idxFocus);
+}
+
+void ILineOp::leftButtonDown(const QPoint& pos)
+{
+    timerRouting->stop();
+    showRoutingErrorMessage(QString());
+}
+
+void ILineOp::scaleChanged()
+{
+    timerRouting->stop();
+}
+
+void ILineOp::startMouseMove(const QPointF& point)
+{
+//    // as long the mouse is not taken as moving
+//    // to not trigger on-the-fly-routing
+    parentHandler->startMouseMove(point.toPoint());
+    timerRouting->stop();
+}
+
+void ILineOp::updateLeadLines(qint32 idx)
+{
+    leadLinePixel1.clear();
+    leadLinePixel2.clear();
+    subLinePixel1.clear();
+    subLinePixel2.clear();
+
+    if(parentHandler->useVectorRouting() && (idx != NOIDX))
+    {
+        leadLineCoord1.clear();
+        leadLineCoord2.clear();
+        subLineCoord1.clear();
+        subLineCoord2.clear();
+
+        if(idx > 0)
+        {
+            const IGisLine::point_t& pt1 = points[idx - 1];
+            const IGisLine::point_t& pt2 = points[idx];
+            if(canvas->findPolylineCloseBy(pt2.pixel, pt2.pixel, 10, leadLineCoord1))
+            {
+                leadLinePixel1 = leadLineCoord1;
+                gis->convertRad2Px(leadLinePixel1);
+
+                segment_t result;
+                GPS_Math_SubPolyline(pt1.pixel, pt2.pixel, 10, leadLinePixel1, result);
+                result.apply(leadLineCoord1, leadLinePixel1, subLineCoord1, subLinePixel1, gis);
+            }
+        }
+
+        if(idx < points.size() - 1)
+        {
+            const IGisLine::point_t& pt1 = points[idx];
+            const IGisLine::point_t& pt2 = points[idx + 1];
+            if(canvas->findPolylineCloseBy(pt1.pixel, pt1.pixel, 10, leadLineCoord2))
+            {
+                leadLinePixel2 = leadLineCoord2;
+                gis->convertRad2Px(leadLinePixel2);
+
+                segment_t result;
+                GPS_Math_SubPolyline(pt1.pixel, pt2.pixel, 10, leadLinePixel2, result);
+                result.apply(leadLineCoord2, leadLinePixel2, subLineCoord2, subLinePixel2, gis);
+            }
+        }
+    }
+}
+
+void ILineOp::showRoutingErrorMessage(const QString &msg) const
+{
+    if(msg.isEmpty())
+    {
+        canvas->reportStatus("Routino", QString());
+    }
+    else
+    {
+        canvas->reportStatus("Routino", QString("<span style='color: red;'><b>%1</b><br />%2</span>").arg(tr("Routing")).arg(msg));
+    }
+}
+
+void ILineOp::tryRouting(IGisLine::point_t& pt1, IGisLine::point_t& pt2) const
+{
+    QPolygonF subs;
+
+    try
+    {
+        if(CRouterSetup::self().calcRoute(pt1.coord, pt2.coord, subs) >= 0)
+        {
+            pt1.subpts.clear();
+            for(const QPointF &sub : subs)
+            {
+                pt1.subpts << IGisLine::subpt_t(sub);
+            }
+        }
+        showRoutingErrorMessage(QString());
+    }
+    catch(const QString &msg)
+    {
+        showRoutingErrorMessage(msg);
+    }
+    // that is a workaround for canvas loosing mousetracking caused by CProgressDialog being modal:
+    canvas->setMouseTracking(true);
+}
+
+void ILineOp::finalizeOperation(qint32 idx)
+{
+    if(idx == NOIDX)
+    {
+        return;
+    }
+
+    if(parentHandler->useAutoRouting())
+    {
+        CCanvas::setOverrideCursor(Qt::WaitCursor,"ILineOp::finalizeOperation");
+        if(idx > 0)
+        {
+            tryRouting(points[idx - 1], points[idx]);
+        }
+        if(idx < (points.size() - 1))
+        {
+            tryRouting(points[idx], points[idx + 1]);
+        }
+        CCanvas::restoreOverrideCursor("ILineOp::finalizeOperation");
+    }
+    else if(parentHandler->useVectorRouting())
+    {
+        if(idx > 0)
+        {
+            IGisLine::point_t& pt1 = points[idx - 1];
+            pt1.subpts.clear();
+            for(const QPointF &pt : subLineCoord1)
+            {
+                pt1.subpts << IGisLine::subpt_t(pt);
+            }
+        }
+
+        if(idx < (points.size() - 1))
+        {
+            IGisLine::point_t& pt1 = points[idx];
+            pt1.subpts.clear();
+            for(const QPointF &pt : subLineCoord2)
+            {
+                pt1.subpts << IGisLine::subpt_t(pt);
+            }
+        }
+    }
+
+    // need to move the mouse away by some pixels to trigger next routing event
+    startMouseMove(points[idx].pixel);
+
+    parentHandler->updateStatus();
+}
+
+
+qint32 ILineOp::isCloseTo(const QPoint& pos) const
+{
+    qint32 min = 30;
+    qint32 idx = NOIDX;
+    const int N = points.size();
+    for(int i = 0; i < N; i++)
+    {
+        const IGisLine::point_t& pt = points[i];
+
+        qint32 d = (pos - pt.pixel).manhattanLength();
+        if(d < min)
+        {
+            min = d;
+            idx = i;
+        }
+    }
+
+    return idx;
+}
+
+qint32 ILineOp::isCloseToLine(const QPoint& pos) const
+{
+    qint32 idx = NOIDX;
+    qreal dist = 60;
+
+    for(int i = 0; i < points.size() - 1; i++)
+    {
+        QPolygonF line;
+        const IGisLine::point_t& pt1 = points[i];
+        const IGisLine::point_t& pt2 = points[i + 1];
+
+        if(pt1.subpts.isEmpty())
+        {
+            line << pt1.pixel << pt2.pixel;
+        }
+        else
+        {
+            line << pt1.pixel;
+            for(const IGisLine::subpt_t& pt : pt1.subpts)
+            {
+                line << pt.pixel;
+            }
+            line << pt2.pixel;
+        }
+
+        qreal d = GPS_Math_DistPointPolyline(line, pos);
+        if(d < dist)
+        {
+            dist = d;
+            idx  = i;
+        }
+    }
+
+    return idx;
+}
+
diff --git a/src/qmapshack/mouse/line/ILineOp.h b/src/qmapshack/mouse/line/ILineOp.h
new file mode 100644
index 0000000..7108e11
--- /dev/null
+++ b/src/qmapshack/mouse/line/ILineOp.h
@@ -0,0 +1,131 @@
+/**********************************************************************************************
+    Copyright (C) 2014-2015 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef ILINEOP_H
+#define ILINEOP_H
+
+#include "gis/IGisLine.h"
+#include <QBrush>
+#include <QCursor>
+#include <QObject>
+#include <QPen>
+#include <QRect>
+
+class QMouseEvent;
+class QPinchGesture;
+class CCanvas;
+class QPainter;
+class IMouseEditLine;
+
+class ILineOp : public QObject
+{
+    Q_OBJECT
+public:
+    ILineOp(SGisLine &points, CGisDraw * gis, CCanvas * canvas, IMouseEditLine * parent);
+    virtual ~ILineOp();
+
+    virtual void leftClick(const QPoint& pos) = 0;
+    virtual void mouseMove(const QPoint& pos);
+    virtual void leftButtonDown(const QPoint& pos);
+    virtual void rightButtonDown(const QPoint& pos) {}
+    virtual void scaleChanged();
+
+    virtual void drawFg(QPainter& p) = 0;
+    virtual void drawBg(QPainter& p);
+
+    const QCursor& getCursor() const
+    {
+        return cursor;
+    }
+
+    /**
+       @brief   (try to) abort a step in the current operation
+
+       Method called, if a step in the current operation should be aborted, such as
+       adding or moving a(n already) selected waypoint.
+       This dummy implementation does not do anything and therefore always returns `false`.
+
+       @return  `true` if a step in the current operation was  successfully, `false` otherwise
+     */
+    virtual bool abortStep()
+    {
+        return false;
+    }
+
+    void updateStatus();
+
+protected slots:
+    void slotTimeoutRouting();
+
+protected:
+    virtual void cancelDelayedRouting();
+    virtual void startDelayedRouting();
+    virtual void finalizeOperation(qint32 idx);
+    qint32 isCloseTo(const QPoint& pos) const;
+    qint32 isCloseToLine(const QPoint& pos) const;
+
+    void drawSinglePointSmall(const QPointF& pt, QPainter& p);
+    void drawSinglePointLarge(const QPointF &pt, QPainter& p);
+    void drawLeadLine(const QPolygonF& line, QPainter& p) const;
+    void updateLeadLines(qint32 idx);
+
+    void startMouseMove(const QPointF &point);
+
+    IMouseEditLine * parentHandler;
+    SGisLine& points;
+    CCanvas * canvas;
+    CGisDraw * gis;
+
+    QCursor cursor;
+
+    qint32 idxFocus = NOIDX;
+
+    QPoint lastPos;
+    QPoint firstPos;
+
+    QRect rectPoint {0,0,9,9};
+    const QPen penBgPoint {Qt::white, 4};
+    const QPen penFgPoint {Qt::red, 2};
+    const QBrush brushBgPoint {Qt::white};
+    const QBrush brushFgPoint {Qt::red};
+
+    QPolygonF leadLineCoord1;
+    QPolygonF leadLineCoord2;
+    QPolygonF leadLinePixel1;
+    QPolygonF leadLinePixel2;
+
+    QPolygonF subLineCoord1;
+    QPolygonF subLineCoord2;
+    QPolygonF subLinePixel1;
+    QPolygonF subLinePixel2;
+
+private:
+    void showRoutingErrorMessage(const QString &msg) const;
+    void tryRouting(IGisLine::point_t& pt1, IGisLine::point_t& pt2) const;
+
+    QTimer * timerRouting;
+    QTime buttonPressTime;
+
+    bool ignoreClick = false;
+    bool mapMove = false;
+    bool mouseDidMove = false;
+};
+
+#endif //ILINEOP_H
+
diff --git a/src/qmapshack/mouse/line/IMouseEditLine.cpp b/src/qmapshack/mouse/line/IMouseEditLine.cpp
new file mode 100644
index 0000000..db348a5
--- /dev/null
+++ b/src/qmapshack/mouse/line/IMouseEditLine.cpp
@@ -0,0 +1,512 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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 "CMainWindow.h"
+#include "GeoMath.h"
+#include "canvas/CCanvas.h"
+#include "gis/CGisDraw.h"
+#include "gis/IGisLine.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "mouse/CMouseAdapter.h"
+#include "mouse/line/CLineOpAddPoint.h"
+#include "mouse/line/CLineOpDeletePoint.h"
+#include "mouse/line/CLineOpMovePoint.h"
+#include "mouse/line/CLineOpSelectRange.h"
+#include "mouse/line/CScrOptEditLine.h"
+#include "mouse/line/IMouseEditLine.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+
+IMouseEditLine::IMouseEditLine(const IGisItem::key_t &key, const QPointF& point, bool enableStatus, const QString &type, CGisDraw * gis, CCanvas * canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+    , key(key)
+    , enableStatus(enableStatus)
+    , type(type)
+{
+    commonSetup();
+    scrOptEditLine->pushSaveOrig->hide(); // hide as there is no original
+
+    points << IGisLine::point_t(point);
+    points.updatePixel(gis);
+
+    storeToHistory(points);
+}
+
+IMouseEditLine::IMouseEditLine(const IGisItem::key_t &key, IGisLine &src, bool enableStatus, const QString &type, CGisDraw *gis, CCanvas *canvas, CMouseAdapter *mouse)
+    : IMouse(gis, canvas, mouse)
+    , key(key)
+    , enableStatus(enableStatus)
+    , type(type)
+{
+    commonSetup();
+
+    src.getPolylineFromData(points);
+    points.updatePixel(gis);
+
+    storeToHistory(points);
+}
+
+
+IMouseEditLine::~IMouseEditLine()
+{
+    canvas->reportStatus("IMouseEditLine","");
+    canvas->reportStatus(key.item,"");
+
+    int mode = 0;
+    if(scrOptEditLine->toolNoRoute->isChecked())
+    {
+        mode = 0;
+    }
+    else if(scrOptEditLine->toolAutoRoute->isChecked())
+    {
+        mode = 1;
+    }
+    else if(scrOptEditLine->toolVectorRoute->isChecked())
+    {
+        mode = 2;
+    }
+
+    SETTINGS;
+    cfg.setValue("Route/drawMode", mode);
+
+    delete scrOptEditLine;
+}
+
+
+
+void IMouseEditLine::commonSetup()
+{
+    // create permanent line edit on screen options
+    scrOptEditLine = new CScrOptEditLine(this);
+    connect(scrOptEditLine->pushSaveOrig,    &QPushButton::clicked, this, &IMouseEditLine::slotCopyToOrig   );
+    connect(scrOptEditLine->pushSaveNew,     &QPushButton::clicked, this, &IMouseEditLine::slotCopyToNew    );
+    connect(scrOptEditLine->pushAbort,       &QPushButton::clicked, this, &IMouseEditLine::slotAbort        );
+
+    connect(scrOptEditLine->toolMovePoint,   &QPushButton::clicked, this, &IMouseEditLine::slotMovePoint    );
+    connect(scrOptEditLine->toolSelectRange, &QPushButton::clicked, this, &IMouseEditLine::slotSelectRange  );
+    connect(scrOptEditLine->toolAddPoint,    &QPushButton::clicked, this, &IMouseEditLine::slotAddPoint     );
+    connect(scrOptEditLine->toolDeletePoint, &QPushButton::clicked, this, &IMouseEditLine::slotDeletePoint  );
+
+    connect(scrOptEditLine->toolNoRoute,     &QPushButton::clicked, this, &IMouseEditLine::slotNoRouting    );
+    connect(scrOptEditLine->toolAutoRoute,   &QPushButton::clicked, this, &IMouseEditLine::slotAutoRouting  );
+    connect(scrOptEditLine->toolVectorRoute, &QPushButton::clicked, this, &IMouseEditLine::slotVectorRouting);
+
+    connect(scrOptEditLine->toolUndo,        &QPushButton::clicked, this, &IMouseEditLine::slotUndo         );
+    connect(scrOptEditLine->toolRedo,        &QPushButton::clicked, this, &IMouseEditLine::slotRedo         );
+
+    SETTINGS;
+    int mode = cfg.value("Route/drawMode",0).toInt();
+    switch(mode)
+    {
+    case 0:
+        scrOptEditLine->toolNoRoute->setChecked(true);
+        break;
+
+    case 1:
+        scrOptEditLine->toolAutoRoute->setChecked(true);
+        break;
+
+    case 2:
+        scrOptEditLine->toolVectorRoute->setChecked(true);
+        break;
+    }
+
+    slotMovePoint();
+}
+
+void IMouseEditLine::abortStep()
+{
+    // at first try to abort a step within the current operation (px. stop adding a new waypoint)
+    if(!lineOp->abortStep())
+    {
+        // if within operation nothing can be aborted, then abort the whole operation
+        // this equals clicking the `abort` button
+        slotAbortEx(true);
+    }
+}
+
+bool IMouseEditLine::useAutoRouting() const
+{
+    return scrOptEditLine->toolAutoRoute->isChecked();
+}
+
+bool IMouseEditLine::useVectorRouting() const
+{
+    return scrOptEditLine->toolVectorRoute->isChecked();
+}
+
+void IMouseEditLine::drawLine(const QPolygonF &l, const QColor color, int width, QPainter& p)
+{
+    p.setPen(QPen(color, width, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
+    p.drawPolyline(l);
+}
+
+
+void IMouseEditLine::draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect)
+{
+    if(needsRedraw & (CCanvas::eRedrawMouse | CCanvas::eRedrawGis))
+    {
+        points.updatePixel(gis);
+
+        pixelLine.clear();
+        pixelPts.clear();
+        pixelSubs.clear();
+
+        for(const IGisLine::point_t &pt : points)
+        {
+            pixelLine << pt.pixel;
+            pixelPts << pt.pixel;
+
+            for(const IGisLine::subpt_t &sub : pt.subpts)
+            {
+                pixelLine << sub.pixel;
+                pixelSubs << sub.pixel;
+            }
+        }
+    }
+
+    if(pixelPts.isEmpty())
+    {
+        return;
+    }
+
+    lineOp->drawBg(p);
+
+    drawLine(pixelLine, Qt::white, 7, p);
+
+    // draw magenta arrows (with white background)
+    p.setBrush(Qt::magenta);
+    CDraw::arrows(pixelLine, QRectF(), p, 10, 80, 1.0);
+
+    p.setPen(Qt::NoPen);
+    p.setBrush(Qt::white);
+    QRect r1(0,0,9,9);
+    for(const QPointF &pt : pixelPts)
+    {
+        r1.moveCenter(pt.toPoint());
+        p.drawRect(r1);
+    }
+
+    drawLine(pixelLine, Qt::magenta, 5, p);
+
+    p.setPen(Qt::NoPen);
+    p.setBrush(Qt::black);
+    QRect r2(0,0,7,7);
+    for(const QPointF &pt : pixelPts)
+    {
+        r2.moveCenter(pt.toPoint());
+        p.drawRect(r2);
+    }
+
+    for(const QPointF &pt : pixelSubs)
+    {
+        p.drawEllipse(pt, 2, 2);
+    }
+
+    QRect r3(0,0,9,9);
+    p.setBrush(Qt::NoBrush);
+
+    p.setPen(QPen(Qt::yellow,2));
+    r3.moveCenter(pixelPts.first().toPoint());
+    p.drawRect(r3);
+
+    p.setPen(QPen(Qt::green,2));
+    r3.moveCenter(pixelPts.last().toPoint());
+    p.drawRect(r3);
+
+    lineOp->drawFg(p);
+}
+
+
+void IMouseEditLine::startNewLine(const QPointF& point)
+{
+    scrOptEditLine->toolAddPoint->setChecked(true);
+    slotAddPoint();
+
+    CLineOpAddPoint * lineOpAddPoint = dynamic_cast<CLineOpAddPoint*>(lineOp);
+    if(lineOpAddPoint)
+    {
+        lineOpAddPoint->append();
+    }
+
+    canvas->reportStatus(key.item, tr("<b>New Line</b><br/>Move the mouse and use the left mouse button to drop points. When done use the right mouse button to stop.<br/>") + docPanning);
+}
+
+void IMouseEditLine::leftButtonDown(const QPoint& pos)
+{
+    canvas->reportStatus(key.item, "");
+    lineOp->leftButtonDown(pos);
+}
+
+void IMouseEditLine::rightButtonDown(const QPoint& pos)
+{
+    canvas->reportStatus(key.item, "");
+    lineOp->rightButtonDown(pos);
+}
+
+void IMouseEditLine::mouseMoved(const QPoint &pos)
+{
+    lineOp->mouseMove(pos);
+
+    canvas->displayInfo(pos);
+    canvas->update();
+}
+
+void IMouseEditLine::leftClicked(const QPoint& pos)
+{
+    lineOp->leftClick(pos);
+}
+
+void IMouseEditLine::scaleChanged()
+{
+    lineOp->scaleChanged();
+}
+
+void IMouseEditLine::slotDeletePoint()
+{
+    canvas->reportStatus(key.item, tr("<b>Delete Point</b><br/>Move the mouse close to a point and press the left button to delete it.<br/>") + docPanning);
+    delete lineOp;
+    lineOp = new CLineOpDeletePoint(points, gis, canvas, this);
+    changeCursor();
+}
+
+void IMouseEditLine::slotSelectRange()
+{
+    canvas->reportStatus(key.item, tr("<b>Select Range of Points</b><br/>Left click on first point to start selection. Left click second point to complete selection and choose from options. Use the right mouse button to cancel.<br/>") + docPanning);
+    delete lineOp;
+    lineOp = new CLineOpSelectRange(points, gis, canvas, this);
+    changeCursor();
+}
+
+void IMouseEditLine::slotMovePoint()
+{
+    canvas->reportStatus(key.item, tr("<b>Move Point</b><br/>Move the mouse close to a point and press the left button to make it stick to the cursor. Move the mouse to move the point. Drop the point by a left click. Use the right mouse button to cancel.<br/>") + docPanning);
+    delete lineOp;
+    lineOp = new CLineOpMovePoint(points, gis, canvas, this);
+    changeCursor();
+}
+
+void IMouseEditLine::slotAddPoint()
+{
+    canvas->reportStatus(key.item, tr("<b>Add Point</b><br/>Move the mouse close to a line segment and press the left button to add a point. The point will stick to the cursor and you can move it.  Drop the point by a left click. Use the right mouse button to cancel.<br/>") + docPanning);
+    delete lineOp;
+    lineOp = new CLineOpAddPoint(points, gis, canvas, this);
+    changeCursor();
+}
+
+void IMouseEditLine::slotNoRouting()
+{
+    canvas->reportStatus(key.item, tr("<b>No Routing</b><br/>All points will be connected with a straight line.<br/>"));
+    canvas->reportStatus("Routino", QString());
+}
+
+void IMouseEditLine::slotAutoRouting()
+{
+    canvas->reportStatus(key.item, tr("<b>Auto Routing</b><br/>The current router setup is used to derive a route between points. <b>Note:</b> The selected router must be able to route on-the-fly. Offline routers usually can do, online routers can't.<br/>"));
+}
+
+void IMouseEditLine::slotVectorRouting()
+{
+    canvas->reportStatus(key.item, tr("<b>Vector Routing</b><br/>Connect points with a line from a loaded vector map if possible.<br/>"));
+    canvas->reportStatus("Routino", QString());
+}
+
+
+void IMouseEditLine::changeCursor()
+{
+    cursor = lineOp->getCursor();
+    if(QApplication::overrideCursor() != 0)
+    {
+        CCanvas::changeOverrideCursor(cursor,"IMouseEditLine::changeCursor");
+    }
+}
+
+void IMouseEditLine::slotAbortEx(bool showMB)
+{
+    // ask if the current operation should be aborted (only in case there are things to be saved)
+    bool doAbort = ( idxHistory == 0 ) || !showMB;
+    if(!doAbort)
+    {
+        doAbort = (QMessageBox::Yes == QMessageBox::question(nullptr, "Abort", "Do you really want to abort?\nAny modifications done will be discarded.", QMessageBox::Yes | QMessageBox::No));
+    }
+
+    if(doAbort)
+    {
+        canvas->resetMouse();
+        canvas->update();
+    }
+}
+
+void IMouseEditLine::slotCopyToOrig()
+{
+    QMutexLocker lock(&IGisItem::mutexItems);
+
+    IGisLine * line = getGisLine();
+    if(line != nullptr)
+    {
+        CMainWindow::self().getElevationAt(points);
+        line->setDataFromPolyline(points);
+    }
+
+
+    canvas->resetMouse();
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void IMouseEditLine::restoreFromHistory(SGisLine& line)
+{
+    line = history[idxHistory];
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+
+    updateStatus();
+}
+
+void IMouseEditLine::storeToHistory(const SGisLine& line)
+{
+    // crop history if necessary
+    if(idxHistory != NOIDX)
+    {
+        while(history.size() > (idxHistory + 1))
+        {
+            history.pop_back();
+        }
+    }
+
+    history << line;
+    idxHistory = history.size() - 1;
+
+    scrOptEditLine->toolRedo->setEnabled(false);
+    scrOptEditLine->toolUndo->setEnabled(idxHistory > 0);
+
+    updateStatus();
+}
+
+void IMouseEditLine::slotUndo()
+{
+    if(lineOp != nullptr)
+    {
+        lineOp->abortStep();
+    }
+
+    if(idxHistory > 0)
+    {
+        idxHistory--;
+    }
+
+    points = history[idxHistory];
+
+    scrOptEditLine->toolRedo->setEnabled(true);
+    scrOptEditLine->toolUndo->setEnabled(idxHistory > 0);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void IMouseEditLine::slotRedo()
+{
+    // abort operation
+    if(lineOp != nullptr)
+    {
+        lineOp->abortStep();
+    }
+
+    if(idxHistory < (history.size() - 1))
+    {
+        idxHistory++;
+    }
+
+    points = history[idxHistory];
+
+    scrOptEditLine->toolRedo->setEnabled(idxHistory < (history.size() - 1));
+    scrOptEditLine->toolUndo->setEnabled(true);
+    canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawMouse);
+}
+
+void IMouseEditLine::updateStatus()
+{
+    if(!enableStatus || points.isEmpty())
+    {
+        canvas->reportStatus("IMouseEditLine", QString());
+        return;
+    }
+
+    canvas->getElevationAt(points);
+
+    qreal asc   = 0;
+    qreal dsc   = 0;
+    qreal dist  = 0;
+
+    qreal lastEle = points[0].ele;
+    QPointF lastPos = points[0].coord;
+
+    for(const IGisLine::point_t &pt1 : points)
+    {
+        qreal delta = pt1.ele - lastEle;
+        if(qAbs(delta) > ASCENT_THRESHOLD)
+        {
+            if(delta > 0)
+            {
+                asc += delta;
+            }
+            if(delta < 0)
+            {
+                dsc -= delta;
+            }
+            lastEle = pt1.ele;
+        }
+
+        dist += GPS_Math_Distance(lastPos.x(), lastPos.y(), pt1.coord.x(), pt1.coord.y());
+        lastPos = pt1.coord;
+
+        for(const IGisLine::subpt_t& pt : pt1.subpts)
+        {
+            delta = pt.ele - lastEle;
+            if(qAbs(delta) > ASCENT_THRESHOLD)
+            {
+                if(delta > 0)
+                {
+                    asc += delta;
+                }
+                if(delta < 0)
+                {
+                    dsc -= delta;
+                }
+                lastEle = pt.ele;
+            }
+
+            dist += GPS_Math_Distance(lastPos.x(), lastPos.y(), pt.coord.x(), pt.coord.y());
+            lastPos = pt.coord;
+        }
+    }
+
+    QString msg, val, unit;
+
+    msg += tr("<b>%1 Metrics</b>").arg(type);
+    msg += "<table>";
+    IUnit::self().meter2distance(dist, val, unit);
+    msg += "<tr><td>" + tr("Distance:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
+    IUnit::self().meter2elevation(asc, val, unit);
+    msg += "<tr><td>" + tr("Ascent:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
+    IUnit::self().meter2elevation(dsc, val, unit);
+    msg += "<tr><td>" + tr("Descent:") + "</td><td>" + QString(" %1 %2").arg(val).arg(unit) + "</td></tr>";
+    msg += "</table>";
+
+    canvas->reportStatus("IMouseEditLine",msg);
+}
diff --git a/src/qmapshack/mouse/line/IMouseEditLine.h b/src/qmapshack/mouse/line/IMouseEditLine.h
new file mode 100644
index 0000000..ebb3037
--- /dev/null
+++ b/src/qmapshack/mouse/line/IMouseEditLine.h
@@ -0,0 +1,158 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 Norbert Truchsess norbert.truchsess at t-online.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/>.
+
+**********************************************************************************************/
+
+#ifndef IMOUSEEDITLINE_H
+#define IMOUSEEDITLINE_H
+
+#include "gis/IGisItem.h"
+#include "gis/IGisLine.h"
+#include "mouse/IMouse.h"
+#include <QDebug>
+#include <QPointer>
+#include <QPolygonF>
+
+class CGisDraw;
+class CCanvas;
+class IGisLine;
+class CScrOptEditLine;
+class ILineOp;
+
+class IMouseEditLine : public IMouse
+{
+    Q_OBJECT
+public:
+    enum features_e
+    {
+        eFeatureSnapToLines = 0x01
+        , eFeatureRouting   = 0x02
+    };
+
+    /**
+       @brief Start to create a new track with given point as first track point
+       @param point     the starting point
+       @param gis       the draw context to use
+       @param parent    the canvas to use
+     */
+    IMouseEditLine(const IGisItem::key_t& key, const QPointF& point, bool enableStatus, const QString& type, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    /**
+       @brief Edit an existing track
+       @param trk       the track to edit
+       @param gis       the draw context to use
+       @param parent    the canvas to use
+     */
+    IMouseEditLine(const IGisItem::key_t &key, IGisLine &src, bool enableStatus, const QString& type, CGisDraw * gis, CCanvas * canvas, CMouseAdapter * mouse);
+    virtual ~IMouseEditLine();
+
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw, const QRect &rect) override;
+
+    void leftClicked(const QPoint& pos) override;
+    void mouseMoved(const QPoint& pos) override;
+    void leftButtonDown(const QPoint& pos) override;
+    void rightButtonDown(const QPoint& pos) override;
+
+    void scaleChanged() override;
+
+    void abortStep() override;
+
+    bool useAutoRouting() const;
+    bool useVectorRouting() const;
+
+    void storeToHistory(const SGisLine& line);
+    void restoreFromHistory(SGisLine& line);
+
+    virtual void updateStatus();
+
+protected slots:
+    /**
+       @brief Delete the selected point
+     */
+    void slotDeletePoint();
+    /**
+       @brief Start to select a range of points
+     */
+    void slotSelectRange();
+    /**
+       @brief Move selected point
+     */
+    void slotMovePoint();
+    /**
+       @brief Add points in direction start of track (eStateAddPointBwd)
+     */
+    void slotAddPoint();
+
+    void slotNoRouting();
+    void slotAutoRouting();
+    void slotVectorRouting();
+
+
+    virtual void slotAbort() = 0;
+    void slotAbortEx(bool showMB);
+    virtual void slotCopyToOrig();
+    virtual void slotCopyToNew() = 0;
+
+    void slotUndo();
+    void slotRedo();
+
+protected:
+    virtual void drawLine(const QPolygonF& l, const QColor color, int width, QPainter& p);
+    /**
+       @brief Get access to the IGisLine object a subclass of IMouseEditLine is handling.
+       @return A valid pointer or 0.
+     */
+    virtual IGisLine * getGisLine() const = 0;
+
+    virtual void startNewLine(const QPointF &point);
+
+    /// shadow cursor needed to restore cursor after some actions providing their own cursor.
+    QCursor cursor1;
+
+    /// the abstract line object to edit
+    SGisLine points;
+
+    /// undo/redo history
+    QList<SGisLine> history;
+    qint32 idxHistory = NOIDX;
+
+    /// the on screen buttons
+    CScrOptEditLine * scrOptEditLine;
+
+    /// the key of the GIS item to edit
+    IGisItem::key_t key;
+
+    QString docPanning = tr("<br/><b>Move the map</b><br/>If you keep the left mouse button pressed and move the mouse, you will move the map.<br/><br/>");
+
+private:
+    void commonSetup();
+    void changeCursor();
+
+    QPolygonF pixelLine;
+    QPolygonF pixelPts;
+    QPolygonF pixelSubs;
+
+    /// the current active line operation (move, add, delete...)
+    ILineOp * lineOp = nullptr;
+
+    bool enableStatus;
+
+    QString type;
+};
+
+#endif //IMOUSEEDITLINE_H
+
+
diff --git a/src/mouse/line/IScrOptEditLine.ui b/src/qmapshack/mouse/line/IScrOptEditLine.ui
similarity index 100%
rename from src/mouse/line/IScrOptEditLine.ui
rename to src/qmapshack/mouse/line/IScrOptEditLine.ui
diff --git a/src/mouse/line/IScrOptRangeLine.ui b/src/qmapshack/mouse/line/IScrOptRangeLine.ui
similarity index 100%
rename from src/mouse/line/IScrOptRangeLine.ui
rename to src/qmapshack/mouse/line/IScrOptRangeLine.ui
diff --git a/src/pics/about.png b/src/qmapshack/pics/about.png
similarity index 100%
rename from src/pics/about.png
rename to src/qmapshack/pics/about.png
diff --git a/src/pics/compass.png b/src/qmapshack/pics/compass.png
similarity index 100%
rename from src/pics/compass.png
rename to src/qmapshack/pics/compass.png
diff --git a/src/pics/compass.svg b/src/qmapshack/pics/compass.svg
similarity index 100%
rename from src/pics/compass.svg
rename to src/qmapshack/pics/compass.svg
diff --git a/src/pics/noMap256x256.png b/src/qmapshack/pics/noMap256x256.png
similarity index 100%
rename from src/pics/noMap256x256.png
rename to src/qmapshack/pics/noMap256x256.png
diff --git a/src/pics/splash.png b/src/qmapshack/pics/splash.png
similarity index 100%
rename from src/pics/splash.png
rename to src/qmapshack/pics/splash.png
diff --git a/src/pics/timezones.png b/src/qmapshack/pics/timezones.png
similarity index 100%
rename from src/pics/timezones.png
rename to src/qmapshack/pics/timezones.png
diff --git a/src/plot/CPlot.cpp b/src/qmapshack/plot/CPlot.cpp
similarity index 100%
rename from src/plot/CPlot.cpp
rename to src/qmapshack/plot/CPlot.cpp
diff --git a/src/plot/CPlot.h b/src/qmapshack/plot/CPlot.h
similarity index 100%
rename from src/plot/CPlot.h
rename to src/qmapshack/plot/CPlot.h
diff --git a/src/plot/CPlotAxis.cpp b/src/qmapshack/plot/CPlotAxis.cpp
similarity index 100%
rename from src/plot/CPlotAxis.cpp
rename to src/qmapshack/plot/CPlotAxis.cpp
diff --git a/src/plot/CPlotAxis.h b/src/qmapshack/plot/CPlotAxis.h
similarity index 100%
rename from src/plot/CPlotAxis.h
rename to src/qmapshack/plot/CPlotAxis.h
diff --git a/src/plot/CPlotAxisTime.cpp b/src/qmapshack/plot/CPlotAxisTime.cpp
similarity index 100%
rename from src/plot/CPlotAxisTime.cpp
rename to src/qmapshack/plot/CPlotAxisTime.cpp
diff --git a/src/plot/CPlotAxisTime.h b/src/qmapshack/plot/CPlotAxisTime.h
similarity index 100%
rename from src/plot/CPlotAxisTime.h
rename to src/qmapshack/plot/CPlotAxisTime.h
diff --git a/src/plot/CPlotData.cpp b/src/qmapshack/plot/CPlotData.cpp
similarity index 100%
rename from src/plot/CPlotData.cpp
rename to src/qmapshack/plot/CPlotData.cpp
diff --git a/src/plot/CPlotData.h b/src/qmapshack/plot/CPlotData.h
similarity index 100%
rename from src/plot/CPlotData.h
rename to src/qmapshack/plot/CPlotData.h
diff --git a/src/plot/CPlotProfile.cpp b/src/qmapshack/plot/CPlotProfile.cpp
similarity index 100%
rename from src/plot/CPlotProfile.cpp
rename to src/qmapshack/plot/CPlotProfile.cpp
diff --git a/src/plot/CPlotProfile.h b/src/qmapshack/plot/CPlotProfile.h
similarity index 100%
rename from src/plot/CPlotProfile.h
rename to src/qmapshack/plot/CPlotProfile.h
diff --git a/src/plot/CPlotTrack.cpp b/src/qmapshack/plot/CPlotTrack.cpp
similarity index 100%
rename from src/plot/CPlotTrack.cpp
rename to src/qmapshack/plot/CPlotTrack.cpp
diff --git a/src/plot/CPlotTrack.h b/src/qmapshack/plot/CPlotTrack.h
similarity index 100%
rename from src/plot/CPlotTrack.h
rename to src/qmapshack/plot/CPlotTrack.h
diff --git a/src/qmapshack/plot/IPlot.cpp b/src/qmapshack/plot/IPlot.cpp
new file mode 100644
index 0000000..1f3ca6f
--- /dev/null
+++ b/src/qmapshack/plot/IPlot.cpp
@@ -0,0 +1,1459 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2015 Christian Eichler code at christian-eichler.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 "plot/CPlotAxis.h"
+#include "plot/IPlot.h"
+
+#include "CMainWindow.h"
+#include "gis/CGisWorkspace.h"
+#include "gis/trk/CActivityTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "mouse/CScrOptRangeTrk.h"
+#include "widgets/CFadingIcon.h"
+
+#include <QKeyEvent>
+#include <QtWidgets>
+
+const 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)
+};
+
+const QPen IPlot::pensThin[] =
+{
+    QPen(Qt::darkBlue,   2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+    , QPen(Qt::darkRed,    2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+    , QPen(Qt::darkYellow, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+    , QPen(Qt::darkGreen,  2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)
+};
+
+const QColor IPlot::colors[] =
+{
+    QColor(Qt::blue)
+    , QColor(0, 0, 0, 0)
+    , QColor(0, 0, 0, 0)
+    , QColor(Qt::darkGreen)
+};
+
+int IPlot::cnt = 0;
+
+IPlot::IPlot(CGisItemTrk *trk, CPlotData::axistype_e type, mode_e mode, QWidget *parent)
+    : QWidget(parent)
+    , INotifyTrk(CGisItemTrk::eVisualPlot)
+    , mode(mode)
+    , trk(trk)
+    , fm(font())
+{
+    cnt++;
+    setObjectName(QString("IPlot%1").arg(cnt));
+
+    setContextMenuPolicy(Qt::CustomContextMenu);
+    setMouseTracking(true);
+
+    if(trk)
+    {
+        trk->registerVisual(this);
+    }
+
+    data = new CPlotData(type, this);
+
+    if(mode == eModeIcon)
+    {
+        showScale = false;
+        thinLine = true;
+    }
+
+    if(mode == eModeWindow)
+    {
+        overrideWindowFlags(Qt::Tool);
+        setAttribute(Qt::WA_DeleteOnClose, true);
+    }
+
+    menu = new QMenu(this);
+    actionResetZoom = menu->addAction(QIcon("://icons/32x32/Zoom.png"),        tr("Reset Zoom"), this, SLOT(slotResetZoom()));
+    actionStopRange = menu->addAction(QIcon("://icons/32x32/SelectRange.png"), tr("Stop Range"), this, SLOT(slotStopRange()));
+    actionPrint     = menu->addAction(QIcon("://icons/32x32/Save.png"),        tr("Save..."),    this, SLOT(slotSave()));
+    menu->addSeparator();
+    actionAddWpt    = menu->addAction(QIcon("://icons/32x32/AddWpt.png"),      tr("Add Waypoint"), this, SLOT(slotAddWpt()));
+    actionCutTrk    = menu->addAction(QIcon("://icons/32x32/TrkCut.png"),       tr("Cut..."),    this, SLOT(slotCutTrk()));
+
+    connect(this, &IPlot::customContextMenuRequested, this, &IPlot::slotContextMenu);
+}
+
+IPlot::~IPlot()
+{
+    cnt--;
+
+    if(trk)
+    {
+        trk->unregisterVisual(this);
+        /*
+            Always set the mode to normal. If the object is not owner
+            of the current mode, the request will be ignored.
+         */
+        trk->setMode(CGisItemTrk::eModeNormal, objectName());
+
+        /*
+            As having the user focus will always display an on screen plot, closing
+            the plot has to result into the track loosing the focus.
+         */
+        if(mode == eModeWindow)
+        {
+            trk->looseUserFocus();
+            CCanvas * canvas = dynamic_cast<CCanvas*>(parent());
+            if(canvas)
+            {
+                canvas->slotTriggerCompleteUpdate(CCanvas::eRedrawGis);
+            }
+        }
+    }
+}
+
+void IPlot::clear()
+{
+    needsRedraw = true;
+    data->lines.clear();
+    data->tags.clear();
+    data->badData = true;
+    update();
+}
+
+void IPlot::setXTicScale(qreal scale)
+{
+    data->x().setTicScale(scale);
+    setSizes();
+    update();
+}
+
+void IPlot::setYLabel(const QString& str)
+{
+    data->ylabel = str;
+    setSizes();
+    update();
+}
+
+
+void IPlot::setXLabel(const QString& str)
+{
+    data->xlabel = str;
+    setSizes();
+    update();
+}
+
+
+void IPlot::newLine(const QPolygonF& line, const QString& label)
+{
+    data->lines.clear();
+
+    QRectF r = line.boundingRect();
+    if((r.height() < 0) || (r.width() < 0) || line.isEmpty())
+    {
+        data->badData = true;
+        return;
+    }
+
+    CPlotData::line_t l;
+    l.points    = line;
+    l.label     = label;
+
+    data->badData = false;
+    data->lines << l;
+    setSizes();
+    data->x().setScale( rectGraphArea.width() );
+    data->y().setScale( rectGraphArea.height() );
+
+    needsRedraw = true;
+    update();
+}
+
+void IPlot::addLine(const QPolygonF& line, const QString& label)
+{
+    QRectF r = line.boundingRect();
+    if(!r.isValid() || line.isEmpty())
+    {
+        return;
+    }
+
+    CPlotData::line_t l;
+    l.points    = line;
+    l.label     = label;
+
+    data->lines << l;
+    setSizes();
+    data->x().setScale( rectGraphArea.width() );
+    data->y().setScale( rectGraphArea.height() );
+
+    needsRedraw = true;
+    update();
+}
+
+
+void IPlot::setLimits()
+{
+    data->setLimits();
+}
+
+void IPlot::resetZoom()
+{
+    data->x().resetZoom();
+    data->y().resetZoom();
+    setSizes();
+
+    needsRedraw = true;
+    update();
+}
+
+
+void IPlot::paintEvent(QPaintEvent * e)
+{
+    QPainter p(this);
+    draw(p);
+}
+
+void IPlot::resizeEvent(QResizeEvent * e)
+{
+    setSizes();
+
+    buffer = QImage(e->size(), QImage::Format_ARGB32);
+
+    needsRedraw = true;
+    update();
+}
+
+void IPlot::leaveEvent(QEvent * e)
+{
+    needsRedraw = true;
+    posMouse1    = NOPOINT;
+
+    CCanvas::restoreOverrideCursor("IPlot::leaveEvent");
+    update();
+}
+
+
+void IPlot::enterEvent(QEvent * e)
+{
+    needsRedraw = true;
+    CCanvas::setOverrideCursor(Qt::PointingHandCursor,"IPlot::enterEvent");
+    update();
+}
+
+void IPlot::draw(QPainter& p)
+{
+    if(needsRedraw)
+    {
+        draw();
+        needsRedraw = false;
+    }
+
+    p.drawImage(0,0,buffer);
+    drawDecoration(p);
+}
+
+void IPlot::keyPressEvent(QKeyEvent *e)
+{
+    // close the current window if `Esc` was pressed
+    if(Qt::Key_Escape == e->key())
+    {
+        e->accept();
+        deleteLater();
+    }
+    else
+    {
+        QWidget::keyPressEvent(e);
+    }
+}
+
+bool IPlot::graphAreaContainsMousePos(QPoint& pos)
+{
+    if(rectGraphArea.contains(pos))
+    {
+        return true;
+    }
+
+    if((pos.y() < rectGraphArea.bottom()) && (pos.y() > rectGraphArea.top()))
+    {
+        if(pos.x() < rectGraphArea.left())
+        {
+            pos.rx() = rectGraphArea.left();
+        }
+
+        if(pos.x() > rectGraphArea.right())
+        {
+            pos.rx() = rectGraphArea.right();
+        }
+
+        return true;
+    }
+
+    return false;
+}
+
+void IPlot::mouseMoveEvent(QMouseEvent * e)
+{
+    if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
+    {
+        return;
+    }
+
+    QPoint pos      = e->pos();
+    mouseDidMove    = (e->buttons() == Qt::LeftButton);
+    if(mouseDidMove)
+    {
+        if(!scrOptRange.isNull())
+        {
+            delete scrOptRange;
+        }
+        QPoint diff = pos - posLast;
+
+        data->x().move(-diff.x());
+        data->y().move( diff.y());
+        needsRedraw = true;
+        update();
+
+        posLast = pos;
+        return;
+    }
+
+    posMouse1    = NOPOINT;
+    if(graphAreaContainsMousePos(pos))
+    {
+        posMouse1 = pos;
+
+        // set point of focus at track object
+        qreal x = data->x().pt2val(posMouse1.x() - left);
+        setMouseFocus(x, CGisItemTrk::eFocusMouseMove);
+
+        // update canvas if visible
+        CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+        if(canvas)
+        {
+            canvas->update();
+        }
+        e->accept();
+    }
+
+    update();
+}
+
+void IPlot::setMouseFocus(qreal pos, enum CGisItemTrk::focusmode_e fm)
+{
+    if(nullptr == trk)
+    {
+        return;
+    }
+
+    if(data->axisType == CPlotData::eAxisLinear)
+    {
+        trk->setMouseFocusByDistance(pos, fm, objectName());
+    }
+    else if(data->axisType == CPlotData::eAxisTime)
+    {
+        trk->setMouseFocusByTime(pos, fm, objectName());
+    }
+}
+
+void IPlot::mousePressEvent(QMouseEvent * e)
+{
+    if((e->button() == Qt::LeftButton) && (mode == eModeIcon))
+    {
+        trk->edit();
+    }
+
+    mouseDidMove    = false;
+    posLast         = e->pos();
+}
+
+void IPlot::mouseReleaseEvent(QMouseEvent * e)
+{
+    if(e->button() == Qt::LeftButton)
+    {
+        if((mode == eModeIcon) || mouseDidMove)
+        {
+            mouseDidMove = false;
+            return;
+        }
+        else
+        {
+            QPoint pos = e->pos();
+            posMouse1  = graphAreaContainsMousePos(pos) ? pos : NOPOINT;
+
+            bool wasProcessed = true;
+            // set point of focus at track object
+            qreal x = data->x().pt2val(posMouse1.x() - left);
+
+            switch(mouseClickState)
+            {
+            case eMouseClickIdle:
+            {
+                // In idle state a mouse click will select the first point of a range
+                if(trk->setMode(CGisItemTrk::eModeRange, objectName()))
+                {
+                    setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
+                    mouseClickState = eMouseClick1st;
+                }
+                else
+                {
+                    /*
+                        If the object is not the owner of the range selection, no action has to be taken.
+                        However the user has to be informed, that he clicked on the wrong widget.
+                     */
+                    new CFadingIcon(posMouse1, "://icons/48x48/NotPossible.png", this);
+                    wasProcessed = false;
+                }
+                break;
+            }
+
+            case eMouseClick1st:
+            {
+                // In 1st click state a mouse click will select the second point of a range and display options
+                setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
+                /*
+                    As the screen option is created on the fly it has to be connected to all slots,too.
+                    Later, when destroyed the slots will be disconnected automatically.
+                 */
+                delete scrOptRange;
+                scrOptRange = new CScrOptRangeTrk(pos, trk, &dummyMouse, this);
+                connect(scrOptRange->toolHidePoints, &QToolButton::clicked, this, &IPlot::slotHidePoints);
+                connect(scrOptRange->toolShowPoints, &QToolButton::clicked, this, &IPlot::slotShowPoints);
+                connect(scrOptRange->toolCopy,       &QToolButton::clicked, this, &IPlot::slotCopy);
+
+                connect(scrOptRange.data(), &CScrOptRangeTrk::activitySelected, this, &IPlot::slotActivity);
+
+                /* Adjust position of screen option widget if the widget is out of the visible area*/
+                QRect r1 = scrOptRange->geometry();
+                QRect r2 = geometry();
+                r1.moveTopLeft(mapToParent(r1.topLeft()));
+                if(!r2.contains(r1))
+                {
+                    // test if screen option is out of area on the right side
+                    if(!r2.contains(r1.topRight()))
+                    {
+                        QPoint pt = QPoint(r2.width(), r2.height()) - QPoint(r1.width(), r1.height());
+                        scrOptRange->move(pt);
+                    }
+                    // test if screen option is out of area on the left side
+                    else if(!r2.contains(r1.topLeft()))
+                    {
+                        QPoint pt = QPoint(0, r2.height()) - QPoint(0, r1.height());
+                        scrOptRange->move(pt);
+                    }
+                    // test if screen option is out of area on the bottom
+                    else if(!r2.contains(r1.bottomLeft()))
+                    {
+                        QPoint pt = QPoint(r1.left(), r2.height()) - QPoint(r2.left(), r1.height());
+                        scrOptRange->move(pt);
+                    }
+                }
+
+                mouseClickState = eMouseClick2nd;
+                break;
+            }
+
+            case eMouseClick2nd:
+            {
+                // In second click state a mouse click will reset the range selection
+                delete scrOptRange;
+                trk->setMode(CGisItemTrk::eModeNormal, objectName());
+                idxSel1 = idxSel2 = NOIDX;
+                mouseClickState = eMouseClickIdle;
+                break;
+            }
+            }
+
+
+            // Update canvas only if the object is the owner of the range selection
+            if(wasProcessed)
+            {
+                emit sigMouseClickState(mouseClickState);
+
+                // update canvas if visible
+                CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+                if(canvas)
+                {
+                    canvas->update();
+                }
+            }
+        }
+        e->accept();
+    }
+    update();
+}
+
+void IPlot::wheelEvent(QWheelEvent * e)
+{
+    bool in = CMainWindow::self().flipMouseWheel() ? (e->delta() < 0) : (e->delta() > 0);
+
+    bool doHorizontalZoom   = false;
+    bool doVerticalZoom     = false;
+
+    switch(QApplication::keyboardModifiers())
+    {
+    case Qt::AltModifier:
+        doHorizontalZoom    = true;
+        break;
+
+    case Qt::ControlModifier:
+        doVerticalZoom      = true;
+        break;
+
+    case Qt::NoModifier:
+        doHorizontalZoom    = true;
+        doVerticalZoom      = true;
+        break;
+    }
+
+    if(doHorizontalZoom)
+    {
+        data->x().zoom(in, e->pos().x() - left);
+        setSizes();
+        data->x().setScale(rectGraphArea.width());
+    }
+
+    if(doVerticalZoom)
+    {
+        data->y().zoom(in, bottom - e->pos().y());
+        setSizes();
+        data->y().setScale(rectGraphArea.height());
+    }
+
+
+    QPoint p = mapToGlobal(e->pos() + QPoint(32,0));
+    QToolTip::showText(p,tr("Hold CTRL key for vertical zoom, only.\nHold ALT key for horizontal zoom, only."), this, QRect(), 500);
+    needsRedraw = true;
+    update();
+}
+
+void IPlot::setSizes()
+{
+    fm = QFontMetrics(CMainWindow::self().getMapFont());
+    left = 0;
+
+    scaleWidthX1 = showScale ? data->x().getScaleWidth( fm ) : 0;
+    scaleWidthY1 = showScale ? data->y().getScaleWidth( fm ) : 0;
+
+    scaleWidthY1 = (scaleWidthX1/2) > scaleWidthY1 ? scaleWidthX1/2 : scaleWidthY1;
+
+    fontWidth    = fm.maxWidth();
+    fontHeight   = fm.height();
+    deadAreaX    = fontWidth >> 1;
+    deadAreaY    = ( fontHeight + 1 ) >> 1;
+
+    setLRTB();
+    setSizeIconArea();
+    setSizeXLabel();
+    setSizeYLabel();
+    setSizeTrackInfo();
+    setSizeDrawArea();
+}
+
+void IPlot::setLRTB()
+{
+    left = 0;
+
+    left += data->ylabel.isEmpty() ? 0 : fontHeight;
+    left += scaleWidthY1;
+    left += deadAreaX;
+
+    right = size().width();
+    right -= deadAreaX;
+    right -= scaleWidthX1 / 2;
+
+    top = 0;
+    if(!data->tags.isEmpty())
+    {
+        top += 9;
+    }
+    top += deadAreaY;
+
+    bottom = size().height();
+    bottom -= data->xlabel.isEmpty() ? 0 : fontHeight;
+    // tick marks
+    if(scaleWidthX1)
+    {
+        bottom -= fontHeight;
+    }
+    bottom -= deadAreaY;
+
+    if(!data->xlabel.isEmpty())
+    {
+        bottom -= deadAreaY;
+    }
+}
+
+
+void IPlot::setSizeIconArea()
+{
+    rectIconArea = QRect(left, deadAreaY, right - left, 16 + fontHeight + deadAreaY);
+}
+
+void IPlot::setSizeXLabel()
+{
+    int y;
+    if ( data->xlabel.isEmpty() )
+    {
+        rectX1Label = QRect( 0, 0, 0, 0 );
+    }
+    else
+    {
+        rectX1Label.setWidth( right - left );
+        rectX1Label.setHeight( fontHeight );
+        y = ( size().height() - rectX1Label.height()) - deadAreaY;
+
+        rectX1Label.moveTopLeft( QPoint( left, y ) );
+    }
+}
+
+void IPlot::setSizeYLabel()
+{
+    if ( data->ylabel.isEmpty() )
+    {
+        rectY1Label = QRect( 0, 0, 0, 0 );
+    }
+    else
+    {
+        rectY1Label.setWidth( bottom - top );
+        rectY1Label.setHeight( fontHeight );
+        rectY1Label.moveTopLeft( QPoint( size().height() - bottom, 0 ) );
+    }
+}
+
+void IPlot::setSizeTrackInfo()
+{
+    if(data->tags.isEmpty() /*|| !CResources::self().showTrackProfileEleInfo()*/)
+    {
+        rectTrackInfo = QRect();
+        return;
+    }
+
+    rectTrackInfo.setWidth(right - left);
+    rectTrackInfo.setHeight(fontHeight);
+    rectTrackInfo.moveLeft(left);
+    rectTrackInfo.moveTop(size().height() - fontHeight);
+}
+
+void IPlot::setSizeDrawArea()
+{
+    rectGraphArea.setWidth( right - left );
+    rectGraphArea.setHeight( bottom - top );
+    rectGraphArea.moveTopLeft( QPoint( left, top ) );
+
+    data->x().setScale( rectGraphArea.width() );
+    data->y().setScale( rectGraphArea.height() );
+}
+
+
+void IPlot::draw()
+{
+    buffer.fill(Qt::transparent);
+    QPainter p(&buffer);
+    USE_ANTI_ALIASING(p, true);
+
+    if(mode == eModeNormal)
+    {
+        p.fillRect(rect(),Qt::white);
+    }
+    else if(mode == eModeIcon)
+    {
+        QRect r = rect();
+        r.adjust(2,2,-2,-2);
+        if(underMouse() || posMouse1 != NOPOINT || solid)
+        {
+            p.setPen(solid ? CDraw::penBorderBlack : CDraw::penBorderBlue);
+            p.setOpacity(1.0);
+        }
+        else
+        {
+            p.setPen(CDraw::penBorderBlack);
+            p.setOpacity(0.6);
+        }
+        p.setBrush(QColor(255,255,255,255));
+
+        PAINT_ROUNDED_RECT(p,r);
+    }
+
+    if(data->lines.isEmpty() || data->badData || !data->x().isValid() || !data->y().isValid())
+    {
+        p.drawText(rect(), Qt::AlignCenter, tr("No or bad data."));
+        return;
+    }
+
+    p.setFont(CMainWindow::self().getMapFont());
+    drawTags(p);
+    p.setClipping(true);
+    p.setClipRect(rectGraphArea);
+    drawData(p);
+    p.setClipping(false);
+    drawLabels(p);
+    if(showScale)
+    {
+        drawXScale(p);
+        drawYScale(p);
+    }
+    drawGridX(p);
+    drawGridY(p);
+    drawActivities(p);
+    drawXTic(p);
+    drawYTic(p);
+    p.setPen(QPen(Qt::black,2));
+    p.drawRect(rectGraphArea);
+
+    drawLegend(p);
+}
+
+QPointF IPlot::getBasePoint(int ptx) const
+{
+    CPlotAxis& yaxis = data->y();
+
+    if(0 >= data->ymin && 0 <= data->ymax)
+    {
+        return QPointF(ptx, bottom - yaxis.val2pt(0));
+    }
+    else if(data->ymin >= 0)
+    {
+        return QPointF(ptx, bottom - yaxis.val2pt(data->ymin));
+    }
+    else if(data->ymax <= 0)
+    {
+        return QPointF(ptx, bottom - yaxis.val2pt(data->ymax));
+    }
+
+    qWarning() << "Requesting basePoint for ptx = " << ptx << "; data->ymin/max = {" << data->ymin << ",  " << data->ymax << "}";
+    return QPointF(ptx, bottom);
+}
+
+QPolygonF IPlot::getVisiblePolygon(const QPolygonF &polyline, QPolygonF &line) const
+{
+    const CPlotAxis &xaxis = data->x();
+    const CPlotAxis &yaxis = data->y();
+
+    int ptx = NOINT;
+    int pty = NOINT;
+
+    for(const QPointF &pt : polyline)
+    {
+        int oldPtx = ptx;
+        int oldPty = pty;
+        ptx = left   + xaxis.val2pt( pt.x() );
+        pty = bottom - yaxis.val2pt( pt.y() );
+
+        if(ptx >= left && ptx <= right)
+        {
+            // if oldPtx is < left, then ptx is the first visible point
+            if(NOINT == oldPtx || oldPtx < left)
+            {
+                // we may need to interpolate things if we just found the first visible point
+                if(NOINT != oldPtx && ptx > left)
+                {
+                    line << getBasePoint(left);
+
+                    int intPty = oldPty + ((oldPty - pty) * (left - oldPtx)) / (oldPtx - ptx);
+                    line << QPointF(left, intPty);
+                }
+                else
+                {
+                    line << getBasePoint(ptx);
+                }
+            }
+
+            line << QPointF(ptx, pty);
+        }
+        else if(ptx > right)
+        {
+            // handle the special case `no point in the visible interval`
+            // -> add interpolated left point
+            if(oldPtx < left)
+            {
+                oldPty = oldPty + (pty - oldPty) / (left - oldPtx);
+                oldPtx = left;
+
+                line << getBasePoint(oldPtx);
+                line << QPointF(oldPtx, oldPty);
+            }
+
+            // interpolate the value at `right`
+            pty = oldPty + ((pty - oldPty) * (right - oldPtx)) / (ptx - oldPtx);
+            ptx = right;
+            line << QPointF(ptx, pty);
+        }
+
+        if(ptx >= right)
+        {
+            break;
+        }
+    }
+    line << getBasePoint(ptx);
+    return line;
+}
+
+void IPlot::drawData(QPainter& p)
+{
+    int penIdx = 0;
+    QList<CPlotData::line_t> lines                = data->lines;
+    QList<CPlotData::line_t>::const_iterator line = lines.begin();
+
+    while(line != lines.end())
+    {
+        QPolygonF poly;
+        getVisiblePolygon(line->points, poly);
+
+        p.setPen(Qt::NoPen);
+        p.setBrush(colors[penIdx]);
+        p.drawPolygon(poly);
+
+        p.setPen(thinLine ? pensThin[penIdx++] : pens[penIdx++]);
+        p.setBrush(Qt::NoBrush);
+        poly.pop_front();
+        poly.pop_back();
+        p.drawPolyline(poly);
+
+        ++line;
+    }
+}
+
+void IPlot::drawLabels( QPainter &p )
+{
+    p.setPen(Qt::darkBlue);
+
+    if ( rectX1Label.isValid() )
+    {
+        p.drawText( rectX1Label, Qt::AlignCenter, data->xlabel );
+    }
+
+    p.save();
+    QMatrix m = p.matrix();
+    m.translate( 0, size().height() );
+    m.rotate( -90 );
+    p.setMatrix( m );
+
+    if ( rectY1Label.isValid() )
+    {
+        p.drawText( rectY1Label, Qt::AlignCenter, data->ylabel );
+    }
+    p.restore();
+}
+
+void IPlot::drawXScale( QPainter &p )
+{
+    QRect recText;
+
+    if ( data->x().getTicType() == CPlotAxis::eNoTic )
+    {
+        return;
+    }
+
+    p.setPen(Qt::darkBlue);
+    recText.setHeight( fontHeight );
+    recText.setWidth( scaleWidthX1 );
+
+    int ix_ = -1;
+
+    const int iy = bottom + deadAreaY;
+    const CPlotAxis::tic_t * t = data->x().ticmark();
+    while ( t )
+    {
+        int ix = left + data->x().val2pt( t->val ) - ( scaleWidthX1 + 1 ) / 2;
+        if ( ( ( ix_ < 0 ) || ( ( ix - ix_ ) > scaleWidthX1 + 5 ) ) && !t->lbl.isEmpty() )
+        {
+            recText.moveTopLeft( QPoint( ix, iy ) );
+            p.drawText( recText, Qt::AlignCenter, t->lbl );
+            ix_ = ix;
+        }
+        t = data->x().ticmark( t );
+    }
+
+    qreal limMin, limMax, useMin, useMax;
+    data->x().getLimits(limMin, limMax, useMin, useMax);
+
+    if(!isZoomed())
+    {
+        return;
+    }
+
+    qreal scale = (right - left) / (limMax - limMin);
+
+    int x = left + (useMin - limMin) * scale;
+    int y = bottom + 5;
+    int w = (useMax - useMin) * scale;
+
+    p.setPen(QPen(Qt::red,3));
+    p.drawLine(x,y, x + w, y);
+}
+
+
+void IPlot::drawYScale( QPainter &p )
+{
+    QString format_single_prec;
+    QRect recText;
+    if ( data->y().getTicType() == CPlotAxis::eNoTic )
+    {
+        return;
+    }
+
+    p.setPen(Qt::darkBlue);
+    recText.setHeight( fontHeight );
+    recText.setWidth( scaleWidthY1 );
+
+    int ix = left - scaleWidthY1 - deadAreaX;
+    int iy;
+
+    qreal limMin, limMax, useMin, useMax;
+    data->y().getLimits(limMin, limMax, useMin, useMax);
+
+    // draw min/max labels 1st;
+    QRect recTextMin;
+    QRect recTextMax;
+
+    format_single_prec = data->y().fmtsgl(data->ymin);
+    if(data->ymin >= useMin)
+    {
+        iy = bottom - data->y().val2pt( data->ymin ) - fontHeight / 2;
+        recText.moveTopLeft( QPoint( ix, iy ) );
+        p.drawText( recText, Qt::AlignRight, QString().sprintf( format_single_prec.toLatin1().data(), data->ymin  ));
+        recTextMin = recText;
+    }
+    format_single_prec = data->y().fmtsgl(data->ymax);
+    if(data->ymax <= useMax)
+    {
+        iy = bottom - data->y().val2pt( data->ymax ) - fontHeight / 2;
+        recText.moveTopLeft( QPoint( ix, iy ) );
+        p.drawText( recText, Qt::AlignRight, QString().sprintf( format_single_prec.toLatin1().data(), data->ymax  ));
+        recTextMax = recText;
+    }
+
+    // draw tic marks
+    const CPlotAxis::tic_t * t = data->y().ticmark();
+    while ( t )
+    {
+        iy = bottom - data->y().val2pt( t->val ) - fontHeight / 2;
+
+        recText.moveTopLeft( QPoint( ix, iy ) );
+
+        if(!recTextMin.intersects(recText) && !recTextMax.intersects(recText))
+        {
+            p.drawText( recText, Qt::AlignRight, t->lbl );
+        }
+
+        t = data->y().ticmark( t );
+    }
+
+    if(!isZoomed())
+    {
+        return;
+    }
+
+    qreal scale = (top - bottom) / (limMax - limMin);
+
+    int x = left - 5;
+    int y = bottom + (useMin - limMin) * scale;
+    int h = (useMax - useMin) * scale;
+
+    p.setPen(QPen(Qt::red,3));
+    p.drawLine(x,y, x, y + h);
+}
+
+
+void IPlot::drawGridX( QPainter &p )
+{
+    CPlotAxis::tictype_e oldtic = data->x().setTicType( CPlotAxis::eTicNorm );
+
+    const int dy = rectGraphArea.height();
+    const CPlotAxis::tic_t * t = data->x().ticmark();
+
+    QPen oldpen = p.pen();
+    p.setPen( QPen( QColor(0,150,0,128), 1, Qt::DotLine ) );
+
+    const int iy = rectGraphArea.top();
+    while ( t )
+    {
+        int ix = left + data->x().val2pt( t->val );
+        p.drawLine( ix, iy, ix, iy + dy );
+        t = data->x().ticmark( t );
+    }
+    p.setPen( oldpen );
+    data->x().setTicType( oldtic );
+}
+
+
+void IPlot::drawGridY( QPainter &p )
+{
+    CPlotAxis::tictype_e oldtic = data->y().setTicType( CPlotAxis::eTicNorm );
+    const int dx = rectGraphArea.width();
+    const CPlotAxis::tic_t * t = data->y().ticmark();
+
+    QPen oldpen = p.pen();
+    p.setPen( QPen( QColor(0,150,0,128), 1, Qt::DotLine ) );
+
+    const int ix = rectGraphArea.left();
+    while(nullptr != t)
+    {
+        int iy = bottom - data->y().val2pt( t->val );
+        p.drawLine( ix, iy, ix + dx, iy );
+        t = data->y().ticmark( t );
+    }
+
+    // draw min/max lines
+    qreal limMin, limMax, useMin, useMax;
+    data->y().getLimits(limMin, limMax, useMin, useMax);
+
+    if(data->ymin > useMin)
+    {
+        int iy = bottom - data->y().val2pt( data->ymin );
+        p.drawLine( ix, iy, ix + dx, iy );
+    }
+    if(data->ymax < useMax)
+    {
+        int iy = bottom - data->y().val2pt( data->ymax );
+        p.drawLine( ix, iy, ix + dx, iy );
+    }
+
+    p.setPen( oldpen );
+    data->y().setTicType( oldtic );
+}
+
+void IPlot::drawXTic( QPainter & p )
+{
+    const CPlotAxis::tic_t * t = data->x().ticmark();
+
+    p.setPen(QPen(Qt::black, 2));
+    const int iyb = rectGraphArea.bottom();
+    const int iyt = rectGraphArea.top();
+    while(nullptr != t)
+    {
+        const int ix = left + data->x().val2pt( t->val );
+        p.drawLine( ix, iyb, ix, iyb - 5 );
+        p.drawLine( ix, iyt, ix, iyt + 5 );
+        t = data->x().ticmark( t );
+    }
+}
+
+
+void IPlot::drawYTic( QPainter &p )
+{
+    const CPlotAxis::tic_t * t = data->y().ticmark();
+
+    p.setPen(QPen(Qt::black, 2));
+    const int ixl = rectGraphArea.left();
+    const int ixr = rectGraphArea.right();
+    while ( t )
+    {
+        const int iy = bottom - data->y().val2pt( t->val );
+        p.drawLine( ixl, iy, ixl + 5, iy );
+        p.drawLine( ixr, iy, ixr - 5, iy );
+        t = data->y().ticmark( t );
+    }
+}
+
+void IPlot::drawLegend(QPainter& p)
+{
+    if((data->lines.size() < 2) || (mode == eModeIcon))
+    {
+        return;
+    }
+
+    int penIdx = 0;
+    QFontMetrics fm(p.font());
+    int h = fm.height();
+
+    int x = rectGraphArea.left() + 10;
+    int y = rectGraphArea.top()  + 2 + h;
+
+    QList<CPlotData::line_t> lines                  = data->lines;
+    QList<CPlotData::line_t>::const_iterator line   = lines.begin();
+
+    while(line != lines.end())
+    {
+        p.setPen(Qt::black);
+        p.drawText(x + 30,y,line->label);
+        p.setPen(pens[penIdx++]);
+        p.drawLine(x, y, x + 20, y);
+
+        y += fm.height();
+        ++line;
+    }
+}
+
+void IPlot::drawDecoration( QPainter &p )
+{
+    if(posMouse1 != NOPOINT)
+    {
+        // draw the vertical `you are here` line
+        int x = posMouse1.x();
+        p.setPen(QPen(Qt::red, 2));
+        if(x >= left && x <= right)
+        {
+            p.drawLine(x, top, x, bottom);
+
+            // check if the mouse is near a waypoint
+            for(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, RECT_RADIUS, RECT_RADIUS);
+
+                    p.setFont(f);
+                    p.setPen(Qt::darkBlue);
+                    p.drawText(r, Qt::AlignCenter, tag.label);
+
+                    break;
+                }
+            }
+        }
+    }
+
+    if((idxSel1 != NOIDX) && (idxSel2 != NOIDX) && !data->badData)
+    {
+        p.setClipRect(rectGraphArea);
+
+        int penIdx = 3;
+
+        const QPolygonF& polyline = data->lines.first().points.mid(idxSel1, idxSel2 - idxSel1 + 1);
+        QPolygonF line;
+        getVisiblePolygon(polyline, line);
+
+        // avoid drawing if the whole interval is outside the visible range
+        if(!(line.first().x() >= right || line.last().x() <= left))
+        {
+            // draw the background
+            p.setPen(Qt::NoPen);
+            p.setBrush(colors[penIdx]);
+            p.drawPolygon(line);
+
+            // draw the foreground
+            p.setPen(thinLine ? pensThin[penIdx] : pens[penIdx]);
+            p.setBrush(Qt::NoBrush);
+            line.pop_front();
+            line.pop_back();
+            p.drawPolyline(line);
+
+            p.setPen(QPen(Qt::darkBlue, 2));
+            p.drawLine(line.first().x(), top, line.first().x(), bottom);
+            p.drawLine(line.last().x(),  top, line.last().x(),  bottom);
+        }
+        p.setClipping(false);
+    }
+
+    if(!scrOptRange.isNull())
+    {
+        scrOptRange->draw(p);
+    }
+}
+
+void IPlot::drawTags(QPainter& p)
+{
+    if(data->tags.isEmpty())
+    {
+        return;
+    }
+
+    CPlotAxis& xaxis = data->x();
+    CPlotAxis& yaxis = data->y();
+
+    QVector<CPlotData::point_t>::const_iterator tag = data->tags.begin();
+    while(tag != data->tags.end())
+    {
+        int ptx = left   + xaxis.val2pt( tag->point.x() );
+        int 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;
+    }
+}
+
+void IPlot::drawActivities(QPainter& p)
+{
+    if((mode == eModeIcon) || (trk->getActivities().getAllFlags() == 0))
+    {
+        return;
+    }
+
+    const QList<CActivityTrk::activity_range_t>& ranges = trk->getActivities().getActivityRanges();
+
+
+    QRect rectClipping = QRect(0,0,right - left,22);
+    p.save();
+    p.translate(left, bottom - 22);
+    p.setClipRect(rectClipping);
+    p.setBrush(QColor(0,170,0,100));
+    p.setPen(Qt::NoPen);
+    p.drawRect(rectClipping);
+
+    QRect rectIconFrame(0,0,20,20);
+    QRect rectIcon(2,2,16,16);
+    for(const CActivityTrk::activity_range_t& range : ranges)
+    {
+        int x1, x2;
+        if(data->axisType == CPlotData::eAxisTime)
+        {
+            x1 = data->x().val2pt(range.t1);
+            x2 = data->x().val2pt(range.t2);
+        }
+        else
+        {
+            x1 = data->x().val2pt(range.d1);
+            x2 = data->x().val2pt(range.d2);
+        }
+
+        p.setPen(QPen(Qt::darkGreen,2));
+        p.drawLine(x1, 0, x1, 20);
+        p.drawLine(x2, 0, x2, 20);
+
+        int d = (x2 - x1);
+        if(d < 20)
+        {
+            continue;
+        }
+
+        int c = x1 + d/2;
+
+        rectIconFrame.moveCenter(QPoint(c,10));
+        p.setBrush(QColor(255, 255, 255, 100));
+        p.drawRoundedRect(rectIconFrame, RECT_RADIUS, RECT_RADIUS);
+
+        rectIcon.moveCenter(QPoint(c, 10));
+        p.drawPixmap(rectIcon, QPixmap(range.icon));
+    }
+
+    p.restore();
+}
+
+void IPlot::save(QImage& image)
+{
+    resize(image.size());
+    setSizes();
+    buffer = QImage(image.size(), QImage::Format_ARGB32);
+    draw();
+    image = buffer;
+}
+
+void IPlot::slotContextMenu(const QPoint & point)
+{
+    QPoint p = mapToGlobal(point);
+
+    actionResetZoom->setEnabled(isZoomed());
+    actionStopRange->setEnabled((mouseClickState != eMouseClickIdle) && !(idxSel1 == NOIDX || idxSel2 == NOIDX));
+    actionPrint->setEnabled(mouseClickState != eMouseClick2nd);
+    actionAddWpt->setDisabled(posMouse1 == NOPOINT);
+    actionCutTrk->setDisabled(actionStopRange->isEnabled());
+
+    posMouse2 = posMouse1;
+
+    menu->exec(p);
+
+    posMouse2 = NOPOINT;
+}
+
+void IPlot::slotSave()
+{
+    SETTINGS;
+    QString path = cfg.value("Paths/lastGraphPath", QDir::homePath()).toString();
+    QString filename = QFileDialog::getSaveFileName( this, tr("Select output file"), path, "PNG Image (*.png)");
+
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(filename);
+    if(fi.suffix().toLower() != "png")
+    {
+        filename += ".png";
+    }
+
+    QImage img(size(), QImage::Format_ARGB32);
+    QPainter p;
+    p.begin(&img);
+    p.fillRect(rect(), QBrush(Qt::white));
+    draw(p);
+    p.end();
+
+    img.save(filename);
+
+    path = fi.absolutePath();
+    cfg.setValue("Paths/lastGraphPath", path);
+}
+
+
+void IPlot::slotHidePoints()
+{
+    trk->hideSelectedPoints();
+    slotStopRange();
+}
+
+void IPlot::slotShowPoints()
+{
+    trk->showSelectedPoints();
+    slotStopRange();
+}
+
+void IPlot::slotActivity(quint32 flags)
+{
+    trk->setActivityRange(flags);
+    slotStopRange();
+}
+
+void IPlot::slotCopy()
+{
+    trk->copySelectedPoints();
+    slotStopRange();
+}
+
+void IPlot::slotStopRange()
+{
+    scrOptRange->deleteLater();
+    trk->setMode(CGisItemTrk::eModeNormal, objectName());
+    idxSel1 = idxSel2 = NOIDX;
+    mouseClickState = eMouseClickIdle;
+
+    emit sigMouseClickState(mouseClickState);
+
+    // update canvas if visible
+    CCanvas * canvas = CMainWindow::self().getVisibleCanvas();
+    if(canvas)
+    {
+        canvas->update();
+    }
+}
+
+void IPlot::slotResetZoom()
+{
+    data->x().resetZoom();
+    data->y().resetZoom();
+    setSizes();
+
+    needsRedraw = true;
+    update();
+}
+
+
+void IPlot::slotAddWpt()
+{
+    if(posMouse2 == NOPOINT)
+    {
+        return;
+    }
+
+    const CTrackData::trkpt_t * trkpt = trk->getMouseMoveFocusPoint();
+    if(trkpt == nullptr)
+    {
+        return;
+    }
+
+    CGisWorkspace::self().addWptByPos({trkpt->lon, trkpt->lat});
+    CCanvas::triggerCompleteUpdate(CCanvas::eRedrawGis);
+}
+
+void IPlot::slotCutTrk()
+{
+    // set point of mouse click focus to position of context menu stored in
+    // secondary mouse point
+    qreal x = data->x().pt2val(posMouse2.x() - left);
+    setMouseFocus(x, CGisItemTrk::eFocusMouseClick);
+
+    /*
+       Trigger cut by event not by direct call to API. This is because cutting the track
+       might result into deleting the original one. The original one is the parent of this
+       plot and needs to destroy it. This would be impossible if we are still in this method
+       because the API call did not return yet.
+     */
+    CGisWorkspace::self().postEventForWks(new CEvtA2WCutTrk(trk->getKey()));
+}
+
+void IPlot::setMouseRangeFocus(const CTrackData::trkpt_t * ptRange1, const CTrackData::trkpt_t *ptRange2)
+{
+    if(nullptr == ptRange1 || nullptr == ptRange2)
+    {
+        idxSel1 = NOIDX;
+        idxSel2 = NOIDX;
+    }
+    else
+    {
+        if(ptRange1->idxTotal < ptRange2->idxTotal)
+        {
+            while(ptRange1->isHidden())
+            {
+                ptRange1++;
+            }
+            while(ptRange2->isHidden())
+            {
+                ptRange2--;
+            }
+            idxSel1 = ptRange1->idxVisible;
+            idxSel2 = ptRange2->idxVisible;
+        }
+        else
+        {
+            while(ptRange1->isHidden())
+            {
+                ptRange1--;
+            }
+            while(ptRange2->isHidden())
+            {
+                ptRange2++;
+            }
+            idxSel1 = ptRange2->idxVisible;
+            idxSel2 = ptRange1->idxVisible;
+        }
+    }
+    update();
+}
+
+bool IPlot::isZoomed() const
+{
+    bool zoomed = false;
+    qreal limMin, limMax, useMin, useMax;
+    data->x().getLimits(limMin, limMax, useMin, useMax);
+    zoomed |= !((limMax - limMin) <= (useMax - useMin));
+    data->y().getLimits(limMin, limMax, useMin, useMax);
+    zoomed |= !((limMax - limMin) <= (useMax - useMin));
+
+    return zoomed;
+}
diff --git a/src/plot/IPlot.h b/src/qmapshack/plot/IPlot.h
similarity index 100%
rename from src/plot/IPlot.h
rename to src/qmapshack/plot/IPlot.h
diff --git a/src/plot/ITrack.cpp b/src/qmapshack/plot/ITrack.cpp
similarity index 100%
rename from src/plot/ITrack.cpp
rename to src/qmapshack/plot/ITrack.cpp
diff --git a/src/plot/ITrack.h b/src/qmapshack/plot/ITrack.h
similarity index 100%
rename from src/plot/ITrack.h
rename to src/qmapshack/plot/ITrack.h
diff --git a/src/print/CPrintDialog.cpp b/src/qmapshack/print/CPrintDialog.cpp
similarity index 100%
rename from src/print/CPrintDialog.cpp
rename to src/qmapshack/print/CPrintDialog.cpp
diff --git a/src/print/CPrintDialog.h b/src/qmapshack/print/CPrintDialog.h
similarity index 100%
rename from src/print/CPrintDialog.h
rename to src/qmapshack/print/CPrintDialog.h
diff --git a/src/print/IPrintDialog.ui b/src/qmapshack/print/IPrintDialog.ui
similarity index 100%
rename from src/print/IPrintDialog.ui
rename to src/qmapshack/print/IPrintDialog.ui
diff --git a/src/qlgt/CQlb.cpp b/src/qmapshack/qlgt/CQlb.cpp
similarity index 100%
rename from src/qlgt/CQlb.cpp
rename to src/qmapshack/qlgt/CQlb.cpp
diff --git a/src/qlgt/CQlb.h b/src/qmapshack/qlgt/CQlb.h
similarity index 100%
rename from src/qlgt/CQlb.h
rename to src/qmapshack/qlgt/CQlb.h
diff --git a/src/qlgt/CQlgtDb.cpp b/src/qmapshack/qlgt/CQlgtDb.cpp
similarity index 100%
rename from src/qlgt/CQlgtDb.cpp
rename to src/qmapshack/qlgt/CQlgtDb.cpp
diff --git a/src/qlgt/CQlgtDb.h b/src/qmapshack/qlgt/CQlgtDb.h
similarity index 100%
rename from src/qlgt/CQlgtDb.h
rename to src/qmapshack/qlgt/CQlgtDb.h
diff --git a/src/qlgt/CQlgtDiary.cpp b/src/qmapshack/qlgt/CQlgtDiary.cpp
similarity index 100%
rename from src/qlgt/CQlgtDiary.cpp
rename to src/qmapshack/qlgt/CQlgtDiary.cpp
diff --git a/src/qlgt/CQlgtDiary.h b/src/qmapshack/qlgt/CQlgtDiary.h
similarity index 100%
rename from src/qlgt/CQlgtDiary.h
rename to src/qmapshack/qlgt/CQlgtDiary.h
diff --git a/src/qlgt/CQlgtFolder.cpp b/src/qmapshack/qlgt/CQlgtFolder.cpp
similarity index 100%
rename from src/qlgt/CQlgtFolder.cpp
rename to src/qmapshack/qlgt/CQlgtFolder.cpp
diff --git a/src/qlgt/CQlgtFolder.h b/src/qmapshack/qlgt/CQlgtFolder.h
similarity index 100%
rename from src/qlgt/CQlgtFolder.h
rename to src/qmapshack/qlgt/CQlgtFolder.h
diff --git a/src/qlgt/CQlgtRoute.cpp b/src/qmapshack/qlgt/CQlgtRoute.cpp
similarity index 100%
rename from src/qlgt/CQlgtRoute.cpp
rename to src/qmapshack/qlgt/CQlgtRoute.cpp
diff --git a/src/qlgt/CQlgtRoute.h b/src/qmapshack/qlgt/CQlgtRoute.h
similarity index 100%
rename from src/qlgt/CQlgtRoute.h
rename to src/qmapshack/qlgt/CQlgtRoute.h
diff --git a/src/qlgt/CQlgtTrack.cpp b/src/qmapshack/qlgt/CQlgtTrack.cpp
similarity index 100%
rename from src/qlgt/CQlgtTrack.cpp
rename to src/qmapshack/qlgt/CQlgtTrack.cpp
diff --git a/src/qlgt/CQlgtTrack.h b/src/qmapshack/qlgt/CQlgtTrack.h
similarity index 100%
rename from src/qlgt/CQlgtTrack.h
rename to src/qmapshack/qlgt/CQlgtTrack.h
diff --git a/src/qlgt/CQlgtWpt.cpp b/src/qmapshack/qlgt/CQlgtWpt.cpp
similarity index 100%
rename from src/qlgt/CQlgtWpt.cpp
rename to src/qmapshack/qlgt/CQlgtWpt.cpp
diff --git a/src/qlgt/CQlgtWpt.h b/src/qmapshack/qlgt/CQlgtWpt.h
similarity index 100%
rename from src/qlgt/CQlgtWpt.h
rename to src/qmapshack/qlgt/CQlgtWpt.h
diff --git a/src/qmapshack/qlgt/CQmsDb.cpp b/src/qmapshack/qlgt/CQmsDb.cpp
new file mode 100644
index 0000000..b6fc973
--- /dev/null
+++ b/src/qmapshack/qlgt/CQmsDb.cpp
@@ -0,0 +1,280 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "gis/db/CDBProject.h"
+#include "gis/db/IDBFolder.h"
+#include "gis/db/macros.h"
+#include "gis/ovl/CGisItemOvlArea.h"
+#include "gis/rte/CGisItemRte.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "gis/wpt/CGisItemWpt.h"
+#include "qlgt/CQlgtDb.h"
+#include "qlgt/CQlgtFolder.h"
+#include "qlgt/CQlgtRoute.h"
+#include "qlgt/CQlgtTrack.h"
+#include "qlgt/CQlgtWpt.h"
+#include "qlgt/CQmsDb.h"
+#include "qlgt/IQlgtOverlay.h"
+#include "tool/CImportDatabase.h"
+
+#include <QtSql>
+#include <QtWidgets>
+
+CQmsDb::CQmsDb(const QString &filename, CImportDatabase *parent)
+    : QObject(parent)
+    , valid(false)
+    , gui(parent)
+
+{
+    if(QFile::exists(filename))
+    {
+        int res = QMessageBox::question(CMainWindow::getBestWidgetForParent(), tr("Existing file..."), tr("Remove existing %1?").arg(filename), QMessageBox::Ok|QMessageBox::Abort, QMessageBox::Ok);
+        if(res != QMessageBox::Ok)
+        {
+            return;
+        }
+        gui->stdErr(tr("Remove existing file %1").arg(filename));
+        QFile::remove(filename);
+    }
+    QString error;
+    valid = setupDB(filename, "qlgt2qms", error);
+    if(!valid)
+    {
+        return;
+    }
+
+    mapFolderTypes[CQlgtDb::eFolder1] = IDBFolder::eTypeGroup;
+    mapFolderTypes[CQlgtDb::eFolder2] = IDBFolder::eTypeProject;
+    mapFolderTypes[CQlgtDb::eFolderN] = IDBFolder::eTypeOther;
+
+    mapFolderIDs[1] = 1;
+    mapFolderIDs[0] = 1;
+}
+
+CQmsDb::~CQmsDb()
+{
+    db.close();
+}
+
+
+void CQmsDb::addFolder2FolderRelation(quint64 parent, quint64 child)
+{
+    QSqlQuery query(db);
+    query.prepare("INSERT INTO folder2folder (parent, child) VALUES (:parent, :child)");
+    query.bindValue(":parent", mapFolderIDs[parent]);
+    query.bindValue(":child", mapFolderIDs[child]);
+    QUERY_EXEC(return );
+}
+
+void CQmsDb::addFolder2ItemRelation(quint64 parent, quint64 child)
+{
+    QSqlQuery query(db);
+    query.prepare("INSERT INTO folder2item (parent, child) VALUES (:parent, :child)");
+    query.bindValue(":parent", mapFolderIDs[parent]);
+    query.bindValue(":child", mapItemIDs[child]);
+    QUERY_EXEC(return );
+}
+
+
+void CQmsDb::addFolder(CQlgtFolder& folder)
+{
+    if(folder.id < 2)
+    {
+        return;
+    }
+
+    QSqlQuery query(db);
+
+    // folders without child items
+    if(folder.items.isEmpty())
+    {
+        query.prepare("INSERT INTO folders (type, name, locked) VALUES (:type, :name, :locked)");
+        query.bindValue(":type", mapFolderTypes[folder.type]);
+        query.bindValue(":name", folder.name);
+        query.bindValue(":locked", folder.locked);
+        QUERY_EXEC(return );
+
+        query.prepare("SELECT last_insert_rowid() from folders");
+        QUERY_EXEC(return );
+        query.next();
+        quint64 id = query.value(0).toULongLong();
+        if(id == 0)
+        {
+            qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
+            return;
+        }
+        mapFolderIDs[folder.id] = id;
+        return;
+    }
+
+    /*
+        Folders with child items will be loaded as complete CDBProject first, to
+        generate key and info text properly
+     */
+    CDBProject project(folder);
+    for(quint64 id : folder.items)
+    {
+        quint64 idChild = mapItemIDs[id];
+        query.prepare("SELECT type FROM items WHERE id=:id");
+        query.bindValue(":id", idChild);
+        QUERY_EXEC(continue);
+        if(query.next())
+        {
+            int type = query.value(0).toInt();
+            switch(type)
+            {
+            case IGisItem::eTypeWpt:
+                new CGisItemWpt(idChild, db, &project);
+                break;
+
+            case IGisItem::eTypeTrk:
+                new CGisItemTrk(idChild, db, &project);
+                break;
+
+            case IGisItem::eTypeRte:
+                new CGisItemRte(idChild, db, &project);
+                break;
+
+            case IGisItem::eTypeOvl:
+                new CGisItemOvlArea(idChild, db, &project);
+                break;
+
+            default:
+                ;
+            }
+        }
+        else
+        {
+            gui->stdErr(tr("%1: drop item with QLGT DB ID %2").arg(folder.name).arg(id));
+        }
+    }
+
+    // serialize metadata of project
+    QByteArray data;
+    QDataStream in(&data, QIODevice::WriteOnly);
+    in.setByteOrder(QDataStream::LittleEndian);
+    in.setVersion(QDataStream::Qt_5_2);
+    project >> in;
+
+    query.prepare("INSERT INTO folders (type, keyqms, name, comment, locked, data) VALUES (:type, :keyqms, :name, :comment, :locked, :data)");
+    query.bindValue(":type",    mapFolderTypes[folder.type]);
+    query.bindValue(":keyqms",     project.getKey());
+    query.bindValue(":name",    project.getName());
+    query.bindValue(":comment", project.getInfo());
+    query.bindValue(":locked",  folder.locked);
+    query.bindValue(":data",    data);
+    QUERY_EXEC(return );
+
+    query.prepare("SELECT last_insert_rowid() from folders");
+    QUERY_EXEC(return );
+    query.next();
+    quint64 id = query.value(0).toULongLong();
+    if(id == 0)
+    {
+        qDebug() << "CGisListDB::slotAddFolder(): childId equals 0. bad.";
+        return;
+    }
+    mapFolderIDs[folder.id] = id;
+}
+
+void CQmsDb::addWpt(CQlgtWpt& wpt1)
+{
+    CGisItemWpt wpt(wpt1);
+    quint64 id = store(wpt);
+    if(id != 0)
+    {
+        mapItemIDs[wpt1.id] = id;
+    }
+}
+
+void CQmsDb::addTrk(CQlgtTrack &trk1)
+{
+    CGisItemTrk trk(trk1);
+    quint64 id = store(trk);
+    if(id != 0)
+    {
+        mapItemIDs[trk1.id] = id;
+    }
+}
+
+void CQmsDb::addTrk(IQlgtOverlay &trk1)
+{
+    CGisItemTrk trk(trk1);
+    quint64 id = store(trk);
+    if(id != 0)
+    {
+        mapItemIDs[trk1.id] = id;
+    }
+}
+
+void CQmsDb::addRte(CQlgtRoute& rte1)
+{
+    CGisItemRte rte(rte1);
+    quint64 id = store(rte);
+    if(id != 0)
+    {
+        mapItemIDs[rte1.id] = id;
+    }
+}
+
+void CQmsDb::addArea(IQlgtOverlay& ovl1)
+{
+    CGisItemOvlArea ovl(ovl1);
+    quint64 id = store(ovl);
+    if(id != 0)
+    {
+        mapItemIDs[ovl1.id] = id;
+    }
+}
+
+quint64 CQmsDb::store(IGisItem& item)
+{
+    // serialize complete history of item
+    QByteArray data;
+    QDataStream in(&data, QIODevice::WriteOnly);
+    in.setByteOrder(QDataStream::LittleEndian);
+    in.setVersion(QDataStream::Qt_5_2);
+    in << item.getHistory();
+
+    QBuffer buffer;
+    buffer.open(QIODevice::ReadWrite);
+    QPixmap pixmap = item.getDisplayIcon();
+    pixmap.save(&buffer, "PNG");
+    buffer.seek(0);
+
+    QSqlQuery query(db);
+    // item is unknown to database -> create item in database
+    query.prepare("INSERT INTO items (type, keyqms, icon, name, date, comment, data, hash) VALUES (:type, :keyqms, :icon, :name, :date, :comment, :data, :hash)");
+    query.bindValue(":type",    item.type());
+    query.bindValue(":keyqms",     item.getKey().item);
+    query.bindValue(":icon",    buffer.data());
+    query.bindValue(":name",    item.getName());
+    query.bindValue(":date",    item.getTimestamp());
+    query.bindValue(":comment", item.getInfo(IGisItem::eFeatureShowName|IGisItem::eFeatureShowFullText));
+    query.bindValue(":data", data);
+    query.bindValue(":hash", item.getHash());
+    QUERY_EXEC(return 0);
+
+    query.prepare("SELECT last_insert_rowid() from items");
+    QUERY_EXEC(return 0);
+    query.next();
+    quint64 idItem = query.value(0).toULongLong();
+
+    return idItem;
+}
diff --git a/src/qlgt/CQmsDb.h b/src/qmapshack/qlgt/CQmsDb.h
similarity index 100%
rename from src/qlgt/CQmsDb.h
rename to src/qmapshack/qlgt/CQmsDb.h
diff --git a/src/qlgt/IItem.cpp b/src/qmapshack/qlgt/IItem.cpp
similarity index 100%
rename from src/qlgt/IItem.cpp
rename to src/qmapshack/qlgt/IItem.cpp
diff --git a/src/qlgt/IItem.h b/src/qmapshack/qlgt/IItem.h
similarity index 100%
rename from src/qlgt/IItem.h
rename to src/qmapshack/qlgt/IItem.h
diff --git a/src/qlgt/IQlgtOverlay.cpp b/src/qmapshack/qlgt/IQlgtOverlay.cpp
similarity index 100%
rename from src/qlgt/IQlgtOverlay.cpp
rename to src/qmapshack/qlgt/IQlgtOverlay.cpp
diff --git a/src/qlgt/IQlgtOverlay.h b/src/qmapshack/qlgt/IQlgtOverlay.h
similarity index 100%
rename from src/qlgt/IQlgtOverlay.h
rename to src/qmapshack/qlgt/IQlgtOverlay.h
diff --git a/src/qlgt/converter.cpp b/src/qmapshack/qlgt/converter.cpp
similarity index 100%
rename from src/qlgt/converter.cpp
rename to src/qmapshack/qlgt/converter.cpp
diff --git a/src/qmapshack/realtime/CRtDraw.cpp b/src/qmapshack/realtime/CRtDraw.cpp
new file mode 100644
index 0000000..2a105e1
--- /dev/null
+++ b/src/qmapshack/realtime/CRtDraw.cpp
@@ -0,0 +1,65 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "helpers/CDraw.h"
+#include "realtime/CRtDraw.h"
+#include "realtime/CRtWorkspace.h"
+
+CRtDraw::CRtDraw(CCanvas *parent)
+    : IDrawContext("rt", CCanvas::eRedrawRt, parent)
+{
+    connect(&CRtWorkspace::self(), &CRtWorkspace::sigChanged, this, &CRtDraw::emitSigCanvasUpdate);
+}
+
+
+void CRtDraw::draw(QPainter& p, const QRect& rect)
+{
+    CRtWorkspace::self().fastDraw(p, rect, this);
+}
+
+void CRtDraw::drawt(buffer_t& currentBuffer)
+{
+    QPointF pt1 = currentBuffer.ref1;
+    QPointF pt2 = currentBuffer.ref2;
+    QPointF pt3 = currentBuffer.ref3;
+    QPointF pt4 = currentBuffer.ref4;
+
+    qreal left, right, top, bottom;
+    left     = (pt1.x() < pt4.x() ? pt1.x() : pt4.x());
+    right    = (pt2.x() > pt3.x() ? pt2.x() : pt3.x());
+    top      = (pt1.y() < pt2.y() ? pt1.y() : pt2.y());
+    bottom   = (pt4.y() > pt3.y() ? pt4.y() : pt3.y());
+
+    QPointF pp = currentBuffer.ref1;
+    convertRad2Px(pp);
+
+
+    QRectF rect(QPointF(left,top), QPointF(right, bottom));
+
+    QPolygonF viewport;
+    viewport << pt1 << pt2 << pt3 << pt4;
+
+    QPainter p(&currentBuffer.image);
+    USE_ANTI_ALIASING(p,true);
+    p.translate(-pp);
+
+    CRtWorkspace::self().draw(p,viewport, this);
+}
+
+
+
diff --git a/src/qmapshack/realtime/CRtDraw.h b/src/qmapshack/realtime/CRtDraw.h
new file mode 100644
index 0000000..4b7ccc5
--- /dev/null
+++ b/src/qmapshack/realtime/CRtDraw.h
@@ -0,0 +1,41 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTDRAW_H
+#define CRTDRAW_H
+
+#include "canvas/IDrawContext.h"
+
+class CCanvas;
+
+
+class CRtDraw : public IDrawContext
+{
+public:
+    CRtDraw(CCanvas *parent);
+    virtual ~CRtDraw() = default;
+
+    using IDrawContext::draw;
+    void draw(QPainter& p, const QRect& rect);
+
+protected:
+    void drawt(buffer_t& currentBuffer) override;
+};
+
+#endif //CRTDRAW_H
+
diff --git a/src/qmapshack/realtime/CRtSelectSource.cpp b/src/qmapshack/realtime/CRtSelectSource.cpp
new file mode 100644
index 0000000..b717c3a
--- /dev/null
+++ b/src/qmapshack/realtime/CRtSelectSource.cpp
@@ -0,0 +1,114 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "realtime/CRtSelectSource.h"
+#include "realtime/CRtWorkspace.h"
+#include "realtime/opensky/CRtOpenSky.h"
+
+
+#include <QtWidgets>
+
+enum datatypes_e
+{
+    eDataPointer = Qt::UserRole     ///< to store the pointer to the IRtSource
+    ,eDataUsed = Qt::UserRole + 1   ///< to store a flag if the value in eDataPointer is used and must not be destroyed
+};
+
+template<typename T>
+void addSource(CRtWorkspace& wks, QListWidget * list)
+{
+    T * t = new T(0);
+
+    QListWidgetItem * item = new QListWidgetItem(list);
+    item->setIcon(QIcon(t->strIcon));
+    item->setSizeHint(QSize(0,100));
+    item->setData(eDataPointer, QVariant::fromValue<IRtSource*>(t));
+    item->setData(eDataUsed, false);
+
+    QLabel *label = new QLabel(t->getDescription());
+    label->setWordWrap(true);
+    list->setItemWidget(item, label);
+
+    if(t->singleInstanceOnly && wks.hasSourceOfType(t->type))
+    {
+        item->setFlags(item->flags() & ~Qt::ItemIsEnabled);
+    }
+}
+
+
+CRtSelectSource::CRtSelectSource(CRtWorkspace &wks)
+    : QDialog(&wks)
+    , wks(wks)
+{
+    setupUi(this);
+
+    connect(listWidget, &QListWidget::itemSelectionChanged, this, &CRtSelectSource::slotSelectionChanged);
+
+    labelHelp->setText(tr("Select a real time source from the list. "
+                          "Some sources can be added multiple times. "
+                          "For others only a single instance can be added."
+                          ));
+
+    // append the list by adding other sources
+    addSource<CRtOpenSky>(wks, listWidget);
+
+    // update GUI state
+    slotSelectionChanged();
+}
+
+CRtSelectSource::~CRtSelectSource()
+{
+    /*
+       In ctor we built a list with items that hold an instance to a IRtSource each.
+       These instances to not have a parent, except one if a source has been added
+       to the workspace. We have to iterate over the list of itmes and destroy those
+       that do not have true in eDataPointer.
+     */
+    const int N = listWidget->count();
+    for(int n = 0; n < N; n++)
+    {
+        QListWidgetItem * item = listWidget->item(n);
+        if(item->data(eDataUsed).toBool() != true)
+        {
+            IRtSource * source = item->data(eDataPointer).value<IRtSource*>();
+            delete source;
+        }
+    }
+}
+
+void CRtSelectSource::slotSelectionChanged()
+{
+    QListWidgetItem * item = listWidget->currentItem();
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled((item != nullptr) && (item->flags() & Qt::ItemIsEnabled));
+}
+
+void CRtSelectSource::accept()
+{
+    QListWidgetItem * item = listWidget->currentItem();
+
+    IRtSource * source = item->data(eDataPointer).value<IRtSource*>();
+    if(source != nullptr)
+    {
+        // as we use the IRtSource instance in the workspace we have to
+        // eDataUsed to true to avoid destruction in the dtor.
+        item->setData(eDataUsed, true);
+        wks.addSource(source);
+    }
+
+    QDialog::accept();
+}
diff --git a/src/qmapshack/realtime/CRtSelectSource.h b/src/qmapshack/realtime/CRtSelectSource.h
new file mode 100644
index 0000000..f64d527
--- /dev/null
+++ b/src/qmapshack/realtime/CRtSelectSource.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTSELECTSOURCE_H
+#define CRTSELECTSOURCE_H
+
+#include "ui_IRtSelectSource.h"
+
+class CRtWorkspace;
+
+class CRtSelectSource : public QDialog, private Ui::IRtSelectSource
+{
+    Q_OBJECT
+public:
+    CRtSelectSource(CRtWorkspace& wks);
+    virtual ~CRtSelectSource();
+
+public slots:
+    void accept() override;
+
+private slots:
+    void slotSelectionChanged();
+
+private:
+    CRtWorkspace& wks;
+};
+
+#endif //CRTSELECTSOURCE_H
+
diff --git a/src/qmapshack/realtime/CRtWorkspace.cpp b/src/qmapshack/realtime/CRtWorkspace.cpp
new file mode 100644
index 0000000..02f7be1
--- /dev/null
+++ b/src/qmapshack/realtime/CRtWorkspace.cpp
@@ -0,0 +1,275 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "helpers/CSettings.h"
+#include "realtime/CRtDraw.h"
+#include "realtime/CRtSelectSource.h"
+#include "realtime/CRtWorkspace.h"
+#include "realtime/opensky/CRtOpenSky.h"
+
+#include <QtWidgets>
+
+CRtWorkspace * CRtWorkspace::pSelf = nullptr;
+
+CRtWorkspace::CRtWorkspace(QWidget *parent)
+    : QWidget(parent)
+{
+    pSelf = this;
+    setupUi(this);
+    connect(this, &CRtWorkspace::sigChanged, this, &CRtWorkspace::slotChanged);
+
+    menu = new QMenu(treeWidget);
+    menu->addAction(actionAddSource);
+    menu->addAction(actionDeleteSource);
+
+    connect(treeWidget, &QTreeWidget::itemChanged, this, &CRtWorkspace::slotItemChanged);
+    connect(treeWidget, &QTreeWidget::customContextMenuRequested, this, &CRtWorkspace::slotContextMenu);
+    connect(treeWidget, &QTreeWidget::itemClicked, this, &CRtWorkspace::slotItemClicked);
+    connect(actionAddSource, &QAction::triggered, this, &CRtWorkspace::slotAddSource);
+    connect(actionDeleteSource, &QAction::triggered, this, &CRtWorkspace::slotDeleteSource);
+
+    SETTINGS;
+    cfg.beginGroup("Realtime");
+    treeWidget->header()->restoreState(cfg.value("treeWks/state", treeWidget->header()->saveState()).toByteArray());
+    const int N = cfg.value("numberOfSources", 0).toInt();
+    for(int n = 0; n < N; n++)
+    {
+        cfg.beginGroup(QString("source%1").arg(n));
+        IRtSource * source = IRtSource::create(cfg.value("type", IRtSource::eTypeNone).toInt(), treeWidget);
+        if(source != nullptr)
+        {
+            connect(source, &IRtSource::sigChanged, this, &CRtWorkspace::sigChanged);
+            source->loadSettings(cfg);
+        }
+
+        cfg.endGroup();
+    }
+
+    cfg.endGroup();
+
+    labelHelp->setText(tr("To add a real time source do a right click on the list above. "));
+    slotChanged();
+}
+
+CRtWorkspace::~CRtWorkspace()
+{
+    SETTINGS;
+    cfg.beginGroup("Realtime");
+    cfg.remove("");
+    cfg.setValue("treeWks/state", treeWidget->header()->saveState());
+
+    const int N = treeWidget->topLevelItemCount();
+    cfg.setValue("numberOfSources", N);
+    for(int n = 0; n < N; n++)
+    {
+        IRtSource * source = dynamic_cast<IRtSource*>(treeWidget->topLevelItem(n));
+        if(source == nullptr)
+        {
+            continue;
+        }
+        cfg.beginGroup(QString("source%1").arg(n));
+        cfg.setValue("type", source->type);
+        source->saveSettings(cfg);
+        cfg.endGroup();
+    }
+
+    cfg.endGroup();
+}
+
+void CRtWorkspace::draw(QPainter& p, const QPolygonF &viewport, CRtDraw *rt) const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    QList<QRectF> blockedAreas;
+
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IRtSource * item = dynamic_cast<IRtSource*>(treeWidget->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        item->drawItem(p, viewport, blockedAreas, rt);
+    }
+}
+
+void CRtWorkspace::fastDraw(QPainter& p, const QRectF& viewport, CRtDraw *rt) const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IRtSource * item = dynamic_cast<IRtSource*>(treeWidget->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        item->fastDraw(p, viewport, rt);
+    }
+}
+
+void CRtWorkspace::addSource(IRtSource * source)
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    treeWidget->insertTopLevelItem(treeWidget->topLevelItemCount(), source);
+    source->registerWithTreeWidget();
+    connect(source, &IRtSource::sigChanged, this, &CRtWorkspace::sigChanged);
+    emit sigChanged();
+}
+
+bool CRtWorkspace::hasSourceOfType(int type) const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IRtSource * item = dynamic_cast<IRtSource*>(treeWidget->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        if(item->type == type)
+        {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+void CRtWorkspace::mouseMove(const QPointF& pos)
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        IRtSource * item = dynamic_cast<IRtSource*>(treeWidget->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+        item->mouseMove(pos);
+    }
+}
+
+void CRtWorkspace::slotItemChanged(QTreeWidgetItem * item, int column)
+{
+    QMutexLocker lock(&IRtSource::mutex);
+
+    if(column == IRtSource::eColumnCheckBox)
+    {
+        emit sigChanged();
+    }
+}
+
+void CRtWorkspace::slotContextMenu(const QPoint& point)
+{
+    actionDeleteSource->setEnabled(false);
+    QTreeWidgetItem * item = treeWidget->currentItem();
+
+    if(item != nullptr)
+    {
+        IRtSource * source = dynamic_cast<IRtSource*>(item);
+        if(source != nullptr)
+        {
+            actionDeleteSource->setEnabled(true);
+            source->contextMenu(menu);
+        }
+        else
+        {
+            QTreeWidgetItem * child = item;
+            item = item->parent();
+            while(item != nullptr)
+            {
+                IRtSource * source = dynamic_cast<IRtSource*>(item);
+                if(source != nullptr)
+                {
+                    source->contextMenuChild(child, menu);
+                    break;
+                }
+                item = item->parent();
+            }
+        }
+    }
+
+    QPoint p = mapToGlobal(point);
+    menu->exec(p);
+}
+
+void CRtWorkspace::slotItemClicked(QTreeWidgetItem * item, int column)
+{
+    if(item == nullptr)
+    {
+        return;
+    }
+    IRtSource * source = dynamic_cast<IRtSource*>(item);
+    if(source != nullptr)
+    {
+        source->itemClicked(column);
+    }
+    else
+    {
+        QTreeWidgetItem * child = item;
+        item = item->parent();
+        while(item != nullptr)
+        {
+            IRtSource * source = dynamic_cast<IRtSource*>(item);
+            if(source != nullptr)
+            {
+                source->itemClicked(child, column);
+                break;
+            }
+            item = item->parent();
+        }
+    }
+}
+
+void CRtWorkspace::slotAddSource()
+{
+    CRtSelectSource dlg(*this);
+    dlg.exec();
+}
+
+void CRtWorkspace::slotDeleteSource()
+{
+    int res = QMessageBox::question(this, tr("Delete Source..."), tr("Do you really want to remove the realtime source?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+    if(res != QMessageBox::Yes)
+    {
+        return;
+    }
+
+    QMutexLocker lock(&IRtSource::mutex);
+
+    IRtSource * source = dynamic_cast<IRtSource*>(treeWidget->currentItem());
+    if(source == nullptr)
+    {
+        return;
+    }
+
+    delete source;
+    emit sigChanged();
+}
+
+void CRtWorkspace::slotChanged()
+{
+    frame->setVisible(treeWidget->topLevelItemCount() == 0);
+}
diff --git a/src/qmapshack/realtime/CRtWorkspace.h b/src/qmapshack/realtime/CRtWorkspace.h
new file mode 100644
index 0000000..aa79963
--- /dev/null
+++ b/src/qmapshack/realtime/CRtWorkspace.h
@@ -0,0 +1,104 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTWORKSPACE_H
+#define CRTWORKSPACE_H
+
+#include "ui_IRtWorkspace.h"
+
+class CRtDraw;
+class QMenu;
+class IRtSource;
+
+class CRtWorkspace : public QWidget, private Ui::IRtWorkspace
+{
+    Q_OBJECT
+public:
+    static CRtWorkspace& self()
+    {
+        return *pSelf;
+    }
+    virtual ~CRtWorkspace();
+
+    /**
+       @brief Draw all loaded data in the workspace that is visible
+
+       This method is called from The CGisDraw thread. The thread has to make sure
+       that everything is thread safe.
+
+       @param p         the painter to be used
+       @param viewport  the viewport in units of rad
+       @param rt       the draw context to be used
+     */
+    void draw(QPainter& p, const QPolygonF &viewport, CRtDraw *rt) const;
+
+    /**
+       @brief Draw all data that is time variant and can't wait for a full update
+
+       This method is called directly from the main thread's paintEvent() method.
+
+       @param p         the painter to be used
+       @param viewport  the viewport in units of rad
+       @param rt       the draw context to be used
+     */
+    void fastDraw(QPainter& p, const QRectF& viewport, CRtDraw *rt) const;
+
+    /**
+       @brief Check if a source of a given type is already loaded
+       @param type      the IRtSource::type_e to check
+
+       @return Return true if a source of the given type is found.
+     */
+    bool hasSourceOfType(int type) const;
+
+    /**
+       @brief Add a realtime source object to the list
+
+       @param source    pointer to the source, the treewidget will take over pointer as parent
+     */
+    void addSource(IRtSource * source);
+
+    /**
+       @brief Distribute mouse move event over all availabal sources.
+
+       @param pos   the pixel coordinate in the canvas
+     */
+    void mouseMove(const QPointF& pos);
+
+signals:
+    void sigChanged();
+
+private slots:
+    void slotItemChanged(QTreeWidgetItem * item, int column);
+    void slotItemClicked(QTreeWidgetItem * item, int column);
+    void slotContextMenu(const QPoint& point);
+    void slotAddSource();
+    void slotDeleteSource();
+    void slotChanged();
+
+private:
+    friend class CMainWindow;
+    CRtWorkspace(QWidget * parent);
+
+    static CRtWorkspace * pSelf;
+
+    QMenu * menu;
+};
+
+#endif //CRTWORKSPACE_H
+
diff --git a/src/qmapshack/realtime/IRtRecord.cpp b/src/qmapshack/realtime/IRtRecord.cpp
new file mode 100644
index 0000000..0e447a7
--- /dev/null
+++ b/src/qmapshack/realtime/IRtRecord.cpp
@@ -0,0 +1,106 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "realtime/IRtRecord.h"
+
+#include <QtCore>
+
+IRtRecord::IRtRecord(QObject *parent)
+    : QObject(parent)
+{
+}
+
+bool IRtRecord::setFile(const QString& fn)
+{
+    filename = fn;
+
+    if(QFile::exists(filename))
+    {
+        return readFile(filename);
+    }
+    return true;
+}
+
+bool IRtRecord::readFile(const QString& filename)
+{
+    QFile file(filename);
+    if(!file.open(QIODevice::ReadOnly))
+    {
+        error = tr("Failed to open record for reading.");
+        return false;
+    }
+
+    QDataStream stream(&file);
+    stream.setVersion(QDataStream::Qt_5_2);
+    stream.setByteOrder(QDataStream::LittleEndian);
+
+    while(!stream.atEnd())
+    {
+        quint64 size = stream.device()->pos();
+        qDebug() << "size" << size;
+
+        quint16 crc;
+        QByteArray data;
+        stream >> crc >> data;
+
+        if((qChecksum(data.data(), data.size()) != crc) || (stream.status() != QDataStream::Ok))
+        {
+            error = tr("Failed to read entry. Truncate record to last valid entry.");
+            file.close();
+            QFile::resize(filename, size);
+            return false;
+        }
+
+        readEntry(data);
+    }
+
+    file.close();
+    return true;
+}
+
+bool IRtRecord::writeEntry(const QByteArray& data)
+{
+    QFile file(filename);
+    if(!file.open(QIODevice::Append))
+    {
+        error = tr("Failed to open record for writing.");
+        return false;
+    }
+
+    QDataStream stream(&file);
+    stream.setVersion(QDataStream::Qt_5_2);
+    stream.setByteOrder(QDataStream::LittleEndian);
+
+    quint16 crc = qChecksum(data.data(), data.size());
+    stream << crc << data;
+
+    if(stream.status() != QDataStream::Ok)
+    {
+        error = tr("Failed to write entry.");
+        file.close();
+        return false;
+    }
+
+    file.close();
+    return true;
+}
+
+void IRtRecord::reset()
+{
+    QFile::resize(filename, 0);
+}
diff --git a/src/qmapshack/realtime/IRtRecord.h b/src/qmapshack/realtime/IRtRecord.h
new file mode 100644
index 0000000..1c83c8d
--- /dev/null
+++ b/src/qmapshack/realtime/IRtRecord.h
@@ -0,0 +1,112 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef IRTRECORD_H
+#define IRTRECORD_H
+
+#include <QDataStream>
+#include <QFile>
+#include <QObject>
+
+class CRtDraw;
+class QPainter;
+
+class IRtRecord : public QObject
+{
+    Q_OBJECT
+public:
+    IRtRecord(QObject * parent);
+    virtual ~IRtRecord() = default;
+
+    /**
+       @brief Set record file size to 0.
+     */
+    virtual void reset();
+    /**
+       @brief Set file name to record into
+
+       If the file exists this will read the file and append new data.
+
+       @param fn  the filename as string
+
+       @return Return true on success.
+     */
+    virtual bool setFile(const QString& fn);
+
+    virtual const QString& getError() const
+    {
+        return error;
+    }
+
+    /**
+       @brief Draw the record data into the draw context
+
+       This does nothing and you have to override it.
+
+       @param p             the paint device
+       @param viewport      the visible viewport
+       @param blockedAreas  a list of blocked areas
+       @param rt            the draw context
+     */
+    virtual void draw(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt)
+    {
+    }
+
+protected:
+    /**
+       @brief Write block of data to file
+
+       A crc16 is calculated and stored together with the byte array into the file.
+
+       @param data  the byte array to store
+
+       @return Return true on success.
+     */
+    virtual bool writeEntry(const QByteArray& data);
+
+    /**
+       @brief A block data has been read and needs further processing
+
+       If a filename is set and the file exists, the data entries in the file are read
+       one by one and passed to this API. If the method returns with false the file will
+       be truncated to the last valid entry.
+
+       @param data  the byte array with the data entry.
+
+       @return Return true on success.
+     */
+    virtual bool readEntry(QByteArray& data) = 0;
+
+private:
+
+    /**
+       @brief Reads file content entry by entry and tests for the checksum
+
+       @param filename  the file name to open and read.
+
+       @return Return true on success.
+     */
+    virtual bool readFile(const QString& filename);
+
+    QString filename;
+
+    QString error;
+};
+
+#endif //IRTRECORD_H
+
diff --git a/src/qmapshack/realtime/IRtSelectSource.ui b/src/qmapshack/realtime/IRtSelectSource.ui
new file mode 100644
index 0000000..73ef5a4
--- /dev/null
+++ b/src/qmapshack/realtime/IRtSelectSource.ui
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRtSelectSource</class>
+ <widget class="QDialog" name="IRtSelectSource">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Select a source...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string/>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QListWidget" name="listWidget">
+     <property name="iconSize">
+      <size>
+       <width>64</width>
+       <height>64</height>
+      </size>
+     </property>
+    </widget>
+   </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>IRtSelectSource</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>IRtSelectSource</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/qmapshack/realtime/IRtSource.cpp b/src/qmapshack/realtime/IRtSource.cpp
new file mode 100644
index 0000000..0707042
--- /dev/null
+++ b/src/qmapshack/realtime/IRtSource.cpp
@@ -0,0 +1,55 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "realtime/IRtSource.h"
+#include "realtime/opensky/CRtOpenSky.h"
+
+#include <QtWidgets>
+
+QMutex IRtSource::mutex(QMutex::Recursive);
+
+IRtSource::IRtSource(type_e type, bool singleInstanceOnly, QTreeWidget *parent)
+    : QObject(parent)
+    , QTreeWidgetItem(parent)
+    , type(type)
+    , singleInstanceOnly(singleInstanceOnly)
+{
+}
+
+void IRtSource::loadSettings(QSettings& cfg)
+{
+    setCheckState(eColumnCheckBox, Qt::CheckState(cfg.value("checkState", Qt::Checked).toInt()));
+}
+
+void IRtSource::saveSettings(QSettings& cfg) const
+{
+    cfg.setValue("checkState", checkState(eColumnCheckBox));
+}
+
+
+IRtSource* IRtSource::create(int type, QTreeWidget * parent)
+{
+    switch(type)
+    {
+    case eTypeOpenSky:
+        return new CRtOpenSky(parent);
+        break;
+    }
+
+    return nullptr;
+}
diff --git a/src/qmapshack/realtime/IRtSource.h b/src/qmapshack/realtime/IRtSource.h
new file mode 100644
index 0000000..52d4066
--- /dev/null
+++ b/src/qmapshack/realtime/IRtSource.h
@@ -0,0 +1,151 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef IRTSOURCE_H
+#define IRTSOURCE_H
+
+#include <QCoreApplication>
+#include <QDebug>
+#include <QMutex>
+#include <QObject>
+#include <QTreeWidgetItem>
+
+class CRtDraw;
+class QSettings;
+
+class IRtSource : public QObject, public QTreeWidgetItem
+{
+    Q_OBJECT
+public:
+    enum type_e
+    {
+        eTypeNone
+        ,eTypeOpenSky
+    };
+
+    IRtSource(type_e type, bool singleInstanceOnly, QTreeWidget * parent);
+    virtual ~IRtSource() = default;
+
+    /**
+       @brief Create new IRtSource items by type id
+
+       @param type      the type id of the new item
+       @param parent    the tree widget the item belongs to (can be nullptr, too)
+
+       @return The pointer to the item or nullptr if type is unknown
+     */
+    static IRtSource* create(int type, QTreeWidget * parent);
+
+    /**
+       @brief Do everything necessary to setup item after it has been reparented to tree widget
+
+       This will give you the chance to register widgets with sub-items and to setup singnal/slot
+       connections.
+
+     */
+    virtual void registerWithTreeWidget() = 0;
+    /**
+       @brief Load item configuration from QSettings
+
+       @param cfg   the QSettings object with proper group focus
+     */
+    virtual void loadSettings(QSettings& cfg);
+    /**
+       @brief Save item configuration to QSettings
+
+       @param cfg   the QSettings object with proper group focus
+     */
+    virtual void saveSettings(QSettings& cfg) const;
+    /**
+       @brief Get string with description
+
+       @return A descriptive text.
+     */
+    virtual QString getDescription() const = 0;
+
+    virtual void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt) = 0;
+
+    virtual void fastDraw(QPainter& p, const QRectF& viewport, CRtDraw *rt) = 0;
+
+    virtual void mouseMove(const QPointF& pos)
+    {
+    }
+
+    /**
+       @brief Add actions to the context menu for this source
+
+       @param menu  the context menu
+     */
+    virtual void contextMenu(QMenu * menu) const
+    {
+    }
+
+    /**
+       @brief Add actions to the context menu for a child of this source
+
+       @param child     the child
+       @param menu      the context menu
+     */
+    virtual void contextMenuChild(QTreeWidgetItem * child, QMenu * menu) const
+    {
+    }
+
+
+    /**
+       @brief This source item has been clicked
+
+       @param column    the item's column that was clicked
+     */
+    virtual void itemClicked(int column) const
+    {
+    }
+
+    /**
+       @brief A child item of the source has been clicked
+
+       @param child     the child item
+       @param column    the item's column that was clicked
+     */
+    virtual void itemClicked(QTreeWidgetItem * child, int column) const
+    {
+    }
+
+    /// the global mutex. Has to be used for all operations on a IRtItem
+    static QMutex mutex;
+    /// the item's type id
+    const type_e type;
+    /// set true if only one instance at a time can exist
+    const bool singleInstanceOnly;
+
+    /// used to identify tre widget columns
+    enum column_e
+    {
+        eColumnIcon = 0
+        ,eColumnCheckBox = eColumnIcon
+        ,eColumnDecoration = eColumnIcon
+        ,eColumnName = 1
+        ,eColumnWidget = eColumnName
+    };
+
+signals:
+    void sigChanged();
+};
+
+Q_DECLARE_METATYPE(IRtSource*)
+#endif //IRTSOURCE_H
+
diff --git a/src/qmapshack/realtime/IRtWorkspace.ui b/src/qmapshack/realtime/IRtWorkspace.ui
new file mode 100644
index 0000000..7e70fb9
--- /dev/null
+++ b/src/qmapshack/realtime/IRtWorkspace.ui
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRtWorkspace</class>
+ <widget class="QWidget" name="IRtWorkspace">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QTreeWidget" name="treeWidget">
+     <property name="contextMenuPolicy">
+      <enum>Qt::CustomContextMenu</enum>
+     </property>
+     <attribute name="headerVisible">
+      <bool>true</bool>
+     </attribute>
+     <column>
+      <property name="text">
+       <string notr="true"/>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>Source</string>
+      </property>
+     </column>
+    </widget>
+   </item>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>3</number>
+      </property>
+      <property name="topMargin">
+       <number>3</number>
+      </property>
+      <property name="rightMargin">
+       <number>3</number>
+      </property>
+      <property name="bottomMargin">
+       <number>3</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="label_2">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+        <property name="text">
+         <string/>
+        </property>
+        <property name="pixmap">
+         <pixmap resource="../resources.qrc">:/icons/48x48/Help.png</pixmap>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="labelHelp">
+        <property name="text">
+         <string>TextLabel</string>
+        </property>
+        <property name="alignment">
+         <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+  <action name="actionAddSource">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/Add.png</normaloff>:/icons/32x32/Add.png</iconset>
+   </property>
+   <property name="text">
+    <string>Add Source</string>
+   </property>
+  </action>
+  <action name="actionDeleteSource">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+   </property>
+   <property name="text">
+    <string>Delete Source</string>
+   </property>
+  </action>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSky.cpp b/src/qmapshack/realtime/opensky/CRtOpenSky.cpp
new file mode 100644
index 0000000..a951f2f
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSky.cpp
@@ -0,0 +1,343 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "CMainWindow.h"
+#include "canvas/CCanvas.h"
+#include "helpers/CDraw.h"
+#include "realtime/CRtDraw.h"
+#include "realtime/opensky/CRtOpenSky.h"
+#include "realtime/opensky/CRtOpenSkyInfo.h"
+
+#include <QJsonDocument>
+#include <QtNetwork>
+#include <QtWidgets>
+
+const QString CRtOpenSky::strIcon("://icons/48x48/OpenSky.png");
+
+CRtOpenSky::CRtOpenSky(QTreeWidget *parent)
+    : IRtSource(eTypeOpenSky, true, parent)
+{
+    setIcon(eColumnIcon, QIcon(strIcon));
+    setText(eColumnName, "OpenSky");
+    setCheckState(eColumnCheckBox, Qt::Checked);
+
+    registerWithTreeWidget();
+
+    timer = new QTimer(this);
+    timer->setInterval(10100);
+    timer->setSingleShot(false);
+    timer->start();
+    connect(timer, &QTimer::timeout, this, &CRtOpenSky::slotUpdate);
+
+    networkAccessManager = new QNetworkAccessManager(this);
+    connect(networkAccessManager, &QNetworkAccessManager::finished, this, &CRtOpenSky::slotRequestFinished);
+
+    slotUpdate();
+}
+
+void CRtOpenSky::registerWithTreeWidget()
+{
+    QTreeWidget * tree = treeWidget();
+    if(tree != nullptr)
+    {
+        QTreeWidgetItem * itemInfo = new QTreeWidgetItem(this);
+        itemInfo->setFlags(Qt::ItemIsEnabled|Qt::ItemNeverHasChildren);
+        info = new CRtOpenSkyInfo(*this, tree);
+        tree->setItemWidget(itemInfo, eColumnWidget, info);
+        emit sigChanged();
+    }
+}
+
+void CRtOpenSky::loadSettings(QSettings& cfg)
+{
+    QMutexLocker lock(&IRtSource::mutex);
+
+    IRtSource::loadSettings(cfg);
+    showNames = cfg.value("showNames", showNames).toBool();
+
+    if(info != nullptr)
+    {
+        info->loadSettings(cfg);
+    }
+
+    emit sigChanged();
+}
+
+void CRtOpenSky::saveSettings(QSettings& cfg) const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+
+    IRtSource::saveSettings(cfg);
+    cfg.setValue("showNames", showNames);
+
+    if(info != nullptr)
+    {
+        info->saveSettings(cfg);
+    }
+}
+
+QString CRtOpenSky::getDescription() const
+{
+    return tr("<b>OpenSky</b><br/>"
+              "An online service that provides positional data of civil aircrafts"
+              );
+}
+
+const QDateTime& CRtOpenSky::getTimestamp() const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    return timestamp;
+}
+
+qint32 CRtOpenSky::getNumberOfAircrafts() const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    return aircrafts.count();
+}
+
+bool CRtOpenSky::getShowNames() const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    return showNames;
+}
+
+CRtOpenSky::aircraft_t CRtOpenSky::getAircraftByKey(const QString& key, bool& ok) const
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    ok = false;
+    if(aircrafts.contains(key))
+    {
+        ok = true;
+        return aircrafts[key];
+    }
+
+    return aircraft_t();
+}
+
+void CRtOpenSky::drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt)
+{
+    if(checkState(eColumnCheckBox) != Qt::Checked)
+    {
+        return;
+    }
+
+    QPolygonF tmp2 = viewport;
+    rt->convertRad2Px(tmp2);
+
+    QFontMetrics fm(p.font());
+
+    p.setPen(Qt::yellow);
+    p.setBrush(Qt::yellow);
+    QPixmap icon("://icons/16x16/Aircraft.png");
+    QRect rectIcon = icon.rect();
+    rectIcon.moveCenter(QPoint(0,0));
+
+    for(const QString& key : aircrafts.keys())
+    {
+        aircraft_t& aircraft = aircrafts[key];
+
+        aircraft.point = aircraft.pos * DEG_TO_RAD;
+        rt->convertRad2Px(aircraft.point);
+
+        if(!tmp2.boundingRect().contains(aircraft.point))
+        {
+            continue;
+        }
+
+        p.save();
+        p.translate(aircraft.point);
+        p.rotate(aircraft.heading);
+        p.drawPixmap(rectIcon, icon);
+        p.restore();
+
+        if(showNames)
+        {
+            QString name = aircraft.callsign.isEmpty() ? tr("unkn.") : aircraft.callsign;
+            QRect rectLabel = fm.boundingRect(name);
+            rectLabel.moveCenter(aircraft.point.toPoint() + QPoint(0,-8));
+            rectLabel.adjust(-1,-1,1,1);
+            if(!CDraw::doesOverlap(blockedAreas, rectLabel))
+            {
+                CDraw::text(name, p, rectLabel.center(), Qt::darkBlue);
+                blockedAreas << rectLabel;
+            }
+        }
+    }
+
+    if(info != nullptr)
+    {
+        info->draw(p, viewport, blockedAreas, rt);
+    }
+}
+
+void CRtOpenSky::fastDraw(QPainter& p, const QRectF& viewport, CRtDraw *rt)
+{
+    if(!keyFocus.isEmpty() && aircrafts.contains(keyFocus))
+    {
+        p.save();
+
+        const aircraft_t& aircraft = aircrafts[keyFocus];
+        p.setPen(Qt::red);
+        p.setBrush(Qt::NoBrush);
+        p.drawEllipse(aircraft.point, 10, 10);
+
+        QString text;
+        text += "<table>";
+        text += "<tr><td>" + tr("key:")             + "</td><td>" + aircraft.key + "</td></tr>";
+        text += "<tr><td>" + tr("callsign:")        + "</td><td>" + aircraft.callsign + "</td></tr>";
+        text += "<tr><td>" + tr("origin country:")  + "</td><td>" + aircraft.originCountry + "</td></tr>";
+        text += "<tr><td>" + tr("time position:")   + "</td><td>" + QDateTime::fromTime_t(aircraft.timePosition).toString() + "</td></tr>";
+        text += "<tr><td>" + tr("last contact:")    + "</td><td>" + QDateTime::fromTime_t(aircraft.lastContact).toString() + "</td></tr>";
+        text += "<tr><td>" + tr("longitude:")       + "</td><td>" + QString::number(aircraft.longitude) + "°</td></tr>";
+        text += "<tr><td>" + tr("latitude:")        + "</td><td>" + QString::number(aircraft.latitude) + "°</td></tr>";
+        text += "<tr><td>" + tr("geo. alt.:")       + "</td><td>" + QString::number(aircraft.geoAltitude) + "m</td></tr>";
+        text += "<tr><td>" + tr("on ground:")       + "</td><td>" + QString::number(aircraft.onGround) + "</td></tr>";
+        text += "<tr><td>" + tr("velocity:")        + "</td><td>" + QString::number(aircraft.velocity*3.6) + "km/h</td></tr>";
+        text += "<tr><td>" + tr("heading:")         + "</td><td>" + QString::number(aircraft.heading) + "°</td></tr>";
+        text += "<tr><td>" + tr("vert. rate:")      + "</td><td>" + QString::number(aircraft.verticalRate) + "m/s</td></tr>";
+        text += "<tr><td>" + tr("baro. alt.:")      + "</td><td>" + QString::number(aircraft.baroAltitude) + "m</td></tr>";
+        text += "<tr><td>" + tr("squawk:")          + "</td><td>" + aircraft.squawk + "</td></tr>";
+        text += "<tr><td>" + tr("spi:")             + "</td><td>" + QString::number(aircraft.spi) + "</td></tr>";
+        text += "<tr><td>" + tr("position source:") + "</td><td>" + QString::number(aircraft.positionSource) + "</td></tr>";
+        text += "</table>";
+
+        QTextDocument doc;
+        doc.setHtml(text);
+        doc.setTextWidth(300);
+        QRectF rectText(QPointF(0,0),doc.size());
+
+        rectText.moveTopLeft(aircraft.point + QPointF(32,0));
+        QRectF rectFrame = rectText.adjusted(-5,-5,5,5);
+
+        p.setPen(CDraw::penBorderGray);
+        p.setBrush(CDraw::brushBackWhite);
+        PAINT_ROUNDED_RECT(p, rectFrame);
+
+        p.translate(rectText.topLeft());
+        p.setPen(Qt::black);
+        doc.drawContents(&p);
+
+        p.restore();
+    }
+}
+
+void CRtOpenSky::mouseMove(const QPointF& pos)
+{
+    if(checkState(eColumnCheckBox) != Qt::Checked)
+    {
+        return;
+    }
+
+    QMutexLocker lock(&IRtSource::mutex);
+
+    keyFocus.clear();
+    for(const QString& key : aircrafts.keys())
+    {
+        const aircraft_t& aircraft = aircrafts[key];
+        if((aircraft.point - pos).manhattanLength() < 20)
+        {
+            keyFocus = key;
+            break;
+        }
+    }
+}
+
+void CRtOpenSky::slotSetShowNames(bool yes)
+{
+    QMutexLocker lock(&IRtSource::mutex);
+    showNames = yes;
+    emit sigChanged();
+}
+
+void CRtOpenSky::slotUpdate()
+{
+    if(checkState(eColumnCheckBox) != Qt::Checked)
+    {
+        return;
+    }
+
+    QUrl url("https://opensky-network.org/");
+    url.setPath("/api/states/all");
+
+    QNetworkRequest request;
+    request.setUrl(url);
+    networkAccessManager->get(request);
+}
+
+void CRtOpenSky::slotRequestFinished(QNetworkReply* reply)
+{
+    if(reply->error() != QNetworkReply::NoError)
+    {
+        qDebug() << reply->errorString();
+        reply->deleteLater();
+        return;
+    }
+
+    QByteArray data = reply->readAll();
+    reply->deleteLater();
+
+    if(data.isEmpty())
+    {
+        return;
+    }
+
+    QJsonParseError error;
+    QJsonDocument json = QJsonDocument::fromJson(data, &error);
+    if(error.error != QJsonParseError::NoError)
+    {
+        qDebug() << error.errorString();
+        return;
+    }
+
+    {
+        QMutexLocker lock(&IRtSource::mutex);
+        aircrafts.clear();
+
+        timestamp = QDateTime::fromTime_t(json.object().value("time").toInt());
+        const QJsonArray& jsonStates = json.object().value("states").toArray();
+        for(const QJsonValue& jsonState : jsonStates)
+        {
+            aircraft_t aircraft;
+            const QJsonArray& jsonStateArray = jsonState.toArray();
+            QString key         = jsonStateArray[0].toString();
+
+            aircraft.key            = key;
+            aircraft.callsign       = jsonStateArray[1].toString();
+            aircraft.originCountry  = jsonStateArray[2].toString();
+            aircraft.timePosition   = jsonStateArray[3].toInt();
+            aircraft.lastContact    = jsonStateArray[4].toInt();
+            aircraft.longitude      = jsonStateArray[5].toDouble();
+            aircraft.latitude       = jsonStateArray[6].toDouble();
+            aircraft.geoAltitude    = jsonStateArray[7].toDouble();
+            aircraft.onGround       = jsonStateArray[8].toBool();
+            aircraft.velocity       = jsonStateArray[9].toDouble();
+            aircraft.heading        = jsonStateArray[10].toDouble();
+            aircraft.verticalRate   = jsonStateArray[11].toDouble();
+            aircraft.baroAltitude   = jsonStateArray[13].toDouble();
+            aircraft.squawk         = jsonStateArray[14].toString();
+            aircraft.spi            = jsonStateArray[15].toBool();
+            aircraft.positionSource = jsonStateArray[16].toInt();
+
+            aircraft.pos            = QPointF(aircraft.longitude,aircraft.latitude);
+            aircrafts[key] = aircraft;
+        }
+    }
+
+    emit sigChanged();
+}
+
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSky.h b/src/qmapshack/realtime/opensky/CRtOpenSky.h
new file mode 100644
index 0000000..cbd6385
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSky.h
@@ -0,0 +1,133 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTOPENSKY_H
+#define CRTOPENSKY_H
+
+#include "realtime/IRtSource.h"
+#include "units/IUnit.h"
+
+#include <QDateTime>
+#include <QPointer>
+
+class QTimer;
+class QNetworkAccessManager;
+class QNetworkReply;
+class CRtOpenSkyInfo;
+
+class CRtOpenSky : public IRtSource
+{
+    Q_OBJECT
+public:
+    CRtOpenSky(QTreeWidget * parent);
+    virtual ~CRtOpenSky() = default;
+
+    struct aircraft_t
+    {
+        QPointF pos     = NOPOINTF;
+        QPointF point   = NOPOINTF;
+
+        QString key;
+        QString callsign;
+        QString originCountry;
+        qint32 timePosition     = NOINT;
+        qint32 lastContact      = NOINT;
+        qreal longitude         = NOFLOAT;
+        qreal latitude          = NOFLOAT;
+        qreal geoAltitude       = NOFLOAT;
+        bool onGround           = false;
+        qreal velocity          = NOFLOAT;
+        qreal heading           = NOFLOAT;
+        qreal verticalRate     = NOFLOAT;
+
+        qreal baroAltitude      = NOFLOAT;
+        QString squawk;
+        bool spi                = false;
+        qint32 positionSource   = NOINT;
+    };
+
+    /**
+       @brief Setup sub-item
+
+       The parent tree widget is used to setup a sub item with CRtOpenSkyInfo as widget.
+     */
+    void registerWithTreeWidget() override;
+    void loadSettings(QSettings& cfg) override;
+    void saveSettings(QSettings& cfg) const override;
+
+    QString getDescription() const override;
+
+    /**
+       @brief Get the timestamp of the last OpenSky update
+
+       @return The timestamp as QDateTime instance
+     */
+    const QDateTime& getTimestamp() const;
+
+    /**
+       @brief Get the number of entries in the current record
+
+       @return The number as integer.
+     */
+    qint32 getNumberOfAircrafts() const;
+    /**
+       @brief Get flag to control visibility of callsign names
+
+       @return True to show names.
+     */
+    bool getShowNames() const;
+
+    aircraft_t getAircraftByKey(const QString& key, bool& ok) const;
+
+    void drawItem(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt) override;
+    void fastDraw(QPainter& p, const QRectF& viewport, CRtDraw *rt)  override;
+    void mouseMove(const QPointF& pos) override;
+    static const QString strIcon;
+public slots:
+    /**
+       @brief Set visibility of callsign names
+
+       @param yes   set true to show names
+     */
+    void slotSetShowNames(bool yes);
+
+private slots:
+    /**
+       @brief Request a new data set from OpenSky
+     */
+    void slotUpdate();
+    /**
+       @brief Handle incoming data set from OpenSky
+       @param reply
+     */
+    void slotRequestFinished(QNetworkReply* reply);
+
+private:
+    QPointer<CRtOpenSkyInfo> info;
+    QTimer * timer;
+    QNetworkAccessManager * networkAccessManager;
+
+    QDateTime timestamp;
+    QMap<QString, aircraft_t> aircrafts;
+    bool showNames = true;
+
+    QString keyFocus;
+};
+
+#endif //CRTOPENSKY_H
+
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.cpp b/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.cpp
new file mode 100644
index 0000000..2605c70
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.cpp
@@ -0,0 +1,164 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "gis/CGisWorkspace.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "helpers/CSettings.h"
+#include "realtime/opensky/CRtOpenSky.h"
+#include "realtime/opensky/CRtOpenSkyInfo.h"
+#include "realtime/opensky/CRtOpenSkyRecord.h"
+
+#include <QtWidgets>
+
+CRtOpenSkyInfo::CRtOpenSkyInfo(CRtOpenSky &source, QWidget *parent)
+    : QWidget(parent)
+    , source(source)
+{
+    setupUi(this);
+    connect(&source, &CRtOpenSky::sigChanged, this, &CRtOpenSkyInfo::slotUpdate);
+    connect(checkShowNames, &QCheckBox::toggled, &source, &CRtOpenSky::slotSetShowNames);
+    connect(toolPause, &QToolButton::toggled, toolReset, &QToolButton::setEnabled);
+    connect(toolPause, &QToolButton::toggled, toolFile, &QToolButton::setEnabled);
+    connect(toolPause, &QToolButton::toggled, toolToTrack, &QToolButton::setEnabled);
+    connect(toolPause, &QToolButton::toggled, lineKey, &QLineEdit::setEnabled);
+    connect(toolFile, &QToolButton::clicked, this, &CRtOpenSkyInfo::slotSetFilename);
+    connect(toolReset, &QToolButton::clicked, this, &CRtOpenSkyInfo::slotResetRecord);
+    connect(toolToTrack, &QToolButton::clicked, this, &CRtOpenSkyInfo::slotToTrack);
+}
+
+void CRtOpenSkyInfo::loadSettings(QSettings& cfg)
+{
+    lineKey->setText(cfg.value("callsign", "").toString());
+    startRecord(cfg.value("filename", "").toString());
+}
+
+void CRtOpenSkyInfo::saveSettings(QSettings& cfg) const
+{
+    cfg.setValue("callsign", lineKey->text());
+    cfg.setValue("filename", toolFile->toolTip());
+}
+
+void CRtOpenSkyInfo::draw(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt)
+{
+    if(record != nullptr)
+    {
+        record->draw(p, viewport, blockedAreas, rt);
+    }
+}
+
+void CRtOpenSkyInfo::slotUpdate()
+{
+    checkShowNames->setChecked(source.getShowNames());
+    labelTimestamp->setText(source.getTimestamp().toString());
+    labelNumberOfAircrafts->setText(QString::number(source.getNumberOfAircrafts()));
+
+    if(!record.isNull() && toolRecord->isChecked())
+    {
+        bool ok = false;
+        const CRtOpenSky::aircraft_t& aircraft = source.getAircraftByKey(lineKey->text(), ok);
+        if(ok)
+        {
+            if(!record->writeEntry(aircraft))
+            {
+                QMessageBox::critical(this, tr("Error..."), record->getError(), QMessageBox::Ok);
+                toolPause->setChecked(true);
+            }
+        }
+    }
+}
+
+void CRtOpenSkyInfo::slotSetFilename()
+{
+    SETTINGS;
+    QString path = cfg.value("Paths/realtimeData", QDir::homePath()).toString();
+    QString filename = QFileDialog::getSaveFileName( this, tr("Select record file"), path, "QMapShack Record (*.rec)");
+
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    QFileInfo fi(filename);
+    if(fi.suffix().toLower() != "rec")
+    {
+        filename += ".rec";
+    }
+
+    startRecord(filename);
+
+    path = fi.absolutePath();
+    cfg.setValue("Paths/realtimeData", path);
+}
+
+void CRtOpenSkyInfo::slotResetRecord()
+{
+    if(record == nullptr)
+    {
+        return;
+    }
+
+    int res = QMessageBox::question(this, tr("Reset record..."), tr("Do you really want to reset the current record?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+    if(res == QMessageBox::Yes)
+    {
+        record->reset();
+        emit source.sigChanged();
+    }
+}
+
+void CRtOpenSkyInfo::slotToTrack()
+{
+    if(record == nullptr)
+    {
+        return;
+    }
+
+    IGisProject * prj = CGisWorkspace::self().selectProject();
+    if(prj == nullptr)
+    {
+        return;
+    }
+
+    CTrackData data;
+    CTrackData::trkseg_t seg;
+    seg.pts = record->geTrack();
+    data.segs << seg;
+    data.name = lineKey->text();
+
+    new CGisItemTrk(data, prj);
+}
+
+void CRtOpenSkyInfo::startRecord(const QString& filename)
+{
+    delete record;
+
+    toolFile->setToolTip(filename);
+    toolRecord->setEnabled(false);
+
+    if(filename.trimmed().isEmpty())
+    {
+        return;
+    }
+
+    record = new CRtOpenSkyRecord(this);
+
+    if(!record->setFile(filename))
+    {
+        QMessageBox::critical(this, tr("Failed..."), record->getError(), QMessageBox::Ok);
+    }
+
+    toolRecord->setEnabled(true);
+}
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.h b/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.h
new file mode 100644
index 0000000..5f6451d
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSkyInfo.h
@@ -0,0 +1,58 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTOPENSKYINFO_H
+#define CRTOPENSKYINFO_H
+
+#include "ui_IRtOpenSkyInfo.h"
+
+#include <QPointer>
+
+class CRtOpenSkyRecord;
+class CRtOpenSky;
+class CRtDraw;
+
+class CRtOpenSkyInfo : public QWidget, private Ui::IRtOpenSkyInfo
+{
+    Q_OBJECT
+public:
+    CRtOpenSkyInfo(CRtOpenSky& source, QWidget * parent);
+    virtual ~CRtOpenSkyInfo() = default;
+
+    void loadSettings(QSettings& cfg);
+    void saveSettings(QSettings& cfg) const;
+
+    void draw(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt);
+
+public slots:
+    void slotUpdate();
+
+private slots:
+    void slotSetFilename();
+    void slotResetRecord();
+    void slotToTrack();
+
+private:
+    void startRecord(const QString& filename);
+
+    CRtOpenSky& source;
+    QPointer<CRtOpenSkyRecord> record;
+};
+
+#endif //CRTOPENSKYINFO_H
+
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.cpp b/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.cpp
new file mode 100644
index 0000000..267b978
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.cpp
@@ -0,0 +1,88 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "realtime/CRtDraw.h"
+#include "realtime/opensky/CRtOpenSkyRecord.h"
+
+CRtOpenSkyRecord::CRtOpenSkyRecord(QObject *parent)
+    : IRtRecord(parent)
+{
+}
+
+
+bool CRtOpenSkyRecord::setFile(const QString& filename)
+{
+    track.clear();
+    return IRtRecord::setFile(filename);
+}
+
+bool CRtOpenSkyRecord::writeEntry(const CRtOpenSky::aircraft_t& aircraft)
+{
+    QByteArray data;
+    QDataStream stream(&data, QIODevice::WriteOnly);
+    stream.setVersion(QDataStream::Qt_5_2);
+    stream.setByteOrder(QDataStream::LittleEndian);
+
+    // it's always a good idea to start with a version tag for future changes.
+    stream << quint8(1);
+
+    CTrackData::trkpt_t trkpt;
+    trkpt.lon   = aircraft.longitude;
+    trkpt.lat   = aircraft.latitude;
+    trkpt.ele   = aircraft.geoAltitude;
+    trkpt.time  = QDateTime::fromTime_t(aircraft.timePosition);
+
+    stream << trkpt;
+    track << trkpt;
+
+    return writeEntry(data);
+}
+
+bool CRtOpenSkyRecord::readEntry(QByteArray& data)
+{
+    QDataStream stream(&data, QIODevice::ReadOnly);
+    stream.setVersion(QDataStream::Qt_5_2);
+    stream.setByteOrder(QDataStream::LittleEndian);
+
+    quint8 version;
+    stream >> version;
+
+    CTrackData::trkpt_t trkpt;
+    stream  >> trkpt;
+    track << trkpt;
+    return true;
+}
+
+void CRtOpenSkyRecord::draw(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt)
+{
+    QPolygonF tmp;
+    for(const CTrackData::trkpt_t& trkpt : track)
+    {
+        tmp << QPointF(trkpt.lon * DEG_TO_RAD, trkpt.lat * DEG_TO_RAD);
+    }
+
+    rt->convertRad2Px(tmp);
+    p.setPen(QPen(Qt::black, 3));
+    p.drawPolyline(tmp);
+}
+
+void CRtOpenSkyRecord::reset()
+{
+    track.clear();
+    IRtRecord::reset();
+}
diff --git a/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.h b/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.h
new file mode 100644
index 0000000..d6dc18b
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/CRtOpenSkyRecord.h
@@ -0,0 +1,51 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CRTOPENSKYRECORD_H
+#define CRTOPENSKYRECORD_H
+
+#include "gis/trk/CTrackData.h"
+#include "realtime/IRtRecord.h"
+#include "realtime/opensky/CRtOpenSky.h"
+
+class CRtOpenSkyRecord : public IRtRecord
+{
+    Q_OBJECT
+public:
+    CRtOpenSkyRecord(QObject * parent);
+    virtual ~CRtOpenSkyRecord() = default;
+
+    void reset() override;
+    bool setFile(const QString& filename) override;
+    bool writeEntry(const CRtOpenSky::aircraft_t &aircraft);
+    void draw(QPainter& p, const QPolygonF& viewport, QList<QRectF>& blockedAreas, CRtDraw * rt) override;
+
+    const QVector<CTrackData::trkpt_t>& geTrack() const
+    {
+        return track;
+    }
+
+protected:
+    using IRtRecord::writeEntry;
+    bool readEntry(QByteArray& data) override;
+
+    QVector<CTrackData::trkpt_t> track;
+};
+
+#endif //CRTOPENSKYRECORD_H
+
diff --git a/src/qmapshack/realtime/opensky/IRtOpenSkyInfo.ui b/src/qmapshack/realtime/opensky/IRtOpenSkyInfo.ui
new file mode 100644
index 0000000..d9c7c64
--- /dev/null
+++ b/src/qmapshack/realtime/opensky/IRtOpenSkyInfo.ui
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IRtOpenSkyInfo</class>
+ <widget class="QWidget" name="IRtOpenSkyInfo">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>256</width>
+    <height>219</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <item row="0" column="0">
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string>Last update</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="QLabel" name="labelTimestamp">
+     <property name="text">
+      <string>-</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0">
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Aircrafts seen:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QCheckBox" name="checkShowNames">
+     <property name="text">
+      <string>Show names</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QLabel" name="labelNumberOfAircrafts">
+     <property name="text">
+      <string>-</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0" colspan="2">
+    <widget class="QLabel" name="label_3">
+     <property name="text">
+      <string>See <a href='https://opensky-network.org/'>OpenSky</a> for details.</string>
+     </property>
+     <property name="openExternalLinks">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <widget class="QLineEdit" name="lineKey">
+     <property name="toolTip">
+      <string>Enter a valid key.</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0">
+    <widget class="QLabel" name="label_4">
+     <property name="text">
+      <string>Record by key</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolRecord">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Start recording.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Record.png</normaloff>:/icons/32x32/Record.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolPause">
+       <property name="toolTip">
+        <string>Pause recording.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Pause.png</normaloff>:/icons/32x32/Pause.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolToTrack">
+       <property name="toolTip">
+        <string>Convert record to track.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Track.png</normaloff>:/icons/32x32/Track.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolReset">
+       <property name="toolTip">
+        <string>Reset record.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolFile">
+       <property name="toolTip">
+        <string>Select record file.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmapshack/resources.qrc b/src/qmapshack/resources.qrc
new file mode 100644
index 0000000..183f89d
--- /dev/null
+++ b/src/qmapshack/resources.qrc
@@ -0,0 +1,615 @@
+<RCC>
+    <qresource prefix="/">
+        <file>../animation/loader.gif</file>
+        <file>../animation/loader2.gif</file>
+        
+        <file>../cursors/cursorArrow.png</file>
+        <file>../cursors/cursorDelete.png</file>
+        <file>../cursors/cursorMove.png</file>
+        <file>../cursors/cursorMoveArea.png</file>
+        <file>../cursors/cursorMoveLine.png</file>
+        <file>../cursors/cursorMoveMap.png</file>
+        <file>../cursors/cursorMoveWpt.png</file>
+        <file>../cursors/cursorPointAdd.png</file>
+        <file>../cursors/cursorPointDel.png</file>
+        <file>../cursors/cursorPointMove.png</file>
+        <file>../cursors/cursorPrint.png</file>
+        <file>../cursors/cursorRadiusWpt.png</file>
+        <file>../cursors/cursorSave.png</file>
+        <file>../cursors/cursorSelectArea.png</file>
+        <file>../cursors/cursorSelectRange.png</file>
+        <file>../cursors/wptHighlightBlue.png</file>
+        <file>../cursors/wptHighlightRed.png</file>
+        
+        <file>../icons/16x16/ActAero.png</file>
+        <file>../icons/16x16/ActBike.png</file>
+        <file>../icons/16x16/ActCable.png</file>
+        <file>../icons/16x16/ActCar.png</file>
+        <file>../icons/16x16/ActCycle.png</file>
+        <file>../icons/16x16/ActFoot.png</file>
+        <file>../icons/16x16/ActNone.png</file>
+        <file>../icons/16x16/ActShip.png</file>
+        <file>../icons/16x16/ActSki.png</file>
+        <file>../icons/16x16/ActSwim.png</file>
+        <file>../icons/16x16/ActTrain.png</file>
+        <file>../icons/16x16/Aircraft.png</file>
+        <file>../icons/16x16/EditDetails.png</file>
+
+        
+        <file>../icons/32x32/2NavProject.png</file>
+        <file>../icons/32x32/A.png</file>
+        <file>../icons/32x32/ActAero.png</file>
+        <file>../icons/32x32/ActBike.png</file>
+        <file>../icons/32x32/ActCable.png</file>
+        <file>../icons/32x32/ActCar.png</file>
+        <file>../icons/32x32/ActCycle.png</file>
+        <file>../icons/32x32/ActFoot.png</file>
+        <file>../icons/32x32/ActNone.png</file>
+        <file>../icons/32x32/ActShip.png</file>
+        <file>../icons/32x32/ActSki.png</file>
+        <file>../icons/32x32/ActSwim.png</file>
+        <file>../icons/32x32/ActTrain.png</file>
+        <file>../icons/32x32/Activity.png</file>
+        <file>../icons/32x32/Add.png</file>
+        <file>../icons/32x32/AddArea.png</file>
+        <file>../icons/32x32/AddImage.png</file>
+        <file>../icons/32x32/AddMapWorkspace.png</file>
+        <file>../icons/32x32/AddProject.png</file>
+        <file>../icons/32x32/AddRte.png</file>
+        <file>../icons/32x32/AddTrk.png</file>
+        <file>../icons/32x32/AddWpt.png</file>
+        <file>../icons/32x32/Aircraft.png</file>
+        <file>../icons/32x32/Apply.png</file>        
+        <file>../icons/32x32/Area.png</file>
+        <file>../icons/32x32/AreaMove.png</file>
+        <file>../icons/32x32/AreaOn.png</file>
+        <file>../icons/32x32/ArrowDef.png</file>
+        <file>../icons/32x32/ArrowUser.png</file>
+        <file>../icons/32x32/AutoSave.png</file>
+        <file>../icons/32x32/Bubble.png</file>
+        <file>../icons/32x32/CSrcATemp.png</file>
+        <file>../icons/32x32/CSrcAccel.png</file>
+        <file>../icons/32x32/CSrcCAD.png</file>
+        <file>../icons/32x32/CSrcCourse.png</file>
+        <file>../icons/32x32/CSrcDepth.png</file>
+        <file>../icons/32x32/CSrcDistance.png</file>
+        <file>../icons/32x32/CSrcElevation.png</file>
+        <file>../icons/32x32/CSrcEnergy.png</file>
+        <file>../icons/32x32/CSrcHR.png</file>
+        <file>../icons/32x32/CSrcSeaLevelPressure.png</file>
+        <file>../icons/32x32/CSrcSlope.png</file>
+        <file>../icons/32x32/CSrcSolid.png</file>
+        <file>../icons/32x32/CSrcSpeed.png</file>
+        <file>../icons/32x32/CSrcUnknown.png</file>
+        <file>../icons/32x32/CSrcVertSpeed.png</file>
+        <file>../icons/32x32/CSrcWTemp.png</file>
+        <file>../icons/32x32/Cancel.png</file>
+        <file>../icons/32x32/Check.png</file>
+        <file>../icons/32x32/CloneMapWorkspace.png</file>
+        <file>../icons/32x32/Close.png</file>
+        <file>../icons/32x32/Combine.png</file>
+        <file>../icons/32x32/Copy.png</file>
+        <file>../icons/32x32/CopyTrkWithWpt.png</file>
+        <file>../icons/32x32/Cut.png</file>
+        <file>../icons/32x32/CutHistoryAfter.png</file>
+        <file>../icons/32x32/CutHistoryBefore.png</file>
+        <file>../icons/32x32/CutMode1.png</file>
+        <file>../icons/32x32/CutMode2.png</file>
+        <file>../icons/32x32/DBProject.png</file>
+        <file>../icons/32x32/Database.png</file>
+        <file>../icons/32x32/DatabaseConvert.png</file>
+        <file>../icons/32x32/DatabaseSetup.png</file>
+        <file>../icons/32x32/DatabaseSync.png</file>
+        <file>../icons/32x32/DelImage.png</file>
+        <file>../icons/32x32/DeleteMultiple.png</file>
+        <file>../icons/32x32/DeleteOne.png</file>
+        <file>../icons/32x32/Device.png</file>
+        <file>../icons/32x32/Down.png</file>
+        <file>../icons/32x32/EditDetails.png</file>
+        <file>../icons/32x32/EditText.png</file>
+        <file>../icons/32x32/Empty.png</file>
+        <file>../icons/32x32/Error.png</file>
+        <file>../icons/32x32/Filter.png</file>
+        <file>../icons/32x32/FilterModifyExtension.png</file>
+        <file>../icons/32x32/FilterSubPt2Pt.png</file>
+        <file>../icons/32x32/FitProject.png</file>
+        <file>../icons/32x32/FolderDEM.png</file>
+        <file>../icons/32x32/FolderMap.png</file>
+        <file>../icons/32x32/Font.png</file>
+        <file>../icons/32x32/FromMap.png</file>
+        <file>../icons/32x32/FullScreen.png</file>
+        <file>../icons/32x32/GpxProject.png</file>
+        <file>../icons/32x32/Grid.png</file>
+        <file>../icons/32x32/GridSetup.png</file>
+        <file>../icons/32x32/GridWizard.png</file>
+        <file>../icons/32x32/Help.png</file>
+        <file>../icons/32x32/Image.png</file>
+        <file>../icons/32x32/Info.png</file>
+        <file>../icons/32x32/Left.png</file>
+        <file>../icons/32x32/Limit.png</file>
+        <file>../icons/32x32/LimitSys.png</file>
+        <file>../icons/32x32/LimitUsr.png</file>
+        <file>../icons/32x32/LineMove.png</file>
+        <file>../icons/32x32/LineWidthDef.png</file>
+        <file>../icons/32x32/LineWidthUser.png</file>
+        <file>../icons/32x32/Link.png</file>
+        <file>../icons/32x32/LoadGIS.png</file>
+        <file>../icons/32x32/LoadView.png</file>
+        <file>../icons/32x32/Lock.png</file>
+        <file>../icons/32x32/LogProject.png</file>
+        <file>../icons/32x32/Map.png</file>
+        <file>../icons/32x32/MimeDemVRT.png</file>
+        <file>../icons/32x32/MimeGEMF.png</file>
+        <file>../icons/32x32/MimeIMG.png</file>
+        <file>../icons/32x32/MimeJNX.png</file>
+        <file>../icons/32x32/MimeMAP.png</file>
+        <file>../icons/32x32/MimeRMAP.png</file>
+        <file>../icons/32x32/MimeTMS.png</file>
+        <file>../icons/32x32/MimeVRT.png</file>
+        <file>../icons/32x32/MimeWMTS.png</file>
+        <file>../icons/32x32/MouseWheel.png</file>
+        <file>../icons/32x32/Move.png</file>
+        <file>../icons/32x32/MoveArrow.png</file>
+        <file>../icons/32x32/MySQL.png</file>
+        <file>../icons/32x32/MySQLNoConn.png</file>
+        <file>../icons/32x32/NightDay.png</file>
+        <file>../icons/32x32/NoGo.png</file>
+        <file>../icons/32x32/NotPossible.png</file>
+        <file>../icons/32x32/O.png</file>
+        <file>../icons/32x32/Off.png</file>
+        <file>../icons/32x32/Opacity.png</file>
+        <file>../icons/32x32/OpenSky.png</file>
+        <file>../icons/32x32/POIText.png</file>
+        <file>../icons/32x32/Paste.png</file>
+        <file>../icons/32x32/PasteNormal.png</file>
+        <file>../icons/32x32/PastePlain.png</file>
+        <file>../icons/32x32/PathBlue.png</file>
+        <file>../icons/32x32/PathGreen.png</file>
+        <file>../icons/32x32/PathOrange.png</file>
+        <file>../icons/32x32/Pattern.png</file>
+        <file>../icons/32x32/Pause.png</file>
+        <file>../icons/32x32/PointAdd.png</file>
+        <file>../icons/32x32/PointDel.png</file>
+        <file>../icons/32x32/PointHide.png</file>
+        <file>../icons/32x32/PointMove.png</file>
+        <file>../icons/32x32/PointShow.png</file>
+        <file>../icons/32x32/Print.png</file>
+        <file>../icons/32x32/PrintSave.png</file>
+        <file>../icons/32x32/ProfileToWindow.png</file>
+        <file>../icons/32x32/Progress.png</file>
+        <file>../icons/32x32/QMapShack.png</file>
+        <file>../icons/32x32/QlbProject.png</file>
+        <file>../icons/32x32/QMapTool.png</file>
+        <file>../icons/32x32/QmsProject.png</file>
+        <file>../icons/32x32/Record.png</file>
+        <file>../icons/32x32/Redo.png</file>
+        <file>../icons/32x32/RegularScreen.png</file>
+        <file>../icons/32x32/ReloadImage.png</file>
+        <file>../icons/32x32/Reset.png</file>
+        <file>../icons/32x32/Reverse.png</file>
+        <file>../icons/32x32/Right.png</file>
+        <file>../icons/32x32/Route.png</file>
+        <file>../icons/32x32/RouteOn.png</file>
+        <file>../icons/32x32/RouteSetup.png</file>
+        <file>../icons/32x32/RteInstr.png</file>
+        <file>../icons/32x32/SQLite.png</file>
+        <file>../icons/32x32/SQLiteNoConn.png</file>
+        <file>../icons/32x32/Save.png</file>
+        <file>../icons/32x32/SaveAllGIS.png</file>
+        <file>../icons/32x32/SaveGIS.png</file>
+        <file>../icons/32x32/SaveGISAs.png</file>
+        <file>../icons/32x32/SaveGISAsGpx11.png</file>
+        <file>../icons/32x32/SaveView.png</file>
+        <file>../icons/32x32/Scale.png</file>
+        <file>../icons/32x32/SearchDatabase.png</file>
+        <file>../icons/32x32/SearchGoogle.png</file>
+        <file>../icons/32x32/SelectArea.png</file>
+        <file>../icons/32x32/SelectColor.png</file>
+        <file>../icons/32x32/SelectExactArea.png</file>
+        <file>../icons/32x32/SelectIntersectArea.png</file>
+        <file>../icons/32x32/SelectRange.png</file>
+        <file>../icons/32x32/SetEle.png</file>
+        <file>../icons/32x32/SetupCoordFormat.png</file>
+        <file>../icons/32x32/SetupMapWorkspace.png</file>
+        <file>../icons/32x32/SetupSummary.png</file>
+        <file>../icons/32x32/SetupWptSym.png</file>
+        <file>../icons/32x32/ShowAll.png</file>
+        <file>../icons/32x32/ShowNone.png</file>
+        <file>../icons/32x32/ShowSummary.png</file>
+        <file>../icons/32x32/SizeArrow.png</file>
+        <file>../icons/32x32/SlfProject.png</file>
+        <file>../icons/32x32/SmlProject.png</file>
+        <file>../icons/32x32/SortName.png</file>
+        <file>../icons/32x32/Start.png</file>
+        <file>../icons/32x32/Tainted.png</file>
+        <file>../icons/32x32/TcxProject.png</file>
+        <file>../icons/32x32/Template.png</file>
+        <file>../icons/32x32/TextBold.png</file>
+        <file>../icons/32x32/TextCenter.png</file>
+        <file>../icons/32x32/TextItalic.png</file>
+        <file>../icons/32x32/TextJustified.png</file>
+        <file>../icons/32x32/TextLeft.png</file>
+        <file>../icons/32x32/TextRight.png</file>
+        <file>../icons/32x32/TextUnderlined.png</file>
+        <file>../icons/32x32/Time.png</file>
+        <file>../icons/32x32/TimeZoneSetup.png</file>
+        <file>../icons/32x32/ToBottom.png</file>
+        <file>../icons/32x32/ToTop.png</file>
+        <file>../icons/32x32/ToggleDatabase.png</file>
+        <file>../icons/32x32/ToggleDem.png</file>
+        <file>../icons/32x32/ToggleDocks.png</file>
+        <file>../icons/32x32/ToggleGis.png</file>
+        <file>../icons/32x32/ToggleMaps.png</file>
+        <file>../icons/32x32/ToggleRealTime.png</file>
+        <file>../icons/32x32/ToggleRouter.png</file>
+        <file>../icons/32x32/ToolBar.png</file>
+        <file>../icons/32x32/ToolBarSetup.png</file>
+        <file>../icons/32x32/ToolTip.png</file>
+        <file>../icons/32x32/Track.png</file>
+        <file>../icons/32x32/TrackMinMax.png</file>
+        <file>../icons/32x32/TrackOn.png</file>
+        <file>../icons/32x32/TrkCut.png</file>
+        <file>../icons/32x32/TrkProfile.png</file>
+        <file>../icons/32x32/UnLock.png</file>
+        <file>../icons/32x32/Undo.png</file>
+        <file>../icons/32x32/UnitSetup.png</file>
+        <file>../icons/32x32/Up.png</file>
+        <file>../icons/32x32/V.png</file>
+        <file>../icons/32x32/VrtBuilder.png</file>
+        <file>../icons/32x32/WaypointOn.png</file>
+        <file>../icons/32x32/WptAvoid.png</file>
+        <file>../icons/32x32/WptDelProx.png</file>
+        <file>../icons/32x32/WptEditProx.png</file>
+        <file>../icons/32x32/WptMove.png</file>
+        <file>../icons/32x32/WptProj.png</file>
+        <file>../icons/32x32/WptProx.png</file>
+        <file>../icons/32x32/Zoom.png</file>
+        
+        <file>../icons/48x48/2NavProject.png</file>
+        <file>../icons/48x48/A.png</file>
+        <file>../icons/48x48/ActAero.png</file>
+        <file>../icons/48x48/ActBike.png</file>
+        <file>../icons/48x48/ActCable.png</file>
+        <file>../icons/48x48/ActCar.png</file>
+        <file>../icons/48x48/ActCycle.png</file>
+        <file>../icons/48x48/ActFoot.png</file>
+        <file>../icons/48x48/ActNone.png</file>
+        <file>../icons/48x48/ActShip.png</file>
+        <file>../icons/48x48/ActSki.png</file>
+        <file>../icons/48x48/ActSwim.png</file>
+        <file>../icons/48x48/ActTrain.png</file>
+        <file>../icons/48x48/Activity.png</file>
+        <file>../icons/48x48/Add.png</file>
+        <file>../icons/48x48/AddArea.png</file>
+        <file>../icons/48x48/AddImage.png</file>
+        <file>../icons/48x48/AddMapWorkspace.png</file>
+        <file>../icons/48x48/AddProject.png</file>
+        <file>../icons/48x48/AddRte.png</file>
+        <file>../icons/48x48/AddTrk.png</file>
+        <file>../icons/48x48/AddWpt.png</file>
+        <file>../icons/48x48/Aircraft.png</file>
+        <file>../icons/48x48/Apply.png</file>
+        <file>../icons/48x48/Area.png</file>
+        <file>../icons/48x48/AreaMove.png</file>
+        <file>../icons/48x48/AreaOn.png</file>
+        <file>../icons/48x48/ArrowDef.png</file>
+        <file>../icons/48x48/ArrowUser.png</file>
+        <file>../icons/48x48/AutoSave.png</file>
+        <file>../icons/48x48/Bubble.png</file>
+        <file>../icons/48x48/CSrcATemp.png</file>
+        <file>../icons/48x48/CSrcAccel.png</file>
+        <file>../icons/48x48/CSrcCAD.png</file>
+        <file>../icons/48x48/CSrcCourse.png</file>
+        <file>../icons/48x48/CSrcDepth.png</file>
+        <file>../icons/48x48/CSrcDistance.png</file>
+        <file>../icons/48x48/CSrcElevation.png</file>
+        <file>../icons/48x48/CSrcEnergy.png</file>
+        <file>../icons/48x48/CSrcHR.png</file>
+        <file>../icons/48x48/CSrcSeaLevelPressure.png</file>
+        <file>../icons/48x48/CSrcSlope.png</file>
+        <file>../icons/48x48/CSrcSolid.png</file>
+        <file>../icons/48x48/CSrcSpeed.png</file>
+        <file>../icons/48x48/CSrcUnknown.png</file>
+        <file>../icons/48x48/CSrcVertSpeed.png</file>
+        <file>../icons/48x48/CSrcWTemp.png</file>
+        <file>../icons/48x48/Cancel.png</file>
+        <file>../icons/48x48/Check.png</file>
+        <file>../icons/48x48/CloneMapWorkspace.png</file>
+        <file>../icons/48x48/Close.png</file>
+        <file>../icons/48x48/Combine.png</file>
+        <file>../icons/48x48/Copy.png</file>
+        <file>../icons/48x48/CopyTrkWithWpt.png</file>
+        <file>../icons/48x48/Cut.png</file>
+        <file>../icons/48x48/CutHistoryAfter.png</file>
+        <file>../icons/48x48/CutHistoryBefore.png</file>
+        <file>../icons/48x48/CutMode1.png</file>
+        <file>../icons/48x48/CutMode2.png</file>
+        <file>../icons/48x48/DBProject.png</file>
+        <file>../icons/48x48/Database.png</file>
+        <file>../icons/48x48/DatabaseConvert.png</file>
+        <file>../icons/48x48/DatabaseSetup.png</file>
+        <file>../icons/48x48/DatabaseSync.png</file>
+        <file>../icons/48x48/DelImage.png</file>
+        <file>../icons/48x48/DeleteMultiple.png</file>
+        <file>../icons/48x48/DeleteOne.png</file>
+        <file>../icons/48x48/Device.png</file>
+        <file>../icons/48x48/Down.png</file>
+        <file>../icons/48x48/EditDetails.png</file>
+        <file>../icons/48x48/EditText.png</file>
+        <file>../icons/48x48/Empty.png</file>
+        <file>../icons/48x48/Error.png</file>
+        <file>../icons/48x48/Filter.png</file>
+        <file>../icons/48x48/FilterModifyExtension.png</file>
+        <file>../icons/48x48/FilterSubPt2Pt.png</file>
+        <file>../icons/48x48/FitProject.png</file>
+        <file>../icons/48x48/FolderDEM.png</file>
+        <file>../icons/48x48/FolderMap.png</file>
+        <file>../icons/48x48/Font.png</file>
+        <file>../icons/48x48/FromMap.png</file>
+        <file>../icons/48x48/FullScreen.png</file>
+        <file>../icons/48x48/GpxProject.png</file>
+        <file>../icons/48x48/Grid.png</file>
+        <file>../icons/48x48/GridSetup.png</file>
+        <file>../icons/48x48/GridWizard.png</file>
+        <file>../icons/48x48/Help.png</file>
+        <file>../icons/48x48/Image.png</file>
+        <file>../icons/48x48/Info.png</file>
+        <file>../icons/48x48/Left.png</file>
+        <file>../icons/48x48/Limit.png</file>
+        <file>../icons/48x48/LimitSys.png</file>
+        <file>../icons/48x48/LimitUsr.png</file>
+        <file>../icons/48x48/LineMove.png</file>
+        <file>../icons/48x48/LineWidthDef.png</file>
+        <file>../icons/48x48/LineWidthUser.png</file>
+        <file>../icons/48x48/Link.png</file>
+        <file>../icons/48x48/LoadGIS.png</file>
+        <file>../icons/48x48/LoadView.png</file>
+        <file>../icons/48x48/Lock.png</file>
+        <file>../icons/48x48/LogProject.png</file>
+        <file>../icons/48x48/Map.png</file>
+        <file>../icons/48x48/MimeDemVRT.png</file>
+        <file>../icons/48x48/MimeGEMF.png</file>
+        <file>../icons/48x48/MimeIMG.png</file>
+        <file>../icons/48x48/MimeJNX.png</file>
+        <file>../icons/48x48/MimeMAP.png</file>
+        <file>../icons/48x48/MimeRMAP.png</file>
+        <file>../icons/48x48/MimeTMS.png</file>
+        <file>../icons/48x48/MimeVRT.png</file>
+        <file>../icons/48x48/MimeWMTS.png</file>
+        <file>../icons/48x48/MouseWheel.png</file>
+        <file>../icons/48x48/Move.png</file>
+        <file>../icons/48x48/MoveArrow.png</file>
+        <file>../icons/48x48/MySQL.png</file>
+        <file>../icons/48x48/MySQLNoConn.png</file>
+        <file>../icons/48x48/NightDay.png</file>
+        <file>../icons/48x48/NoGo.png</file>
+        <file>../icons/48x48/NotPossible.png</file>
+        <file>../icons/48x48/O.png</file>
+        <file>../icons/48x48/Off.png</file>
+        <file>../icons/48x48/Opacity.png</file>
+        <file>../icons/48x48/OpenSky.png</file>
+        <file>../icons/48x48/POIText.png</file>
+        <file>../icons/48x48/Paste.png</file>
+        <file>../icons/48x48/PasteNormal.png</file>
+        <file>../icons/48x48/PastePlain.png</file>
+        <file>../icons/48x48/PathBlue.png</file>
+        <file>../icons/48x48/PathGreen.png</file>
+        <file>../icons/48x48/PathOrange.png</file>
+        <file>../icons/48x48/Pattern.png</file>
+        <file>../icons/48x48/Pause.png</file>
+        <file>../icons/48x48/PointAdd.png</file>
+        <file>../icons/48x48/PointDel.png</file>
+        <file>../icons/48x48/PointHide.png</file>
+        <file>../icons/48x48/PointMove.png</file>
+        <file>../icons/48x48/PointShow.png</file>
+        <file>../icons/48x48/Print.png</file>
+        <file>../icons/48x48/PrintSave.png</file>
+        <file>../icons/48x48/ProfileToWindow.png</file>
+        <file>../icons/48x48/Progress.png</file>
+        <file>../icons/48x48/QMapShack.png</file>
+        <file>../icons/48x48/QlbProject.png</file>
+        <file>../icons/48x48/QMapTool.png</file>
+        <file>../icons/48x48/QmsProject.png</file>
+        <file>../icons/48x48/Record.png</file>
+        <file>../icons/48x48/Redo.png</file>
+        <file>../icons/48x48/RegularScreen.png</file>
+        <file>../icons/48x48/ReloadImage.png</file>
+        <file>../icons/48x48/Reset.png</file>
+        <file>../icons/48x48/Reverse.png</file>
+        <file>../icons/48x48/Right.png</file>
+        <file>../icons/48x48/Route.png</file>
+        <file>../icons/48x48/RouteOn.png</file>
+        <file>../icons/48x48/RouteSetup.png</file>
+        <file>../icons/48x48/RteInstr.png</file>
+        <file>../icons/48x48/SQLite.png</file>
+        <file>../icons/48x48/SQLiteNoConn.png</file>
+        <file>../icons/48x48/Save.png</file>
+        <file>../icons/48x48/SaveAllGIS.png</file>
+        <file>../icons/48x48/SaveGIS.png</file>
+        <file>../icons/48x48/SaveGISAs.png</file>
+        <file>../icons/48x48/SaveGISAsGpx11.png</file>
+        <file>../icons/48x48/SaveView.png</file>
+        <file>../icons/48x48/Scale.png</file>
+        <file>../icons/48x48/SearchDatabase.png</file>
+        <file>../icons/48x48/SearchGoogle.png</file>
+        <file>../icons/48x48/SelectArea.png</file>
+        <file>../icons/48x48/SelectColor.png</file>
+        <file>../icons/48x48/SelectExactArea.png</file>
+        <file>../icons/48x48/SelectIntersectArea.png</file>
+        <file>../icons/48x48/SelectRange.png</file>
+        <file>../icons/48x48/SetEle.png</file>
+        <file>../icons/48x48/SetupCoordFormat.png</file>
+        <file>../icons/48x48/SetupMapWorkspace.png</file>
+        <file>../icons/48x48/SetupSummary.png</file>
+        <file>../icons/48x48/SetupWptSym.png</file>
+        <file>../icons/48x48/ShowAll.png</file>
+        <file>../icons/48x48/ShowNone.png</file>
+        <file>../icons/48x48/ShowSummary.png</file>
+        <file>../icons/48x48/SizeArrow.png</file>
+        <file>../icons/48x48/SlfProject.png</file>
+        <file>../icons/48x48/SmlProject.png</file>
+        <file>../icons/48x48/SortName.png</file>
+        <file>../icons/48x48/Start.png</file>
+        <file>../icons/48x48/Tainted.png</file>
+        <file>../icons/48x48/TcxProject.png</file>
+        <file>../icons/48x48/Template.png</file>
+        <file>../icons/48x48/TextBold.png</file>
+        <file>../icons/48x48/TextCenter.png</file>
+        <file>../icons/48x48/TextItalic.png</file>
+        <file>../icons/48x48/TextJustified.png</file>
+        <file>../icons/48x48/TextLeft.png</file>
+        <file>../icons/48x48/TextRight.png</file>
+        <file>../icons/48x48/TextUnderlined.png</file>
+        <file>../icons/48x48/Time.png</file>
+        <file>../icons/48x48/TimeZoneSetup.png</file>
+        <file>../icons/48x48/ToBottom.png</file>
+        <file>../icons/48x48/ToTop.png</file>
+        <file>../icons/48x48/ToggleDatabase.png</file>
+        <file>../icons/48x48/ToggleDem.png</file>
+        <file>../icons/48x48/ToggleDocks.png</file>
+        <file>../icons/48x48/ToggleGis.png</file>
+        <file>../icons/48x48/ToggleMaps.png</file>
+        <file>../icons/48x48/ToggleRealTime.png</file>
+        <file>../icons/48x48/ToggleRouter.png</file>
+        <file>../icons/48x48/ToolBar.png</file>
+        <file>../icons/48x48/ToolBarSetup.png</file>
+        <file>../icons/48x48/ToolTip.png</file>
+        <file>../icons/48x48/Track.png</file>
+        <file>../icons/48x48/TrackMinMax.png</file>
+        <file>../icons/48x48/TrackOn.png</file>
+        <file>../icons/48x48/TrkCut.png</file>
+        <file>../icons/48x48/TrkProfile.png</file>
+        <file>../icons/48x48/UnLock.png</file>
+        <file>../icons/48x48/Undo.png</file>
+        <file>../icons/48x48/UnitSetup.png</file>
+        <file>../icons/48x48/Up.png</file>
+        <file>../icons/48x48/V.png</file>
+        <file>../icons/48x48/VrtBuilder.png</file>
+        <file>../icons/48x48/WaypointOn.png</file>
+        <file>../icons/48x48/WptAvoid.png</file>
+        <file>../icons/48x48/WptEditProx.png</file>
+        <file>../icons/48x48/WptMove.png</file>
+        <file>../icons/48x48/WptProj.png</file>
+        <file>../icons/48x48/WptProx.png</file>
+        <file>../icons/48x48/WptDelProx.png</file>
+        <file>../icons/48x48/Zoom.png</file>
+        
+        <file>../icons/8x8/bullet_black.png</file>
+        <file>../icons/8x8/bullet_blue.png</file>
+        <file>../icons/8x8/bullet_brown.png</file>
+        <file>../icons/8x8/bullet_cyan.png</file>
+        <file>../icons/8x8/bullet_dark_blue.png</file>
+        <file>../icons/8x8/bullet_dark_cyan.png</file>
+        <file>../icons/8x8/bullet_dark_gray.png</file>
+        <file>../icons/8x8/bullet_dark_green.png</file>
+        <file>../icons/8x8/bullet_dark_magenta.png</file>
+        <file>../icons/8x8/bullet_dark_red.png</file>
+        <file>../icons/8x8/bullet_dark_yellow.png</file>
+        <file>../icons/8x8/bullet_gray.png</file>
+        <file>../icons/8x8/bullet_green.png</file>
+        <file>../icons/8x8/bullet_magenta.png</file>
+        <file>../icons/8x8/bullet_orange.png</file>
+        <file>../icons/8x8/bullet_red.png</file>
+        <file>../icons/8x8/bullet_white.png</file>
+        <file>../icons/8x8/bullet_yellow.png</file>
+        
+        <file>../icons/cache/32x32/DistIcon.png</file>
+        <file>../icons/cache/32x32/OCMLogo.png</file>
+        <file>../icons/cache/32x32/OCMLogoSmall.png</file>
+        <file>../icons/cache/32x32/SearchIcon.png</file>
+        <file>../icons/cache/32x32/bluepin.png</file>
+        <file>../icons/cache/32x32/cito.png</file>
+        <file>../icons/cache/32x32/corrected.png</file>
+        <file>../icons/cache/32x32/dnf.png</file>
+        <file>../icons/cache/32x32/down_icon.png</file>
+        <file>../icons/cache/32x32/earth.png</file>
+        <file>../icons/cache/32x32/event.png</file>
+        <file>../icons/cache/32x32/found.png</file>
+        <file>../icons/cache/32x32/ftf.png</file>
+        <file>../icons/cache/32x32/greenpin.png</file>
+        <file>../icons/cache/32x32/halfstar.png</file>
+        <file>../icons/cache/32x32/letterbox.png</file>
+        <file>../icons/cache/32x32/log.png</file>
+        <file>../icons/cache/32x32/maxicon.png</file>
+        <file>../icons/cache/32x32/mega.png</file>
+        <file>../icons/cache/32x32/minicon.png</file>
+        <file>../icons/cache/32x32/multi.png</file>
+        <file>../icons/cache/32x32/needs_maintenance.png</file>
+        <file>../icons/cache/32x32/other.png</file>
+        <file>../icons/cache/32x32/parking.png</file>
+        <file>../icons/cache/32x32/pushpin.png</file>
+        <file>../icons/cache/32x32/restore.png</file>
+        <file>../icons/cache/32x32/star.png</file>
+        <file>../icons/cache/32x32/star_empty.png</file>
+        <file>../icons/cache/32x32/traditional.png</file>
+        <file>../icons/cache/32x32/trailhead.png</file>
+        <file>../icons/cache/32x32/treasure.png</file>
+        <file>../icons/cache/32x32/unknown.png</file>
+        <file>../icons/cache/32x32/up_icon.png</file>
+        <file>../icons/cache/32x32/virtual.png</file>
+        <file>../icons/cache/32x32/waypoint-flag-red.png</file>
+        <file>../icons/cache/32x32/webcam.png</file>
+        <file>../icons/cache/32x32/wherigo.png</file>
+        <file>../icons/cache/32x32/write_note.png</file>
+        
+        <file>../icons/waypoints/32x32/1stCategory.png</file>
+        <file>../icons/waypoints/32x32/2ndCategory.png</file>
+        <file>../icons/waypoints/32x32/3rdCategory.png</file>
+        <file>../icons/waypoints/32x32/4thCategory.png</file>
+        <file>../icons/waypoints/32x32/BoxBlue.png</file>
+        <file>../icons/waypoints/32x32/BoxGreen.png</file>
+        <file>../icons/waypoints/32x32/BoxRed.png</file>
+        <file>../icons/waypoints/32x32/CityCapitol.png</file>
+        <file>../icons/waypoints/32x32/CityLarge.png</file>
+        <file>../icons/waypoints/32x32/CityMedium.png</file>
+        <file>../icons/waypoints/32x32/CitySmall.png</file>
+        <file>../icons/waypoints/32x32/Danger.png</file>
+        <file>../icons/waypoints/32x32/Default.png</file>
+        <file>../icons/waypoints/32x32/DiamondBlue.png</file>
+        <file>../icons/waypoints/32x32/DiamondGreen.png</file>
+        <file>../icons/waypoints/32x32/DiamondRed.png</file>
+        <file>../icons/waypoints/32x32/End.png</file>
+        <file>../icons/waypoints/32x32/FirstAid.png</file>
+        <file>../icons/waypoints/32x32/FlagBlue.png</file>
+        <file>../icons/waypoints/32x32/FlagGreen.png</file>
+        <file>../icons/waypoints/32x32/FlagRed.png</file>
+        <file>../icons/waypoints/32x32/Food.png</file>
+        <file>../icons/waypoints/32x32/Generic.png</file>
+        <file>../icons/waypoints/32x32/HorsCategory.png</file>
+        <file>../icons/waypoints/32x32/Left.png</file>
+        <file>../icons/waypoints/32x32/LeftFork.png</file>
+        <file>../icons/waypoints/32x32/MiddleFork.png</file>
+        <file>../icons/waypoints/32x32/PinBlue.png</file>
+        <file>../icons/waypoints/32x32/PinGreen.png</file>
+        <file>../icons/waypoints/32x32/PinRed.png</file>
+        <file>../icons/waypoints/32x32/Residence.png</file>
+        <file>../icons/waypoints/32x32/Right.png</file>
+        <file>../icons/waypoints/32x32/RightFork.png</file>
+        <file>../icons/waypoints/32x32/SharpLeft.png</file>
+        <file>../icons/waypoints/32x32/SharpRight.png</file>
+        <file>../icons/waypoints/32x32/SlightLeft.png</file>
+        <file>../icons/waypoints/32x32/SlightRight.png</file>
+        <file>../icons/waypoints/32x32/Sprint.png</file>
+        <file>../icons/waypoints/32x32/Start.png</file>
+        <file>../icons/waypoints/32x32/Straight.png</file>
+        <file>../icons/waypoints/32x32/Summit.png</file>
+        <file>../icons/waypoints/32x32/UTurn.png</file>
+        <file>../icons/waypoints/32x32/Valley.png</file>
+        <file>../icons/waypoints/32x32/Water.png</file>
+        <file>../icons/waypoints/32x32/Waypoint.png</file>
+        
+        <file>map/OSM_Topo.tms</file>
+        <file>map/OpenCycleMap.tms</file>
+        <file>map/OpenStreetMap.tms</file>
+        <file>map/WorldSat.wmts</file>
+        <file>map/WorldTopo.wmts</file>
+        
+        <file>pics/about.png</file>
+        <file>pics/compass.png</file>
+        <file>pics/noMap256x256.png</file>
+        <file>pics/splash.png</file>
+        <file>pics/timezones.png</file>
+        
+        <file>templates/Hiking_Tour_Summary.ui</file>
+    </qresource>
+</RCC>
diff --git a/src/setup/CAppOpts.h b/src/qmapshack/setup/CAppOpts.h
similarity index 100%
copy from src/setup/CAppOpts.h
copy to src/qmapshack/setup/CAppOpts.h
diff --git a/src/setup/CAppSetupLinux.cpp b/src/qmapshack/setup/CAppSetupLinux.cpp
similarity index 100%
rename from src/setup/CAppSetupLinux.cpp
rename to src/qmapshack/setup/CAppSetupLinux.cpp
diff --git a/src/setup/CAppSetupLinux.h b/src/qmapshack/setup/CAppSetupLinux.h
similarity index 100%
rename from src/setup/CAppSetupLinux.h
rename to src/qmapshack/setup/CAppSetupLinux.h
diff --git a/src/setup/CAppSetupMac.cpp b/src/qmapshack/setup/CAppSetupMac.cpp
similarity index 100%
rename from src/setup/CAppSetupMac.cpp
rename to src/qmapshack/setup/CAppSetupMac.cpp
diff --git a/src/setup/CAppSetupMac.h b/src/qmapshack/setup/CAppSetupMac.h
similarity index 100%
rename from src/setup/CAppSetupMac.h
rename to src/qmapshack/setup/CAppSetupMac.h
diff --git a/src/qmapshack/setup/CAppSetupWin.cpp b/src/qmapshack/setup/CAppSetupWin.cpp
new file mode 100644
index 0000000..91381c5
--- /dev/null
+++ b/src/qmapshack/setup/CAppSetupWin.cpp
@@ -0,0 +1,79 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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 "CAppSetupWin.h"
+#include "config.h"
+
+
+void CAppSetupWin::initQMapShack()
+{
+    // setup environment variables for GDAL/Proj4
+    QString apppath = QCoreApplication::applicationDirPath();
+    apppath = apppath.replace("/", "\\");
+    QString gdalDir = QString("%1\\data").arg(apppath);
+    QString projDir = QString("%1\\share").arg(apppath);
+
+    qunsetenv("GDAL_DRIVER_PATH");
+    IAppSetup::prepareGdal(gdalDir, projDir);
+
+    QString appResourceDir = QString("%1\\translations").arg(apppath).toUtf8();
+    prepareTranslator(appResourceDir, "qtbase_");
+    prepareTranslator(appResourceDir, "qmapshack_");
+
+    // limit PATH to application directory in order to avoid that wrong .dll's are loaded
+    path = apppath.toUtf8();
+    qputenv("PATH", path);
+
+    // create directories
+    IAppSetup::path(defaultCachePath(), 0, true, "CACHE");
+    IAppSetup::path(userDataPath("WaypointIcons"), 0, true, "USER DATA");
+    IAppSetup::path(logDir(), 0, true, "LOG");
+}
+
+
+QString CAppSetupWin::routinoPath(QString xmlFile)
+{
+    QString apppath = QCoreApplication::applicationDirPath();
+    apppath = apppath.replace("/", "\\");
+    QDir dirXml(QString("%1\\routino-xml").arg(apppath).toUtf8());
+    return IAppSetup::path(dirXml.absolutePath(), xmlFile, false, "ROUTINO");
+}
+
+
+QString CAppSetupWin::defaultCachePath()
+{
+    return IAppSetup::path(QDir::home().absolutePath(), ".QMapShack/", false, 0);
+}
+
+
+QString CAppSetupWin::userDataPath(QString subdir)
+{
+    QString path = QDir::home().absoluteFilePath(CONFIGDIR);
+    return IAppSetup::path(path, subdir, false, 0);
+}
+
+
+QString CAppSetupWin::logDir()
+{
+    return QDir::temp().absolutePath();
+}
+
+QString CAppSetupWin::findExecutable(const QString &name)
+{
+    return QStandardPaths::findExecutable(name);
+}
diff --git a/src/setup/CAppSetupWin.h b/src/qmapshack/setup/CAppSetupWin.h
similarity index 100%
rename from src/setup/CAppSetupWin.h
rename to src/qmapshack/setup/CAppSetupWin.h
diff --git a/src/setup/CCommandProcessor.cpp b/src/qmapshack/setup/CCommandProcessor.cpp
similarity index 100%
rename from src/setup/CCommandProcessor.cpp
rename to src/qmapshack/setup/CCommandProcessor.cpp
diff --git a/src/setup/CCommandProcessor.h b/src/qmapshack/setup/CCommandProcessor.h
similarity index 100%
copy from src/setup/CCommandProcessor.h
copy to src/qmapshack/setup/CCommandProcessor.h
diff --git a/src/setup/CLogHandler.cpp b/src/qmapshack/setup/CLogHandler.cpp
similarity index 100%
rename from src/setup/CLogHandler.cpp
rename to src/qmapshack/setup/CLogHandler.cpp
diff --git a/src/setup/CLogHandler.h b/src/qmapshack/setup/CLogHandler.h
similarity index 100%
copy from src/setup/CLogHandler.h
copy to src/qmapshack/setup/CLogHandler.h
diff --git a/src/setup/IAppSetup.cpp b/src/qmapshack/setup/IAppSetup.cpp
similarity index 100%
rename from src/setup/IAppSetup.cpp
rename to src/qmapshack/setup/IAppSetup.cpp
diff --git a/src/setup/IAppSetup.h b/src/qmapshack/setup/IAppSetup.h
similarity index 100%
rename from src/setup/IAppSetup.h
rename to src/qmapshack/setup/IAppSetup.h
diff --git a/src/templates/Hiking_Tour_Summary.ui b/src/qmapshack/templates/Hiking_Tour_Summary.ui
similarity index 100%
rename from src/templates/Hiking_Tour_Summary.ui
rename to src/qmapshack/templates/Hiking_Tour_Summary.ui
diff --git a/src/tool/CImportDatabase.cpp b/src/qmapshack/tool/CImportDatabase.cpp
similarity index 100%
rename from src/tool/CImportDatabase.cpp
rename to src/qmapshack/tool/CImportDatabase.cpp
diff --git a/src/tool/CImportDatabase.h b/src/qmapshack/tool/CImportDatabase.h
similarity index 100%
rename from src/tool/CImportDatabase.h
rename to src/qmapshack/tool/CImportDatabase.h
diff --git a/src/qmapshack/tool/CMapVrtBuilder.cpp b/src/qmapshack/tool/CMapVrtBuilder.cpp
new file mode 100644
index 0000000..102b9c5
--- /dev/null
+++ b/src/qmapshack/tool/CMapVrtBuilder.cpp
@@ -0,0 +1,206 @@
+/**********************************************************************************************
+    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 "CMapVrtBuilder.h"
+#include "helpers/CSettings.h"
+
+#include <QtWidgets>
+
+CMapVrtBuilder::CMapVrtBuilder(QWidget *parent)
+    : IToolShell(parent)
+{
+    setupUi(this);
+    setTextBrowser(textBrowser);
+    setObjectName(tr("Build GDAL VRT"));
+
+    connect(toolSourceFiles, &QToolButton::clicked, this, &CMapVrtBuilder::slotSelectSourceFiles);
+    connect(toolTargetFile,  &QToolButton::clicked, this, &CMapVrtBuilder::slotSelectTargetFile);
+    connect(pushStart,       &QPushButton::clicked, this, &CMapVrtBuilder::slotStart);
+    connect(labelHelpGDAL,   &QLabel::linkActivated,this, &CMapVrtBuilder::slotLinkActivated);
+
+    pushStart->setDisabled(true);
+
+    SETTINGS;
+    cfg.beginGroup("VrtBuilder");
+    groupAdvancedOptions->setChecked(cfg.value("AdvancedOptions", false).toBool());
+    lineASrs->setText(cfg.value("a_srs", "").toString());
+    lineSrcNoData->setText(cfg.value("srcndata", "").toString());
+    lineVrtNoData->setText(cfg.value("vrtndata", "").toString());
+    groupOverviews->setChecked(cfg.value("Overviews", false).toBool());
+    checkBy2->setChecked(cfg.value("by2", false).toBool());
+    checkBy4->setChecked(cfg.value("by4", false).toBool());
+    checkBy8->setChecked(cfg.value("by8", false).toBool());
+    checkBy16->setChecked(cfg.value("by16", false).toBool());
+    checkBy32->setChecked(cfg.value("by32", false).toBool());
+    checkBy64->setChecked(cfg.value("by64", false).toBool());
+    cfg.endGroup();
+}
+
+CMapVrtBuilder::~CMapVrtBuilder()
+{
+    SETTINGS;
+    cfg.beginGroup("VrtBuilder");
+    cfg.setValue("AdvancedOptions", groupAdvancedOptions->isChecked());
+    cfg.setValue("a_srs", lineASrs->text());
+    cfg.setValue("srcndata", lineSrcNoData->text());
+    cfg.setValue("vrtndata", lineVrtNoData->text());
+    cfg.setValue("Overviews", groupOverviews->isChecked());
+    cfg.setValue("by2", checkBy2->isChecked());
+    cfg.setValue("by4", checkBy4->isChecked());
+    cfg.setValue("by8", checkBy8->isChecked());
+    cfg.setValue("by16", checkBy16->isChecked());
+    cfg.setValue("by32", checkBy32->isChecked());
+    cfg.setValue("by64", checkBy64->isChecked());
+    cfg.endGroup();
+}
+
+void CMapVrtBuilder::slotSelectSourceFiles()
+{
+    SETTINGS;
+    QString path = cfg.value("VrtBuilder/sourcePath",QDir::homePath()).toString();
+
+    QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files..."), path);
+    if(files.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(files.first());
+    path = fi.absolutePath();
+    cfg.setValue("VrtBuilder/sourcePath", path);
+
+    listWidget->clear();
+    for(const QString &file : files)
+    {
+        new QListWidgetItem(QIcon("://icons/32x32/Map.png"), file, listWidget);
+    }
+
+    enableStartButton();
+}
+
+void CMapVrtBuilder::slotSelectTargetFile()
+{
+    SETTINGS;
+    QString path = cfg.value("VrtBuilder/targetPath",QDir::homePath()).toString();
+
+    QString file = QFileDialog::getSaveFileName(this, tr("Select target file..."), path, "GDAL vrt (*.vrt)");
+    if(file.isEmpty())
+    {
+        return;
+    }
+
+    QFileInfo fi(file);
+    path = fi.absolutePath();
+    cfg.setValue("VrtBuilder/targetPath", path);
+
+    if(fi.suffix().toLower() != "vrt")
+    {
+        file += ".vrt";
+    }
+
+    labelTargetFilename->setText(file);
+
+    enableStartButton();
+}
+
+void CMapVrtBuilder::enableStartButton()
+{
+    pushStart->setEnabled(listWidget->count() > 0 && labelTargetFilename->text() != "-");
+}
+
+void CMapVrtBuilder::slotStart()
+{
+    pushStart->setDisabled(true);
+    last = false;
+
+    QStringList args;
+
+    if(groupAdvancedOptions->isChecked())
+    {
+        if(!lineASrs->text().isEmpty())
+        {
+            args << "-a_srs" << lineASrs->text();
+        }
+
+        if(!lineSrcNoData->text().isEmpty())
+        {
+            args << "-srcnodata" << lineSrcNoData->text();
+        }
+
+        if(!lineVrtNoData->text().isEmpty())
+        {
+            args << "-vrtnodata" << lineVrtNoData->text();
+        }
+    }
+
+    args << labelTargetFilename->text();
+
+    for(const QListWidgetItem * item : listWidget->findItems("*", Qt::MatchWildcard))
+    {
+        args << item->text();
+    }
+
+    stdOut("gdalbuildvrt " +  args.join(" ") + "\n");
+    cmd.start("gdalbuildvrt", args);
+}
+
+void CMapVrtBuilder::finished(int exitCode, QProcess::ExitStatus status)
+{
+    if(!last && groupOverviews->isChecked())
+    {
+        QStringList args;
+        args << labelTargetFilename->text();
+        if(checkBy2->isChecked())
+        {
+            args << "2";
+        }
+        if(checkBy4->isChecked())
+        {
+            args << "4";
+        }
+        if(checkBy8->isChecked())
+        {
+            args << "8";
+        }
+        if(checkBy16->isChecked())
+        {
+            args << "16";
+        }
+        if(checkBy32->isChecked())
+        {
+            args << "32";
+        }
+        if(checkBy64->isChecked())
+        {
+            args << "64";
+        }
+        stdOut("gdaladdo " +  args.join(" ") + "\n");
+        cmd.start("gdaladdo", args);
+
+        last = true;
+        return;
+    }
+    textBrowser->setTextColor(Qt::darkGreen);
+    textBrowser->append(tr("!!! done !!!\n"));
+    pushStart->setEnabled(true);
+}
+
+void CMapVrtBuilder::slotLinkActivated(const QUrl& url)
+{
+    QDesktopServices::openUrl(url);
+}
diff --git a/src/qmapshack/tool/CMapVrtBuilder.h b/src/qmapshack/tool/CMapVrtBuilder.h
new file mode 100644
index 0000000..3633501
--- /dev/null
+++ b/src/qmapshack/tool/CMapVrtBuilder.h
@@ -0,0 +1,47 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CMAPVRTBUILDER_H
+#define CMAPVRTBUILDER_H
+
+#include "tool/IToolShell.h"
+#include "ui_IMapVrtBuilder.h"
+#include <QWidget>
+
+class CMapVrtBuilder : public IToolShell, private Ui::IMapVrtBuilder
+{
+    Q_OBJECT
+public:
+    CMapVrtBuilder(QWidget * parent);
+    virtual ~CMapVrtBuilder();
+
+private slots:
+    void slotSelectSourceFiles();
+    void slotSelectTargetFile();
+    void slotStart();
+    void slotLinkActivated(const QUrl& url);
+
+private:
+    void finished(int exitCode, QProcess::ExitStatus status) override;
+    void enableStartButton();
+
+    bool last = false;
+};
+
+#endif //CMAPVRTBUILDER_H
+
diff --git a/src/tool/CRoutinoDatabaseBuilder.cpp b/src/qmapshack/tool/CRoutinoDatabaseBuilder.cpp
similarity index 100%
rename from src/tool/CRoutinoDatabaseBuilder.cpp
rename to src/qmapshack/tool/CRoutinoDatabaseBuilder.cpp
diff --git a/src/tool/CRoutinoDatabaseBuilder.h b/src/qmapshack/tool/CRoutinoDatabaseBuilder.h
similarity index 100%
rename from src/tool/CRoutinoDatabaseBuilder.h
rename to src/qmapshack/tool/CRoutinoDatabaseBuilder.h
diff --git a/src/tool/IImportDatabase.ui b/src/qmapshack/tool/IImportDatabase.ui
similarity index 100%
rename from src/tool/IImportDatabase.ui
rename to src/qmapshack/tool/IImportDatabase.ui
diff --git a/src/qmapshack/tool/IMapVrtBuilder.ui b/src/qmapshack/tool/IMapVrtBuilder.ui
new file mode 100644
index 0000000..439b89e
--- /dev/null
+++ b/src/qmapshack/tool/IMapVrtBuilder.ui
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IMapVrtBuilder</class>
+ <widget class="QWidget" name="IMapVrtBuilder">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>980</width>
+    <height>616</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0">
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QToolButton" name="toolSourceFiles">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/PathGreen.png</normaloff>:/icons/32x32/PathGreen.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Select source files:</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="0">
+    <widget class="QListWidget" name="listWidget">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1">
+    <widget class="QTextBrowser" name="textBrowser"/>
+   </item>
+   <item row="2" column="0">
+    <widget class="QGroupBox" name="groupAdvancedOptions">
+     <property name="title">
+      <string>Advanced Options</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QGridLayout" name="gridLayout_2">
+      <item row="2" column="0">
+       <widget class="QLabel" name="label_3">
+        <property name="text">
+         <string>Source No Data (-srcnodata)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="label_5">
+        <property name="text">
+         <string>Target No Data (-vrtnodata)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QLineEdit" name="lineVrtNoData"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Target Projection (-a_srs)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" colspan="2">
+       <widget class="QLabel" name="labelHelpGDAL">
+        <property name="text">
+         <string>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="QLineEdit" name="lineSrcNoData">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="lineASrs">
+        <property name="sizePolicy">
+         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+          <horstretch>0</horstretch>
+          <verstretch>0</verstretch>
+         </sizepolicy>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="2" column="1" rowspan="2">
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QLabel" name="label_7">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../resources.qrc">:/icons/48x48/Help.png</pixmap>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_8">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string><ol>
+<li>Select one or multiple source files.</li>
+<li>Select a file name for the target VRT file.</li>
+<li>Press "Start" button.</li>
+</ol>
+
+Tip:
+<ul>
+<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
+<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
+<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
+</ul></string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="3" column="0">
+    <widget class="QGroupBox" name="groupOverviews">
+     <property name="toolTip">
+      <string>Overviews will allow you to show the map for a larger range of zooms.</string>
+     </property>
+     <property name="title">
+      <string>Create overviews for result.</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <item>
+       <widget class="QCheckBox" name="checkBy2">
+        <property name="text">
+         <string>:2</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy4">
+        <property name="text">
+         <string>:4</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy8">
+        <property name="text">
+         <string>:8</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy16">
+        <property name="text">
+         <string>:16</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy32">
+        <property name="text">
+         <string>:32</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy64">
+        <property name="text">
+         <string>:64</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="4" column="0">
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QToolButton" name="toolTargetFile">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+       <property name="iconSize">
+        <size>
+         <width>22</width>
+         <height>22</height>
+        </size>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>Target Filename:</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelTargetFilename">
+       <property name="text">
+        <string>-</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="4" column="1">
+    <widget class="QPushButton" name="pushStart">
+     <property name="text">
+      <string>Start</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/tool/IRoutinoDatabaseBuilder.ui b/src/qmapshack/tool/IRoutinoDatabaseBuilder.ui
similarity index 100%
rename from src/tool/IRoutinoDatabaseBuilder.ui
rename to src/qmapshack/tool/IRoutinoDatabaseBuilder.ui
diff --git a/src/tool/IToolShell.cpp b/src/qmapshack/tool/IToolShell.cpp
similarity index 100%
rename from src/tool/IToolShell.cpp
rename to src/qmapshack/tool/IToolShell.cpp
diff --git a/src/tool/IToolShell.h b/src/qmapshack/tool/IToolShell.h
similarity index 100%
rename from src/tool/IToolShell.h
rename to src/qmapshack/tool/IToolShell.h
diff --git a/src/units/CCoordFormatSetup.cpp b/src/qmapshack/units/CCoordFormatSetup.cpp
similarity index 100%
copy from src/units/CCoordFormatSetup.cpp
copy to src/qmapshack/units/CCoordFormatSetup.cpp
diff --git a/src/units/CCoordFormatSetup.h b/src/qmapshack/units/CCoordFormatSetup.h
similarity index 100%
copy from src/units/CCoordFormatSetup.h
copy to src/qmapshack/units/CCoordFormatSetup.h
diff --git a/src/units/CTimeZoneSetup.cpp b/src/qmapshack/units/CTimeZoneSetup.cpp
similarity index 100%
copy from src/units/CTimeZoneSetup.cpp
copy to src/qmapshack/units/CTimeZoneSetup.cpp
diff --git a/src/units/CTimeZoneSetup.h b/src/qmapshack/units/CTimeZoneSetup.h
similarity index 100%
copy from src/units/CTimeZoneSetup.h
copy to src/qmapshack/units/CTimeZoneSetup.h
diff --git a/src/units/CUnitImperial.cpp b/src/qmapshack/units/CUnitImperial.cpp
similarity index 100%
copy from src/units/CUnitImperial.cpp
copy to src/qmapshack/units/CUnitImperial.cpp
diff --git a/src/units/CUnitImperial.h b/src/qmapshack/units/CUnitImperial.h
similarity index 100%
copy from src/units/CUnitImperial.h
copy to src/qmapshack/units/CUnitImperial.h
diff --git a/src/units/CUnitMetric.cpp b/src/qmapshack/units/CUnitMetric.cpp
similarity index 100%
copy from src/units/CUnitMetric.cpp
copy to src/qmapshack/units/CUnitMetric.cpp
diff --git a/src/units/CUnitMetric.h b/src/qmapshack/units/CUnitMetric.h
similarity index 100%
copy from src/units/CUnitMetric.h
copy to src/qmapshack/units/CUnitMetric.h
diff --git a/src/units/CUnitNautic.cpp b/src/qmapshack/units/CUnitNautic.cpp
similarity index 100%
copy from src/units/CUnitNautic.cpp
copy to src/qmapshack/units/CUnitNautic.cpp
diff --git a/src/units/CUnitNautic.h b/src/qmapshack/units/CUnitNautic.h
similarity index 100%
copy from src/units/CUnitNautic.h
copy to src/qmapshack/units/CUnitNautic.h
diff --git a/src/qmapshack/units/CUnitsSetup.cpp b/src/qmapshack/units/CUnitsSetup.cpp
new file mode 100644
index 0000000..4a1a0e2
--- /dev/null
+++ b/src/qmapshack/units/CUnitsSetup.cpp
@@ -0,0 +1,81 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "units/CUnitsSetup.h"
+#include "units/IUnit.h"
+
+CUnitsSetup::CUnitsSetup(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    switch(IUnit::self().type)
+    {
+    case IUnit::eTypeMetric:
+        radioMetric->setChecked(true);
+        break;
+
+    case IUnit::eTypeImperial:
+        radioImperial->setChecked(true);
+        break;
+
+    case IUnit::eTypeNautic:
+        radioNautic->setChecked(true);
+        break;
+    }
+
+    switch(IUnit::getSlopeMode())
+    {
+    case IUnit::eSlopeDegrees:
+        radioDegrees->setChecked(true);
+        break;
+
+    case IUnit::eSlopePercent:
+        radioPercent->setChecked(true);
+        break;
+    }
+
+    adjustSize();
+}
+
+void CUnitsSetup::accept()
+{
+    if(radioMetric->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeMetric, &CMainWindow::self());
+    }
+    else if(radioImperial->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeImperial, &CMainWindow::self());
+    }
+    else if(radioNautic->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeNautic, &CMainWindow::self());
+    }
+
+    if(radioDegrees->isChecked())
+    {
+        IUnit::setSlopeMode(IUnit::eSlopeDegrees);
+    }
+    else if(radioPercent->isChecked())
+    {
+        IUnit::setSlopeMode(IUnit::eSlopePercent);
+    }
+    QDialog::accept();
+}
diff --git a/src/units/CUnitsSetup.h b/src/qmapshack/units/CUnitsSetup.h
similarity index 100%
copy from src/units/CUnitsSetup.h
copy to src/qmapshack/units/CUnitsSetup.h
diff --git a/src/units/ICoordFormatSetup.ui b/src/qmapshack/units/ICoordFormatSetup.ui
similarity index 100%
rename from src/units/ICoordFormatSetup.ui
rename to src/qmapshack/units/ICoordFormatSetup.ui
diff --git a/src/units/ITimeZoneSetup.ui b/src/qmapshack/units/ITimeZoneSetup.ui
similarity index 100%
rename from src/units/ITimeZoneSetup.ui
rename to src/qmapshack/units/ITimeZoneSetup.ui
diff --git a/src/qmapshack/units/IUnit.cpp b/src/qmapshack/units/IUnit.cpp
new file mode 100644
index 0000000..197c62c
--- /dev/null
+++ b/src/qmapshack/units/IUnit.cpp
@@ -0,0 +1,828 @@
+/**********************************************************************************************
+    Copyright (C) 2008 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 2 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, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+**********************************************************************************************/
+#include "CMainWindow.h"
+#include "GeoMath.h"
+#include "units/CUnitImperial.h"
+#include "units/CUnitMetric.h"
+#include "units/CUnitNautic.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+const IUnit * IUnit::m_self = nullptr;
+
+const QPointF NOPOINTF(NOFLOAT, NOFLOAT);
+const QPoint NOPOINT (NOINT, NOINT);
+
+IUnit::tz_mode_e IUnit::timeZoneMode = IUnit::eTZUtc;
+IUnit::coord_format_e IUnit::coordFormat = IUnit::eCoordFormat1;
+QByteArray IUnit::timeZone = "UTC";
+bool IUnit::useShortFormat = false;
+
+IUnit::slope_mode_e IUnit::slopeMode = IUnit::eSlopeDegrees;
+
+const char * IUnit::tblTimezone[] =
+{
+    "Africa/Abidjan",
+    "Africa/Accra",
+    "Africa/Addis_Ababa",
+    "Africa/Algiers",
+    "Africa/Asmara",
+    "Africa/Bamako",
+    "Africa/Bangui",
+    "Africa/Banjul",
+    "Africa/Bissau",
+    "Africa/Blantyre",
+    "Africa/Brazzaville",
+    "Africa/Bujumbura",
+    "Africa/Cairo",
+    "Africa/Casablanca",
+    "Africa/Conakry",
+    "Africa/Dakar",
+    "Africa/Dar_es_Salaam",
+    "Africa/Djibouti",
+    "Africa/Douala",
+    "Africa/El_Aaiun",
+    "Africa/Freetown",
+    "Africa/Gaborone",
+    "Africa/Harare",
+    "Africa/Johannesburg",
+    "Africa/Kampala",
+    "Africa/Khartoum",
+    "Africa/Kigali",
+    "Africa/Kinshasa",
+    "Africa/Lagos",
+    "Africa/Libreville",
+    "Africa/Lome",
+    "Africa/Luanda",
+    "Africa/Lubumbashi",
+    "Africa/Lusaka",
+    "Africa/Malabo",
+    "Africa/Maputo",
+    "Africa/Maseru",
+    "Africa/Mbabane",
+    "Africa/Mogadishu",
+    "Africa/Monrovia",
+    "Africa/Nairobi",
+    "Africa/Ndjamena",
+    "Africa/Niamey",
+    "Africa/Nouakchott",
+    "Africa/Ouagadougou",
+    "Africa/Porto-Novo",
+    "Africa/Sao_Tome",
+    "Africa/Tripoli",
+    "Africa/Tunis",
+    "Africa/Windhoek",
+    "America/Adak",
+    "America/Anguilla",
+    "America/Antigua",
+    "America/Araguaina",
+    "America/Argentina/Buenos_Aires",
+    "America/Argentina/Catamarca",
+    "America/Argentina/Cordoba",
+    "America/Argentina/Jujuy",
+    "America/Argentina/La_Rioja",
+    "America/Argentina/Mendoza",
+    "America/Argentina/Rio_Gallegos",
+    "America/Argentina/San_Juan",
+    "America/Argentina/San_Luis",
+    "America/Argentina/Tucuman",
+    "America/Argentina/Ushuaia",
+    "America/Aruba",
+    "America/Asuncion",
+    "America/Atikokan",
+    "America/Bahia",
+    "America/Barbados",
+    "America/Belem",
+    "America/Belize",
+    "America/Blanc-Sablon",
+    "America/Boa_Vista",
+    "America/Bogota",
+    "America/Boise",
+    "America/Cambridge_Bay",
+    "America/Campo_Grande",
+    "America/Cancun",
+    "America/Caracas",
+    "America/Cayenne",
+    "America/Cayman",
+    "America/Chicago",
+    "America/Chihuahua",
+    "America/Coral_Harbour",
+    "America/Costa_Rica",
+    "America/Cuiaba",
+    "America/Curacao",
+    "America/Dawson",
+    "America/Dawson_Creek",
+    "America/Denver",
+    "America/Dominica",
+    "America/Edmonton",
+    "America/Eirunepe",
+    "America/El_Salvador",
+    "America/Fortaleza",
+    "America/Glace_Bay",
+    "America/Goose_Bay",
+    "America/Grand_Turk",
+    "America/Grenada",
+    "America/Guadeloupe",
+    "America/Guatemala",
+    "America/Guayaquil",
+    "America/Guyana",
+    "America/Halifax",
+    "America/Havana",
+    "America/Hermosillo",
+    "America/Indiana/Indianapolis",
+    "America/Indiana/Knox",
+    "America/Indiana/Marengo",
+    "America/Indiana/Petersburg",
+    "America/Indiana/Vevay",
+    "America/Indiana/Vincennes",
+    "America/Indiana/Winamac",
+    "America/Inuvik",
+    "America/Iqaluit",
+    "America/Jamaica",
+    "America/Juneau",
+    "America/Kentucky/Louisville",
+    "America/Kentucky/Monticello",
+    "America/La_Paz",
+    "America/Lima",
+    "America/Los_Angeles",
+    "America/Maceio",
+    "America/Managua",
+    "America/Manaus",
+    "America/Marigot",
+    "America/Martinique",
+    "America/Mazatlan",
+    "America/Menominee",
+    "America/Merida",
+    "America/Mexico_City",
+    "America/Miquelon",
+    "America/Moncton",
+    "America/Monterrey",
+    "America/Montevideo",
+    "America/Montreal",
+    "America/Montserrat",
+    "America/Nassau",
+    "America/New_York",
+    "America/Nipigon",
+    "America/Noronha",
+    "America/North_Dakota/Center",
+    "America/North_Dakota/Salem",
+    "America/Panama",
+    "America/Pangnirtung",
+    "America/Paramaribo",
+    "America/Phoenix",
+    "America/Port-au-Prince",
+    "America/Port_of_Spain",
+    "America/Porto_Velho",
+    "America/Puerto_Rico",
+    "America/Rainy_River",
+    "America/Rankin_Inlet",
+    "America/Recife",
+    "America/Regina",
+    "America/Resolute",
+    "America/Rio_Branco",
+    "America/Santarem",
+    "America/Santiago",
+    "America/Santo_Domingo",
+    "America/Sao_Paulo",
+    "America/St_Barthelemy",
+    "America/St_Johns",
+    "America/St_Kitts",
+    "America/St_Lucia",
+    "America/St_Thomas",
+    "America/St_Vincent",
+    "America/Tegucigalpa",
+    "America/Thunder_Bay",
+    "America/Tijuana",
+    "America/Toronto",
+    "America/Tortola",
+    "America/Vancouver",
+    "America/Whitehorse",
+    "America/Winnipeg",
+    "America/Yellowknife",
+    "Ameriica/Swift_Current",
+    "Arctic/Longyearbyen",
+    "Asia/Aden",
+    "Asia/Almaty",
+    "Asia/Amman",
+    "Asia/Anadyr",
+    "Asia/Aqtau",
+    "Asia/Aqtobe",
+    "Asia/Ashgabat",
+    "Asia/Baghdad",
+    "Asia/Bahrain",
+    "Asia/Baku",
+    "Asia/Bangkok",
+    "Asia/Beirut",
+    "Asia/Bishkek",
+    "Asia/Brunei",
+    "Asia/Choibalsan",
+    "Asia/Chongqing",
+    "Asia/Colombo",
+    "Asia/Damascus",
+    "Asia/Dhaka",
+    "Asia/Dili",
+    "Asia/Dubai",
+    "Asia/Dushanbe",
+    "Asia/Gaza",
+    "Asia/Harbin",
+    "Asia/Ho_Chi_Minh",
+    "Asia/Hong_Kong",
+    "Asia/Hovd",
+    "Asia/Irkutsk",
+    "Asia/Jakarta",
+    "Asia/Jayapura",
+    "Asia/Jerusalem",
+    "Asia/Kabul",
+    "Asia/Kamchatka",
+    "Asia/Karachi",
+    "Asia/Kashgar",
+    "Asia/Katmandu",
+    "Asia/Kolkata",
+    "Asia/Krasnoyarsk",
+    "Asia/Kuala_Lumpur",
+    "Asia/Kuching",
+    "Asia/Kuwait",
+    "Asia/Macau",
+    "Asia/Magadan",
+    "Asia/Makassar",
+    "Asia/Manila",
+    "Asia/Muscat",
+    "Asia/Nicosia",
+    "Asia/Novosibirsk",
+    "Asia/Omsk",
+    "Asia/Oral",
+    "Asia/Phnom_Penh",
+    "Asia/Pontianak",
+    "Asia/Pyongyang",
+    "Asia/Qatar",
+    "Asia/Qyzylorda",
+    "Asia/Rangoon",
+    "Asia/Riyadh",
+    "Asia/Sakhalin",
+    "Asia/Samarkand",
+    "Asia/Seoul",
+    "Asia/Shanghai",
+    "Asia/Singapore",
+    "Asia/Taipei",
+    "Asia/Tashkent",
+    "Asia/Tbilisi",
+    "Asia/Tehran",
+    "Asia/Thimphu",
+    "Asia/Tokyo",
+    "Asia/Ulaanbaatar",
+    "Asia/Urumqi",
+    "Asia/Vientiane",
+    "Asia/Vladivostok",
+    "Asia/Yakutsk",
+    "Asia/Yekaterinburg",
+    "Asia/Yerevan",
+    "Atlantic/Azores",
+    "Atlantic/Bermuda",
+    "Atlantic/Canary",
+    "Atlantic/Cape_Verde",
+    "Atlantic/Faroe",
+    "Atlantic/Madeira",
+    "Atlantic/Reykjavik",
+    "Atlantic/South_Georgia",
+    "Atlantic/St_Helena",
+    "Atlantic/Stanley",
+    "Australia/Adelaide",
+    "Australia/Brisbane",
+    "Australia/Broken_Hill",
+    "Australia/Currie",
+    "Australia/Darwin",
+    "Australia/Eucla",
+    "Australia/Hobart",
+    "Australia/Lindeman",
+    "Australia/Lord_Howe",
+    "Australia/Melbourne",
+    "Australia/Perth",
+    "Australia/Sydney",
+    "Europe/Amsterdam",
+    "Europe/Andorra",
+    "Europe/Athens",
+    "Europe/Belgrade",
+    "Europe/Berlin",
+    "Europe/Bratislava",
+    "Europe/Brussels",
+    "Europe/Bucharest",
+    "Europe/Budapest",
+    "Europe/Chisinau",
+    "Europe/Copenhagen",
+    "Europe/Dublin",
+    "Europe/Gibraltar",
+    "Europe/Guernsey",
+    "Europe/Helsinki",
+    "Europe/Isle_of_Man",
+    "Europe/Istanbul",
+    "Europe/Jersey",
+    "Europe/Kaliningrad",
+    "Europe/Kiev",
+    "Europe/Lisbon",
+    "Europe/Ljubljana",
+    "Europe/London",
+    "Europe/Luxembourg",
+    "Europe/Madrid",
+    "Europe/Malta",
+    "Europe/Marienhamn",
+    "Europe/Minsk",
+    "Europe/Monaco",
+    "Europe/Moscow",
+    "Europe/Oslo",
+    "Europe/Paris",
+    "Europe/Podgorica",
+    "Europe/Prague",
+    "Europe/Riga",
+    "Europe/Rome",
+    "Europe/Samara",
+    "Europe/San_Marino",
+    "Europe/Sarajevo",
+    "Europe/Simferopol",
+    "Europe/Skopje",
+    "Europe/Sofia",
+    "Europe/Stockholm",
+    "Europe/Tallinn",
+    "Europe/Tirane",
+    "Europe/Uzhgorod",
+    "Europe/Vaduz",
+    "Europe/Vatican",
+    "Europe/Vienna",
+    "Europe/Vilnius",
+    "Europe/Volgograd",
+    "Europe/Warsaw",
+    "Europe/Zagreb",
+    "Europe/Zaporozhye",
+    "Europe/Zurich",
+    "Indian/Antananarivo",
+    "Indian/Chagos",
+    "Indian/Christmas",
+    "Indian/Cocos",
+    "Indian/Comoro",
+    "Indian/Kerguelen",
+    "Indian/Mahe",
+    "Indian/Maldives",
+    "Indian/Mauritius",
+    "Indian/Mayotte",
+    "Indian/Reunion",
+    "Pacific/Apia",
+    "Pacific/Auckland",
+    "Pacific/Chatham",
+    "Pacific/Easter",
+    "Pacific/Efate",
+    "Pacific/Enderbury",
+    "Pacific/Fakaofo",
+    "Pacific/Fiji",
+    "Pacific/Funafuti",
+    "Pacific/Galapagos",
+    "Pacific/Gambier",
+    "Pacific/Guadalcanal",
+    "Pacific/Guam",
+    "Pacific/Honolulu",
+    "Pacific/Johnston",
+    "Pacific/Kiritimati",
+    "Pacific/Kosrae",
+    "Pacific/Kwajalein",
+    "Pacific/Majuro",
+    "Pacific/Marquesas",
+    "Pacific/Midway",
+    "Pacific/Nauru",
+    "Pacific/Niue",
+    "Pacific/Norfolk",
+    "Pacific/Noumea",
+    "Pacific/Pago_Pago",
+    "Pacific/Palau",
+    "Pacific/Pitcairn",
+    "Pacific/Ponape",
+    "Pacific/Port_Moresby",
+    "Pacific/Rarotonga",
+    "Pacific/Saipan",
+    "Pacific/Tahiti",
+    "Pacific/Tarawa",
+    "Pacific/Tongatapu",
+    "Pacific/Truk",
+    "Pacific/Wake",
+    "Pacific/Wallis",
+    0
+};
+
+const int N_TIMEZONES = sizeof(IUnit::tblTimezone)/sizeof(const char*);
+
+const QRegExp IUnit::reCoord1("^\\s*([N|S]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s+([E|W|O]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s*$");
+
+const QRegExp IUnit::reCoord2("^\\s*([N|S]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s+([E|W|O]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s*$");
+
+const QRegExp IUnit::reCoord3("^\\s*([-0-9]+\\.[0-9]+)\\s+([-0-9]+\\.[0-9]+)\\s*$");
+
+const QRegExp IUnit::reCoord4("^\\s*([N|S]){1}\\s*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*([E|W|O]){1}\\W*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*\\s*$");
+
+const QRegExp IUnit::reCoord5("^\\s*([-0-9]+\\.[0-9]+)([N|S])\\s+([-0-9]+\\.[0-9]+)([W|E])\\s*$");
+
+IUnit::IUnit(const type_e &type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject * parent)
+    : QObject(parent)
+    , type(type)
+    , baseunit(baseunit)
+    , basefactor(basefactor)
+    , speedunit(speedunit)
+    , speedfactor(speedfactor)
+{
+    //there can be only one...
+    delete m_self;
+    m_self = this;
+}
+
+void IUnit::slope2string(qreal slope, QString &val, QString &unit)
+{
+    switch(slopeMode)
+    {
+    case eSlopeDegrees:
+        val.sprintf("%.1f", slope);
+        unit = "°";
+        break;
+
+    case eSlopePercent:
+        val.sprintf("%.0f", qTan(qDegreesToRadians(slope))*100.0);
+        unit = "%";
+        break;
+    }
+}
+
+qreal IUnit::slopeConvert(IUnit::slope_mode_e fromMode, qreal fromSlope)
+{
+    qreal ret = NOFLOAT;
+    if(fromMode == eSlopeDegrees)
+    {
+        ret = qTan(qDegreesToRadians(fromSlope)) * 100.0;
+    }
+    else if(fromMode == eSlopePercent)
+    {
+        ret = qAtan2(fromSlope, 100.0) * RAD_TO_DEG;
+    }
+    return ret;
+}
+
+void IUnit::slope2unit(qreal slope, qreal &val, QString &unit)
+{
+    switch(slopeMode)
+    {
+    case eSlopeDegrees:
+        val = slope;
+        unit = "°";
+        break;
+
+    case eSlopePercent:
+        val = qTan(qDegreesToRadians(slope))*100.0;
+        unit = "%";
+        break;
+    }
+}
+
+void IUnit::setUnitType(type_e t, QObject * parent)
+{
+    switch(t)
+    {
+    case eTypeMetric:
+        new CUnitMetric(parent);
+        break;
+
+    case eTypeImperial:
+        new CUnitImperial(parent);
+        break;
+
+    case eTypeNautic:
+        new CUnitNautic(parent);
+        break;
+    }
+
+    QSettings cfg;
+    cfg.setValue("Units/type",t);
+}
+
+void IUnit::meter2speed(qreal meter, QString& val, QString& unit) const
+{
+    val.sprintf("%2.2f",meter * speedfactor);
+    unit = speedunit;
+}
+
+void IUnit::seconds2time(quint32 ttime, QString& val, QString& unit) const
+{
+    if(ttime == 0)
+    {
+        val  = "-";
+        unit = "";
+    }
+    else
+    {
+        QTime time(0,0,0);
+        quint32 days  = ttime / 86400;
+
+        time = time.addSecs(ttime);
+
+        if(days)
+        {
+            val = QString("%1:").arg(days) + time.toString("HH:mm:ss");
+            unit = "d";
+        }
+        else
+        {
+            val = time.toString("HH:mm:ss");
+            unit = "h";
+        }
+    }
+}
+
+bool IUnit::parseTimestamp(const QString &time, QDateTime &datetime)
+{
+    int tzoffset;
+    datetime = parseTimestamp(time, tzoffset);
+
+    return datetime.isValid();
+}
+
+
+QDateTime IUnit::parseTimestamp(const QString &timetext, int& tzoffset)
+{
+    const QRegExp tzRE("[-+]\\d\\d:\\d\\d$");
+    int i;
+
+    tzoffset = 0;
+    bool applyTzOffset = false;
+
+    QString format = "yyyy-MM-dd'T'hh:mm:ss";
+
+    i = timetext.indexOf(".");
+    if (i != NOIDX)
+    {
+        if(timetext[i+1] == '0')
+        {
+            format += ".zzz";
+        }
+        else
+        {
+            format += ".z";
+        }
+    }
+
+    // trailing "Z" explicitly declares the timestamp to be UTC
+    if (timetext.indexOf("Z") != NOIDX)
+    {
+        format += "'Z'";
+        applyTzOffset = true;
+    }
+
+    else if ((i = tzRE.indexIn(timetext)) != NOIDX)
+    {
+        // trailing timezone offset [-+]HH:MM present
+        // This does not match the original intentions of the GPX
+        // file format but appears to be found occasionally in
+        // the wild.  Try our best parsing it.
+
+        // add the literal string to the format so fromString()
+        // will succeed
+        format += "'";
+        format += timetext.right(6);
+        format += "'";
+
+        // calculate the offset
+        int offsetHours(timetext.mid(i + 1, 2).toUInt());
+        int offsetMinutes(timetext.mid(i + 4, 2).toUInt());
+        if (timetext[i] == '-')
+        {
+            tzoffset = -(60 * offsetHours + offsetMinutes);
+        }
+        else
+        {
+            tzoffset = 60 * offsetHours + offsetMinutes;
+        }
+        tzoffset *= 60;          // seconds
+        applyTzOffset = true;
+    }
+
+    QDateTime datetime = QDateTime::fromString(timetext, format);
+
+    if (applyTzOffset)
+    {
+        datetime.setOffsetFromUtc(tzoffset);
+    }
+    else
+    {   // if timetext has no 'Z' and no [-+]HH:MM then this is local time then simply switch to UTC without applying any offset
+        datetime = datetime.toUTC();
+    }
+
+    return datetime;
+}
+
+QString IUnit::datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos)
+{
+    QTimeZone tz;
+
+    tz_mode_e tmpMode = (pos != NOPOINTF) ? timeZoneMode : eTZLocal;
+
+    switch(tmpMode)
+    {
+    case eTZUtc:
+        tz = QTimeZone("UTC");
+        break;
+
+    case eTZLocal:
+        tz = QTimeZone(QTimeZone::systemTimeZoneId());
+        break;
+
+    case eTZAuto:
+        tz = QTimeZone(pos2timezone(pos));
+        break;
+
+    case eTZSelected:
+        tz = QTimeZone(timeZone);
+        break;
+    }
+
+    QDateTime tmp = time.toTimeZone(tz);
+    return tmp.toString((shortDate|useShortFormat) ? Qt::ISODate : Qt::SystemLocaleLongDate);
+}
+
+QByteArray IUnit::pos2timezone(const QPointF& pos)
+{
+    static QImage imgTimezone = QPixmap(":/pics/timezones.png").toImage();
+
+    int x = qRound(2048.0 / 360.0 * (180.0 + pos.x() * RAD_TO_DEG));
+    int y = qRound(1024.0 / 180.0 * (90.0  - pos.y() * RAD_TO_DEG));
+
+    QRgb rgb = imgTimezone.pixel(x,y);
+
+    if(qRed(rgb) == 0 && qGreen(rgb) == 0)
+    {
+        return "UTC";
+    }
+
+    int tz = ((qRed(rgb) & 248) << 1) + ((qGreen(rgb) >> 4) & 15);
+    if(tz >= N_TIMEZONES)
+    {
+        return 0;
+    }
+
+    return tblTimezone[tz];
+}
+
+void IUnit::degToStr(const qreal& x, const qreal& y, QString& str)
+{
+    switch(coordFormat)
+    {
+    case eCoordFormat1:
+    {
+        qint32 degN,degE;
+        qreal minN,minE;
+
+        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
+        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
+
+        const QString &lat = signLat ? "S" : "N";
+        const QString &lng = signLon ? "W" : "E";
+        str.sprintf("%s%02d° %06.3f %s%03d° %06.3f",lat.toUtf8().data(),qAbs(degN),minN,lng.toUtf8().data(),qAbs(degE),minE);
+        break;
+    }
+
+    case eCoordFormat2:
+    {
+        const QString &lat = (y < 0) ? "S" : "N";
+        const QString &lng = (x < 0) ? "W" : "E";
+        str.sprintf("%s%02.6f° %s%03.6f°",lat.toUtf8().data(),qAbs(y),lng.toUtf8().data(),qAbs(x));
+        break;
+    }
+
+    case eCoordFormat3:
+    {
+        qint32 degN,degE;
+        qreal minN,minE;
+
+        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
+        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
+
+        qreal secN = (minN - qFloor(minN)) * 60;
+        qreal secE = (minE - qFloor(minE)) * 60;
+
+        const QString &lat = signLat ? "S" : "N";
+        const QString &lng = signLon ? "W" : "E";
+        str.sprintf("%s%02d° %02d' %02.2f'' %s%03d° %02d' %02.2f''",lat.toUtf8().data(),qAbs(degN),qFloor(minN),secN,lng.toUtf8().data(),qAbs(degE),qFloor(minE),secE);
+        break;
+    }
+    }
+}
+
+bool IUnit::strToDeg(const QString& str, qreal& lon, qreal& lat)
+{
+    if(reCoord2.exactMatch(str))
+    {
+        bool signLat    = reCoord2.cap(1) == "S";
+        qreal absLat    = reCoord2.cap(2).toDouble();
+        lat = signLat ? -absLat : absLat;
+
+        bool signLon    = reCoord2.cap(3) == "W";
+        qreal absLon    = reCoord2.cap(4).toDouble();
+        lon = signLon ? -absLon : absLon;
+    }
+    else if(reCoord1.exactMatch(str))
+    {
+        bool signLat    = reCoord1.cap(1) == "S";
+        int degLat      = reCoord1.cap(2).toInt();
+        qreal minLat    = reCoord1.cap(3).toDouble();
+
+        GPS_Math_DegMin_To_Deg(signLat, degLat, minLat, lat);
+
+        bool signLon    = reCoord1.cap(4) == "W";
+        int degLon      = reCoord1.cap(5).toInt();
+        qreal minLon    = reCoord1.cap(6).toDouble();
+
+        GPS_Math_DegMin_To_Deg(signLon, degLon, minLon, lon);
+    }
+    else if(reCoord3.exactMatch(str))
+    {
+        lat             = reCoord3.cap(1).toDouble();
+        lon             = reCoord3.cap(2).toDouble();
+    }
+    else if(reCoord4.exactMatch(str))
+    {
+        bool signLat    = reCoord4.cap(1) == "S";
+        int degLat      = reCoord4.cap(2).toInt();
+        int minLat      = reCoord4.cap(3).toInt();
+        qreal secLat    = reCoord4.cap(4).toFloat();
+
+        GPS_Math_DegMinSec_To_Deg(signLat, degLat, minLat, secLat, lat);
+
+        bool signLon    = reCoord4.cap(5) == "W";
+        int degLon      = reCoord4.cap(6).toInt();
+        int minLon      = reCoord4.cap(7).toInt();
+        qreal secLon    = reCoord4.cap(8).toFloat();
+
+        GPS_Math_DegMinSec_To_Deg(signLon, degLon, minLon, secLon, lon);
+    }
+    else if(reCoord5.exactMatch(str))
+    {
+        bool signLon    = reCoord4.cap(4) == "W";
+        bool signLat    = reCoord4.cap(2) == "S";
+        lat             = reCoord5.cap(1).toDouble();
+        lon             = reCoord5.cap(3).toDouble();
+
+        if(signLon)
+        {
+            lon = -lon;
+        }
+        if(signLat)
+        {
+            lat = -lat;
+        }
+    }
+    else
+    {
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(),tr("Error"),tr("Bad position format. Must be: \"[N|S] ddd mm.sss [W|E] ddd mm.sss\" or \"[N|S] ddd.ddd [W|E] ddd.ddd\""),QMessageBox::Ok,QMessageBox::NoButton);
+        return false;
+    }
+
+    if(fabs(lon) > 180.0 || fabs(lat) > 90.0)
+    {
+        QMessageBox::warning(CMainWindow::getBestWidgetForParent(),tr("Error"),tr("Position values out of bounds. "),QMessageBox::Ok,QMessageBox::NoButton);
+        return false;
+    }
+
+    return true;
+}
+
+bool IUnit::isValidCoordString(const QString& str)
+{
+    if(reCoord1.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord2.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord3.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord4.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord5.exactMatch(str))
+    {
+        return true;
+    }
+    return false;
+}
diff --git a/src/qmapshack/units/IUnit.h b/src/qmapshack/units/IUnit.h
new file mode 100644
index 0000000..6d3e829
--- /dev/null
+++ b/src/qmapshack/units/IUnit.h
@@ -0,0 +1,168 @@
+/**********************************************************************************************
+    Copyright (C) 2008 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 2 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, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+**********************************************************************************************/
+#ifndef IUNIT_H
+#define IUNIT_H
+#include <QObject>
+#include <QTimeZone>
+
+
+#define NOFLOAT 1000000000000.0
+#define NOINT   0x7FFFFFFF
+#define NOTIME  0xFFFFFFFF
+#define NOIDX   (-1)
+
+extern const QPointF NOPOINTF;
+extern const QPoint NOPOINT;
+
+class IUnit : public QObject
+{
+    Q_OBJECT
+public:
+    virtual ~IUnit() = default;
+
+    static const IUnit& self()
+    {
+        return *m_self;
+    }
+
+    /// convert meter of elevation into a value and unit string
+    virtual void meter2elevation(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert meter of distance into a value and unit string
+    virtual void meter2distance(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert meter per second to a speed value string and unit label
+    virtual void meter2speed(qreal meter, QString& val, QString& unit) const;
+    /// convert square meter to string and unit label
+    virtual void meter2area(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert seconds to a timespan of days, hours, minutes and seconds
+    virtual void seconds2time(quint32 ttime, QString& val, QString& unit) const;
+    /// convert an elevation string to a float
+    virtual qreal elevation2meter(const QString& val) const = 0;
+    /// convert a range in meter into a scale and a matching unit
+    virtual void meter2unit(qreal meter, qreal& scale, QString&  unit) const  = 0;
+
+
+    enum type_e {eTypeMetric, eTypeImperial, eTypeNautic};
+    /// instantiate the correct unit object
+    static void setUnitType(type_e t, QObject * parent);
+
+    enum slope_mode_e {eSlopePercent, eSlopeDegrees};
+    static void setSlopeMode(slope_mode_e mode)
+    {
+        slopeMode = mode;
+    }
+    static enum slope_mode_e getSlopeMode()
+    {
+        return slopeMode;
+    }
+    static void slope2string(qreal slope, QString& val, QString& unit);
+    static void slope2unit(qreal slope, qreal& val, QString& unit);
+    static qreal slopeConvert(slope_mode_e fromMode, qreal fromSlope);
+
+    /// parse a string for a timestamp
+    static bool parseTimestamp(const QString &time, QDateTime &datetime);
+
+    /**
+       @brief Convert date time object to string using the current timezone configuration
+
+
+       @param time          the date/time object
+       @param shortDate     set true to get a short ISO time string
+       @param pos           optional a position attached to the date/time object [rad]
+       @return              A time string.
+     */
+    static QString datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos = NOPOINTF);
+
+    /// find the timezone setup by position
+    static QByteArray pos2timezone(const QPointF& pos);
+
+    const type_e type;
+    const QString baseunit;
+    const qreal basefactor;
+    const QString speedunit;
+    const qreal speedfactor;
+    static const char *tblTimezone[];
+
+    enum tz_mode_e
+    {
+        eTZUtc
+        ,eTZLocal
+        ,eTZAuto
+        ,eTZSelected
+    };
+
+    static void getTimeZoneSetup(tz_mode_e& mode, QByteArray& zone, bool& format)
+    {
+        mode   = timeZoneMode;
+        zone   = timeZone;
+        format = useShortFormat;
+    }
+
+    static void setTimeZoneSetup(tz_mode_e mode, const QByteArray& zone, bool format)
+    {
+        timeZoneMode   = mode;
+        timeZone       = zone;
+        useShortFormat = format;
+    }
+
+    enum coord_format_e
+    {
+        eCoordFormat1
+        ,eCoordFormat2
+        ,eCoordFormat3
+    };
+
+    static enum coord_format_e getCoordFormat()
+    {
+        return coordFormat;
+    }
+
+    static void setCoordFormat(const coord_format_e format)
+    {
+        coordFormat = format;
+    }
+
+    static void degToStr(const qreal& x, const qreal& y, QString& str);
+
+    static bool strToDeg(const QString& str, qreal& lon, qreal& lat);
+
+    static bool isValidCoordString(const QString& str);
+
+protected:
+    IUnit(const type_e& type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject *parent);
+
+    static slope_mode_e slopeMode;
+
+    static QDateTime parseTimestamp(const QString &timetext, int& tzoffset);
+
+    static tz_mode_e timeZoneMode;
+    static QByteArray timeZone;
+    static bool useShortFormat;
+
+    static coord_format_e coordFormat;
+
+private:
+    static const IUnit * m_self;
+
+    static const QRegExp reCoord1;
+    static const QRegExp reCoord2;
+    static const QRegExp reCoord3;
+    static const QRegExp reCoord4;
+    static const QRegExp reCoord5;
+};
+#endif //IUNIT_H
diff --git a/src/qmapshack/units/IUnitsSetup.ui b/src/qmapshack/units/IUnitsSetup.ui
new file mode 100644
index 0000000..4c33aaf
--- /dev/null
+++ b/src/qmapshack/units/IUnitsSetup.ui
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IUnitsSetup</class>
+ <widget class="QDialog" name="IUnitsSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>269</width>
+    <height>229</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup units...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <widget class="QWidget" name="tabLength">
+      <attribute name="title">
+       <string>Length unit</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QRadioButton" name="radioNautic">
+         <property name="text">
+          <string>Nautical</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioImperial">
+         <property name="text">
+          <string>Imperial</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioMetric">
+         <property name="text">
+          <string>Metric</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tabSlope">
+      <attribute name="title">
+       <string>Slope unit</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <item>
+        <widget class="QRadioButton" name="radioDegrees">
+         <property name="text">
+          <string>Degrees (°)</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioPercent">
+         <property name="text">
+          <string>Percent (%)</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>7</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="text">
+      <string><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </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>IUnitsSetup</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>IUnitsSetup</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/qmapshack/version.h b/src/qmapshack/version.h
new file mode 100644
index 0000000..b9117f8
--- /dev/null
+++ b/src/qmapshack/version.h
@@ -0,0 +1,33 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef VERSION_H
+#define VERSION_H
+
+#ifndef _MKSTR_1
+#define _MKSTR_1(x)    #x
+#define _MKSTR(x)      _MKSTR_1(x)
+#endif
+
+#define VER_STR       _MKSTR(VER_MAJOR) "." _MKSTR (VER_MINOR) "." _MKSTR (VER_STEP)
+#define VER_SUFFIX    _MKSTR(VER_TWEAK)
+
+#define WHAT_STR      _MKSTR(APPLICATION_NAME) ", Version " VER_STR
+
+#endif //VERSION_H
+
diff --git a/src/qmapshack/widgets/CColorChooser.cpp b/src/qmapshack/widgets/CColorChooser.cpp
new file mode 100644
index 0000000..0657bb5
--- /dev/null
+++ b/src/qmapshack/widgets/CColorChooser.cpp
@@ -0,0 +1,104 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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 "CMainWindow.h"
+#include "gis/IGisItem.h"
+#include "gis/trk/CGisItemTrk.h"
+#include "widgets/CColorChooser.h"
+
+#include <QtWidgets>
+#include <functional>
+
+using std::bind;
+
+CColorChooser::CColorChooser(QToolButton *parent)
+    : QDialog(parent)
+    , parentButton(parent)
+{
+    setupUi(this);
+    setWindowFlags(Qt::ToolTip);
+
+    for(quint32 i = 0; i < IGisItem::colorMapSize; i++)
+    {
+        QPixmap pixmap(16,16);
+        pixmap.fill(IGisItem::colorMap[i].color);
+
+        QToolButton * button = new QToolButton(this);
+        button->setToolButtonStyle(Qt::ToolButtonIconOnly);
+        button->setAutoRaise(true);
+        button->setIcon(QIcon(pixmap));
+        button->setProperty("color", IGisItem::colorMap[i].color.name());
+        button->setToolTip(IGisItem::colorMap[i].name);
+        horizontalLayout->addWidget(button);
+
+        auto selectFunc = bind(&CColorChooser::slotSelect, this, button);
+        connect(button, &QToolButton::clicked, this, selectFunc);
+    }
+
+    QToolButton * butEsc = new QToolButton(this);
+    butEsc->setText(tr("Esc."));
+    butEsc->setAutoRaise(true);
+    horizontalLayout->addWidget(butEsc);
+    connect(butEsc, &QToolButton::clicked, this, &CColorChooser::reject);
+
+    adjustSize();
+}
+
+qint32 CColorChooser::selectColor(QWidget * parent)
+{
+    QColor color;
+    QToolButton colorSelectButton(parent);
+    CColorChooser colorChooser(&colorSelectButton);
+    colorChooser.moveToCursor();
+
+    if(colorChooser.exec() != QDialog::Accepted)
+    {
+        return NOIDX;
+    }
+
+    color = QColor(colorSelectButton.property("color").toString());
+    quint32 colorIdx = NOIDX;
+    for(int i=0; i < TRK_N_COLORS; ++i)
+    {
+        if (IGisItem::colorMap[i].color == color)
+        {
+            colorIdx = i;
+            break;
+        }
+    }
+    return colorIdx;
+}
+
+void CColorChooser::moveToCursor()
+{
+    CMainWindow& main = CMainWindow::self();
+
+    QPoint pos = main.mapFromGlobal(QCursor::pos());
+    if(pos.x() + width() > main.width())
+    {
+        pos.rx() += main.width() - (pos.x() + width());
+    }
+    move(main.mapToGlobal(pos));
+}
+
+void CColorChooser::slotSelect(QToolButton * button)
+{
+    parentButton->setIcon(button->icon());
+    parentButton->setProperty("color", button->property("color"));
+    accept();
+}
diff --git a/src/qmapshack/widgets/CColorChooser.h b/src/qmapshack/widgets/CColorChooser.h
new file mode 100644
index 0000000..d6f91fa
--- /dev/null
+++ b/src/qmapshack/widgets/CColorChooser.h
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2016 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/>.
+
+**********************************************************************************************/
+
+#ifndef CCOLORCHOOSER_H
+#define CCOLORCHOOSER_H
+
+#include "ui_IColorChooser.h"
+#include <QDialog>
+
+class QToolButton;
+
+class CColorChooser : public QDialog, private Ui::IColorChooser
+{
+    Q_OBJECT
+public:
+    CColorChooser(QToolButton * parent);
+    virtual ~CColorChooser() = default;
+
+    static qint32 selectColor(QWidget *parent);
+
+private slots:
+    void slotSelect(QToolButton * button);
+
+private:
+    void moveToCursor();
+
+    QToolButton* parentButton;
+};
+
+#endif //CCOLORCHOOSER_H
+
diff --git a/src/widgets/CColorLegend.cpp b/src/qmapshack/widgets/CColorLegend.cpp
similarity index 100%
rename from src/widgets/CColorLegend.cpp
rename to src/qmapshack/widgets/CColorLegend.cpp
diff --git a/src/widgets/CColorLegend.h b/src/qmapshack/widgets/CColorLegend.h
similarity index 100%
rename from src/widgets/CColorLegend.h
rename to src/qmapshack/widgets/CColorLegend.h
diff --git a/src/widgets/CDoubleSpinBox.cpp b/src/qmapshack/widgets/CDoubleSpinBox.cpp
similarity index 100%
rename from src/widgets/CDoubleSpinBox.cpp
rename to src/qmapshack/widgets/CDoubleSpinBox.cpp
diff --git a/src/widgets/CDoubleSpinBox.h b/src/qmapshack/widgets/CDoubleSpinBox.h
similarity index 100%
rename from src/widgets/CDoubleSpinBox.h
rename to src/qmapshack/widgets/CDoubleSpinBox.h
diff --git a/src/widgets/CFadingIcon.cpp b/src/qmapshack/widgets/CFadingIcon.cpp
similarity index 100%
rename from src/widgets/CFadingIcon.cpp
rename to src/qmapshack/widgets/CFadingIcon.cpp
diff --git a/src/widgets/CFadingIcon.h b/src/qmapshack/widgets/CFadingIcon.h
similarity index 100%
rename from src/widgets/CFadingIcon.h
rename to src/qmapshack/widgets/CFadingIcon.h
diff --git a/src/widgets/CHistoryListWidget.cpp b/src/qmapshack/widgets/CHistoryListWidget.cpp
similarity index 100%
rename from src/widgets/CHistoryListWidget.cpp
rename to src/qmapshack/widgets/CHistoryListWidget.cpp
diff --git a/src/widgets/CHistoryListWidget.h b/src/qmapshack/widgets/CHistoryListWidget.h
similarity index 100%
rename from src/widgets/CHistoryListWidget.h
rename to src/qmapshack/widgets/CHistoryListWidget.h
diff --git a/src/widgets/CLineEdit.cpp b/src/qmapshack/widgets/CLineEdit.cpp
similarity index 100%
rename from src/widgets/CLineEdit.cpp
rename to src/qmapshack/widgets/CLineEdit.cpp
diff --git a/src/widgets/CLineEdit.h b/src/qmapshack/widgets/CLineEdit.h
similarity index 100%
rename from src/widgets/CLineEdit.h
rename to src/qmapshack/widgets/CLineEdit.h
diff --git a/src/widgets/CPhotoAlbum.cpp b/src/qmapshack/widgets/CPhotoAlbum.cpp
similarity index 100%
rename from src/widgets/CPhotoAlbum.cpp
rename to src/qmapshack/widgets/CPhotoAlbum.cpp
diff --git a/src/widgets/CPhotoAlbum.h b/src/qmapshack/widgets/CPhotoAlbum.h
similarity index 100%
rename from src/widgets/CPhotoAlbum.h
rename to src/qmapshack/widgets/CPhotoAlbum.h
diff --git a/src/qmapshack/widgets/CSelectDoubleListWidget.cpp b/src/qmapshack/widgets/CSelectDoubleListWidget.cpp
new file mode 100644
index 0000000..7a286d1
--- /dev/null
+++ b/src/qmapshack/widgets/CSelectDoubleListWidget.cpp
@@ -0,0 +1,267 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+**********************************************************************************************/
+
+#include "CSelectDoubleListWidget.h"
+#include <QListWidgetItem>
+
+CSelectDoubleListWidget::CSelectDoubleListWidget(QWidget * parent, IItemFilter *filter) : QWidget(parent), filter(filter)
+{
+    setupUi(this);
+
+    connect(listSelected,  &QListView::clicked,   this, &CSelectDoubleListWidget::slotSelectedClicked);
+    connect(listAvailable, &QListView::clicked,   this, &CSelectDoubleListWidget::slotAvailableClicked);
+    connect(toolAdd,       &QToolButton::clicked, this, &CSelectDoubleListWidget::slotAdd);
+    connect(toolRemove,    &QToolButton::clicked, this, &CSelectDoubleListWidget::slotRemove);
+    connect(toolUp,        &QToolButton::clicked, this, &CSelectDoubleListWidget::slotUp);
+    connect(toolDown,      &QToolButton::clicked, this, &CSelectDoubleListWidget::slotDown);
+}
+
+CSelectDoubleListWidget::~CSelectDoubleListWidget()
+{
+}
+
+void CSelectDoubleListWidget::sortAvailable()
+{
+    listAvailable->sortItems();
+}
+
+void CSelectDoubleListWidget::setAvailable(const QList<QListWidgetItem *> & available)
+{
+    this->available.clear();
+    this->available << available;
+    listAvailable->clear();
+    for (QListWidgetItem * const & item : available)
+    {
+        int index = listSelected->row(item);
+        if (index < 0)
+        {
+            listAvailable->addItem(item);
+        }
+        else if(filter != nullptr && !filter->shouldBeMoved(item))
+        {
+            listSelected->takeItem(index);
+            listSelected->insertItem(index,item->clone());
+            listAvailable->addItem(item);
+        }
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::setSelected(const QList<QListWidgetItem *> & selected) const
+{
+    listSelected->clear();
+    for (QListWidgetItem * const & item : selected)
+    {
+        int index = listAvailable->row(item);
+        if (index < 0)
+        {
+            listSelected->addItem(item);
+        }
+        else
+        {
+            if(filter == nullptr || filter->shouldBeMoved(item))
+            {
+                listAvailable->takeItem(index);
+                listSelected->addItem(item);
+            }
+            else
+            {
+                listSelected->addItem(item->clone());
+            }
+        }
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::setFilter(IItemFilter * const & filter)
+{
+    this->filter = filter;
+}
+
+void CSelectDoubleListWidget::setLabelAvailable(const QString & label) const
+{
+    labelAvailable->setText(label);
+}
+
+void CSelectDoubleListWidget::setLabelSelected(const QString & label) const
+{
+    labelSelected->setText(label);
+}
+
+const QList<QListWidgetItem *> CSelectDoubleListWidget::selected() const
+{
+    QList<QListWidgetItem *> selected;
+    for (int i=0; i < listSelected->count(); i++)
+    {
+        selected << listSelected->item(i);
+    }
+    return selected;
+}
+
+void CSelectDoubleListWidget::clear()
+{
+    this->available.clear();
+    listAvailable->clear();
+    listSelected->clear();
+}
+
+void CSelectDoubleListWidget::slotSelectedClicked(const QModelIndex & index) const
+{
+    listAvailable->clearSelection();
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::slotAvailableClicked(const QModelIndex & index) const
+{
+    listSelected->clearSelection();
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::slotAdd() const
+{
+    for (QListWidgetItem * const & item : listAvailable->selectedItems())
+    {
+        if (filter == nullptr || filter->shouldBeMoved(item))
+        {
+            listAvailable->takeItem(listAvailable->row(item));
+            listSelected->addItem(item);
+        }
+        else
+        {
+            listSelected->addItem(item->clone());
+        }
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::slotRemove() const
+{
+    for (QListWidgetItem * const & item : listSelected->selectedItems())
+    {
+        if (filter == nullptr || filter->shouldBeMoved(item))
+        {
+            int index = -1;
+            for (int i = available.indexOf(item)-1; i>=0; i--)
+            {
+                index = listAvailable->row(available.at(i));
+                if (index >= 0)
+                {
+                    break;
+                }
+            }
+            index++;
+            listSelected->takeItem(listSelected->row(item));
+            listAvailable->insertItem(index,item);
+        }
+        else
+        {
+            delete listSelected->takeItem(listSelected->row(item));
+        }
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::slotUp() const
+{
+    QList<int> indices;
+    for (const QModelIndex & modelIndex : listSelected->selectionModel()->selectedIndexes())
+    {
+        indices << modelIndex.row();
+    }
+    std::sort(indices.begin(),indices.end());
+
+    int i=0;
+    for (int index : indices)
+    {
+        if (index > i)
+        {
+            listSelected->insertItem(index-1,listSelected->takeItem(index));
+            listSelected->setCurrentRow(index-1,QItemSelectionModel::Select);
+        }
+        i++;
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::slotDown() const
+{
+    QList<int> indices;
+    for (const QModelIndex & modelIndex : listSelected->selectionModel()->selectedIndexes())
+    {
+        indices << modelIndex.row();
+    }
+    std::sort(indices.begin(), indices.end(), [] (int a, int b) { return a > b; });
+
+    int i=listSelected->count()-1;
+    for (int index : indices)
+    {
+        if (index < i)
+        {
+            listSelected->insertItem(index+1,listSelected->takeItem(index));
+            listSelected->setCurrentRow(index+1,QItemSelectionModel::Select);
+        }
+        i--;
+    }
+    updateButtons();
+}
+
+void CSelectDoubleListWidget::updateButtons() const
+{
+    toolAdd->setEnabled(listAvailable->selectionModel()->hasSelection());
+
+    const QItemSelectionModel * const & selectedSelectionModel = listSelected->selectionModel();
+    if (selectedSelectionModel->hasSelection())
+    {
+        toolRemove->setEnabled(true);
+
+        int minSelected = listSelected->count();
+        int maxSelected = -1;
+        int minUnselected = minSelected;
+        int maxUnselected = -1;
+
+        for (int i = 0; i < listSelected->count(); i++)
+        {
+            if (selectedSelectionModel->isRowSelected(i, QModelIndex()))
+            {
+                if (i < minSelected)
+                {
+                    minSelected = i;
+                }
+                maxSelected = i;
+            }
+            else
+            {
+                if (i < minUnselected)
+                {
+                    minUnselected = i;
+                }
+                maxUnselected = i;
+            }
+        }
+
+        toolUp->setEnabled(minUnselected < maxSelected);
+        toolDown->setEnabled(maxUnselected > minSelected);
+    }
+    else
+    {
+        toolRemove->setEnabled(false);
+        toolUp->setEnabled(false);
+        toolDown->setEnabled(false);
+    }
+}
diff --git a/src/qmapshack/widgets/CSelectDoubleListWidget.h b/src/qmapshack/widgets/CSelectDoubleListWidget.h
new file mode 100644
index 0000000..61d6730
--- /dev/null
+++ b/src/qmapshack/widgets/CSelectDoubleListWidget.h
@@ -0,0 +1,62 @@
+/**********************************************************************************************
+    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+**********************************************************************************************/
+
+#ifndef CSELECTDOUBLELISTWIDGET_H
+#define CSELECTDOUBLELISTWIDGET_H
+
+#include "ui_ISelectDoubleListWidget.h"
+
+class CSelectDoubleListWidget : public QWidget, private Ui::ISelectDoubleListWidget
+{
+    Q_OBJECT
+public:
+    class IItemFilter
+    {
+public:
+        virtual bool shouldBeMoved(QListWidgetItem * item) = 0;
+    };
+
+    CSelectDoubleListWidget(QWidget *parent, IItemFilter *filter = nullptr);
+    virtual ~CSelectDoubleListWidget();
+
+    void setAvailable(const QList<QListWidgetItem *> &available);
+    void setSelected(const QList<QListWidgetItem *> &selected) const;
+    void setLabelAvailable(const QString & label) const;
+    void setLabelSelected(const QString & label) const;
+    void setFilter(IItemFilter * const &filter);
+    const QList<QListWidgetItem *> selected() const;
+    void clear();
+
+    void sortAvailable();
+
+private slots:
+    void slotSelectedClicked(const QModelIndex & index) const;
+    void slotAvailableClicked(const QModelIndex & index) const;
+    void slotAdd() const;
+    void slotRemove() const;
+    void slotUp() const;
+    void slotDown() const;
+
+private:
+    void updateButtons() const;
+
+    QList<QListWidgetItem *> available;
+    IItemFilter * filter;
+};
+#endif //CSELECTDOUBLELISTWIDGET_H
diff --git a/src/qmapshack/widgets/CTemplateWidget.cpp b/src/qmapshack/widgets/CTemplateWidget.cpp
new file mode 100644
index 0000000..b70ae48
--- /dev/null
+++ b/src/qmapshack/widgets/CTemplateWidget.cpp
@@ -0,0 +1,259 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "helpers/CSettings.h"
+#include "widgets/CTemplateWidget.h"
+
+#include <QtGui>
+#include <QtUiTools>
+#include <QtWidgets>
+
+CTemplateWidget::CTemplateWidget(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+    connect(comboTemplates, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CTemplateWidget::slotTemplateActivated);
+    connect(pushPreview, &QPushButton::pressed, this, &CTemplateWidget::slotPreview);
+    connect(toolPathTemplates, &QToolButton::pressed, this, &CTemplateWidget::slotSetPath);
+    listTemplates();
+}
+
+
+void CTemplateWidget::listTemplates()
+{
+    comboTemplates->clear();
+    comboTemplates->addItem(tr("choose one..."));
+    comboTemplates->addItem(tr("Hiking Tour Summary (built-in)"), "://templates/Hiking_Tour_Summary.ui");
+
+    SETTINGS;
+    const QString& path = cfg.value("TextEditWidget/templatePath", "").toString();
+
+    if(!path.isEmpty())
+    {
+        QDir dir(path);
+        QStringList files = dir.entryList(QStringList("*.ui"), QDir::Files);
+        for(const QString& file : files)
+        {
+            QString name = QFileInfo(file).completeBaseName().replace("_", " ");
+            comboTemplates->addItem(name, dir.absoluteFilePath(file));
+        }
+    }
+
+    const QString& data = cfg.value("TextEditWidget/template", "").toString();
+    const int idx = comboTemplates->findData(data);
+    if(idx != -1)
+    {
+        comboTemplates->setCurrentIndex(idx);
+    }
+}
+
+QString CTemplateWidget::text()
+{
+    if(widget.isNull())
+    {
+        return "";
+    }
+    QString str;
+
+    QList<QGroupBox*> groups = widget->findChildren<QGroupBox*>(QRegExp("group.*"), Qt::FindDirectChildrenOnly);
+    qSort(groups.begin(), groups.end(), [](const QGroupBox * g1, const QGroupBox * g2){return g1->objectName() < g2->objectName(); });
+
+    for(const QGroupBox * group : groups)
+    {
+        str += QString("<p><b>%1</b>: ").arg(group->title());
+        str += resolveGroup(group);
+        str += "</p>";
+    }
+
+    return str;
+}
+
+QString CTemplateWidget::resolveGroup(const QGroupBox * group)
+{
+    QString str;
+    QList<QWidget *> widgets = group->findChildren<QWidget*>(QRegExp(".*"), Qt::FindDirectChildrenOnly);
+    qSort(widgets.begin(), widgets.end(), [](const QWidget * w1, const QWidget * w2){return w1->property("order") < w2->property("order"); });
+
+    for(const QWidget * w : widgets)
+    {
+        const QString pre(str.isEmpty() ? "" : ", ");
+
+        {
+            const QCheckBox * obj = dynamic_cast<const QCheckBox*>(w);
+            if(obj != nullptr)
+            {
+                if(obj->isChecked())
+                {
+                    str += pre + obj->text().replace("&","");
+                }
+                continue;
+            }
+        }
+
+        {
+            const QRadioButton * obj = dynamic_cast<const QRadioButton*>(w);
+            if(obj != nullptr)
+            {
+                if(obj->isChecked())
+                {
+                    str += pre + obj->text().replace("&","");
+                }
+                continue;
+            }
+        }
+
+        {
+            const QComboBox * obj = dynamic_cast<const QComboBox*>(w);
+            if(obj != nullptr)
+            {
+                if(!obj->currentText().isEmpty())
+                {
+                    str += pre + obj->currentText();
+                }
+                continue;
+            }
+        }
+
+        {
+            const QLineEdit * obj = dynamic_cast<const QLineEdit*>(w);
+            if(obj != nullptr)
+            {
+                if(!obj->text().simplified().isEmpty())
+                {
+                    str += pre + obj->text();
+                }
+                continue;
+            }
+        }
+
+        {
+            const QTextEdit * obj = dynamic_cast<const QTextEdit*>(w);
+            if(obj != nullptr)
+            {
+                if(!obj->toPlainText().simplified().isEmpty())
+                {
+                    str += pre + obj->toHtml();
+                }
+                continue;
+            }
+        }
+    }
+
+    if(str.isEmpty())
+    {
+        str += tr("-");
+    }
+
+    return str;
+}
+
+void CTemplateWidget::slotSetPath()
+{
+    SETTINGS;
+    QString path = cfg.value("TextEditWidget/templatePath", QDir::homePath()).toString();
+    path = QFileDialog::getExistingDirectory(this, tr("Template path..."), path);
+    if(path.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("TextEditWidget/templatePath", path);
+    listTemplates();
+}
+
+void CTemplateWidget::slotTemplateActivated(int idx)
+{
+    delete widget;
+    if(idx < 1)
+    {
+        pushPreview->setEnabled(false);
+        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+        return;
+    }
+
+    bool success = false;
+    const QString& filename = comboTemplates->itemData(idx).toString();
+    QFile file(filename);
+    if(!file.open(QFile::ReadOnly))
+    {
+        widget = new QLabel(tr("Failed to read template file %1.").arg(filename));
+    }
+    else
+    {
+        QUiLoader loader;
+        widget = loader.load(&file, this);
+        file.close();
+
+        if(widget.isNull())
+        {
+            widget = new QLabel(loader.errorString());
+        }
+        else
+        {
+            // convert focus chain into a sortable property.
+            quint32 cnt     = 0;
+            QWidget * first = nextInFocusChain();
+            QWidget * next  = first;
+            do
+            {
+                if(  (dynamic_cast<QCheckBox*>(next) != nullptr)
+                     || (dynamic_cast<QRadioButton*>(next) != nullptr)
+                     || (dynamic_cast<QComboBox*>(next) != nullptr)
+                     || (dynamic_cast<QLineEdit*>(next) != nullptr)
+                     || (dynamic_cast<QTextEdit*>(next) != nullptr)
+                     )
+                {
+                    next->setProperty("order", cnt++);
+                }
+
+                next = next->nextInFocusChain();
+            }
+            while(next != first);
+
+            success = true;
+        }
+    }
+
+    layoutWidget->insertWidget(0,widget);
+    pushPreview->setEnabled(success);
+    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(success);
+
+    SETTINGS;
+    cfg.setValue("TextEditWidget/template", filename);
+}
+
+void CTemplateWidget::slotPreview()
+{
+    QTextBrowser * preview = new QTextBrowser();
+
+    preview->setAttribute(Qt::WA_DeleteOnClose, true);
+    preview->setWindowModality(Qt::ApplicationModal);
+    preview->setReadOnly(true);
+    preview->setHtml(text());
+    preview->setWindowTitle(tr("Preview..."));
+
+    preview->setMinimumWidth(600);
+    preview->move(QApplication::desktop()->screen()->rect().center() - preview->rect().center());
+    preview->show();
+    preview->raise();
+
+    QAction * action = new QAction(preview);
+    action->setShortcut(Qt::Key_Escape);
+
+    preview->addAction(action);
+    connect(action, &QAction::triggered, preview, &QTextBrowser::close);
+}
diff --git a/src/widgets/CTemplateWidget.h b/src/qmapshack/widgets/CTemplateWidget.h
similarity index 100%
rename from src/widgets/CTemplateWidget.h
rename to src/qmapshack/widgets/CTemplateWidget.h
diff --git a/src/widgets/CTextEdit.cpp b/src/qmapshack/widgets/CTextEdit.cpp
similarity index 100%
rename from src/widgets/CTextEdit.cpp
rename to src/qmapshack/widgets/CTextEdit.cpp
diff --git a/src/widgets/CTextEdit.h b/src/qmapshack/widgets/CTextEdit.h
similarity index 100%
rename from src/widgets/CTextEdit.h
rename to src/qmapshack/widgets/CTextEdit.h
diff --git a/src/widgets/CTextEditWidget.cpp b/src/qmapshack/widgets/CTextEditWidget.cpp
similarity index 100%
rename from src/widgets/CTextEditWidget.cpp
rename to src/qmapshack/widgets/CTextEditWidget.cpp
diff --git a/src/widgets/CTextEditWidget.h b/src/qmapshack/widgets/CTextEditWidget.h
similarity index 100%
rename from src/widgets/CTextEditWidget.h
rename to src/qmapshack/widgets/CTextEditWidget.h
diff --git a/src/widgets/CTextEditWidgetSelMenu.cpp b/src/qmapshack/widgets/CTextEditWidgetSelMenu.cpp
similarity index 100%
rename from src/widgets/CTextEditWidgetSelMenu.cpp
rename to src/qmapshack/widgets/CTextEditWidgetSelMenu.cpp
diff --git a/src/widgets/CTextEditWidgetSelMenu.h b/src/qmapshack/widgets/CTextEditWidgetSelMenu.h
similarity index 100%
rename from src/widgets/CTextEditWidgetSelMenu.h
rename to src/qmapshack/widgets/CTextEditWidgetSelMenu.h
diff --git a/src/widgets/CTinySpinBox.cpp b/src/qmapshack/widgets/CTinySpinBox.cpp
similarity index 100%
rename from src/widgets/CTinySpinBox.cpp
rename to src/qmapshack/widgets/CTinySpinBox.cpp
diff --git a/src/widgets/CTinySpinBox.h b/src/qmapshack/widgets/CTinySpinBox.h
similarity index 100%
rename from src/widgets/CTinySpinBox.h
rename to src/qmapshack/widgets/CTinySpinBox.h
diff --git a/src/widgets/IColorChooser.ui b/src/qmapshack/widgets/IColorChooser.ui
similarity index 100%
rename from src/widgets/IColorChooser.ui
rename to src/qmapshack/widgets/IColorChooser.ui
diff --git a/src/widgets/IPhotoAlbum.ui b/src/qmapshack/widgets/IPhotoAlbum.ui
similarity index 100%
rename from src/widgets/IPhotoAlbum.ui
rename to src/qmapshack/widgets/IPhotoAlbum.ui
diff --git a/src/widgets/ISelectDoubleListWidget.ui b/src/qmapshack/widgets/ISelectDoubleListWidget.ui
similarity index 100%
rename from src/widgets/ISelectDoubleListWidget.ui
rename to src/qmapshack/widgets/ISelectDoubleListWidget.ui
diff --git a/src/widgets/ITemplateWidget.ui b/src/qmapshack/widgets/ITemplateWidget.ui
similarity index 100%
rename from src/widgets/ITemplateWidget.ui
rename to src/qmapshack/widgets/ITemplateWidget.ui
diff --git a/src/widgets/ITextEditWidget.ui b/src/qmapshack/widgets/ITextEditWidget.ui
similarity index 100%
rename from src/widgets/ITextEditWidget.ui
rename to src/qmapshack/widgets/ITextEditWidget.ui
diff --git a/src/widgets/ITextEditWidgetSelMenu.ui b/src/qmapshack/widgets/ITextEditWidgetSelMenu.ui
similarity index 100%
rename from src/widgets/ITextEditWidgetSelMenu.ui
rename to src/qmapshack/widgets/ITextEditWidgetSelMenu.ui
diff --git a/src/qmaptool/CAbout.cpp b/src/qmaptool/CAbout.cpp
new file mode 100644
index 0000000..215c8b4
--- /dev/null
+++ b/src/qmaptool/CAbout.cpp
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CAbout.h"
+#include "version.h"
+
+#include <QtWidgets>
+#include <gdal.h>
+#include <proj_api.h>
+
+
+CAbout::CAbout(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    if(QString(VER_SUFFIX).isEmpty())
+    {
+        labelVersion->setText(VER_STR);
+    }
+    else
+    {
+        labelVersion->setText(VER_STR "." VER_SUFFIX);
+    }
+
+    labelQtVersion->setText(qVersion());
+    labelGDALVersion->setText(GDALVersionInfo("--version"));
+    labelProj4Version->setText(QString::number(PJ_VERSION));
+}
+
+
diff --git a/src/qmaptool/CAbout.h b/src/qmaptool/CAbout.h
new file mode 100644
index 0000000..52a6bfd
--- /dev/null
+++ b/src/qmaptool/CAbout.h
@@ -0,0 +1,35 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CABOUT_H
+#define CABOUT_H
+
+#include "ui_IAbout.h"
+#include <QDialog>
+
+
+class CAbout : public QDialog, private Ui::IAbout
+{
+    Q_OBJECT
+public:
+    CAbout(QWidget * parent);
+    virtual ~CAbout() = default;
+};
+
+#endif //CABOUT_H
+
diff --git a/src/qmaptool/CMainWindow.cpp b/src/qmaptool/CMainWindow.cpp
new file mode 100644
index 0000000..60b5516
--- /dev/null
+++ b/src/qmaptool/CMainWindow.cpp
@@ -0,0 +1,178 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CAbout.h"
+#include "CMainWindow.h"
+#include "helpers/CSettings.h"
+#include "setup/CSetupExtTools.h"
+#include "tool/CToolAddOverview.h"
+#include "tool/CToolBox.h"
+#include "tool/CToolCutMap.h"
+#include "tool/CToolGrid.h"
+#include "tool/CToolPalettize.h"
+#include "tool/CToolRefMap.h"
+#include "units/CCoordFormatSetup.h"
+#include "units/CUnitsSetup.h"
+#include "units/IUnit.h"
+#include "version.h"
+
+CMainWindow * CMainWindow::pSelf = nullptr;
+
+CMainWindow::CMainWindow()
+{
+    SETTINGS;
+    IUnit::setUnitType((IUnit::type_e)cfg.value("Units/units",IUnit::eTypeMetric).toInt(), this);
+    IUnit::setCoordFormat((IUnit::coord_format_e)cfg.value("Units/coordFormat", IUnit::eCoordFormat1).toInt());
+
+    pSelf = this;
+    setupUi(this);
+    setWindowTitle(WHAT_STR);
+
+    canvas->setToolInterface(toolStack);
+
+    connect(actionAbout, &QAction::triggered, this, &CMainWindow::slotAbout);
+    connect(actionSetupExtTools, &QAction::triggered, this, &CMainWindow::slotSetupExtTools);
+    connect(actionSetupUnits, &QAction::triggered, this, &CMainWindow::slotSetupUnits);
+    connect(actionSetupCoordFormat, &QAction::triggered, this, &CMainWindow::slotSetupCoordFormat);
+    connect(&IAppSetup::self(), &IAppSetup::sigSetupChanged, this, &CMainWindow::slotSetupChanged);
+
+    menuWindow->addAction(dockTools->toggleViewAction());
+    menuWindow->addAction(dockShell->toggleViewAction());
+    prepareMenuForMac();
+
+    toolBox = new CToolBox(this);
+    toolStack->addWidget(toolBox);
+
+    toolAddOverview = new CToolAddOverview(toolBox);
+    toolBox->addItem(toolAddOverview, QIcon("://icons/32x32/AddOverview.png"), toolAddOverview->objectName());
+
+    toolCutMap = new CToolCutMap(toolBox);
+    toolBox->addItem(toolCutMap, QIcon("://icons/32x32/CutMap.png"), toolCutMap->objectName());
+
+    toolRefMap = new CToolRefMap(toolBox);
+    toolBox->addItem(toolRefMap, QIcon("://icons/32x32/ReferenceMap.png"), toolRefMap->objectName());
+
+    toolPalettize = new CToolPalettize(toolBox);
+    toolBox->addItem(toolPalettize, QIcon("://icons/32x32/Rasterize.png"), toolPalettize->objectName());
+
+    toolGrid = new CToolGrid(this);
+    toolStack->addWidget(toolGrid);
+
+    // start ---- restore window geometry -----
+    if ( cfg.contains("MainWindow/geometry"))
+    {
+        restoreGeometry(cfg.value("MainWindow/geometry").toByteArray());
+    }
+    else
+    {
+        QTimer::singleShot(500, this, SLOT(showMaximized()));
+    }
+
+    if ( cfg.contains("MainWindow/state"))
+    {
+        restoreState(cfg.value("MainWindow/state").toByteArray());
+    }
+    // end ---- restore window geometry -----
+    //toolStack->setCurrentIndex(cfg.value("Tool/Stack/current",0).toInt());
+    toolBox->setCurrentIndex(cfg.value("Tool/Box/current",0).toInt());
+    actionShowToolHelp->setChecked(cfg.value("Tool/showHelp", true).toBool());
+    mapFont = cfg.value("Canvas/mapFont", font()).value<QFont>();
+    actionFlipMouseWheel->setChecked(cfg.value("Canvas/flipMouseWheel", false).toBool());
+}
+
+CMainWindow::~CMainWindow()
+{
+    SETTINGS;
+    cfg.setValue("MainWindow/state", saveState());
+    cfg.setValue("MainWindow/geometry", saveGeometry());
+
+    cfg.setValue("Canvas/mapFont", mapFont);
+    cfg.setValue("Canvas/flipMouseWheel", actionFlipMouseWheel->isChecked());
+
+    cfg.setValue("Units/units", IUnit::self().type);
+    cfg.setValue("Units/coordFormat", IUnit::getCoordFormat());
+
+    cfg.setValue("Tool/Box/current", toolBox->currentIndex());
+    cfg.setValue("Tool/showHelp", actionShowToolHelp->isChecked());
+}
+
+QString CMainWindow::getUser()
+{
+    QString user = getenv("USER");
+    if(user.isEmpty())
+    {
+        user = getenv("USERNAME"); //for windows
+
+        if(user.isEmpty())
+        {
+            user = "QMapTool";
+        }
+    }
+
+    return user;
+}
+
+void CMainWindow::prepareMenuForMac()
+{
+    dockTools->toggleViewAction()->setMenuRole(QAction::NoRole);
+}
+
+void CMainWindow::makeShellVisible()
+{
+    dockShell->show();
+}
+
+void CMainWindow::startGridTool(CItemRefMap *item)
+{
+    toolGrid->registerItem(item);
+    toolStack->setCurrentWidget(toolGrid);
+}
+
+void CMainWindow::showToolBox()
+{
+    toolStack->setCurrentWidget(toolBox);
+}
+
+void CMainWindow::slotAbout()
+{
+    CAbout dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupExtTools()
+{
+    CSetupExtTools dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupUnits()
+{
+    CUnitsSetup dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupCoordFormat()
+{
+    CCoordFormatSetup dlg(this);
+    dlg.exec();
+}
+
+void CMainWindow::slotSetupChanged()
+{
+    toolStack->setupChanged();
+}
diff --git a/src/qmaptool/CMainWindow.h b/src/qmaptool/CMainWindow.h
new file mode 100644
index 0000000..2650863
--- /dev/null
+++ b/src/qmaptool/CMainWindow.h
@@ -0,0 +1,98 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CMAINWINDOW_H
+#define CMAINWINDOW_H
+
+#include "ui_IMainWindow.h"
+#include <QMainWindow>
+
+class CToolBox;
+class CToolAddOverview;
+class CToolCutMap;
+class CToolRefMap;
+class CToolPalettize;
+class CCanvas;
+class CToolGrid;
+class CItemRefMap;
+
+class CMainWindow : public QMainWindow, private Ui::IMainWindow
+{
+    Q_OBJECT
+public:
+    static CMainWindow& self()
+    {
+        return *pSelf;
+    }
+
+    virtual ~CMainWindow();
+
+    static QString getUser();
+
+    CCanvas * getCanvas() const
+    {
+        return canvas;
+    }
+
+    const QFont& getMapFont() const
+    {
+        return mapFont;
+    }
+
+    bool flipMouseWheel() const
+    {
+        return actionFlipMouseWheel->isChecked();
+    }
+
+    QAction * showToolHelp() const
+    {
+        return actionShowToolHelp;
+    }
+
+    void makeShellVisible();
+
+    void startGridTool(CItemRefMap * item);
+    void showToolBox();
+
+private slots:
+    void slotAbout();
+    void slotSetupExtTools();
+    void slotSetupUnits();
+    void slotSetupCoordFormat();
+    void slotSetupChanged();
+
+private:
+    friend int main(int argc, char ** argv);
+    CMainWindow();
+    static CMainWindow * pSelf;
+
+    void prepareMenuForMac();
+
+    QFont mapFont;
+
+    CToolBox  * toolBox;
+    CToolGrid * toolGrid;
+
+    CToolAddOverview * toolAddOverview;
+    CToolCutMap * toolCutMap;
+    CToolRefMap * toolRefMap;
+    CToolPalettize * toolPalettize;
+};
+
+#endif //CMAINWINDOW_H
+
diff --git a/src/qmaptool/CMakeLists.txt b/src/qmaptool/CMakeLists.txt
new file mode 100644
index 0000000..ab9463b
--- /dev/null
+++ b/src/qmaptool/CMakeLists.txt
@@ -0,0 +1,253 @@
+# Prevent custom commands/targets outputs to be deleted by make clean
+# We need this to prevent .ts files from being deleted with make clean, when
+# UPDATE_TRANSLATIONS=ON
+# WARNING: Only works with Makefile generator.
+set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
+# Find includes in corresponding build directories
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+# Instruct CMake to run moc automatically when needed.
+set(CMAKE_AUTOMOC ON)
+
+###############################################################################################
+# Setup application name and version tags
+###############################################################################################
+
+set(APPLICATION_NAME qmaptool)
+set(QMAPTOOL_VERSION_MAJOR 1)
+set(QMAPTOOL_VERSION_MINOR 0)
+set(QMAPTOOL_VERSION_PATCH 0)
+
+add_definitions(
+    -DVER_MAJOR=${QMAPTOOL_VERSION_MAJOR}
+    -DVER_MINOR=${QMAPTOOL_VERSION_MINOR}
+    -DVER_STEP=${QMAPTOOL_VERSION_PATCH}
+    -DVER_TWEAK=${VERSION_SUFFIX}
+    -DAPPLICATION_NAME=${APPLICATION_NAME}
+)
+
+###############################################################################################
+# All source files needed to compile
+###############################################################################################
+set( SRCS
+    CAbout.cpp
+    canvas/CCanvas.cpp
+    canvas/CDrawContextPixel.cpp
+    canvas/IDrawContext.cpp
+    CMainWindow.cpp
+    CSingleInstanceProxy.cpp
+    GeoMath.cpp
+    helpers/CDraw.cpp
+    helpers/mitab.cpp
+    items/CItemCutMap.cpp
+    items/CItemFile.cpp
+    items/CItemListWidget.cpp
+    items/CItemRefMap.cpp
+    items/IItem.cpp
+    main.cpp
+    overlay/COverlayCutMap.cpp
+    overlay/COverlayGridTool.cpp
+    overlay/COverlayRefMap.cpp
+    overlay/gridtool/CGridPlacer.cpp
+    overlay/gridtool/CGridPoint.cpp
+    overlay/gridtool/CGridSelArea.cpp
+    overlay/gridtool/CGridSetRef.cpp
+    overlay/IOverlay.cpp
+    overlay/refmap/CDialogRefPoint.cpp
+    overlay/refmap/COverlayRefMapPoint.cpp
+    overlay/refmap/CProjWizard.cpp
+    setup/CAppSetupLinux.cpp
+    setup/CAppSetupMac.cpp
+    setup/CAppSetupWin.cpp
+    setup/CCommandProcessor.cpp
+    setup/CLogHandler.cpp
+    setup/CSetupExtTools.cpp
+    setup/IAppSetup.cpp
+    shell/CShellCmd.cpp
+    shell/CShell.cpp
+    tool/CToolAddOverview.cpp
+    tool/CToolBox.cpp
+    tool/CToolCutMap.cpp
+    tool/CToolGrid.cpp
+    tool/CToolOverviewGroupBox.cpp
+    tool/CToolPalettize.cpp
+    tool/CToolRefMap.cpp
+    tool/CToolStack.cpp
+    tool/ITool.cpp
+    tool/IToolGui.cpp
+    units/CCoordFormatSetup.cpp
+    units/CTimeZoneSetup.cpp
+    units/CUnitImperial.cpp
+    units/CUnitMetric.cpp
+    units/CUnitNautic.cpp
+    units/CUnitsSetup.cpp
+    units/IUnit.cpp
+)
+
+set( HDRS
+    CAbout.h
+    canvas/CCanvas.h
+    canvas/CDrawContextPixel.h
+    canvas/IDrawContext.h
+    CMainWindow.h
+    CSingleInstanceProxy.h
+    GeoMath.h
+    helpers/CDraw.h
+    helpers/CSettings.h
+    helpers/CSettings.h
+    helpers/mitab.h
+    items/CItemCutMap.h
+    items/CItemFile.h
+    items/CItemListWidget.h
+    items/CItemRefMap.h
+    items/IItem.h
+    overlay/COverlayCutMap.h
+    overlay/COverlayGridTool.h
+    overlay/COverlayRefMap.h
+    overlay/gridtool/CGridPlacer.h
+    overlay/gridtool/CGridPoint.h
+    overlay/gridtool/CGridSelArea.h
+    overlay/gridtool/CGridSetRef.h
+    overlay/IOverlay.h
+    overlay/refmap/CDialogRefPoint.h
+    overlay/refmap/COverlayRefMapPoint.h
+    overlay/refmap/CProjWizard.h
+    setup/CAppOpts.h
+    setup/CAppSetupLinux.h
+    setup/CAppSetupMac.h
+    setup/CAppSetupWin.h
+    setup/CCommandProcessor.h
+    setup/CLogHandler.h
+    setup/CSetupExtTools.h
+    setup/IAppSetup.h
+    shell/CShellCmd.h
+    shell/CShell.h
+    tool/CToolAddOverview.h
+    tool/CToolBox.h
+    tool/CToolCutMap.h
+    tool/CToolGrid.h
+    tool/CToolOverviewGroupBox.h
+    tool/CToolPalettize.h
+    tool/CToolRefMap.h
+    tool/CToolStack.h
+    tool/IToolGui.h
+    tool/ITool.h
+    units/CCoordFormatSetup.h
+    units/CTimeZoneSetup.h
+    units/CUnitImperial.h
+    units/CUnitMetric.h
+    units/CUnitNautic.h
+    units/CUnitsSetup.h
+    version.h
+)
+
+
+
+set( UIS
+    IAbout.ui
+    IMainWindow.ui
+    items/IItemListWidget.ui
+    overlay/gridtool/IGridPlacer.ui
+    overlay/gridtool/IGridSelArea.ui
+    overlay/gridtool/IGridSetRef.ui
+    overlay/IOverlayCutMap.ui
+    overlay/IOverlayGridTool.ui
+    overlay/IOverlayRefMap.ui
+    overlay/refmap/IDialogRefPoint.ui
+    overlay/refmap/IProjWizard.ui
+    setup/ISetupExtTools.ui
+    tool/IToolAddOverview.ui
+    tool/IToolCutMap.ui
+    tool/IToolGrid.ui
+    tool/IToolOverviewGroupBox.ui
+    tool/IToolPalettize.ui
+    tool/IToolRefMap.ui
+    units/ICoordFormatSetup.ui
+    units/ITimeZoneSetup.ui
+    units/IUnitsSetup.ui
+)
+
+
+set( RCS
+    resources.qrc
+)
+
+
+###############################################################################################
+# Some Qt magic
+###############################################################################################
+
+qt5_wrap_ui(UI_HDRS ${UIS})
+qt5_add_resources(RC_SRCS ${RCS})
+
+###############################################################################################
+# Translation related stuff
+###############################################################################################
+translate_ts(${APPLICATION_NAME}_QM_FILES
+    UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
+    UPDATE_OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}" "-no-obsolete"
+    SOURCES ${SRCS} ${HDRS} ${UIS}
+    TEMPLATE ${APPLICATION_NAME}
+    TRANSLATION_DIR "locale"
+)
+
+if (UNIX AND NOT WIN32 AND NOT APPLE)
+    translate_desktop(${APPLICATION_NAME}_DESKTOP_FILES
+        TRANSLATION_DIR "locale"
+        SOURCES "${PROJECT_SOURCE_DIR}/qmaptool.desktop.in"
+    )
+endif()
+
+###############################################################################################
+# Build source file and include paths lists
+###############################################################################################
+set(MAININP
+    ${SRCS}
+    ${HDRS}
+    ${UI_HDRS}
+    ${RC_SRCS}
+    ${${APPLICATION_NAME}_QM_FILES}
+    ${${APPLICATION_NAME}_DESKTOP_FILES}
+)
+
+include_directories(
+    SYSTEM # this prevents warnings from non-QMS headers
+    ${CMAKE_BINARY_DIR}
+    ${GDAL_INCLUDE_DIRS}
+    ${PROJ_INCLUDE_DIRS}
+)
+
+if(APPLE)
+     INCLUDE_DIRECTORIES(/System/Library/Frameworks/Foundation.framework)
+     INCLUDE_DIRECTORIES(/System/Library/Frameworks/DiskArbitration.framework)
+endif(APPLE)
+
+
+###############################################################################################
+# Build the executable and define necessary libraries.
+###############################################################################################
+add_executable(${APPLICATION_NAME} WIN32 ${MAININP})
+
+target_link_libraries(${APPLICATION_NAME}
+    Qt5::Widgets
+    Qt5::Network
+    ${GDAL_LIBRARIES}
+    ${PROJ_LIBRARIES}
+)
+
+if(APPLE)
+     target_link_libraries(${APPLICATION_NAME}
+     ${Foundation_LIBRARY}
+     ${DiskArbitration_LIBRARY}
+    )
+endif(APPLE)
+
+
+###############################################################################################
+# Install target related stuff
+###############################################################################################
+install(TARGETS     ${APPLICATION_NAME}                     DESTINATION     ${BIN_INSTALL_DIR})
+
+if (UNIX AND NOT WIN32 AND NOT APPLE)
+    install(FILES   ${${APPLICATION_NAME}_QM_FILES}         DESTINATION     ${DATA_INSTALL_PREFIX}/${APPLICATION_NAME}/translations)
+    install(FILES   ${${APPLICATION_NAME}_DESKTOP_FILES}    DESTINATION     ${XDG_APPS_DIR})
+endif (UNIX AND NOT WIN32 AND NOT APPLE)
diff --git a/src/qmaptool/CSingleInstanceProxy.cpp b/src/qmaptool/CSingleInstanceProxy.cpp
new file mode 100644
index 0000000..58cc933
--- /dev/null
+++ b/src/qmaptool/CSingleInstanceProxy.cpp
@@ -0,0 +1,102 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "CSingleInstanceProxy.h"
+#include <QtNetwork>
+
+CSingleInstanceProxy::CSingleInstanceProxy(const QStringList filenames)
+{
+    serverName = CMainWindow::self().getUser();
+    if(serverName != "QMapTool")
+    {
+        serverName = "QMapTool-" + serverName;
+    }
+
+    QLocalSocket socket;
+    socket.connectToServer(serverName);
+    if(socket.waitForConnected(1000))
+    {
+        // if the connection is successful another instance
+        // is already running. In that case the list of files to
+        // open is sent to the primary instance. And this instance
+        // will be closed imediately.
+        QDataStream stream(&socket);
+        stream << filenames;
+        socket.waitForBytesWritten(3000);
+
+        // wait for confirmation
+        socket.waitForReadyRead(3000);
+        bool ok;
+        stream >> ok;
+        qDebug() << "Sent parameters to primary instance. Result" << ok;
+        qDebug() << "There can only be one. Exit.";
+        exit(0);
+    }
+
+    // Looks like we are the first instance.
+    // Create a server socket and wait for other instances to connect.
+    server = new QLocalServer(this);
+    connect(server, &QLocalServer::newConnection, this, &CSingleInstanceProxy::slotNewConnection);
+    server->removeServer(serverName);
+    if(!server->listen(serverName))
+    {
+        qDebug() << "CSingleInstanceProxy: Failed to start single instance server socket.";
+    }
+    else
+    {
+        qDebug() << "CSingleInstanceProxy: Single instance server socket listening to" << server->fullServerName();
+    }
+}
+
+CSingleInstanceProxy::~CSingleInstanceProxy()
+{
+    qDebug() << "CSingleInstanceProxy::~CSingleInstanceProxy()";
+}
+
+void CSingleInstanceProxy::slotNewConnection()
+{
+    QLocalSocket * socket = server->nextPendingConnection();
+    if(socket == nullptr)
+    {
+        return;
+    }
+
+    // Each secondary instance will send a QStringList with files to open
+    // The list can be empty.
+    if(socket->waitForReadyRead(3000))
+    {
+        QStringList filenames;
+        QDataStream stream(socket);
+        stream >> filenames;
+
+        CMainWindow& w = CMainWindow::self();
+        //w.loadGISData(filenames);
+
+        // confirm that files are loaded
+        stream << true;
+        socket->waitForBytesWritten(3000);
+
+        // raise the application window to top of desktop
+        w.raise();
+        QApplication::setActiveWindow(&w);
+    }
+
+    socket->close();
+    delete socket;
+}
diff --git a/src/CSingleInstanceProxy.h b/src/qmaptool/CSingleInstanceProxy.h
similarity index 100%
rename from src/CSingleInstanceProxy.h
rename to src/qmaptool/CSingleInstanceProxy.h
diff --git a/src/qmaptool/GeoMath.cpp b/src/qmaptool/GeoMath.cpp
new file mode 100644
index 0000000..0059600
--- /dev/null
+++ b/src/qmaptool/GeoMath.cpp
@@ -0,0 +1,54 @@
+/**********************************************************************************************
+    Copyright (C) 2009 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 2 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, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+**********************************************************************************************/
+
+#include "GeoMath.h"
+
+#define PI M_PI
+#define TWOPI (2*PI)
+
+
+void GPS_Math_DegMinSec_To_Deg(bool sign, const qint32 d, const qint32 m, const qreal s, qreal &deg)
+{
+    deg = qAbs(d) + qreal(m) / 60.0 + s / 3600;
+    if(sign)
+    {
+        deg = -deg;
+    }
+}
+
+
+bool GPS_Math_Deg_To_DegMin(qreal v, qint32 *deg, qreal *min)
+{
+    *deg = qAbs(v);
+    *min = (qAbs(v) - *deg) * 60.0;
+
+    return v < 0;
+}
+
+
+void GPS_Math_DegMin_To_Deg(bool sign, const qint32 d, const qreal m, qreal& deg)
+{
+    deg = qAbs(d) + m / 60.0;
+    if(sign)
+    {
+        deg = -deg;
+    }
+}
+
+
diff --git a/src/qmaptool/GeoMath.h b/src/qmaptool/GeoMath.h
new file mode 100644
index 0000000..7f48a1f
--- /dev/null
+++ b/src/qmaptool/GeoMath.h
@@ -0,0 +1,31 @@
+/**********************************************************************************************
+    Copyright (C) 2009 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 2 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, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+**********************************************************************************************/
+
+#ifndef GEOMATH_H
+#define GEOMATH_H
+
+#include <QtGlobal>
+#include <stdint.h>
+
+void    GPS_Math_DegMin_To_Deg(bool sign, const qint32 d, const qreal m, qreal& deg);
+void    GPS_Math_DegMinSec_To_Deg(bool sign, const qint32 d, const qint32 m, const qreal s, qreal& deg);
+bool    GPS_Math_Deg_To_DegMin(qreal v, qint32 *deg, qreal *min);
+
+#endif                           //GEOMATH_H
+
diff --git a/src/qmaptool/IAbout.ui b/src/qmaptool/IAbout.ui
new file mode 100644
index 0000000..17d509b
--- /dev/null
+++ b/src/qmaptool/IAbout.ui
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IAbout</class>
+ <widget class="QDialog" name="IAbout">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>418</width>
+    <height>407</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>About...</string>
+  </property>
+  <property name="windowIcon">
+   <iconset resource="resources.qrc">
+    <normaloff>:/icons/32x32/QMapTool.png</normaloff>:/icons/32x32/QMapTool.png</iconset>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string><b>QMapTool</b>, Version</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="labelVersion">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>TextLabel</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="resources.qrc">:/icons/48x48/QMapTool.png</pixmap>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QFormLayout" name="formLayout">
+     <property name="fieldGrowthPolicy">
+      <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
+     </property>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string>Qt</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="labelQtVersion">
+       <property name="text">
+        <string>TextLabel</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_6">
+       <property name="text">
+        <string>GDAL</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="labelGDALVersion">
+       <property name="text">
+        <string>TextLabel</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_7">
+       <property name="text">
+        <string>Proj4</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="labelProj4Version">
+       <property name="text">
+        <string>TextLabel</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="Line" name="line_2">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_35">
+     <property name="text">
+      <string>This software is licensed under GPL3 or any later version</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_36">
+     <property name="text">
+      <string>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string/>
+     </property>
+     <property name="pixmap">
+      <pixmap resource="resources.qrc">:/pic/splash.png</pixmap>
+     </property>
+     <property name="scaledContents">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/IMainWindow.ui b/src/qmaptool/IMainWindow.ui
new file mode 100644
index 0000000..6b11c3b
--- /dev/null
+++ b/src/qmaptool/IMainWindow.ui
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IMainWindow</class>
+ <widget class="QMainWindow" name="IMainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <property name="windowIcon">
+   <iconset resource="resources.qrc">
+    <normaloff>:/icons/48x48/QMapTool.png</normaloff>:/icons/48x48/QMapTool.png</iconset>
+  </property>
+  <widget class="CCanvas" name="canvas"/>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>23</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuSetup">
+    <property name="title">
+     <string>Setup</string>
+    </property>
+    <addaction name="actionSetupExtTools"/>
+    <addaction name="actionSetupUnits"/>
+    <addaction name="actionSetupCoordFormat"/>
+    <addaction name="actionShowToolHelp"/>
+   </widget>
+   <widget class="QMenu" name="menuView">
+    <property name="title">
+     <string>View</string>
+    </property>
+    <addaction name="actionFlipMouseWheel"/>
+   </widget>
+   <widget class="QMenu" name="menuWindow">
+    <property name="title">
+     <string>Window</string>
+    </property>
+   </widget>
+   <widget class="QMenu" name="menu">
+    <property name="title">
+     <string>?</string>
+    </property>
+    <addaction name="actionAbout"/>
+   </widget>
+   <addaction name="menuSetup"/>
+   <addaction name="menuView"/>
+   <addaction name="menuWindow"/>
+   <addaction name="menu"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+  <widget class="QDockWidget" name="dockTools">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetVerticalTitleBar</set>
+   </property>
+   <property name="windowTitle">
+    <string>Tools</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>1</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents">
+    <layout class="QVBoxLayout" name="verticalLayout_2">
+     <property name="spacing">
+      <number>0</number>
+     </property>
+     <property name="leftMargin">
+      <number>0</number>
+     </property>
+     <property name="topMargin">
+      <number>0</number>
+     </property>
+     <property name="rightMargin">
+      <number>0</number>
+     </property>
+     <property name="bottomMargin">
+      <number>0</number>
+     </property>
+     <item>
+      <widget class="CToolStack" name="toolStack"/>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <widget class="QDockWidget" name="dockShell">
+   <property name="features">
+    <set>QDockWidget::DockWidgetFeatureMask</set>
+   </property>
+   <property name="windowTitle">
+    <string>Shell</string>
+   </property>
+   <attribute name="dockWidgetArea">
+    <number>8</number>
+   </attribute>
+   <widget class="QWidget" name="dockWidgetContents_3">
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <widget class="CShell" name="textBrowser"/>
+     </item>
+    </layout>
+   </widget>
+  </widget>
+  <action name="actionAbout">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Info.png</normaloff>:/icons/32x32/Info.png</iconset>
+   </property>
+   <property name="text">
+    <string>About</string>
+   </property>
+  </action>
+  <action name="actionSetupExtTools">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+   </property>
+   <property name="text">
+    <string>Ext. Tools</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup paths to external tools, like gdalwarp etc.</string>
+   </property>
+  </action>
+  <action name="actionFlipMouseWheel">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/MouseWheel.png</normaloff>:/icons/32x32/MouseWheel.png</iconset>
+   </property>
+   <property name="text">
+    <string>Flip Mouse Wheel</string>
+   </property>
+   <property name="toolTip">
+    <string>Flip Mouse Wheel</string>
+   </property>
+  </action>
+  <action name="actionSetupUnits">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/UnitSetup.png</normaloff>:/icons/32x32/UnitSetup.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Units</string>
+   </property>
+   <property name="toolTip">
+    <string>Setup Units</string>
+   </property>
+  </action>
+  <action name="actionSetupCoordFormat">
+   <property name="icon">
+    <iconset resource="resources.qrc">
+     <normaloff>:/icons/32x32/SetupCoordFormat.png</normaloff>:/icons/32x32/SetupCoordFormat.png</iconset>
+   </property>
+   <property name="text">
+    <string>Setup Coord. Format</string>
+   </property>
+   <property name="toolTip">
+    <string>Change the format coordinates are displayed</string>
+   </property>
+  </action>
+  <action name="actionShowToolHelp">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="checked">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Show Tool Help</string>
+   </property>
+  </action>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CShell</class>
+   <extends>QTextBrowser</extends>
+   <header>shell/CShell.h</header>
+  </customwidget>
+  <customwidget>
+   <class>CCanvas</class>
+   <extends>QWidget</extends>
+   <header>canvas/CCanvas.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CToolStack</class>
+   <extends>QStackedWidget</extends>
+   <header>tool/CToolStack.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/README.md b/src/qmaptool/README.md
new file mode 100644
index 0000000..2db8ed9
--- /dev/null
+++ b/src/qmaptool/README.md
@@ -0,0 +1,7 @@
+# README #
+
+This is a sub-project of QMapShack and it's not supposed to compile on it's own. Please refere to
+
+https://bitbucket.org/maproom/qmapshack/overview
+
+to check out and compile this project.
\ No newline at end of file
diff --git a/src/qmaptool/canvas/CCanvas.cpp b/src/qmaptool/canvas/CCanvas.cpp
new file mode 100644
index 0000000..11b65e5
--- /dev/null
+++ b/src/qmaptool/canvas/CCanvas.cpp
@@ -0,0 +1,189 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/CCanvas.h"
+#include "canvas/IDrawContext.h"
+#include "helpers/CDraw.h"
+
+
+#include <QtWidgets>
+
+CCanvas::CCanvas(QWidget *parent)
+    : QWidget(parent)
+{
+    setFocusPolicy(Qt::WheelFocus);
+    setMouseTracking(true);
+
+    loadIndicator1 = new QMovie("://animation/loader.gif", QByteArray(), this);
+    mapLoadIndicator = new QLabel(this);
+    mapLoadIndicator->setMovie(loadIndicator1);
+    loadIndicator1->start();
+    mapLoadIndicator->show();
+}
+
+void CCanvas::setOverrideCursor(const QCursor &cursor, const QString&)
+{
+//    qDebug() << "setOverrideCursor" << src;
+    QApplication::setOverrideCursor(cursor);
+}
+
+void CCanvas::restoreOverrideCursor(const QString& src)
+{
+//    qDebug() << "restoreOverrideCursor" << src;
+    QApplication::restoreOverrideCursor();
+}
+
+void CCanvas::changeOverrideCursor(const QCursor& cursor, const QString &src)
+{
+//    qDebug() << "changeOverrideCursor" << src;
+    QApplication::changeOverrideCursor(cursor);
+}
+
+
+void CCanvas::resizeEvent(QResizeEvent *e)
+{
+    QMutexLocker lock(&mutex);
+
+    needsRedraw = eRedrawAll;
+
+    // move map loading indicator to new center of canvas
+    QPoint p1(mapLoadIndicator->width()>>1, mapLoadIndicator->height()>>1);
+    mapLoadIndicator->move(rect().center() - p1);
+
+    emit sigChangedSize(e->size());
+
+    QWidget::resizeEvent(e);
+}
+
+void CCanvas::paintEvent(QPaintEvent  *e)
+{
+    QPainter p;
+    p.begin(this);
+    USE_ANTI_ALIASING(p,true);
+
+    // fill the background with default pattern
+    p.fillRect(rect(), backColor);
+
+    // ----- start to draw thread based content -----
+
+    mutex.lock();
+    if(!tool->drawFx(p,needsRedraw))
+    {
+        mutex.unlock();
+        slotHideLoadIndicator();
+        CDraw::text(tr("No map view available."), p, rect(), Qt::black);
+        mutex.lock();
+    }
+    mutex.unlock();
+    // ----- start to draw fast content -----
+    p.end();
+    needsRedraw = eRedrawNone;
+}
+
+void CCanvas::mousePressEvent(QMouseEvent  *e)
+{
+    QMutexLocker lock(&mutex);
+    tool->mousePressEventFx(e);
+    e->accept();
+}
+
+void CCanvas::mouseMoveEvent(QMouseEvent  *e)
+{
+    QMutexLocker lock(&mutex);
+    tool->mouseMoveEventFx(e);
+    e->accept();
+}
+
+void CCanvas::mouseReleaseEvent(QMouseEvent  *e)
+{
+    QMutexLocker lock(&mutex);
+    tool->mouseReleaseEventFx(e);
+    e->accept();
+}
+
+void CCanvas::mouseDoubleClickEvent(QMouseEvent *e)
+{
+    QMutexLocker lock(&mutex);
+    tool->mouseDoubleClickEventFx(e);
+    e->accept();
+}
+
+void CCanvas::wheelEvent(QWheelEvent *e)
+{
+    QMutexLocker lock(&mutex);
+    tool->wheelEventFx(e);
+}
+
+void CCanvas::enterEvent(QEvent *e)
+{
+    QMutexLocker lock(&mutex);
+
+    tool->enterEventFx(e);
+    CCanvas::setOverrideCursor(tool->getCursorFx(), "enterEvent");
+
+    setMouseTracking(true);
+}
+
+void CCanvas::leaveEvent(QEvent *e)
+{
+    QMutexLocker lock(&mutex);
+
+    tool->leaveEventFx(e);
+
+    // bad hack to stop bad number of override cursors.
+    while(QApplication::overrideCursor())
+    {
+        CCanvas::restoreOverrideCursor("leaveEvent");
+    }
+
+
+    setMouseTracking(false);
+}
+
+void CCanvas::keyPressEvent(QKeyEvent *e)
+{
+    QMutexLocker lock(&mutex);
+    if(!tool->keyPressEventFx(e))
+    {
+        e->ignore();
+    }
+}
+
+
+void CCanvas::slotTriggerCompleteUpdate(CCanvas::redraw_e flags)
+{
+    needsRedraw = (redraw_e)(needsRedraw | flags);
+    update();
+}
+
+void CCanvas::slotShowLoadIndicator()
+{
+    QMutexLocker lock(&mutex);
+    mapLoadIndicator->show();
+    mapLoadIndicatorCount++;
+}
+
+void CCanvas::slotHideLoadIndicator()
+{
+    QMutexLocker lock(&mutex);
+    if(--mapLoadIndicatorCount <= 0)
+    {
+        mapLoadIndicator->hide();
+        mapLoadIndicatorCount = 0;
+    }
+}
diff --git a/src/qmaptool/canvas/CCanvas.h b/src/qmaptool/canvas/CCanvas.h
new file mode 100644
index 0000000..552085e
--- /dev/null
+++ b/src/qmaptool/canvas/CCanvas.h
@@ -0,0 +1,92 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CCANVAS_H
+#define CCANVAS_H
+
+#include <QLabel>
+#include <QMovie>
+#include <QMutex>
+#include <QPointer>
+#include <QWidget>
+
+class ITool;
+class CMainWindow;
+class QStackedWidget;
+
+class CCanvas : public QWidget
+{
+    Q_OBJECT
+public:
+    CCanvas(QWidget *parent);
+    virtual ~CCanvas() = default;
+
+    static void setOverrideCursor(const QCursor &cursor, const QString&);
+    static void restoreOverrideCursor(const QString &src);
+    static void changeOverrideCursor(const QCursor& cursor, const QString &src);
+
+    enum redraw_e
+    {
+        eRedrawNone = 0
+        , eRedrawMap = 0x01
+        , eRedrawOverlay = 0x08
+        , eRedrawAll = 0xFFFFFFFF
+    };
+
+    void setToolInterface(ITool * t)
+    {
+        tool = t;
+    }
+
+signals:
+    void sigChangedSize(const QSize& size);
+
+public slots:
+    void slotTriggerCompleteUpdate(CCanvas::redraw_e flags);
+
+    void slotShowLoadIndicator();
+    void slotHideLoadIndicator();
+
+protected:
+    void resizeEvent(QResizeEvent *e) override;
+    void paintEvent(QPaintEvent *e) override;
+    void mousePressEvent(QMouseEvent *e) override;
+    void mouseMoveEvent(QMouseEvent *e) override;
+    void mouseReleaseEvent(QMouseEvent *e) override;
+    void mouseDoubleClickEvent(QMouseEvent *e) override;
+    void wheelEvent(QWheelEvent *e) override;
+    void enterEvent(QEvent *e) override;
+    void leaveEvent(QEvent *e) override;
+    void keyPressEvent(QKeyEvent *e) override;
+
+private:
+    mutable QMutex mutex {QMutex::Recursive};
+
+    QColor backColor = "#FFFFBF";       //< the background color used in case of missing map tiles
+    redraw_e needsRedraw = eRedrawAll;  //< set true to initiate a complete redraw of the screen content
+
+    /// load indicator for maps
+    QMovie * loadIndicator1;
+    QLabel * mapLoadIndicator;
+    qint32 mapLoadIndicatorCount = 0;
+
+    ITool * tool = nullptr;
+};
+
+#endif //CCANVAS_H
+
diff --git a/src/qmaptool/canvas/CDrawContextPixel.cpp b/src/qmaptool/canvas/CDrawContextPixel.cpp
new file mode 100644
index 0000000..84e1201
--- /dev/null
+++ b/src/qmaptool/canvas/CDrawContextPixel.cpp
@@ -0,0 +1,330 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/CDrawContextPixel.h"
+#include "helpers/CDraw.h"
+
+#include <QtWidgets>
+#include <gdal_priv.h>
+#include <ogr_spatialref.h>
+
+CDrawContextPixel::CDrawContextPixel(CCanvas *canvas, QObject * parent)
+    : IDrawContext(canvas, parent)
+{
+}
+
+CDrawContextPixel::~CDrawContextPixel()
+{
+    if(dataset)
+    {
+        GDALClose(dataset);
+    }
+}
+
+void CDrawContextPixel::convertMap2Coord(QPointF &pt) const
+{
+    pt = trFwd.map(pt);
+}
+
+void CDrawContextPixel::convertCoord2Map(QPointF &pt) const
+{
+    pt = trInv.map(pt);
+}
+
+void CDrawContextPixel::unload()
+{
+    isValid = false;
+    if(dataset != nullptr)
+    {
+        GDALClose(dataset);
+    }
+    dataset = nullptr;
+}
+
+void CDrawContextPixel::setSourceFile(const QString& filename, bool resetContext)
+{
+    unload();
+
+    if(resetContext)
+    {
+        focus = QPointF(0,0);
+        zoom(6);
+    }
+
+    if(filename.isEmpty())
+    {
+        return;
+    }
+
+    dataset = (GDALDataset*)GDALOpenShared(filename.toUtf8(),GA_ReadOnly);
+
+    if(nullptr == dataset)
+    {
+        QMessageBox::warning(canvas, tr("Error..."), tr("Failed to load file: %1").arg(filename));
+        return;
+    }
+
+    projcs = dataset->GetProjectionRef();
+//    qDebug() << projcs;
+
+    GDALRasterBand *pBand = dataset->GetRasterBand(1);
+
+    if(nullptr == pBand)
+    {
+        GDALClose(dataset);
+        dataset = nullptr;
+        QMessageBox::warning(canvas, tr("Error..."), tr("Failed to load file: %1").arg(filename));
+        return;
+    }
+    hasOverviews = pBand->GetOverviewCount();
+    qDebug() << "hasOverviews" << hasOverviews;
+
+    // ------- setup color table ---------
+    rasterBandCount = dataset->GetRasterCount();
+    if(rasterBandCount == 1)
+    {
+        if(pBand->GetColorInterpretation() ==  GCI_PaletteIndex )
+        {
+            GDALColorTable * pct = pBand->GetColorTable();
+            for(int i=0; i < pct->GetColorEntryCount(); ++i)
+            {
+                const GDALColorEntry& e = *pct->GetColorEntry(i);
+                colortable << qRgba(e.c1, e.c2, e.c3, e.c4);
+            }
+        }
+        else if(pBand->GetColorInterpretation() ==  GCI_GrayIndex )
+        {
+            for(int i=0; i < 256; ++i)
+            {
+                colortable << qRgba(i, i, i, 255);
+            }
+        }
+        else
+        {
+            GDALClose(dataset);
+            dataset = nullptr;
+            QMessageBox::warning(canvas, tr("Error..."), tr("File must be 8 bit palette or gray indexed."));
+            return;
+        }
+
+        int success = 0;
+        qreal idx = pBand->GetNoDataValue(&success);
+        if(success)
+        {
+            if((idx >= 0) && (idx < colortable.size()))
+            {
+                QColor tmp(colortable[idx]);
+                tmp.setAlpha(0);
+                colortable[idx] = tmp.rgba();
+                hasNoData = idx;
+            }
+            else
+            {
+                qDebug() << "Index for no data value is out of bound";
+                return;
+            }
+        }
+    }
+    qDebug() << "hasNoData" << hasNoData;
+
+    xsize_px = dataset->GetRasterXSize();
+    ysize_px = dataset->GetRasterYSize();
+
+    qreal adfGeoTransform[6];
+    dataset->GetGeoTransform( adfGeoTransform );
+
+    xscale  = adfGeoTransform[1];
+    yscale  = adfGeoTransform[5];
+    xrot    = adfGeoTransform[4];
+    yrot    = adfGeoTransform[2];
+
+    trFwd = QTransform();
+    trFwd.translate(adfGeoTransform[0], adfGeoTransform[3]);
+    trFwd.scale(adfGeoTransform[1], adfGeoTransform[5]);
+
+    if(adfGeoTransform[4] != 0.0)
+    {
+        trFwd.rotate(qAtan(adfGeoTransform[2]/adfGeoTransform[4]));
+    }
+
+    trInv = trFwd.inverted();
+
+    QPointF pt1(0,0);
+    pt1 = trFwd.map(pt1);
+    pt1 = trInv.map(pt1);
+
+    intNeedsRedraw = true;
+    isValid = true;
+}
+
+QString CDrawContextPixel::getInfo() const
+{
+    QString str;
+    QTextStream out(&str);
+
+    if(projcs.isEmpty())
+    {
+        out << "no projection" << endl;
+    }
+    else
+    {
+        char str[1025] = {0};
+        strncpy(str, projcs.toLatin1().data(), sizeof(str) - 1);
+        OGRSpatialReference oSRS;
+        char *wkt = str;
+        oSRS.importFromWkt(&wkt);
+
+        char *proj4 = nullptr;
+        oSRS.exportToProj4(&proj4);
+        out << proj4 << endl;
+        free(proj4);
+    }
+
+    out << "num. bands:\t" << rasterBandCount << " ";
+    switch(rasterBandCount)
+    {
+    case 1:
+        out << tr("(color table)");
+        break;
+
+    case 3:
+        out << tr("(RGB)");
+        break;
+
+    case 4:
+        out << tr("(RGBA)");
+        break;
+
+    default:
+        out << tr("(unknown)");
+    }
+
+    out << endl;
+
+    out << "has overviews:\t" << hasOverviews << endl;
+
+    if((rasterBandCount != 4) && (hasNoData != -1))
+    {
+        out << "has no data:\t" << hasNoData << endl;
+    }
+
+
+    return str;
+}
+
+void CDrawContextPixel::drawt(buffer_t& buf)
+{
+    QPainter p(&buf.image);
+
+    if(needsRedraw() || (dataset == nullptr) || (isValid == false))
+    {
+        CDraw::text(tr("Failed to load"), p, canvas->rect(), Qt::black);
+        return;
+    }
+
+    // calculate area to read from file
+    QPointF pt1 = buf.ref1;
+    QPointF pt2 = buf.ref2;
+    QPointF pt4 = buf.ref4;
+
+    pt1.rx() = qMax(pt1.x(), 0.0);
+    pt1.rx() = qMin(pt1.x(), xsize_px);
+
+    pt2.rx() = qMax(pt2.x(), 0.0);
+    pt2.rx() = qMin(pt2.x(), xsize_px);
+
+    pt1.ry() = qMax(pt1.y(), 0.0);
+    pt1.ry() = qMin(pt1.y(), ysize_px);
+
+    pt4.ry() = qMax(pt4.y(), 0.0);
+    pt4.ry() = qMin(pt4.y(), ysize_px);
+
+    qint32 mapWidth  = qRound(pt2.x() - pt1.x());
+    qint32 mapHeight = qRound(pt4.y() - pt1.y());
+    QPointF mapOff   = pt1;
+
+    convertMap2Screen(pt1);
+    convertMap2Screen(pt2);
+    convertMap2Screen(pt4);
+
+    qint32 screenWidth  = qRound(pt2.x() - pt1.x()) & 0xFFFFFFFC;
+    qint32 screenHeight = qRound(pt4.y() - pt1.y());
+    QPointF screenOff   = pt1;
+
+
+    // start to draw the map
+    QImage img;
+    QVector<quint8> buffer(screenWidth * screenHeight, 0);
+
+    CPLErr err = CE_Failure;
+
+    if(rasterBandCount == 1)
+    {
+        GDALRasterBand * pBand;
+        pBand = dataset->GetRasterBand(1);
+
+        img = QImage(screenWidth,screenHeight,QImage::Format_Indexed8);
+        img.setColorTable(colortable);
+
+        mutex.lock();
+        err = pBand->RasterIO(GF_Read, mapOff.x(), mapOff.y(), mapWidth, mapHeight, img.bits(), screenWidth, screenHeight, GDT_Byte, 0, 0);
+        mutex.unlock();
+    }
+    else
+    {
+        const QRgb testPix = qRgba(GCI_RedBand, GCI_GreenBand, GCI_BlueBand, GCI_AlphaBand);
+        img = QImage(screenWidth, screenHeight, QImage::Format_ARGB32);
+        // fill alpha channel of image buffer
+        img.fill(Qt::white);
+
+        // read map band by band and copy color values into the image buffer
+        for(int b = 1; b <= rasterBandCount; ++b)
+        {
+            GDALRasterBand * pBand;
+            pBand = dataset->GetRasterBand(b);
+
+            mutex.lock();
+            err = pBand->RasterIO(GF_Read, mapOff.x(), mapOff.y(), mapWidth, mapHeight, buffer.data(), screenWidth, screenHeight, GDT_Byte, 0, 0);
+            mutex.unlock();
+            if(err == CE_None)
+            {
+                int pbandColour = pBand->GetColorInterpretation();
+                unsigned int offset;
+
+                for (offset = 0; offset < sizeof(testPix) && *(((quint8 *)&testPix) + offset) != pbandColour; offset++)
+                {
+                }
+                if(offset < sizeof(testPix))
+                {
+                    quint8 * pTar   = img.bits() + offset;
+                    quint8 * pSrc   = buffer.data();
+                    const int size  = buffer.size();
+
+                    for(int i = 0; i < size; ++i)
+                    {
+                        *pTar = *pSrc;
+                        pTar += sizeof(testPix);
+                        pSrc += 1;
+                    }
+                }
+            }
+        }
+    }
+
+    p.drawImage(screenOff, img);
+}
diff --git a/src/qmaptool/canvas/CDrawContextPixel.h b/src/qmaptool/canvas/CDrawContextPixel.h
new file mode 100644
index 0000000..d2d2579
--- /dev/null
+++ b/src/qmaptool/canvas/CDrawContextPixel.h
@@ -0,0 +1,118 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CDRAWCONTEXTPIXEL_H
+#define CDRAWCONTEXTPIXEL_H
+
+#include "canvas/IDrawContext.h"
+
+class GDALDataset;
+
+
+class CDrawContextPixel : public IDrawContext
+{
+    Q_OBJECT
+public:
+    CDrawContextPixel(CCanvas *canvas, QObject *parent);
+    virtual ~CDrawContextPixel();
+
+    void setSourceFile(const QString& filename, bool resetContext) override;
+
+
+    void unload() override;
+
+    bool getIsValid() const
+    {
+        return isValid;
+    }
+
+    const QString& getProjection() const override
+    {
+        return projcs;
+    }
+
+    bool getNoData() const override
+    {
+        return hasNoData != -1;
+    }
+
+    int getRasterBandCount() const override
+    {
+        return rasterBandCount;
+    }
+
+    QString getInfo() const override;
+
+    bool is32BitRgb() const override
+    {
+        return rasterBandCount >= 3;
+    }
+
+
+    QRectF getMapArea() const override
+    {
+        return QRectF(0,0, xsize_px, ysize_px);
+    }
+
+    void convertMap2Coord(QPointF &pt) const override;
+    void convertCoord2Map(QPointF &pt) const override;
+
+protected:
+    void drawt(buffer_t& buf) override;
+
+    GDALDataset * dataset = nullptr;
+
+    /// number of color bands used by the *vrt
+    int rasterBandCount = 0;
+    /// QT representation of the vrt's color table
+    QVector<QRgb> colortable;
+
+    // true if the map file has overviews
+    qint32 hasOverviews = -1;
+    qint32 hasNoData    = -1;
+
+
+    /// true if the map file could be loaded
+    bool isValid = false;
+
+    /// width in number of px
+    qreal xsize_px = 0;
+    /// height in number of px
+    qreal ysize_px = 0;
+
+    /// scale [px/m]
+    qreal xscale = 0;
+    /// scale [px/m]
+    qreal yscale = 0;
+
+    qreal xrot = 0;
+    qreal yrot = 0;
+
+    QPointF ref1;
+    QPointF ref2;
+    QPointF ref3;
+    QPointF ref4;
+
+    QTransform trFwd;
+    QTransform trInv;
+
+    QString projcs;
+};
+
+#endif //CDRAWCONTEXTPIXEL_H
+
diff --git a/src/qmaptool/canvas/IDrawContext.cpp b/src/qmaptool/canvas/IDrawContext.cpp
new file mode 100644
index 0000000..92de89d
--- /dev/null
+++ b/src/qmaptool/canvas/IDrawContext.cpp
@@ -0,0 +1,276 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+
+#include <QtWidgets>
+
+#define N_DEFAULT_ZOOM_LEVELS 31
+const qreal IDrawContext::scales[N_DEFAULT_ZOOM_LEVELS] =
+{
+    0.10,  0.15,  0.20,  0.30,   0.50,   0.70,   1.0,    1.5,    2.0,    3.0,
+    5.0,   7.0,  10.0,  15.0,   20.0,   30.0,   50.0,   70.0,  100.0,  150.0,
+    200.0, 300.0, 500.0, 700.0, 1000.0, 1500.0, 2000.0, 3000.0, 5000.0, 7000.0,
+    10000.0
+    //, 15000.0, 20000.0, 30000.0, 50000.0, 70000.0
+};
+
+QPointF operator*(const QPointF& p1, const QPointF& p2)
+{
+    return QPointF(p1.x() * p2.x(), p1.y() * p2.y());
+}
+
+QPointF operator/(const QPointF& p1, const QPointF& p2)
+{
+    return QPointF(p1.x() / p2.x(), p1.y() / p2.y());
+}
+
+QMutex IDrawContext::mutex(QMutex::Recursive);
+
+IDrawContext::IDrawContext(CCanvas * canvas, QObject * parent)
+    : QThread(parent)
+    , canvas(canvas)
+{
+    connect(this, &IDrawContext::finished, canvas, static_cast<void (CCanvas::*)()>(&CCanvas::update));
+    connect(this, &IDrawContext::started, canvas, &CCanvas::slotShowLoadIndicator);
+    connect(this, &IDrawContext::finished, canvas, &CCanvas::slotHideLoadIndicator);
+    connect(canvas, &CCanvas::sigChangedSize, this, &IDrawContext::slotResize);
+
+    slotResize(canvas->size());
+}
+
+void IDrawContext::saveSettings(QSettings& cfg) const
+{
+    QMutexLocker lock(&mutex);
+
+    cfg.beginGroup("DrawContext");
+    cfg.setValue("focus", focus);
+    cfg.setValue("zoomFactorIdx", zoomFactorIdx);
+    cfg.endGroup();
+}
+
+void IDrawContext::loadSettings(QSettings& cfg)
+{
+    QMutexLocker lock(&mutex);
+
+    cfg.beginGroup("DrawContext");
+    focus = cfg.value("focus", focus).toPointF();
+    zoomFactorIdx = cfg.value("zoomFactorIdx", zoomFactorIdx).toInt();
+    cfg.endGroup();
+
+    zoom(zoomFactorIdx);
+}
+
+
+void IDrawContext::slotResize(const QSize& size)
+{
+    if(isRunning())
+    {
+        wait();
+    }
+
+    QMutexLocker lock(&mutex);
+    viewWidth  = size.width();
+    viewHeight = size.height();
+
+    bufWidth   = viewWidth;
+    bufHeight  = viewHeight;
+
+    buffer[0].image = QImage(qRound(bufWidth), qRound(bufHeight), QImage::Format_ARGB32);
+    buffer[1].image = QImage(qRound(bufWidth), qRound(bufHeight), QImage::Format_ARGB32);
+}
+
+bool IDrawContext::needsRedraw() const
+{
+    mutex.lock(); // --------- start serialize with thread
+    bool res = intNeedsRedraw;
+    mutex.unlock(); // --------- stop serialize with thread
+    return res;
+}
+
+void IDrawContext::convertScreen2Map(QPointF& pt) const
+{
+    mutex.lock(); // --------- start serialize with thread
+
+    pt = focus + pt * scale * zoomFactor;
+
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::convertMap2Screen(QPointF& pt) const
+{
+    mutex.lock(); // --------- start serialize with thread
+
+    pt = (pt - focus) / (scale * zoomFactor);
+
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::convertMap2Screen(QPolygonF& line) const
+{
+    mutex.lock(); // --------- start serialize with thread
+
+    const int N = line.size();
+    for(int n = 0; n < N; n++)
+    {
+        line[n] = (line[n] - focus) / (scale * zoomFactor);
+    }
+
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::convertMap2Screen(QRectF& rect) const
+{
+    mutex.lock(); // --------- start serialize with thread
+
+    QPointF topLeft = rect.topLeft();
+    convertMap2Screen(topLeft);
+    rect.setTopLeft(topLeft);
+
+    QPointF bottomRight = rect.bottomRight();
+    convertMap2Screen(bottomRight);
+    rect.setBottomRight(bottomRight);
+
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+
+void IDrawContext::move(const QPointF& delta)
+{
+    mutex.lock(); // --------- start serialize with thread
+    QPointF f = focus;
+
+    convertMap2Screen(f);
+    f -= delta;
+    convertScreen2Map(f);
+
+    focus = f;
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::zoom(bool in, const QPointF& pt)
+{
+    mutex.lock(); // --------- start serialize with thread
+
+    QPointF pt2 = pt;
+
+    convertScreen2Map(pt2);
+    zoom(zoomFactorIdx + (in ? -1 : 1));
+    convertMap2Screen(pt2);
+
+    move(pt - pt2);
+
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::zoom(int idx)
+{
+    idx = qMax(idx, 0);
+    idx = qMin(idx, N_DEFAULT_ZOOM_LEVELS - 1);
+
+    mutex.lock(); // --------- start serialize with thread
+    if((zoomFactorIdx != idx) || (zoomFactor.x() != scales[idx]))
+    {
+        zoomFactorIdx   = idx;
+        zoomFactor.rx() = scales[idx];
+        zoomFactor.ry() = scales[idx];
+        intNeedsRedraw  = true;
+    }
+    mutex.unlock(); // --------- stop serialize with thread
+}
+
+void IDrawContext::draw(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    mutex.lock(); // --------- start serialize with thread
+    // derive map reference points for all corners coordinate of map buffer
+    ref1 = QPointF( 0,         0);
+    ref2 = QPointF( bufWidth,  0);
+    ref3 = QPointF( bufWidth,  bufHeight);
+    ref4 = QPointF( 0,         bufHeight);
+
+    convertScreen2Map(ref1);
+    convertScreen2Map(ref2);
+    convertScreen2Map(ref3);
+    convertScreen2Map(ref4);
+
+    // get current active buffer
+    const buffer_t& currentBuffer   = buffer[bufIndex];
+    const QPointF offset            = (currentBuffer.ref1 - ref1) / (currentBuffer.scale * currentBuffer.zoomFactor);
+
+    p.save();
+    // scale image if current zoomfactor does not match buffer's zoomfactor
+    p.scale(currentBuffer.zoomFactor.x()/zoomFactor.x(), currentBuffer.zoomFactor.y()/zoomFactor.y());
+    // add offset
+    p.translate(offset);
+    // draw buffer to painter
+    p.drawImage(0,0, currentBuffer.image);
+    p.restore();
+
+    emit sigDraw(p);
+
+    // intNeedsRedraw is reset by the thread
+    if(needsRedraw & maskRedraw)
+    {
+        intNeedsRedraw = true;
+    }
+    mutex.unlock(); // --------- stop serialize with thread
+
+    if((needsRedraw & maskRedraw) && !isRunning())
+    {
+        start();
+    }
+}
+
+
+void IDrawContext::run()
+{
+    mutex.lock();
+
+    QTime t;
+    t.start();
+    qDebug() << "start thread" << objectName();
+
+    IDrawContext::buffer_t& currentBuffer = buffer[!bufIndex];
+    while(intNeedsRedraw)
+    {
+        // copy all projection information need by the
+        // map render objects to buffer structure
+        currentBuffer.zoomFactor = zoomFactor;
+        currentBuffer.scale      = scale;
+        currentBuffer.ref1       = ref1;
+        currentBuffer.ref2       = ref2;
+        currentBuffer.ref3       = ref3;
+        currentBuffer.ref4       = ref4;
+        currentBuffer.focus      = focus;
+        intNeedsRedraw           = false;
+
+        mutex.unlock();
+        // ----- reset buffer -----
+        currentBuffer.image.fill(Qt::transparent);
+
+        drawt(currentBuffer);
+
+        mutex.lock();
+    }
+    // ----- switch buffer ------
+    bufIndex = !bufIndex;
+    qDebug() << "stop thread" << objectName() << "after" << t.elapsed() << "ms";
+
+    mutex.unlock();
+}
+
diff --git a/src/qmaptool/canvas/IDrawContext.h b/src/qmaptool/canvas/IDrawContext.h
new file mode 100644
index 0000000..861736c
--- /dev/null
+++ b/src/qmaptool/canvas/IDrawContext.h
@@ -0,0 +1,158 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef IDRAWCONTEXT_H
+#define IDRAWCONTEXT_H
+
+#include "canvas/CCanvas.h"
+
+#include <QMutex>
+#include <QThread>
+class QPainter;
+class QSettings;
+
+class IDrawContext : public QThread
+{
+    Q_OBJECT
+public:
+    IDrawContext(CCanvas *canvas, QObject *parent);
+    virtual ~IDrawContext() = default;
+
+    virtual QString getInfo() const = 0;
+
+    virtual bool is32BitRgb() const = 0;
+
+    virtual int getRasterBandCount() const = 0;
+
+    virtual bool getNoData() const = 0;
+
+    virtual const QString& getProjection() const = 0;
+
+    virtual QRectF getMapArea() const = 0;
+
+    virtual void setSourceFile(const QString& filename, bool resetContext) = 0;
+
+    virtual void unload() = 0;
+
+    virtual void saveSettings(QSettings& cfg) const;
+
+    virtual void loadSettings(QSettings& cfg);
+
+    void move(const QPointF& delta);
+
+    void zoom(bool in, const QPointF& pt);
+
+    bool needsRedraw() const;
+
+    void convertScreen2Map(QPointF &pt) const;
+    void convertMap2Screen(QPointF& pt) const;
+    void convertMap2Screen(QPolygonF& line) const;
+    void convertMap2Screen(QRectF &rect) const;
+
+    virtual void convertMap2Coord(QPointF &pt) const = 0;
+    virtual void convertCoord2Map(QPointF &pt) const = 0;
+
+    /**
+       @brief draw
+       @param p
+       @param needsRedraw
+     */
+    void draw(QPainter& p, CCanvas::redraw_e needsRedraw);
+
+    void triggerCompleteUpdate(CCanvas::redraw_e flags) const
+    {
+        canvas->slotTriggerCompleteUpdate(flags);
+    }
+
+    const CCanvas * getCanvas() const
+    {
+        return canvas;
+    }
+
+signals:
+    void sigDraw(QPainter& p);
+
+protected slots:
+    void slotResize(const QSize& size);
+
+protected:
+    CCanvas *canvas;
+
+    struct buffer_t
+    {
+        QImage image;
+
+        QPointF zoomFactor {1.0,1.0}; //< the zoomfactor used to draw the canvas
+        QPointF scale {1.0,1.0}; //< the scale of the global viewport
+
+        QPointF ref1;  //< top left corner
+        QPointF ref2;  //< top right corner
+        QPointF ref3;  //< bottom right corner
+        QPointF ref4;  //< bottom left corner
+        QPointF focus; //< point of focus
+    };
+
+    void run() override;
+
+    virtual void drawt(buffer_t& currentBuffer) = 0;
+
+    void zoom(int idx);
+
+    static QMutex mutex;
+
+    /// internal needs redraw flag
+    bool intNeedsRedraw = true;
+
+    const CCanvas::redraw_e maskRedraw = CCanvas::eRedrawMap;
+
+    /// map canvas twin buffer
+    buffer_t buffer[2];
+    /// the main threads currently used map canvas buffer
+    bool bufIndex = false;
+
+    qreal bufWidth   = 100; //< buffer width [px]
+    qreal bufHeight  = 100; //< buffer height [px]
+    qreal viewWidth  = 100; //< the viewports width [px]
+    qreal viewHeight = 100; //< the viewports height [px]
+
+    QPointF focus {0, 0};
+
+
+private:
+    static const qreal scales[];
+    qint32 zoomFactorIdx = 6;
+
+    /// the basic scale of the map canvas
+    QPointF scale {1.0, 1.0};
+
+    /// the actual used scaleFactor
+    QPointF zoomFactor {scales[zoomFactorIdx], scales[zoomFactorIdx]};
+
+    QPointF ref1; //< top left corner of next buffer
+    QPointF ref2; //< top right corner of next buffer
+    QPointF ref3; //< bottom right corner of next buffer
+    QPointF ref4; //< bottom left corner of next buffer
+};
+
+extern QPointF operator*(const QPointF& p1, const QPointF& p2);
+
+extern QPointF operator/(const QPointF& p1, const QPointF& p2);
+
+
+#endif //IDRAWCONTEXT_H
+
diff --git a/src/qmaptool/helpers/CDraw.cpp b/src/qmaptool/helpers/CDraw.cpp
new file mode 100644
index 0000000..ef2367d
--- /dev/null
+++ b/src/qmaptool/helpers/CDraw.cpp
@@ -0,0 +1,239 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2015 Christian Eichler code at christian-eichler.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 "canvas/CCanvas.h"
+#include "helpers/CDraw.h"
+
+#include <QDebug>
+#include <QImage>
+#include <QPointF>
+#include <QtMath>
+
+QPen CDraw::penBorderBlue(QColor(10,10,150,220),2);
+QPen CDraw::penBorderGray(Qt::lightGray,2);
+QPen CDraw::penBorderBlack(QColor(0,0,0,200),2);
+QBrush CDraw::brushBackWhite(QColor(255,255,255,255));
+QBrush CDraw::brushBackYellow(QColor(0xff, 0xff, 0xcc, 0xE0));
+
+
+QImage CDraw::createBasicArrow(const QBrush &brush, qreal scale)
+{
+    QImage arrow(21*scale, 16*scale, QImage::Format_ARGB32);
+    arrow.fill(qRgba(0, 0, 0, 0));
+
+    QPainter painter(&arrow);
+    USE_ANTI_ALIASING(painter, true);
+
+    // white background, same foreground as p
+    painter.setPen(QPen(Qt::white, 2));
+    painter.setBrush(brush);
+
+    QPointF arrowPoints[4] =
+    {
+        QPointF(20.0*scale,  7.0*scale), // front
+        QPointF( 0.0*scale,  0.0*scale), // upper tail
+        QPointF( 5.0*scale,  7.0*scale), // mid   tail
+        QPointF( 0.0*scale, 15.0*scale)  // lower tail
+    };
+    painter.drawPolygon(arrowPoints, 4);
+    painter.end();
+
+    return arrow;
+}
+
+/**
+   @brief   Calculates the square distance between two points
+   @return  (int) ( (x2 - x1)^2 + (y2 - y1)^2 )
+ */
+
+static inline int pointDistanceSquare(const QPointF &p1, const QPointF &p2)
+{
+    return (p2.x() - p1.x()) * (p2.x() - p1.x()) + (p2.y() - p1.y()) * (p2.y() - p1.y());
+}
+
+void CDraw::arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale)
+{
+    QImage arrow = createBasicArrow(p.brush(), scale);
+    qreal xoff = qCeil(arrow.width()/2.0);
+    qreal yoff = qFloor((arrow.height()-1)/2.0);
+
+    const qreal minArrowDistSquare = minArrowDist * minArrowDist;
+    const qreal minPointDistSquare = minPointDist * minPointDist;
+
+    QPointF prevArrow;
+    bool firstArrow = true;
+    for(int i = 1; i < line.size(); i++)
+    {
+        const QPointF &pt     = line[i    ];
+        const QPointF &prevPt = line[i - 1];
+
+        // ensure there is enough space between two line points
+        if( pointDistanceSquare(pt, prevPt) >= minPointDistSquare )
+        {
+            QPointF arrowPos = prevPt + (pt - prevPt)/2;
+
+            if( (viewport.contains(pt) || 0 == viewport.height()) // ensure the point is visible
+                && (firstArrow || pointDistanceSquare(prevArrow, arrowPos) >= minArrowDistSquare) )
+            {
+                p.save();
+
+                // rotate and draw the arrow (between bullets)
+                p.translate(arrowPos);
+                qreal direction = ( qAtan2((pt.y() - prevPt.y()), (pt.x() - prevPt.x())) * 180.) / M_PI;
+                p.rotate(direction);
+                p.drawImage(-xoff, -yoff, arrow);
+
+                p.restore();
+
+                prevArrow  = arrowPos;
+                firstArrow = false;
+            }
+        }
+    }
+}
+
+void CDraw::text(const QString &str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font)
+{
+    QFontMetrics fm(font);
+    QRect r = fm.boundingRect(str);
+
+    r.moveCenter(center);
+    p.setFont(font);
+
+    // draw the white `shadow`
+    p.setPen(Qt::white);
+    p.drawText(r.topLeft() - QPoint(-1, -1), str);
+    p.drawText(r.topLeft() - QPoint( 0, -1), str);
+    p.drawText(r.topLeft() - QPoint(+1, -1), str);
+
+    p.drawText(r.topLeft() - QPoint(-1,  0), str);
+    p.drawText(r.topLeft() - QPoint(+1,  0), str);
+
+    p.drawText(r.topLeft() - QPoint(-1, +1), str);
+    p.drawText(r.topLeft() - QPoint( 0, +1), str);
+    p.drawText(r.topLeft() - QPoint(+1, +1), str);
+
+    p.setPen(color);
+    p.drawText(r.topLeft(), str);
+}
+
+void CDraw::text(const QString &str, QPainter &p, const QRect &r, const QColor &color)
+{
+    p.setPen(Qt::white);
+    p.setFont(CMainWindow::self().getMapFont());
+
+    // draw the white `shadow`
+    p.drawText(r.adjusted(-1, -1, -1, -1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted( 0, -1,  0, -1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1, -1, +1, -1), Qt::AlignCenter, str);
+
+    p.drawText(r.adjusted(-1,  0, -1,  0), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1,  0, +1,  0), Qt::AlignCenter, str);
+
+    p.drawText(r.adjusted(-1, +1, -1, +1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted( 0, +1,  0, +1), Qt::AlignCenter, str);
+    p.drawText(r.adjusted(+1, +1, +1, +1), Qt::AlignCenter, str);
+
+    p.setPen(color);
+    p.drawText(r, Qt::AlignCenter, str);
+}
+
+QPoint CDraw::bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth, float pointerBasePos)
+{
+    QPainterPath bubblePath;
+    bubblePath.addRoundedRect(contentRect, RECT_RADIUS, RECT_RADIUS);
+
+    // draw the arrow
+    int pointerBaseCenterX = (pointerBasePos <= 1)
+                             ? contentRect.left() + (pointerBasePos * contentRect.width())
+                             : contentRect.left() + (int) pointerBasePos;
+
+    int pointerHeight = 0;
+    if(pointerPos.y() < contentRect.top())
+    {
+        pointerHeight = contentRect.top() - pointerPos.y() + 1;
+    }
+    else if(pointerPos.y() > contentRect.bottom())
+    {
+        pointerHeight = contentRect.bottom() - pointerPos.y() - 1;
+    }
+    else
+    {
+        qDebug() << "cannot calculate pointerHeight/pointerBaseCenterX due to invalid parameters";
+    }
+
+    if(0 != pointerHeight)
+    {
+        QPolygonF pointerPoly;
+        pointerPoly << pointerPos
+                    << QPointF(pointerBaseCenterX - pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
+                    << QPointF(pointerBaseCenterX + pointerBaseWidth / 2, pointerPos.y() + pointerHeight)
+                    << pointerPos;
+
+        QPainterPath pointerPath;
+        pointerPath.addPolygon(pointerPoly);
+
+        bubblePath = bubblePath.united(pointerPath);
+    }
+
+    p.setPen  (CDraw::penBorderGray);
+    p.setBrush(CDraw::brushBackWhite);
+
+    p.drawPolygon(bubblePath.toFillPolygon());
+
+    return contentRect.topLeft();
+}
+
+void CDraw::drawCrossHairDot(QPainter& p, const QPointF& pt)
+{
+    USE_ANTI_ALIASING(p, false);
+    p.setBrush(Qt::NoBrush);
+    QRectF dot2(0,0,7,7);
+    p.setPen(QPen(Qt::white, 3));
+    p.drawLine(pt.x(), pt.y() + 3, pt.x(), pt.y() + 20);
+    p.drawLine(pt.x(), pt.y() - 3, pt.x(), pt.y() - 20);
+    p.drawLine(pt.x() - 3, pt.y(), pt.x() - +20, pt.y());
+    p.drawLine(pt.x() + 3, pt.y(), pt.x() + 20, pt.y());
+    p.setPen(QPen(Qt::red, 1));
+    p.drawLine(pt.x(), pt.y() + 3, pt.x(), pt.y() + 20);
+    p.drawLine(pt.x(), pt.y() - 3, pt.x(), pt.y() - 20);
+    p.drawLine(pt.x() - 3, pt.y(), pt.x() - +20, pt.y());
+    p.drawLine(pt.x() + 3, pt.y(), pt.x() + 20, pt.y());
+
+    dot2.moveCenter(pt);
+    p.setPen(QPen(Qt::white, 3));
+    p.drawRect(dot2);
+    p.setPen(QPen(Qt::red, 1));
+    p.drawRect(dot2);
+    USE_ANTI_ALIASING(p, true);
+}
+
+void CDraw::drawRectangle(QPainter& p, const QRectF& rect, const QPen& pen, const QBrush& brush)
+{
+    p.setBrush(brush);
+    p.setPen(QPen(Qt::white, pen.width() + 2));
+    p.drawRect(rect);
+    p.setPen(pen);
+    p.drawRect(rect);
+}
+
+void CDraw::drawRectangle(QPainter& p, const QRectF& rect, const Qt::GlobalColor& pen, const Qt::GlobalColor& brush)
+{
+    drawRectangle(p,rect, QPen(pen), QBrush(brush));
+}
diff --git a/src/qmaptool/helpers/CDraw.h b/src/qmaptool/helpers/CDraw.h
new file mode 100644
index 0000000..517d6ba
--- /dev/null
+++ b/src/qmaptool/helpers/CDraw.h
@@ -0,0 +1,96 @@
+/**********************************************************************************************
+    Copyright (C) 2014 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2015 Christian Eichler code at christian-eichler.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/>.
+
+**********************************************************************************************/
+
+#ifndef CPAINTER_H
+#define CPAINTER_H
+
+#include <QPainter>
+#include <QPolygonF>
+#include <QRectF>
+
+#include "CMainWindow.h"
+inline void USE_ANTI_ALIASING(QPainter& p, bool useAntiAliasing)
+{
+    p.setRenderHints(QPainter::TextAntialiasing|QPainter::Antialiasing|QPainter::SmoothPixmapTransform|QPainter::HighQualityAntialiasing, useAntiAliasing);
+}
+
+#define RECT_RADIUS 3
+#define PAINT_ROUNDED_RECT(p,r) p.drawRoundedRect(r,RECT_RADIUS,RECT_RADIUS)
+
+
+class CDraw
+{
+public:
+
+    static QPen penBorderBlue;
+    static QPen penBorderGray;
+    static QPen penBorderBlack;
+    static QBrush brushBackWhite;
+    static QBrush brushBackYellow;
+
+    /**
+       @brief Draw arrows along a line
+
+       An arrow is drawn if all the following requirements are met:
+     * the position the new arrow would have been drawn is within viewport
+          OR
+          `viewport.height() == 0`
+     * the two points have a distance of at least `minPointDist`
+     * the (potential) position of the new arrow has at least a distance of `minArrowDist` from the previous arrow
+
+       @param line          The line to draw the arrows along
+       @param viewport      Restrict drawing of arrows to this viewport (no limitation is applied if `viewport.height() == 0`)
+       @param minPointDist  The minimum distance of two points (in px)
+       @param minArrowDist  The minimum distance of two consecutive arrows (in px)
+     */
+    static void arrows(const QPolygonF &line, const QRectF &viewport, QPainter &p, int minPointDist, int minArrowDist, qreal scale);
+
+    static void text(const QString& str, QPainter &p, const QPoint &center, const QColor &color, const QFont &font = CMainWindow::self().getMapFont());
+    static void text(const QString& str, QPainter &p, const QRect  &r,      const QColor &color);
+
+    /**
+       @brief Draw a cartoon bubble
+
+       `pointerBasePos` denotes the position of the pointer's base, where 0 is `at the very left of the content`, and 1 is `at the very right`.
+       Be careful with small values (near 0) or large values (near 1) for pointerBasePos, this might lead to incorrect drawing,
+       especially if pointerBaseWidth is large.
+       If is larger than 1, a value in pixels is assumed.
+
+       @param p                 An active QPainter
+       @param contentRect       The area the actual content will be in
+       @param pointerPos        The position of the pointer's head
+       @param pointerBaseWidth  The width of the pointer
+       @param pointerBasePos    The (relative) location of the pointer (in percent / pixels)
+     */
+    static QPoint bubble(QPainter &p, const QRect &contentRect, const QPoint &pointerPos, int pointerBaseWidth = 20, float pointerBasePos = .5f);
+
+    static void drawCrossHairDot(QPainter& p, const QPointF& pt);
+
+    static void drawRectangle(QPainter& p, const QRectF& rect, const Qt::GlobalColor& pen, const Qt::GlobalColor& brush);
+    static void drawRectangle(QPainter& p, const QRectF& rect, const QPen& pen, const QBrush& brush);
+private:
+    /**
+       @brief   Creates a new arrow using the brush specified
+       @return  A QImage containing the arrow
+     */
+    static QImage createBasicArrow(const QBrush &brush, qreal scale);
+};
+
+#endif // CPAINTER_H
+
diff --git a/src/helpers/CSettings.h b/src/qmaptool/helpers/CSettings.h
similarity index 100%
rename from src/helpers/CSettings.h
rename to src/qmaptool/helpers/CSettings.h
diff --git a/src/grid/mitab.cpp b/src/qmaptool/helpers/mitab.cpp
similarity index 100%
rename from src/grid/mitab.cpp
rename to src/qmaptool/helpers/mitab.cpp
diff --git a/src/grid/mitab.h b/src/qmaptool/helpers/mitab.h
similarity index 100%
rename from src/grid/mitab.h
rename to src/qmaptool/helpers/mitab.h
diff --git a/src/qmaptool/items/CItemCutMap.cpp b/src/qmaptool/items/CItemCutMap.cpp
new file mode 100644
index 0000000..dd66ecc
--- /dev/null
+++ b/src/qmaptool/items/CItemCutMap.cpp
@@ -0,0 +1,98 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "items/CItemCutMap.h"
+#include "overlay/COverlayCutMap.h"
+
+#include <QtWidgets>
+
+CItemCutMap::CItemCutMap(const QString &filename, QStackedWidget *stackedWidget, QListWidget *parent)
+    : CItemFile(filename, parent)
+{
+    overlay = new COverlayCutMap(this, stackedWidget);
+    connect(overlay, &COverlayCutMap::sigChanged, this, &CItemCutMap::sigChanged);
+}
+
+CItemCutMap::~CItemCutMap()
+{
+    overlay->deleteLater();
+}
+
+void CItemCutMap::saveSettings(QSettings& cfg)
+{
+    CItemFile::saveSettings(cfg);
+    overlay->saveSettings(cfg);
+}
+
+void CItemCutMap::loadSettings(QSettings& cfg)
+{
+    CItemFile::loadSettings(cfg);
+    overlay->loadSettings(cfg);
+}
+
+void CItemCutMap::toFront()
+{
+    overlay->toFront();
+}
+
+bool CItemCutMap::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    CItemFile::drawFx(p, needsRedraw);
+    overlay->drawFx(p, needsRedraw);
+    return true;
+}
+
+void CItemCutMap::mouseMoveEventFx(QMouseEvent *e)
+{
+    CItemFile::mouseMoveEventFx(e);
+    if(!mapIsMoving)
+    {
+        overlay->mouseMoveEventFx(e);
+    }
+}
+
+void CItemCutMap::mouseReleaseEventFx(QMouseEvent *e)
+{
+    if(!mapDidMove)
+    {
+        overlay->mouseReleaseEventFx(e);
+    }
+    CItemFile::mouseReleaseEventFx(e);
+}
+
+void CItemCutMap::leaveEventFx(QEvent *e)
+{
+    CItemFile::leaveEventFx(e);
+    overlay->abortStep();
+}
+
+QCursor CItemCutMap::getCursorFx()
+{
+    return overlay->getCursorFx();
+}
+
+void CItemCutMap::saveShape(const QString& filename) const
+{
+    overlay->saveShape(filename);
+}
+
+bool CItemCutMap::isOk() const
+{
+    return overlay->isOk();
+}
diff --git a/src/qmaptool/items/CItemCutMap.h b/src/qmaptool/items/CItemCutMap.h
new file mode 100644
index 0000000..851589b
--- /dev/null
+++ b/src/qmaptool/items/CItemCutMap.h
@@ -0,0 +1,52 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CITEMCUTMAP_H
+#define CITEMCUTMAP_H
+
+#include "items/CItemFile.h"
+
+class COverlayCutMap;
+
+class CItemCutMap : public CItemFile
+{
+public:
+    CItemCutMap(const QString& filename, QStackedWidget * stackedWidget, QListWidget *parent);
+    virtual ~CItemCutMap();
+
+    void saveSettings(QSettings& cfg) override;
+    void loadSettings(QSettings& cfg) override;
+
+    void toFront() override;
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override;
+    void mouseMoveEventFx(QMouseEvent *e) override;
+    void mouseReleaseEventFx(QMouseEvent *e) override;
+    void leaveEventFx(QEvent *e) override;
+    QCursor getCursorFx() override;
+
+    void saveShape(const QString& filename) const;
+
+    bool isOk() const override;
+
+private:
+    COverlayCutMap * overlay;
+};
+
+#endif //CITEMCUTMAP_H
+
diff --git a/src/qmaptool/items/CItemFile.cpp b/src/qmaptool/items/CItemFile.cpp
new file mode 100644
index 0000000..8db6728
--- /dev/null
+++ b/src/qmaptool/items/CItemFile.cpp
@@ -0,0 +1,30 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "canvas/CDrawContextPixel.h"
+#include "items/CItemFile.h"
+
+CItemFile::CItemFile(const QString &filename, QListWidget *parent)
+    : IItem(filename, parent)
+{
+    drawContext = new CDrawContextPixel(CMainWindow::self().getCanvas(), this);
+    reload();
+}
+
+
diff --git a/src/qmaptool/items/CItemFile.h b/src/qmaptool/items/CItemFile.h
new file mode 100644
index 0000000..4d58ea6
--- /dev/null
+++ b/src/qmaptool/items/CItemFile.h
@@ -0,0 +1,34 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CITEMFILE_H
+#define CITEMFILE_H
+
+#include "items/IItem.h"
+
+class CItemFile : public IItem
+{
+public:
+    CItemFile(const QString& filename, QListWidget *parent);
+    virtual ~CItemFile() = default;
+
+    void setupChanged() override {}
+};
+
+#endif //CITEMFILE_H
+
diff --git a/src/qmaptool/items/CItemListWidget.cpp b/src/qmaptool/items/CItemListWidget.cpp
new file mode 100644
index 0000000..71f749c
--- /dev/null
+++ b/src/qmaptool/items/CItemListWidget.cpp
@@ -0,0 +1,156 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "helpers/CSettings.h"
+#include "items/CItemListWidget.h"
+#include "items/IItem.h"
+
+
+#include <QtWidgets>
+
+CItemListWidget::CItemListWidget(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+
+    connect(toolFiles, &QToolButton::clicked, this, &CItemListWidget::slotFiles);
+    connect(toolDelFile, &QToolButton::clicked, this, &CItemListWidget::slotDeleteFile);
+    connect(toolDelFiles, &QToolButton::clicked, this, &CItemListWidget::slotDeleteFiles);
+    connect(toolReloadFile, &QToolButton::clicked, this, &CItemListWidget::slotLoadCurrentMap);
+    connect(listFiles, &QListWidget::itemSelectionChanged, this, &CItemListWidget::slotSelectionChanged);
+}
+
+void CItemListWidget::saveSettings(QSettings& cfg)
+{
+    QStringList files;
+    const int N = listFiles->count();
+    for(int n = 0; n < N; n++)
+    {
+        IItem * item = dynamic_cast<IItem*>(listFiles->item(n));
+        if(item != nullptr)
+        {
+            files << item->getFilename();
+            cfg.beginGroup(QString("%1").arg(n));
+            item->saveSettings(cfg);
+            cfg.endGroup();
+        }
+    }
+    cfg.setValue("files", files);
+    cfg.setValue("lastFile", listFiles->currentRow());
+}
+
+void CItemListWidget::loadSettings(QSettings& cfg)
+{
+    QStringList files = cfg.value("files", QStringList()).toStringList();
+    addFiles(files);
+
+    const int N = listFiles->count();
+    for(int n = 0; n < N; n++)
+    {
+        IItem * item = dynamic_cast<IItem*>(listFiles->item(n));
+        if(item != nullptr)
+        {
+            cfg.beginGroup(QString("%1").arg(n));
+            item->loadSettings(cfg);
+            cfg.endGroup();
+        }
+    }
+
+    listFiles->setCurrentRow(cfg.value("lastFile",0).toInt());
+}
+
+IItem * CItemListWidget::currentItem()
+{
+    return dynamic_cast<IItem*>(listFiles->currentItem());
+}
+
+IItem * CItemListWidget::item(int n)
+{
+    return dynamic_cast<IItem*>(listFiles->item(n));
+}
+
+void CItemListWidget::addFiles(const QStringList& files)
+{
+    for(const QString& file : files)
+    {
+        emit sigAddItem(file, listFiles);
+    }
+
+    listFiles->setCurrentRow(listFiles->count() - 1);
+    slotSelectionChanged();
+}
+
+void CItemListWidget::slotFiles()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/mapInput", QDir::homePath()).toString();
+
+    const QStringList& files = QFileDialog::getOpenFileNames(this, tr("Select files..."), path);
+    if(files.isEmpty())
+    {
+        return;
+    }
+
+    cfg.setValue("Path/mapInput", QFileInfo(files.first()).absolutePath());
+    addFiles(files);
+
+    if(listFiles->count() && (listFiles->currentItem() ==nullptr))
+    {
+        listFiles->setCurrentRow(0);
+    }
+}
+
+void CItemListWidget::slotLoadCurrentMap()
+{
+    IItem * item = dynamic_cast<IItem*>(listFiles->currentItem());
+    if(item != nullptr)
+    {
+        item->reload();
+    }
+}
+
+void CItemListWidget::slotDeleteFiles()
+{
+    listFiles->clear();
+    slotSelectionChanged();
+}
+
+void CItemListWidget::slotDeleteFile()
+{
+    QListWidgetItem * item = listFiles->takeItem(listFiles->currentRow());
+    delete item;
+    slotSelectionChanged();
+}
+
+void CItemListWidget::slotSelectionChanged()
+{
+    IItem * item = dynamic_cast<IItem*>(listFiles->currentItem());
+    if(item != nullptr)
+    {
+        item->toFront();
+    }
+
+    bool isNotEmpty = listFiles->count() != 0;
+    int row        = listFiles->currentRow();
+
+    toolDelFile->setEnabled(row != -1);
+    toolDelFiles->setEnabled(isNotEmpty);
+    toolReloadFile->setEnabled(row != -1);
+
+    emit sigSelectionChanged();
+}
diff --git a/src/qmaptool/items/CItemListWidget.h b/src/qmaptool/items/CItemListWidget.h
new file mode 100644
index 0000000..0d2399e
--- /dev/null
+++ b/src/qmaptool/items/CItemListWidget.h
@@ -0,0 +1,64 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CITEMLISTWIDGET_H
+#define CITEMLISTWIDGET_H
+
+#include "ui_IItemListWidget.h"
+
+class QSettings;
+class IItem;
+
+class CItemListWidget : public QWidget, private Ui::IItemListWidget
+{
+    Q_OBJECT
+public:
+    CItemListWidget(QWidget * parent);
+    virtual ~CItemListWidget() = default;
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    IItem * currentItem();
+    IItem * item(int n);
+
+    qint32 count() const
+    {
+        return listFiles->count();
+    }
+
+
+
+signals:
+    void sigAddItem(const QString& filename, QListWidget * list);
+    void sigSelectionChanged();
+    void sigChanged();
+
+protected slots:
+    void slotFiles();
+    void slotLoadCurrentMap();
+    void slotDeleteFiles();
+    void slotDeleteFile();
+    void slotSelectionChanged();
+
+protected:
+    void addFiles(const QStringList& files);
+};
+
+#endif //CITEMLISTWIDGET_H
+
diff --git a/src/qmaptool/items/CItemRefMap.cpp b/src/qmaptool/items/CItemRefMap.cpp
new file mode 100644
index 0000000..283a9a9
--- /dev/null
+++ b/src/qmaptool/items/CItemRefMap.cpp
@@ -0,0 +1,115 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/CDrawContextPixel.h"
+#include "items/CItemRefMap.h"
+#include "overlay/COverlayRefMap.h"
+#include "overlay/refmap/COverlayRefMapPoint.h"
+
+#include <QtWidgets>
+
+CItemRefMap::CItemRefMap(const QString &filename, QStackedWidget *stackedWidget, QListWidget *parent)
+    : CItemFile(filename, parent)
+{
+    overlay = new COverlayRefMap(this, stackedWidget);
+    connect(overlay, &COverlayRefMap::sigChanged, this, &CItemRefMap::sigChanged);
+}
+
+CItemRefMap::~CItemRefMap()
+{
+    overlay->deleteLater();
+}
+
+void CItemRefMap::saveSettings(QSettings& cfg)
+{
+    CItemFile::saveSettings(cfg);
+    overlay->saveSettings(cfg);
+}
+
+void CItemRefMap::loadSettings(QSettings& cfg)
+{
+    CItemFile::loadSettings(cfg);
+    overlay->loadSettings(cfg);
+}
+
+void CItemRefMap::addRefPoints(QList<COverlayRefMapPoint*>& points)
+{
+    overlay->addRefPoints(points);
+}
+
+QString CItemRefMap::getMapProjection() const
+{
+    return overlay->getMapProjection();
+}
+
+const QList<COverlayRefMapPoint *> CItemRefMap::getRefPoints() const
+{
+    return overlay->getRefPoints();
+}
+
+
+void CItemRefMap::toFront()
+{
+    overlay->toFront();
+}
+
+bool CItemRefMap::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    CItemFile::drawFx(p, needsRedraw);
+    overlay->drawFx(p, needsRedraw);
+    return true;
+}
+
+void CItemRefMap::mouseMoveEventFx(QMouseEvent *e)
+{
+    CItemFile::mouseMoveEventFx(e);
+    if(!mapIsMoving)
+    {
+        overlay->mouseMoveEventFx(e);
+    }
+}
+
+void CItemRefMap::mouseReleaseEventFx(QMouseEvent *e)
+{
+    if(!mapDidMove)
+    {
+        overlay->mouseReleaseEventFx(e);
+    }
+    CItemFile::mouseReleaseEventFx(e);
+}
+
+bool CItemRefMap::keyPressEventFx(QKeyEvent *e)
+{
+    return overlay->keyPressEventFx(e);
+}
+
+void CItemRefMap::leaveEventFx(QEvent *e)
+{
+    CItemFile::leaveEventFx(e);
+    overlay->abortStep();
+}
+
+QCursor CItemRefMap::getCursorFx()
+{
+    return overlay->getCursorFx();
+}
+
+bool CItemRefMap::isOk() const
+{
+    return overlay->isOk();
+}
diff --git a/src/qmaptool/items/CItemRefMap.h b/src/qmaptool/items/CItemRefMap.h
new file mode 100644
index 0000000..5e74e8b
--- /dev/null
+++ b/src/qmaptool/items/CItemRefMap.h
@@ -0,0 +1,56 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CITEMREFMAP_H
+#define CITEMREFMAP_H
+
+#include "items/CItemFile.h"
+
+class COverlayRefMap;
+class COverlayRefMapPoint;
+
+class CItemRefMap : public CItemFile
+{
+public:
+    CItemRefMap(const QString& filename, QStackedWidget * stackedWidget, QListWidget *parent);
+    virtual ~CItemRefMap();
+
+    void saveSettings(QSettings& cfg) override;
+    void loadSettings(QSettings& cfg) override;
+
+    void addRefPoints(QList<COverlayRefMapPoint *> &points);
+    QString getMapProjection() const;
+    const QList<COverlayRefMapPoint*> getRefPoints() const;
+
+    void toFront() override;
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override;
+    void mouseMoveEventFx(QMouseEvent *e) override;
+    void mouseReleaseEventFx(QMouseEvent *e) override;
+    void leaveEventFx(QEvent *e) override;
+    bool keyPressEventFx(QKeyEvent *e) override;
+    QCursor getCursorFx() override;
+
+    bool isOk() const override;
+
+private:
+    COverlayRefMap * overlay;
+};
+
+#endif //CITEMREFMAP_H
+
diff --git a/src/qmaptool/items/IItem.cpp b/src/qmaptool/items/IItem.cpp
new file mode 100644
index 0000000..58f55f4
--- /dev/null
+++ b/src/qmaptool/items/IItem.cpp
@@ -0,0 +1,144 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "canvas/IDrawContext.h"
+#include "items/IItem.h"
+
+#include <QtWidgets>
+
+IItem::IItem(const QString &filename, QListWidget *parent)
+    : QListWidgetItem(parent)
+    , filename(filename)
+{
+    setText(QFileInfo(filename).completeBaseName());
+}
+
+void IItem::saveSettings(QSettings& cfg)
+{
+    if(nullptr != drawContext)
+    {
+        drawContext->saveSettings(cfg);
+    }
+}
+
+void IItem::loadSettings(QSettings& cfg)
+{
+    if(nullptr != drawContext)
+    {
+        drawContext->loadSettings(cfg);
+    }
+}
+
+void IItem::reload()
+{
+    if(nullptr == drawContext)
+    {
+        return;
+    }
+    drawContext->setSourceFile(filename, false);
+    setToolTip(filename + "\n"  + drawContext->getInfo());
+}
+
+bool IItem::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    if(nullptr == drawContext)
+    {
+        return false;
+    }
+
+    drawContext->draw(p, needsRedraw);
+    return true;
+}
+
+void IItem::mousePressEventFx(QMouseEvent *e)
+{
+    if(nullptr == drawContext)
+    {
+        return;
+    }
+
+    if(e->button() == Qt::LeftButton)
+    {
+        lastPos     = e->pos();
+        firstPos    = lastPos;
+        mapIsMoving = true;
+        mapDidMove  = false;
+    }
+}
+
+void IItem::mouseMoveEventFx(QMouseEvent *e)
+{
+    if(nullptr == drawContext)
+    {
+        return;
+    }
+
+    const QPoint& point = e->pos();
+    if(mapIsMoving)
+    {
+        if((point - firstPos).manhattanLength() >= 4)
+        {
+            drawContext->move(point - lastPos);
+
+            lastPos    = point;
+            mapDidMove = true;
+
+            drawContext->triggerCompleteUpdate(CCanvas::eRedrawMap);
+        }
+    }
+}
+
+void IItem::mouseReleaseEventFx(QMouseEvent *e)
+{
+    if(nullptr == drawContext)
+    {
+        return;
+    }
+
+    if(e->button() == Qt::LeftButton)
+    {
+        lastPos     = e->pos();
+        mapIsMoving = false;
+        mapDidMove  = false;
+    }
+}
+
+void IItem::wheelEventFx(QWheelEvent *e)
+{
+    if(nullptr == drawContext)
+    {
+        return;
+    }
+
+    // angleDelta() returns the eighths of a degree
+    // of the mousewheel
+    // -> zoom in/out every 15 degress = every 120 eights
+    const int EIGHTS_ZOOM = 15 * 8;
+    zoomAngleDelta += e->angleDelta().y();
+    if(abs(zoomAngleDelta) < EIGHTS_ZOOM)
+    {
+        return;
+    }
+
+    zoomAngleDelta = 0;
+
+    drawContext->zoom(CMainWindow::self().flipMouseWheel() ? (e->delta() < 0) : (e->delta() > 0), e->posF());
+    drawContext->triggerCompleteUpdate(CCanvas::eRedrawAll);
+}
+
diff --git a/src/qmaptool/items/IItem.h b/src/qmaptool/items/IItem.h
new file mode 100644
index 0000000..1b105e1
--- /dev/null
+++ b/src/qmaptool/items/IItem.h
@@ -0,0 +1,98 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef IITEM_H
+#define IITEM_H
+
+
+#include "tool/ITool.h"
+#include <QListWidgetItem>
+#include <QObject>
+
+class QSettings;
+class IDrawContext;
+
+class IItem : public QObject, public ITool, public QListWidgetItem
+{
+    Q_OBJECT
+public:
+    IItem(const QString& filename, QListWidget * parent);
+    virtual ~IItem() = default;
+
+    virtual void saveSettings(QSettings& cfg);
+    virtual void loadSettings(QSettings& cfg);
+
+    const QString& getFilename() const
+    {
+        return filename;
+    }
+
+    IDrawContext* getDrawContext() const
+    {
+        return drawContext;
+    }
+
+    bool getMapDidMove() const
+    {
+        return mapDidMove;
+    }
+
+    bool getMapIsMoving() const
+    {
+        return mapIsMoving;
+    }
+
+    /// reload file into draw context
+    virtual void reload();
+    /// item has been selected, bring everything to front (to be displayed)
+    virtual void toFront(){}
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override;
+    void mousePressEventFx(QMouseEvent *e) override;
+    void mouseMoveEventFx(QMouseEvent *e) override;
+    void mouseReleaseEventFx(QMouseEvent *e) override;
+    void wheelEventFx(QWheelEvent *e) override;
+
+    virtual bool isOk() const
+    {
+        return false;
+    }
+
+signals:
+    void sigChanged();
+
+protected:
+    QString filename;
+    IDrawContext * drawContext = nullptr;
+
+    /// true while left mouse button is pressed down
+    bool mapIsMoving = false;
+    /// true if map actually moved, if not it's a single click
+    bool mapDidMove  = false;
+
+    /// last mouse position
+    QPoint lastPos;
+    /// mouse position when left button was pressed
+    QPoint firstPos;
+
+    /// current accumulated angleDelta, used/required for zooming on track pads
+    int zoomAngleDelta = 0;
+};
+
+#endif //IITEM_H
+
diff --git a/src/qmaptool/items/IItemListWidget.ui b/src/qmaptool/items/IItemListWidget.ui
new file mode 100644
index 0000000..ae057f1
--- /dev/null
+++ b/src/qmaptool/items/IItemListWidget.ui
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IItemListWidget</class>
+ <widget class="QWidget" name="IItemListWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>258</width>
+    <height>152</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolFiles">
+       <property name="toolTip">
+        <string>Add map files to list</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelFile">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Remove selected file from the list.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/DeleteOne.png</normaloff>:/icons/32x32/DeleteOne.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolDelFiles">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Clear complete list of map files.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolReloadFile">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Reload the currently selected map.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/Reload.png</normaloff>:/icons/32x32/Reload.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QListWidget" name="listFiles"/>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../qmapshack/resources.qrc"/>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/locale/qmaptool.ts b/src/qmaptool/locale/qmaptool.ts
new file mode 100644
index 0000000..3d470c9
--- /dev/null
+++ b/src/qmaptool/locale/qmaptool.ts
@@ -0,0 +1,1506 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1">
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="89"/>
+        <source>No map view available.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapTool configuration.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="39"/>
+        <source>bad coordinate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <source>Bad value for X pixel.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Bad value for Y pixel.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CDrawContextPixel</name>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <source>Failed to load file: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="202"/>
+        <source>(color table)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="206"/>
+        <source>(RGB)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="210"/>
+        <source>(RGBA)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="214"/>
+        <source>(unknown)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="236"/>
+        <source>Failed to load</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="34"/>
+        <source>Select one of the corners and place the marker at the corresponding grid crossing on the map. All 4 corners have to be placed.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="160"/>
+        <source>Point 1 - not set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="164"/>
+        <source>Point 1 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="169"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="174"/>
+        <source>Point 1 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="185"/>
+        <source>Point 2 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="190"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="195"/>
+        <source>Point 2 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="207"/>
+        <source>Point 3 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="212"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="217"/>
+        <source>Point 3 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="229"/>
+        <source>Point 4 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="234"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="239"/>
+        <source>Point 4 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="181"/>
+        <source>Point 2 - not set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="203"/>
+        <source>Point 3 - not set</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="225"/>
+        <source>Point 4 - not set</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSelArea.cpp" line="30"/>
+        <source>Select the area to be covered by the calculated reference points. Simply grab the corners of the selection rectangle with a left click and place them where you want with a second click.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSetRef.cpp" line="37"/>
+        <source>Valid coordinate formats: If the projection is lat/lon all values have to be in degree, e.g. "48.2" or "12.4". For all other projections values are either in multiple of meter or feet. If you are doing it wrong the entry field will turn red.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CItemListWidget</name>
+    <message>
+        <location filename="../items/CItemListWidget.cpp" line="103"/>
+        <source>Select files...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>COverlayCutMap</name>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Delete mask...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Are you sure to delete complete mask?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="239"/>
+        <source>Save mask...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="287"/>
+        <source>Load mask...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Failed...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Not a shape file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>COverlayGridTool</name>
+    <message>
+        <location filename="../overlay/COverlayGridTool.cpp" line="34"/>
+        <source>Before you proceed with 'ok':
+Please cross check all data once again. A bad reference coordinate will ruin all the work. Also cross check if the selected area contains as many reference points as possible at the border. You can easily delete points outside the map in the Reference Tool. But it's much more effort to set additional points in case you miss some.  When you are done press 'ok' to transfer the derived reference points to the Reference Tool.
+
+The next step will be to use the Reference Tool to adjust the position of all reference points to the real grid position on the map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMap</name>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="42"/>
+        <source>If you used the Grid Tool you have to fine tune the reference points by placing them as much as possible on the grid crossing. Be aware that if you over scale you get jumping points by rounding effects. Be precise but do not make religion out of the task.
+If your mouse focus is on the map you can use the N and B keys to jump forward an backward in the reference point list. 
+The is also the option to fine tune the reference points in auto-mode. In this mode the next reference point is selected automatically right after you placed the current one. This is very convenient for a large number of reference points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="614"/>
+        <source>Save reference points...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="653"/>
+        <source>Load reference points...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Delete all reference points...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Are you sure to delete all reference points in the list?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete all selected reference points?</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMapPoint</name>
+    <message>
+        <location filename="../overlay/refmap/COverlayRefMapPoint.cpp" line="43"/>
+        <source>bad coordinate</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>Error...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CSetupExtTools</name>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="60"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="61"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="62"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="63"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="64"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="75"/>
+        <source>Select %1 binary...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CShell</name>
+    <message>
+        <location filename="../shell/CShell.cpp" line="41"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="45"/>
+        <source>Process cannot be started.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="46"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="50"/>
+        <source>External process crashed.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="54"/>
+        <source>An unknown error occurred.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="146"/>
+        <source>!!! failed !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="161"/>
+        <source>
+Canceled by user's request.
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="191"/>
+        <source>!!! done !!!
+</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolAddOverview</name>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="30"/>
+        <source>Add Overviews</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="32"/>
+        <source>Raster map files consume quite some memory if a larger area is displayed. Pre-calculated overview levels help to speed up loading and displaying the map. These overviews can be stored within the map file as well as an external file. GDAL can remove internally stored overviews, however it will not free the used space in the file. Therefore it's size will remain large. If you do not like that use the external option.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolCutMap</name>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="30"/>
+        <source>Cut Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="32"/>
+        <source>Paper maps usually have a border you don't want to have. To combine maps seamlessly you have to cut that border, replacing it by transparent pixel. This tool allows you to define a cut line and it will add an alpha channel for transparency to your map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolGrid</name>
+    <message>
+        <location filename="../tool/CToolGrid.cpp" line="37"/>
+        <source>By placing 4 reference points at the corners of a grid square and referencing them by their top left corner, the width and height, all the other grid points can be estimated.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolPalettize</name>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="30"/>
+        <source>Add Color Palette</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="34"/>
+        <source>Usually you use RGBA color while referencing a map because the large color space allows you to scale and rotate the map without any loss of quality. But it results into rather large files. The file size can be optimized by using a color palette instead of the RGBA color space. The impact on quality is low as long as you do not want to scale or rotate the map. If you want to combine files with a color palette all files need to have the same palette.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="46"/>
+        <source>Note: This tool will use all files in the list as a combined input to derive an optimal palette. This will only work if all files have the same projection and scale.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="106"/>
+        <source>Select filename...</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CToolRefMap</name>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="34"/>
+        <source>Reference Map</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="36"/>
+        <source>A scan of a paper map can be converted to a referenced raster map if you place at least three reference points on the map. The more points the better the result. If your map has a grid you can place points on that grid with the grid tool.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="26"/>
+        <source><b>QMapTool</b>, Version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="39"/>
+        <location filename="../IAbout.ui" line="77"/>
+        <location filename="../IAbout.ui" line="91"/>
+        <location filename="../IAbout.ui" line="105"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="70"/>
+        <source>Qt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="84"/>
+        <source>GDAL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="98"/>
+        <source>Proj4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="121"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="128"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="24"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="31"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="38"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="25"/>
+        <source>Coord. Map File [pixel]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="32"/>
+        <source>x</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="42"/>
+        <source>y</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="49"/>
+        <source>Coord. lat/lon WGS84 [°]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="150"/>
+        <source>Reset</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="224"/>
+        <source>Set Area</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="35"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="35"/>
+        <source>Grid Projection:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="47"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="60"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="72"/>
+        <source>Easting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="82"/>
+        <source>Horiz. Spacing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="92"/>
+        <source>Northing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="102"/>
+        <source>Vert. Spacing</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IItemListWidget</name>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="40"/>
+        <source>Add map files to list</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="43"/>
+        <location filename="../items/IItemListWidget.ui" line="60"/>
+        <location filename="../items/IItemListWidget.ui" line="77"/>
+        <location filename="../items/IItemListWidget.ui" line="94"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="57"/>
+        <source>Remove selected file from the list.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="74"/>
+        <source>Clear complete list of map files.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="91"/>
+        <source>Reload the currently selected map.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="14"/>
+        <source>MainWindow</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="32"/>
+        <source>Setup</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="41"/>
+        <source>View</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="47"/>
+        <source>Window</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="52"/>
+        <source>?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="67"/>
+        <source>Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="100"/>
+        <source>Shell</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="119"/>
+        <source>About</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="128"/>
+        <source>Ext. Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="131"/>
+        <source>Setup paths to external tools, like gdalwarp etc.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="143"/>
+        <location filename="../IMainWindow.ui" line="146"/>
+        <source>Flip Mouse Wheel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="155"/>
+        <location filename="../IMainWindow.ui" line="158"/>
+        <source>Setup Units</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="167"/>
+        <source>Setup Coord. Format</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="170"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="181"/>
+        <source>Show Tool Help</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayCutMap</name>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="35"/>
+        <source>Just move the map and zoom.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="58"/>
+        <source>Add point to mask.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="61"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="84"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="107"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="137"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="158"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="175"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="81"/>
+        <source>Move point of mask.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="104"/>
+        <source>Remove point from mask.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="134"/>
+        <source>Remove complete cut mask.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="155"/>
+        <source>Load cut mask from shape file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="172"/>
+        <source>Save cut mask to shape file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayGridTool</name>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="145"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayRefMap</name>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="40"/>
+        <source>Just move the map and zoom.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="63"/>
+        <source>Add reference point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="66"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="89"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="112"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="135"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="165"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="179"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="200"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="217"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="244"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="326"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="86"/>
+        <source>Move reference point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="109"/>
+        <source>Remove single reference point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="132"/>
+        <source>Move reference points with auto mode. This will pickup the next point after you moved a reference point.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="162"/>
+        <source>Remove all reference points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="176"/>
+        <source>Switch to the Grid Tool.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="197"/>
+        <source>Load reference points from GCP file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="214"/>
+        <source>Save reference points into GCP file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="241"/>
+        <source>Sort list of reference points.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="281"/>
+        <source>(x, y)[pixel]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="286"/>
+        <source>(lat, lon)[°]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="294"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="304"/>
+        <source>Final Map Projection:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="316"/>
+        <source>Enter a valid projection string. Valid strings are "+proj..." or "+init=epsg:...".</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="323"/>
+        <source>Start projection wizard.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="343"/>
+        <source>Delete</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ISetupExtTools</name>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="14"/>
+        <source>Setup Ext. Tools</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="29"/>
+        <location filename="../setup/ISetupExtTools.ui" line="62"/>
+        <location filename="../setup/ISetupExtTools.ui" line="90"/>
+        <location filename="../setup/ISetupExtTools.ui" line="111"/>
+        <location filename="../setup/ISetupExtTools.ui" line="118"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="72"/>
+        <location filename="../setup/ISetupExtTools.ui" line="100"/>
+        <location filename="../setup/ISetupExtTools.ui" line="128"/>
+        <location filename="../setup/ISetupExtTools.ui" line="142"/>
+        <location filename="../setup/ISetupExtTools.ui" line="156"/>
+        <location filename="../setup/ISetupExtTools.ui" line="183"/>
+        <location filename="../setup/ISetupExtTools.ui" line="197"/>
+        <location filename="../setup/ISetupExtTools.ui" line="211"/>
+        <location filename="../setup/ISetupExtTools.ui" line="225"/>
+        <location filename="../setup/ISetupExtTools.ui" line="239"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="173"/>
+        <source>gdal_translate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="22"/>
+        <source>gdalbuildvrt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="42"/>
+        <source>gdaladdo:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="55"/>
+        <source>gdalwarp:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="69"/>
+        <location filename="../setup/ISetupExtTools.ui" line="97"/>
+        <location filename="../setup/ISetupExtTools.ui" line="125"/>
+        <location filename="../setup/ISetupExtTools.ui" line="139"/>
+        <location filename="../setup/ISetupExtTools.ui" line="153"/>
+        <source>Setup user defined path.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="83"/>
+        <source>qmt_rgb2pct</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="180"/>
+        <location filename="../setup/ISetupExtTools.ui" line="194"/>
+        <location filename="../setup/ISetupExtTools.ui" line="208"/>
+        <location filename="../setup/ISetupExtTools.ui" line="222"/>
+        <location filename="../setup/ISetupExtTools.ui" line="236"/>
+        <source>Reset user defined path setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="252"/>
+        <source><b>Note:</b> Usually QMapTool should detect all external tools by itself. If it does not, it's a bad setup and you should fix the PATH variable of your system. You can setup the paths manually, too, if you know what you are doing. But please keep in mind that GDAL needs a proper environment setup to function properly. If it's not setup properly you might get results but these can be off grid.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolAddOverview</name>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="59"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="119"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="126"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="133"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="140"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="147"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="154"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="164"/>
+        <source>Remove all overview levels from map file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="167"/>
+        <source>Remove</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="174"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="177"/>
+        <source>Overview as external file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="207"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="221"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="232"/>
+        <source>For all files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="257"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolCutMap</name>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="114"/>
+        <source>Output filename suffix</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="133"/>
+        <source>_cut</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="148"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="176"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="190"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="201"/>
+        <source>For all files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="226"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="236"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolGrid</name>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="56"/>
+        <source>Grid Tool</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="65"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="99"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="110"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="134"/>
+        <source>Reset</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolOverviewGroupBox</name>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="14"/>
+        <source>GroupBox</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="71"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="78"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="85"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="92"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="99"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="106"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="119"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="122"/>
+        <source>Overview as external file</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolPalettize</name>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="65"/>
+        <location filename="../tool/IToolPalettize.ui" line="78"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="96"/>
+        <source>Single files, filename suffix</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="109"/>
+        <source>_8bit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="123"/>
+        <source>Combined file, filename:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="135"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="142"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="170"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="184"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="213"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="223"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="233"/>
+        <source><b style='color: red;'>No "qmt_rgb2pct" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="247"/>
+        <source>Select filename</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IToolRefMap</name>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="113"/>
+        <source>Output filename suffix</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="132"/>
+        <source>_ref</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="144"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="151"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="179"/>
+        <source>Start</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="193"/>
+        <source>Cancel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="204"/>
+        <source>For all files</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="229"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="239"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="249"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Error</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Position values out of bounds. </source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Nautical</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="31"/>
+        <source>Imperial</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="38"/>
+        <source>Metric</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmaptool/locale/qmaptool_de.ts b/src/qmaptool/locale/qmaptool_de.ts
new file mode 100644
index 0000000..a56fca6
--- /dev/null
+++ b/src/qmaptool/locale/qmaptool_de.ts
@@ -0,0 +1,1522 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="89"/>
+        <source>No map view available.</source>
+        <translation>Keine Kartenansicht verfügbar.</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Debuginformation in der Konsole ausgeben.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Debuginformation in eine Datei schreiben (temp. Pfad).</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>Das Anfangsbild nicht zeigen.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapTool configuration.</source>
+        <translation>Eine Datei mit einer QMapTool-Konfiguration.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>Datei</translation>
+    </message>
+</context>
+<context>
+    <name>CDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="39"/>
+        <source>bad coordinate</source>
+        <translation>ungültige Koordinate</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <source>Bad value for X pixel.</source>
+        <translation>Ungültiger Wert fur den X Wert des Bildpunktes.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Bad value for Y pixel.</source>
+        <translation>Ungültiger Wert fur den Y Wert des Bildpunktes.</translation>
+    </message>
+</context>
+<context>
+    <name>CDrawContextPixel</name>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <source>Failed to load file: %1</source>
+        <translation>Datei laden fehlgeschlagen: %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>Die Datei muss eine 8 Bit Farbpalette haben oder einen Graustufenindex.</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="202"/>
+        <source>(color table)</source>
+        <translation>(Farbtabelle)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="206"/>
+        <source>(RGB)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="210"/>
+        <source>(RGBA)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="214"/>
+        <source>(unknown)</source>
+        <translation>(unbekannt)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="236"/>
+        <source>Failed to load</source>
+        <translation>Datei laden fehlgeschlagen</translation>
+    </message>
+</context>
+<context>
+    <name>CGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="34"/>
+        <source>Select one of the corners and place the marker at the corresponding grid crossing on the map. All 4 corners have to be placed.</source>
+        <translation>Wählen Sie eine Ecke aus und platzieren Sie die Markierung auf dem jeweiligen Gitterpunkt der Karte. Alle 4 Ecken müssen gesetzt werden.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="160"/>
+        <source>Point 1 - not set</source>
+        <translation>Punkt 1 - nicht gesetzt</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="164"/>
+        <source>Point 1 - ok</source>
+        <translation>Punkt 1 - ok</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="169"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="174"/>
+        <source>Point 1 - bad</source>
+        <translation>Punkt 1 - falsch</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="185"/>
+        <source>Point 2 - ok</source>
+        <translation>Punkt 2 - ok</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="190"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="195"/>
+        <source>Point 2 - bad</source>
+        <translation>Punkt 2 - falsch</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="207"/>
+        <source>Point 3 - ok</source>
+        <translation>Punkt 3 - ok</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="212"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="217"/>
+        <source>Point 3 - bad</source>
+        <translation>Punkt 3 - falsch</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="229"/>
+        <source>Point 4 - ok</source>
+        <translation>Punkt 4 - ok</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="234"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="239"/>
+        <source>Point 4 - bad</source>
+        <translation>Punkt 4 - falsch</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="181"/>
+        <source>Point 2 - not set</source>
+        <translation>Punkt 2 - nicht gesetzt</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="203"/>
+        <source>Point 3 - not set</source>
+        <translation>Punkt 3 - nicht gesetzt</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="225"/>
+        <source>Point 4 - not set</source>
+        <translation>Punkt 4 - nicht gesetzt</translation>
+    </message>
+</context>
+<context>
+    <name>CGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSelArea.cpp" line="30"/>
+        <source>Select the area to be covered by the calculated reference points. Simply grab the corners of the selection rectangle with a left click and place them where you want with a second click.</source>
+        <translation>Wählen Sie das Gebiet aus, für das Referenzpunkte berechnet werden sollen. Klicken Sie dazu einfach auf die Ecken des Auswahlrechtecks mit der linken Maustaste und platzieren die Ecke wo Sie wollen mit einem zweiten Klick.</translation>
+    </message>
+</context>
+<context>
+    <name>CGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSetRef.cpp" line="37"/>
+        <source>Valid coordinate formats: If the projection is lat/lon all values have to be in degree, e.g. "48.2" or "12.4". For all other projections values are either in multiple of meter or feet. If you are doing it wrong the entry field will turn red.</source>
+        <translation>Gültige Koordinatenformate: Wenn die Projektion lat/lon Werte benötigt, müssen alle Eingaben in Grad sein, z.B. "48.2" oder "12.4". Für alle anderen Projektionen sind die Eingaben entweder in Meter oder in Fuß. Wenn etwas falsch ist, werden die Eingabefelder rot.</translation>
+    </message>
+</context>
+<context>
+    <name>CItemListWidget</name>
+    <message>
+        <location filename="../items/CItemListWidget.cpp" line="103"/>
+        <source>Select files...</source>
+        <translation>Dateien auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayCutMap</name>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Delete mask...</source>
+        <translation>Maske löschen...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Are you sure to delete complete mask?</source>
+        <translation>Wollen Sie wirklich die gesamte Maske löschen?</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="239"/>
+        <source>Save mask...</source>
+        <translation>Maske speichern...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="287"/>
+        <source>Load mask...</source>
+        <translation>Maske laden...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Failed...</source>
+        <translation>Fehlgeschlagen...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Not a shape file.</source>
+        <translation>Keine Shape-Datei.</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayGridTool</name>
+    <message>
+        <location filename="../overlay/COverlayGridTool.cpp" line="34"/>
+        <source>Before you proceed with 'ok':
+Please cross check all data once again. A bad reference coordinate will ruin all the work. Also cross check if the selected area contains as many reference points as possible at the border. You can easily delete points outside the map in the Reference Tool. But it's much more effort to set additional points in case you miss some.  When you are done press 'ok' to transfer the derived reference points to the Reference Tool.
+
+The next step will be to use the Reference Tool to adjust the position of all reference points to the real grid position on the map.</source>
+        <translation>Bevor Sie mit 'ok' fortfahren:
+Bitte überprüfen Sie alle Eingaben erneut. Ein falsche Referenzkoordinate ruiniert die ganze Arbeit. Überprüfen Sie bitte auch, ob das ausgewählte Gebiet an den Grenzen so viele Referenzpunkte wie möglich beinhaltet. Punkte außerhalb der Karte lassen sich recht einfach löschen. Neue Punkte hinzufügen, sollten welche fehlen, ist wesentlich aufwändiger. Wenn Sie fertig sind drücken Sie 'ok', um die berechneten Punkte in das Referenzwerkzeug zu übertragen. 
+
+Im nächsten Schritte benutzen Sie das Referenzwerkzeug, um die Positionen von allen Referenzpunkten auf die tatsächlichen Gitterpunkte der Karte zu verschieben. </translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMap</name>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="42"/>
+        <source>If you used the Grid Tool you have to fine tune the reference points by placing them as much as possible on the grid crossing. Be aware that if you over scale you get jumping points by rounding effects. Be precise but do not make religion out of the task.
+If your mouse focus is on the map you can use the N and B keys to jump forward an backward in the reference point list. 
+The is also the option to fine tune the reference points in auto-mode. In this mode the next reference point is selected automatically right after you placed the current one. This is very convenient for a large number of reference points.</source>
+        <translation>Wenn Sie das Gitterwerkzeug benutzt haben, müssen Sie die Punkte noch justieren, indem Sie sie auf die Gitterpunkte verschieben. Seien Sie sich bewusst, dass wenn Sie besonders nahe heranzoomen, die Punkte auf Grund von Rundungseffekten springen können. Seien sie beim Positionieren exakt, aber machen Sie daraus keine Religion.
+
+Wenn ihr Mausfokus auf der Karte ist, können Sie die N und B Tasten benützen, um sich in der Referenzpunktliste vor und zurück zu bewegen.
+Es gibt außerdem die Option, die Referenzpunkte im Automode zu justieren. In diesem Modus wird der nächste Referenzpunkt automatisch ausgewählt, nachdem Sie den aktuellen Punkt platziert haben. Diese Funktion ist sehr praktisch, wenn Sie eine große Anzahl an Punkten bearbeiten wollen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="614"/>
+        <source>Save reference points...</source>
+        <translation>Referenzpunkte speichern...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="653"/>
+        <source>Load reference points...</source>
+        <translation>Referenzpunkte laden...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Delete all reference points...</source>
+        <translation>Alle Referenzpunkte löschen...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Are you sure to delete all reference points in the list?</source>
+        <translation>Sind Sie sicher, dass Sie alle Referenzpunkte aus der Liste löschen wollen?</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Löschen...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete all selected reference points?</source>
+        <translation>Alle ausgewählten Referenzpunkte löschen?</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMapPoint</name>
+    <message>
+        <location filename="../overlay/refmap/COverlayRefMapPoint.cpp" line="43"/>
+        <source>bad coordinate</source>
+        <translation>ungültige Koordinate</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>Nord</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>Süd</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>Error...</source>
+        <translation>Fehler...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>Die Eingabe
+'%1'
+ist keine gültige Koordinatensystemdefinition:
+%2</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupExtTools</name>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="60"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="61"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="62"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="63"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="64"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation><b style='color: red;'>nicht gefunden</b></translation>
+    </message>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="75"/>
+        <source>Select %1 binary...</source>
+        <translation>Programm %1 auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CShell</name>
+    <message>
+        <location filename="../shell/CShell.cpp" line="41"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>Ausführen der externen Anwendung '%1' fehlgeschlagen:</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="45"/>
+        <source>Process cannot be started.
+</source>
+        <translation>Der Prozess kann nicht gestartet werden.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="46"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Stellen Sie sicher, dass alle benötigten Pakete installiert sind, '%1' vorhanden und ausführbar ist.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="50"/>
+        <source>External process crashed.
+</source>
+        <translation>Der externe Prozess ist abgestürzt.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="54"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Ein unbekannter Fehler ist aufgetreten.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="146"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! fehlgeschlagen !!!</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="161"/>
+        <source>
+Canceled by user's request.
+</source>
+        <translation>
+Durch den Benutzer abgebrochen.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="191"/>
+        <source>!!! done !!!
+</source>
+        <translation>!!! fertig !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CToolAddOverview</name>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="30"/>
+        <source>Add Overviews</source>
+        <translation>Übersichten hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="32"/>
+        <source>Raster map files consume quite some memory if a larger area is displayed. Pre-calculated overview levels help to speed up loading and displaying the map. These overviews can be stored within the map file as well as an external file. GDAL can remove internally stored overviews, however it will not free the used space in the file. Therefore it's size will remain large. If you do not like that use the external option.</source>
+        <translation type="unfinished">Rasterkarten benötigen recht viel Speicher, wenn ein größeres Gebiet angezeigt werden soll. Vorberechnete Übersichtsebenen helfen dabei, die Karte zu laden und anzuzeigen. Diese Übersichtsebenen können in der Kartendatei oder als externe Datei gespeichert werden. GDAL kann zwar interne Übersichtsebenen entfernen, gibt dabei aber leider den Speicher nicht frei. Deswegen wird die Datei groß bleiben. Wenn Sie das nicht wünschen, dann sollten Sie die Op [...]
+    </message>
+</context>
+<context>
+    <name>CToolCutMap</name>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="30"/>
+        <source>Cut Map</source>
+        <translation>Karte freistellen</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="32"/>
+        <source>Paper maps usually have a border you don't want to have. To combine maps seamlessly you have to cut that border, replacing it by transparent pixel. This tool allows you to define a cut line and it will add an alpha channel for transparency to your map.</source>
+        <translation>Papierkarten haben üblicherweise einen Rand, den man nicht dabei haben will. Um Karten blattschnittfrei zu kombinieren, muss man diesen Rand ausschneiden und durch transparente Bildpunkte ersetzen. Dieses Werkzeug ermöglicht es Ihnen, eine Schnittmaske zu erstellen, um damit einen Alphakanal mit den transparenten Bildpunkten zu erstellen. </translation>
+    </message>
+</context>
+<context>
+    <name>CToolGrid</name>
+    <message>
+        <location filename="../tool/CToolGrid.cpp" line="37"/>
+        <source>By placing 4 reference points at the corners of a grid square and referencing them by their top left corner, the width and height, all the other grid points can be estimated.</source>
+        <translation>Indem Sie 4 Referenzpunkte in den Ecken eines Gitterquadrates setzen und diese über die obere linke Ecke und die Breite und Höhe referenzieren, können alle anderen Gitterpunkte ungefähr berechnet werden.</translation>
+    </message>
+</context>
+<context>
+    <name>CToolPalettize</name>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="30"/>
+        <source>Add Color Palette</source>
+        <translation>Farbtabelle erzeugen</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="34"/>
+        <source>Usually you use RGBA color while referencing a map because the large color space allows you to scale and rotate the map without any loss of quality. But it results into rather large files. The file size can be optimized by using a color palette instead of the RGBA color space. The impact on quality is low as long as you do not want to scale or rotate the map. If you want to combine files with a color palette all files need to have the same palette.</source>
+        <translation>Üblicherweise benützt man RGBA Farben während man eine Karte referenziert, weil der große Farbraum einem erlaubt, die Karte ohne Qualitätseinbuße zu drehen und zu skalieren. Leider wird deswegen auch die Datei sehr groß. Die Größe kann optimiert werden, wenn man eine Farbpalette anstelle von RGBA verwendet. Die Qualitätseinbußen sind gering, solange man die Karte nicht drehen oder skalieren möchte. Wenn Sie mehrer Karten zusammenfügen wolle, müssen alle dieselbe Pale [...]
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="46"/>
+        <source>Note: This tool will use all files in the list as a combined input to derive an optimal palette. This will only work if all files have the same projection and scale.</source>
+        <translation>Anmerkung: Dieses Werkzeug benützt alle Dateien in der Liste als gemeinsame Eingabe, um eine optimale Palette zu berechnen. Das kann nur funktionieren, wenn alle Dateien die gleiche Projektion und Skalierung haben.</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="106"/>
+        <source>Select filename...</source>
+        <translation>Dateinamen auswählen...</translation>
+    </message>
+</context>
+<context>
+    <name>CToolRefMap</name>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="34"/>
+        <source>Reference Map</source>
+        <translation>Karte referenzieren</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="36"/>
+        <source>A scan of a paper map can be converted to a referenced raster map if you place at least three reference points on the map. The more points the better the result. If your map has a grid you can place points on that grid with the grid tool.</source>
+        <translation>Eine gescannte Papierkarte kann in eine referenzierte Rasterkarte umgewandelt werden, indem Sie mindestens 3 Referenzpunkte auf der Karte angeben. Je mehr Punkte Sie setzen, desto besser. Wenn ihre Karte eine Gitter besitzt, können Sie Punkte auf dem Gitter mit dem Gitterwerkzeug setzen.</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About...</source>
+        <translation>Über...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="26"/>
+        <source><b>QMapTool</b>, Version</source>
+        <translation><b>QMapTool</b>, Version</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="39"/>
+        <location filename="../IAbout.ui" line="77"/>
+        <location filename="../IAbout.ui" line="91"/>
+        <location filename="../IAbout.ui" line="105"/>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="70"/>
+        <source>Qt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="84"/>
+        <source>GDAL</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="98"/>
+        <source>Proj4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="121"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Diese Software steht unter der GPL3 Lizenz, oder einer neueren Version</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="128"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Koordinatenformat...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="24"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="31"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="38"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation><b>Anmerkung:</b> Bei einigen GUI Elementen wird die Änderung erst mit einem Neustart von QMapTool übernommen.</translation>
+    </message>
+</context>
+<context>
+    <name>IDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="14"/>
+        <source>Dialog</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="25"/>
+        <source>Coord. Map File [pixel]</source>
+        <translation>Koord. Karte [pixel]</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="32"/>
+        <source>x</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="42"/>
+        <source>y</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="49"/>
+        <source>Coord. lat/lon WGS84 [°]</source>
+        <translation>Koord. lat/lon WGS84 [°]</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Falsches Format. Entweder: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+oder
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="150"/>
+        <source>Reset</source>
+        <translation>Zurücksetzen</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="224"/>
+        <source>Set Area</source>
+        <translation>Abdeckung</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="35"/>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="35"/>
+        <source>Grid Projection:</source>
+        <translation>Gitterprojektion:</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="47"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="60"/>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="72"/>
+        <source>Easting</source>
+        <translation>Ostwert</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="82"/>
+        <source>Horiz. Spacing</source>
+        <translation>horiz. Abstand</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="92"/>
+        <source>Northing</source>
+        <translation>Nordwert</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="102"/>
+        <source>Vert. Spacing</source>
+        <translation>vert. Abstand</translation>
+    </message>
+</context>
+<context>
+    <name>IItemListWidget</name>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="40"/>
+        <source>Add map files to list</source>
+        <translation>Kartendateien zur Liste hinzufügen</translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="43"/>
+        <location filename="../items/IItemListWidget.ui" line="60"/>
+        <location filename="../items/IItemListWidget.ui" line="77"/>
+        <location filename="../items/IItemListWidget.ui" line="94"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="57"/>
+        <source>Remove selected file from the list.</source>
+        <translation>Ausgewählte Dateien aus der Liste entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="74"/>
+        <source>Clear complete list of map files.</source>
+        <translation>Die komplette Kartendateiliste löschen. </translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="91"/>
+        <source>Reload the currently selected map.</source>
+        <translation>Die aktuell ausgewählte Karte erneut laden.</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="14"/>
+        <source>MainWindow</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="32"/>
+        <source>Setup</source>
+        <translation>Einrichten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="41"/>
+        <source>View</source>
+        <translation>Ansicht</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="47"/>
+        <source>Window</source>
+        <translation>Fenster</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="52"/>
+        <source>?</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="67"/>
+        <source>Tools</source>
+        <translation>Werkzeuge</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="100"/>
+        <source>Shell</source>
+        <translation>Shell</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="119"/>
+        <source>About</source>
+        <translation>Über</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="128"/>
+        <source>Ext. Tools</source>
+        <translation>Ext. Werkzeuge</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="131"/>
+        <source>Setup paths to external tools, like gdalwarp etc.</source>
+        <translation>Pfade zu den externen Werkzeugen, wie z.B. gdalwarp, einrichten.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="143"/>
+        <location filename="../IMainWindow.ui" line="146"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Mausrad umdrehen</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="155"/>
+        <location filename="../IMainWindow.ui" line="158"/>
+        <source>Setup Units</source>
+        <translation>Einheiten einrichten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="167"/>
+        <source>Setup Coord. Format</source>
+        <translation>Koordinatenformat einrichten</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="170"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Das Format, in dem die Koordinaten angezeigt werden, ändern</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="181"/>
+        <source>Show Tool Help</source>
+        <translation>Hilfstexte anzeigen</translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayCutMap</name>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="35"/>
+        <source>Just move the map and zoom.</source>
+        <translation>Die Karte verschieben und zoomen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="58"/>
+        <source>Add point to mask.</source>
+        <translation>Punkte zur Maske hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="61"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="84"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="107"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="137"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="158"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="175"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="81"/>
+        <source>Move point of mask.</source>
+        <translation>Maskenpunkte verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="104"/>
+        <source>Remove point from mask.</source>
+        <translation>Punkte aus der Maske entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="134"/>
+        <source>Remove complete cut mask.</source>
+        <translation>Die komplette Freistellmaske entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="155"/>
+        <source>Load cut mask from shape file.</source>
+        <translation>Freistellmaske aus einer Shapedatei laden.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="172"/>
+        <source>Save cut mask to shape file.</source>
+        <translation>Freistellmaske in einer Shapedatei speichern.</translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayGridTool</name>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="145"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayRefMap</name>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="40"/>
+        <source>Just move the map and zoom.</source>
+        <translation>Die Karte verschieben und zoomen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="63"/>
+        <source>Add reference point.</source>
+        <translation>Referenzpunkte hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="66"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="89"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="112"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="135"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="165"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="179"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="200"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="217"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="244"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="326"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="86"/>
+        <source>Move reference point.</source>
+        <translation>Referenzpunkte verschieben.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="109"/>
+        <source>Remove single reference point.</source>
+        <translation>Referenzpunkte löschen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="132"/>
+        <source>Move reference points with auto mode. This will pickup the next point after you moved a reference point.</source>
+        <translation>Referenzpunkte im Automode verschieben. Nachdem der aktuelle Punkt verschoben wurde, wird automatisch der Nächste genommen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="162"/>
+        <source>Remove all reference points.</source>
+        <translation>Alle Referenzpunkte löschen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="176"/>
+        <source>Switch to the Grid Tool.</source>
+        <translation>Auf das Gitterwerkzeug umschalten.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="197"/>
+        <source>Load reference points from GCP file.</source>
+        <translation>Referenzpunkte aus einer GCP Datei lesen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="214"/>
+        <source>Save reference points into GCP file.</source>
+        <translation>Referenzpunkte in eine GCP Datei speichern.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="241"/>
+        <source>Sort list of reference points.</source>
+        <translation>Die Liste der Referenzpunkte sortieren.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="281"/>
+        <source>(x, y)[pixel]</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="286"/>
+        <source>(lat, lon)[°]</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="294"/>
+        <source>TextLabel</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="304"/>
+        <source>Final Map Projection:</source>
+        <translation>Endgültige Kartenprojektion:</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="316"/>
+        <source>Enter a valid projection string. Valid strings are "+proj..." or "+init=epsg:...".</source>
+        <translation>Geben Sie einen gültigen Projektionstext ein. Gültige Formen sind "+proj=..." oder "+init=...".</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="323"/>
+        <source>Start projection wizard.</source>
+        <translation>Den Projektionsassistenten öffnen.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="343"/>
+        <source>Delete</source>
+        <translation>Löschen</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation>Proj4 Assistent</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>Zone</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>benutzerdefiniert</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation>Datum</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Ergebnis:</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Projektion</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupExtTools</name>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="14"/>
+        <source>Setup Ext. Tools</source>
+        <translation>Externe Werkzeuge einstellen</translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="29"/>
+        <location filename="../setup/ISetupExtTools.ui" line="62"/>
+        <location filename="../setup/ISetupExtTools.ui" line="90"/>
+        <location filename="../setup/ISetupExtTools.ui" line="111"/>
+        <location filename="../setup/ISetupExtTools.ui" line="118"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation><b style='color: red;'>nicht gefunden</b></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="72"/>
+        <location filename="../setup/ISetupExtTools.ui" line="100"/>
+        <location filename="../setup/ISetupExtTools.ui" line="128"/>
+        <location filename="../setup/ISetupExtTools.ui" line="142"/>
+        <location filename="../setup/ISetupExtTools.ui" line="156"/>
+        <location filename="../setup/ISetupExtTools.ui" line="183"/>
+        <location filename="../setup/ISetupExtTools.ui" line="197"/>
+        <location filename="../setup/ISetupExtTools.ui" line="211"/>
+        <location filename="../setup/ISetupExtTools.ui" line="225"/>
+        <location filename="../setup/ISetupExtTools.ui" line="239"/>
+        <source>...</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="173"/>
+        <source>gdal_translate:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="22"/>
+        <source>gdalbuildvrt</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="42"/>
+        <source>gdaladdo:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="55"/>
+        <source>gdalwarp:</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="69"/>
+        <location filename="../setup/ISetupExtTools.ui" line="97"/>
+        <location filename="../setup/ISetupExtTools.ui" line="125"/>
+        <location filename="../setup/ISetupExtTools.ui" line="139"/>
+        <location filename="../setup/ISetupExtTools.ui" line="153"/>
+        <source>Setup user defined path.</source>
+        <translation>Benutzerdefinierten Pfad einstellen.</translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="83"/>
+        <source>qmt_rgb2pct</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="180"/>
+        <location filename="../setup/ISetupExtTools.ui" line="194"/>
+        <location filename="../setup/ISetupExtTools.ui" line="208"/>
+        <location filename="../setup/ISetupExtTools.ui" line="222"/>
+        <location filename="../setup/ISetupExtTools.ui" line="236"/>
+        <source>Reset user defined path setup.</source>
+        <translation>Benutzerdefinierten Pfad zurücksetzen.</translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="252"/>
+        <source><b>Note:</b> Usually QMapTool should detect all external tools by itself. If it does not, it's a bad setup and you should fix the PATH variable of your system. You can setup the paths manually, too, if you know what you are doing. But please keep in mind that GDAL needs a proper environment setup to function properly. If it's not setup properly you might get results but these can be off grid.</source>
+        <translation><b>Anmerkung:</b> Normalerweise sollte QMapTool alle externen Werkzeuge selber finden. Wenn das nicht gelingt, liegt es in der Regel an einer schlechten Einstellung und Sie sollten die PATH Variable ihres Systems überprüfen. Man kann die Werkzeugpfade auch selber setzen. Vorausgesetzt, man weiß was man macht. Bitte bedenken Sie, dass GDAL eine ordentlich aufgesetzte Umgebung benötigt, um fachgerecht zu funktionieren. Wenn dem nicht so ist, können durchaus [...]
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Zeitzone einstellen...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation>Lokal</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automatisch</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Datum/Zeit anzeigen im</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>langen Format</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>kurzen Format</translation>
+    </message>
+</context>
+<context>
+    <name>IToolAddOverview</name>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="59"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="119"/>
+        <source>:2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="126"/>
+        <source>:4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="133"/>
+        <source>:8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="140"/>
+        <source>:16</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="147"/>
+        <source>:32</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="154"/>
+        <source>:64</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="164"/>
+        <source>Remove all overview levels from map file.</source>
+        <translation>Alle Übersichten aus der Kartendatei entfernen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="167"/>
+        <source>Remove</source>
+        <translation>Löschen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="174"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation>Die Übersichten nicht in der Datei selbst anlegen. Als extra Datei hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="177"/>
+        <source>Overview as external file</source>
+        <translation>Übersichten als externe Datei</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="207"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="221"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="232"/>
+        <source>For all files</source>
+        <translation>Für alle Dateien</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="257"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdaladdo"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IToolCutMap</name>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="114"/>
+        <source>Output filename suffix</source>
+        <translation>Suffix der Ausgabedatei</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="133"/>
+        <source>_cut</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="148"/>
+        <source>Create overviews for result.</source>
+        <translation>Übersichten für das Ergebnis erzeugen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="176"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="190"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="201"/>
+        <source>For all files</source>
+        <translation>Für alle Dateien</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="226"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdalwarp"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="236"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdaladdo"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IToolGrid</name>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="56"/>
+        <source>Grid Tool</source>
+        <translation>Gitterwerkzeug</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="65"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="99"/>
+        <source>Ok</source>
+        <translation>OK</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="110"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="134"/>
+        <source>Reset</source>
+        <translation>Zurücksetzen</translation>
+    </message>
+</context>
+<context>
+    <name>IToolOverviewGroupBox</name>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="14"/>
+        <source>GroupBox</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="71"/>
+        <source>:2</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="78"/>
+        <source>:4</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="85"/>
+        <source>:8</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="92"/>
+        <source>:16</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="99"/>
+        <source>:32</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="106"/>
+        <source>:64</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="119"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation>Die Übersichten nicht in der Datei selber anlegen. Als extra Datei hinzufügen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="122"/>
+        <source>Overview as external file</source>
+        <translation>Übersichten als externe Datei</translation>
+    </message>
+</context>
+<context>
+    <name>IToolPalettize</name>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="65"/>
+        <location filename="../tool/IToolPalettize.ui" line="78"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="96"/>
+        <source>Single files, filename suffix</source>
+        <translation>Einzelne Dateien, Dateinamensuffix</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="109"/>
+        <source>_8bit</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="123"/>
+        <source>Combined file, filename:</source>
+        <translation>In einer Datei zusammenfassen, Dateiname:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="135"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation>Ergebnis in eine *.vrt Datei einbetten.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="142"/>
+        <source>Create overviews for result.</source>
+        <translation>Übersichten für das Ergebnis erzeugen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="170"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="184"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="213"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdaladdo"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="223"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdal_translate"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="233"/>
+        <source><b style='color: red;'>No "qmt_rgb2pct" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"qmt_rgb2pct"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="247"/>
+        <source>Select filename</source>
+        <translation>Dateinamen auswählen</translation>
+    </message>
+</context>
+<context>
+    <name>IToolRefMap</name>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="113"/>
+        <source>Output filename suffix</source>
+        <translation>Suffix der Ausgabedatei</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="132"/>
+        <source>_ref</source>
+        <translation></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="144"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation>Ergebnis in eine *.vrt Datei einbetten.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="151"/>
+        <source>Create overviews for result.</source>
+        <translation>Übersichten für das Ergebnis erzeugen.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="179"/>
+        <source>Start</source>
+        <translation>Start</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="193"/>
+        <source>Cancel</source>
+        <translation>Abbrechen</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="204"/>
+        <source>For all files</source>
+        <translation>Für alle Dateien</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="229"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdalwarp"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="239"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdal_translate"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="249"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"gdaladdo"nicht gefunden. Bitte überprüfen Sie die Einstellungen!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Error</source>
+        <translation>Fehler</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Falsches Format. Entweder: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+oder
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Position values out of bounds. </source>
+        <translation>Positionswerte außerhalb der Grenzen. </translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Einheiten einrichten...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Nautical</source>
+        <translation>nautisch</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="31"/>
+        <source>Imperial</source>
+        <translation>imperial</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="38"/>
+        <source>Metric</source>
+        <translation>metrisch</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation><b>Anmerkung:</b> Bei einigen GUI Elementen wird die Änderung erst mit einem Neustart von QMapTool übernommen.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmaptool/locale/qmaptool_es.ts b/src/qmaptool/locale/qmaptool_es.ts
new file mode 100644
index 0000000..0ac4603
--- /dev/null
+++ b/src/qmaptool/locale/qmaptool_es.ts
@@ -0,0 +1,1518 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1">
+<context>
+    <name>CCanvas</name>
+    <message>
+        <location filename="../canvas/CCanvas.cpp" line="89"/>
+        <source>No map view available.</source>
+        <translation>Vista de mapa no disponible.</translation>
+    </message>
+</context>
+<context>
+    <name>CCommandProcessor</name>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="31"/>
+        <source>Print debug output to console.</source>
+        <translation>Mostrar salida de depuración en la consola</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="34"/>
+        <source>Print debug output to logfile (temp. path).</source>
+        <translation>Mostrar salida de depuración en archivo log (Carpeta temporal)</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="37"/>
+        <source>Do not show splash screen.</source>
+        <translation>No mostrar pantalla de bienvenida.</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>File with QMapTool configuration.</source>
+        <translation>Archivo con la configuración de QMapTool</translation>
+    </message>
+    <message>
+        <location filename="../setup/CCommandProcessor.cpp" line="40"/>
+        <source>file</source>
+        <translation>archivo</translation>
+    </message>
+</context>
+<context>
+    <name>CDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="39"/>
+        <source>bad coordinate</source>
+        <translation>Coordenada incorrecta</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Error</source>
+        <translation>Error</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="58"/>
+        <source>Bad value for X pixel.</source>
+        <translation>Valor incorrecto para el pixel X.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CDialogRefPoint.cpp" line="64"/>
+        <source>Bad value for Y pixel.</source>
+        <translation>Valor incorrecto para el pixel Y</translation>
+    </message>
+</context>
+<context>
+    <name>CDrawContextPixel</name>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="78"/>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="91"/>
+        <source>Failed to load file: %1</source>
+        <translation>Fallo al cargar el archivo: %1</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="121"/>
+        <source>File must be 8 bit palette or gray indexed.</source>
+        <translation>El archivo debe de tener una paleta superior a 8 bits o gris indexado.</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="202"/>
+        <source>(color table)</source>
+        <translation>(tabla de color)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="206"/>
+        <source>(RGB)</source>
+        <translation>(RGB)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="210"/>
+        <source>(RGBA)</source>
+        <translation>(RGBA)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="214"/>
+        <source>(unknown)</source>
+        <translation type="unfinished">(desconocido)</translation>
+    </message>
+    <message>
+        <location filename="../canvas/CDrawContextPixel.cpp" line="236"/>
+        <source>Failed to load</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>CGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="34"/>
+        <source>Select one of the corners and place the marker at the corresponding grid crossing on the map. All 4 corners have to be placed.</source>
+        <translation>Seleccione una de las esquinas y coloque el marcador en el cruce de cuadrícula correspondiente en el mapa. Las 4 esquinas tienen que estar colocadas.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="160"/>
+        <source>Point 1 - not set</source>
+        <translation>Punto 1 - no establecido</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="164"/>
+        <source>Point 1 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="169"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="174"/>
+        <source>Point 1 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="185"/>
+        <source>Point 2 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="190"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="195"/>
+        <source>Point 2 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="207"/>
+        <source>Point 3 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="212"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="217"/>
+        <source>Point 3 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="229"/>
+        <source>Point 4 - ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="234"/>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="239"/>
+        <source>Point 4 - bad</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="181"/>
+        <source>Point 2 - not set</source>
+        <translation>Punto 2 - no establecido</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="203"/>
+        <source>Point 3 - not set</source>
+        <translation>Punto 3 - no establecido</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/CGridPlacer.cpp" line="225"/>
+        <source>Point 4 - not set</source>
+        <translation>Punto 4 - no establecido</translation>
+    </message>
+</context>
+<context>
+    <name>CGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSelArea.cpp" line="30"/>
+        <source>Select the area to be covered by the calculated reference points. Simply grab the corners of the selection rectangle with a left click and place them where you want with a second click.</source>
+        <translation>Seleccione el área cibierta por los puntos de referencia calculados. Simplemente tome las esquinas del rectángulo de selección con un clic izquierdo y colóquelas donde desee con un segundo clic.</translation>
+    </message>
+</context>
+<context>
+    <name>CGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/CGridSetRef.cpp" line="37"/>
+        <source>Valid coordinate formats: If the projection is lat/lon all values have to be in degree, e.g. "48.2" or "12.4". For all other projections values are either in multiple of meter or feet. If you are doing it wrong the entry field will turn red.</source>
+        <translation>Formatos de coordenadas válidos: si la proyección es lat / lon, todos los valores deben estar en grados, p. "48,2" o "12,4". Para el resto de las proyecciones, los valores están en múltiplos de metro o pies. Si lo está haciendo mal, el campo de entrada se pondrá rojo.</translation>
+    </message>
+</context>
+<context>
+    <name>CItemListWidget</name>
+    <message>
+        <location filename="../items/CItemListWidget.cpp" line="103"/>
+        <source>Select files...</source>
+        <translation>Seleccione archivos...</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayCutMap</name>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Delete mask...</source>
+        <translation>Borrar máscara...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="222"/>
+        <source>Are you sure to delete complete mask?</source>
+        <translation>¿Está seguro de eliminar la mascara completa?</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="239"/>
+        <source>Save mask...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="287"/>
+        <source>Load mask...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Failed...</source>
+        <translation>Fallo...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayCutMap.cpp" line="301"/>
+        <source>Not a shape file.</source>
+        <translation>No es un archivo shape.</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayGridTool</name>
+    <message>
+        <location filename="../overlay/COverlayGridTool.cpp" line="34"/>
+        <source>Before you proceed with 'ok':
+Please cross check all data once again. A bad reference coordinate will ruin all the work. Also cross check if the selected area contains as many reference points as possible at the border. You can easily delete points outside the map in the Reference Tool. But it's much more effort to set additional points in case you miss some.  When you are done press 'ok' to transfer the derived reference points to the Reference Tool.
+
+The next step will be to use the Reference Tool to adjust the position of all reference points to the real grid position on the map.</source>
+        <translation>Antes de continuar pulsando 'ok':
+Por favor, verifique todos los datos una vez más. Una mala coordenada de referencia arruinará todo el trabajo. Verifique también si el área seleccionada contiene tantos puntos como sea posible en el borde. Puede eliminar puntos fácilmente fuera del mapa en la Herramienta de Referencia. Pero es mucho más esfuerzo establecer puntos adicionales en caso de que se pierda alguno. Cuando haya terminado, pulse 'ok' para transferir los puntos derivados a la Herramienta de Referencia.
+
+El siguiente paso será usar la herramienta de referencia para ajustar la posición de todos los puntos a la posición de la cuadrícula real en el mapa.</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMap</name>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="42"/>
+        <source>If you used the Grid Tool you have to fine tune the reference points by placing them as much as possible on the grid crossing. Be aware that if you over scale you get jumping points by rounding effects. Be precise but do not make religion out of the task.
+If your mouse focus is on the map you can use the N and B keys to jump forward an backward in the reference point list. 
+The is also the option to fine tune the reference points in auto-mode. In this mode the next reference point is selected automatically right after you placed the current one. This is very convenient for a large number of reference points.</source>
+        <translation>Si utilizó la Herramienta de cuadrícula, debe ajustar los puntos de referencia colocándolos en el cruce de la cuadrícula lo máximo posible. Tenga en cuenta que si sobre escala obtendrá puntos con valores redondeados. Sea preciso, pero no haga de la tarea una religión.
+Si el mapa esta en el primer plano del foco del ratón, puede usar las teclas N y B para avanzar y retroceder en la lista de puntos de referencia.
+También es la opción para ajustar los puntos de referencia en modo automático. En este modo, el siguiente punto de referencia se selecciona automáticamente justo después de que coloque el actual. Esto es muy conveniente para una gran cantidad de puntos de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="614"/>
+        <source>Save reference points...</source>
+        <translation>Guardar puntos de referencia...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="653"/>
+        <source>Load reference points...</source>
+        <translation>Cargar puntos de referencia...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Delete all reference points...</source>
+        <translation>Borrar todos los puntos de referencia...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="694"/>
+        <source>Are you sure to delete all reference points in the list?</source>
+        <translation>¿Está seguro de borrar todos los puntos de la lista?</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete...</source>
+        <translation>Borrar...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/COverlayRefMap.cpp" line="729"/>
+        <source>Delete all selected reference points?</source>
+        <translation>¿Borrar todos los puntos seleccionados?</translation>
+    </message>
+</context>
+<context>
+    <name>COverlayRefMapPoint</name>
+    <message>
+        <location filename="../overlay/refmap/COverlayRefMapPoint.cpp" line="43"/>
+        <source>bad coordinate</source>
+        <translation>Coordenada incorrecta</translation>
+    </message>
+</context>
+<context>
+    <name>CProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="62"/>
+        <source>north</source>
+        <translation>Norte</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="63"/>
+        <source>south</source>
+        <translation>Sur</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>Error...</source>
+        <translation>Error...</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/CProjWizard.cpp" line="227"/>
+        <source>The value
+'%1'
+is not a valid coordinate system definition:
+%2</source>
+        <translation>El valor
+'%1'
+No es una definición válida del sistema de coordenadas:
+%2</translation>
+    </message>
+</context>
+<context>
+    <name>CSetupExtTools</name>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="60"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="61"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="62"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="63"/>
+        <location filename="../setup/CSetupExtTools.cpp" line="64"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation><b style='color: red;'>no encontrado</b></translation>
+    </message>
+    <message>
+        <location filename="../setup/CSetupExtTools.cpp" line="75"/>
+        <source>Select %1 binary...</source>
+        <translation type="unfinished">Seleccione %1 binario</translation>
+    </message>
+</context>
+<context>
+    <name>CShell</name>
+    <message>
+        <location filename="../shell/CShell.cpp" line="41"/>
+        <source>Execution of external program `%1` failed: </source>
+        <translation>La ejecución del programa externo `%1` falló:</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="45"/>
+        <source>Process cannot be started.
+</source>
+        <translation>El proceso no se puede iniciar.
+</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="46"/>
+        <source>Make sure the required packages are installed, `%1` exists and is executable.
+</source>
+        <translation>Asegúrese de que los paquetes requeridos están instalados, `%1` existe y es ejecutable.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="50"/>
+        <source>External process crashed.
+</source>
+        <translation>Proceso externo bloqueado.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="54"/>
+        <source>An unknown error occurred.
+</source>
+        <translation>Ha ocurrido un error desconocido</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="146"/>
+        <source>!!! failed !!!
+</source>
+        <translation>!!! falló !!!</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="161"/>
+        <source>
+Canceled by user's request.
+</source>
+        <translation>Cancelado por petición del usuario.</translation>
+    </message>
+    <message>
+        <location filename="../shell/CShell.cpp" line="191"/>
+        <source>!!! done !!!
+</source>
+        <translation>¡¡¡ hecho !!!</translation>
+    </message>
+</context>
+<context>
+    <name>CToolAddOverview</name>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="30"/>
+        <source>Add Overviews</source>
+        <translation>Añadir niveles de zoom</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolAddOverview.cpp" line="32"/>
+        <source>Raster map files consume quite some memory if a larger area is displayed. Pre-calculated overview levels help to speed up loading and displaying the map. These overviews can be stored within the map file as well as an external file. GDAL can remove internally stored overviews, however it will not free the used space in the file. Therefore it's size will remain large. If you do not like that use the external option.</source>
+        <translation>Los archivos de mapa raster son muy pesados si el área abarcada es grande. Los niveles de zoom precalculados ayudan a acelerar la carga y la visualización del mapa. Estos niveles se pueden almacenar dentro del archivo del mapa o en un archivo externo. GDAL puede eliminar niveles de zoom almacenados internamente, sin embargo, el peso del archivo seguirá siendo el mismo. Puede usar la opción de archivo externo si esto no le gusta.</translation>
+    </message>
+</context>
+<context>
+    <name>CToolCutMap</name>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="30"/>
+        <source>Cut Map</source>
+        <translation>Cortar Mapa</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolCutMap.cpp" line="32"/>
+        <source>Paper maps usually have a border you don't want to have. To combine maps seamlessly you have to cut that border, replacing it by transparent pixel. This tool allows you to define a cut line and it will add an alpha channel for transparency to your map.</source>
+        <translation>Los mapas en papel suelen tener un marco en blanco innecesario. Para combinar mapas a la perfección, debe cortar ese borde y reemplazarlo por un píxel transparente. Esta herramienta le permite definir una línea de corte y agregar un canal alfa para la transparencia de su mapa.</translation>
+    </message>
+</context>
+<context>
+    <name>CToolGrid</name>
+    <message>
+        <location filename="../tool/CToolGrid.cpp" line="37"/>
+        <source>By placing 4 reference points at the corners of a grid square and referencing them by their top left corner, the width and height, all the other grid points can be estimated.</source>
+        <translation>Al poner los 4 puntos de referencia en las esquinas de un cuadrado de la cuadrícula y referenciarlos en ancho y alto por su esquina superior izquierda, todos los otros puntos se pueden estimar.</translation>
+    </message>
+</context>
+<context>
+    <name>CToolPalettize</name>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="30"/>
+        <source>Add Color Palette</source>
+        <translation>Añadir Paleta de Color</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="34"/>
+        <source>Usually you use RGBA color while referencing a map because the large color space allows you to scale and rotate the map without any loss of quality. But it results into rather large files. The file size can be optimized by using a color palette instead of the RGBA color space. The impact on quality is low as long as you do not want to scale or rotate the map. If you want to combine files with a color palette all files need to have the same palette.</source>
+        <translation>Por lo general, se utiliza color RGBA mientras se referencia un mapa, ya que el gran espacio de color le permite escalar y rotar sin pérdida de calidad, pero los archivos resultantes son muy grandes. El tamaño del archivo se puede optimizar utilizando una paleta de colores en lugar del espacio de color RGBA. El impacto en la calidad es bajo siempre y cuando no desee escalar o rotar. Si desea combinar archivos con una paleta de colores, todos deben de tener la misma.< [...]
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="46"/>
+        <source>Note: This tool will use all files in the list as a combined input to derive an optimal palette. This will only work if all files have the same projection and scale.</source>
+        <translation>Nota: Esta herramienta utilizará los archivos de la lista como una entrada combinada para derivar una paleta óptima. Esto solo funcionará si todos los archivos tienen la misma proyección y escala.</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolPalettize.cpp" line="106"/>
+        <source>Select filename...</source>
+        <translation>Seleccione nombre de archivo...</translation>
+    </message>
+</context>
+<context>
+    <name>CToolRefMap</name>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="34"/>
+        <source>Reference Map</source>
+        <translation>Mapa de referencia</translation>
+    </message>
+    <message>
+        <location filename="../tool/CToolRefMap.cpp" line="36"/>
+        <source>A scan of a paper map can be converted to a referenced raster map if you place at least three reference points on the map. The more points the better the result. If your map has a grid you can place points on that grid with the grid tool.</source>
+        <translation>Un mapa de papel escaneado se puede convertir en un mapa raster referenciado si coloca al menos tres puntos de referencia en el mapa. Cuantos más puntos, mejor es el resultado. Si su mapa tiene una cuadrícula, puede colocar puntos en esa cuadrícula con la herramienta de cuadrícula.</translation>
+    </message>
+</context>
+<context>
+    <name>IAbout</name>
+    <message>
+        <location filename="../IAbout.ui" line="14"/>
+        <source>About...</source>
+        <translation>Acerca de...</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="26"/>
+        <source><b>QMapTool</b>, Version</source>
+        <translation><b>QMapTool</b>, Versión</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="39"/>
+        <location filename="../IAbout.ui" line="77"/>
+        <location filename="../IAbout.ui" line="91"/>
+        <location filename="../IAbout.ui" line="105"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="70"/>
+        <source>Qt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="84"/>
+        <source>GDAL</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="98"/>
+        <source>Proj4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="121"/>
+        <source>This software is licensed under GPL3 or any later version</source>
+        <translation>Este programa está licenciado bajo GPL3 o cualquier versión posterior</translation>
+    </message>
+    <message>
+        <location filename="../IAbout.ui" line="128"/>
+        <source>© 2017 Oliver Eichler (oliver.eichler at gmx.de)</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>ICoordFormatSetup</name>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="14"/>
+        <source>Coordinate Format...</source>
+        <translation>Formato de Coordenadas...</translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="24"/>
+        <source>N48° 53' 39.6" E13° 31' 6.78"</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="31"/>
+        <source>N48.8943° E013.51855°</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="38"/>
+        <source>N48° 53.660 E013° 31.113</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ICoordFormatSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation><b>Nota:</b> Para algunos elementos de la interfaz cambiar las unidades no tendrá efecto hasta que reinicie QMapTool</translation>
+    </message>
+</context>
+<context>
+    <name>IDialogRefPoint</name>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="14"/>
+        <source>Dialog</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="25"/>
+        <source>Coord. Map File [pixel]</source>
+        <translation type="unfinished">Coord. archivo Map [pixel]</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="32"/>
+        <source>x</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="42"/>
+        <source>y</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="49"/>
+        <source>Coord. lat/lon WGS84 [°]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IDialogRefPoint.ui" line="59"/>
+        <source>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Formato de posición incorrecto. Debe ser: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+o
+"[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+</context>
+<context>
+    <name>IGridPlacer</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="150"/>
+        <source>Reset</source>
+        <translation>Reiniciar</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridPlacer.ui" line="224"/>
+        <source>Set Area</source>
+        <translation>Establecer área</translation>
+    </message>
+</context>
+<context>
+    <name>IGridSelArea</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSelArea.ui" line="35"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>IGridSetRef</name>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="35"/>
+        <source>Grid Projection:</source>
+        <translation>Proyección de la Malla:</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="47"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="60"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="72"/>
+        <source>Easting</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="82"/>
+        <source>Horiz. Spacing</source>
+        <translation>Espaciado horizontal</translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="92"/>
+        <source>Northing</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/gridtool/IGridSetRef.ui" line="102"/>
+        <source>Vert. Spacing</source>
+        <translation>Espaciado vertical</translation>
+    </message>
+</context>
+<context>
+    <name>IItemListWidget</name>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="40"/>
+        <source>Add map files to list</source>
+        <translation>Añadir archivos de mapa a la lista</translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="43"/>
+        <location filename="../items/IItemListWidget.ui" line="60"/>
+        <location filename="../items/IItemListWidget.ui" line="77"/>
+        <location filename="../items/IItemListWidget.ui" line="94"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="57"/>
+        <source>Remove selected file from the list.</source>
+        <translation>Borrar archivo seleccionado de la lista.</translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="74"/>
+        <source>Clear complete list of map files.</source>
+        <translation>Borrar lista completa de archivos de mapa.</translation>
+    </message>
+    <message>
+        <location filename="../items/IItemListWidget.ui" line="91"/>
+        <source>Reload the currently selected map.</source>
+        <translation>Recargar mapa seleccionado.</translation>
+    </message>
+</context>
+<context>
+    <name>IMainWindow</name>
+    <message>
+        <location filename="../IMainWindow.ui" line="14"/>
+        <source>MainWindow</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="32"/>
+        <source>Setup</source>
+        <translation>Configuración</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="41"/>
+        <source>View</source>
+        <translation>Ver</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="47"/>
+        <source>Window</source>
+        <translation>Ventana</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="52"/>
+        <source>?</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="67"/>
+        <source>Tools</source>
+        <translation>Herramientas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="100"/>
+        <source>Shell</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="119"/>
+        <source>About</source>
+        <translation>Acerca de</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="128"/>
+        <source>Ext. Tools</source>
+        <translation>Herramientas ext.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="131"/>
+        <source>Setup paths to external tools, like gdalwarp etc.</source>
+        <translation>Configurar rutas de las herramientas ext.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="143"/>
+        <location filename="../IMainWindow.ui" line="146"/>
+        <source>Flip Mouse Wheel</source>
+        <translation>Cambiar con la rueda del ratón</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="155"/>
+        <location filename="../IMainWindow.ui" line="158"/>
+        <source>Setup Units</source>
+        <translation>Configurar unidades</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="167"/>
+        <source>Setup Coord. Format</source>
+        <translation>Configurar formato de coordenadas</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="170"/>
+        <source>Change the format coordinates are displayed</source>
+        <translation>Cambiar formato de coordenadas que se mostrará.</translation>
+    </message>
+    <message>
+        <location filename="../IMainWindow.ui" line="181"/>
+        <source>Show Tool Help</source>
+        <translation>Mostar ayuda de la herramienta</translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayCutMap</name>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="35"/>
+        <source>Just move the map and zoom.</source>
+        <translation>Solo mueve el mapa y zoom</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="58"/>
+        <source>Add point to mask.</source>
+        <translation>Añadir punto a la máscara.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="61"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="84"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="107"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="137"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="158"/>
+        <location filename="../overlay/IOverlayCutMap.ui" line="175"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="81"/>
+        <source>Move point of mask.</source>
+        <translation>Mover punto de la máscara.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="104"/>
+        <source>Remove point from mask.</source>
+        <translation>Borrar punto de la máscara.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="134"/>
+        <source>Remove complete cut mask.</source>
+        <translation>Borrar máscara de corte completa.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="155"/>
+        <source>Load cut mask from shape file.</source>
+        <translation>Cargar máscara de corte desde archivo Shape.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayCutMap.ui" line="172"/>
+        <source>Save cut mask to shape file.</source>
+        <translation>Guardar máscara de corte en archivo Shape.</translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayGridTool</name>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayGridTool.ui" line="145"/>
+        <source>do not translate</source>
+        <translation>No traducir</translation>
+    </message>
+</context>
+<context>
+    <name>IOverlayRefMap</name>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="40"/>
+        <source>Just move the map and zoom.</source>
+        <translation>Solo mover mapa y zoom.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="63"/>
+        <source>Add reference point.</source>
+        <translation>Añadir punto de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="66"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="89"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="112"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="135"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="165"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="179"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="200"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="217"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="244"/>
+        <location filename="../overlay/IOverlayRefMap.ui" line="326"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="86"/>
+        <source>Move reference point.</source>
+        <translation>Mover punto de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="109"/>
+        <source>Remove single reference point.</source>
+        <translation>Borrar un punto de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="132"/>
+        <source>Move reference points with auto mode. This will pickup the next point after you moved a reference point.</source>
+        <translation>Mover puntos de referencia con modo auto.Esto captará el siguiente después de mover un punto de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="162"/>
+        <source>Remove all reference points.</source>
+        <translation>Borrar todos los puntos de referencia.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="176"/>
+        <source>Switch to the Grid Tool.</source>
+        <translation>Cambia a la Herramienta de cuadrícula.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="197"/>
+        <source>Load reference points from GCP file.</source>
+        <translation>Cargar puntos de referencia desde archivo GCP.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="214"/>
+        <source>Save reference points into GCP file.</source>
+        <translation>Guardar puntos de referencia en archivo GCP.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="241"/>
+        <source>Sort list of reference points.</source>
+        <translation>Ordenar lista de puntos de referencia</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="281"/>
+        <source>(x, y)[pixel]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="286"/>
+        <source>(lat, lon)[°]</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="294"/>
+        <source>TextLabel</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="304"/>
+        <source>Final Map Projection:</source>
+        <translation>Proyección final del mapa</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="316"/>
+        <source>Enter a valid projection string. Valid strings are "+proj..." or "+init=epsg:...".</source>
+        <translation>Ingrese una cadena de proyección válida. Las cadenas válidas son "+proj..." o "+init=epsg:...".</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="323"/>
+        <source>Start projection wizard.</source>
+        <translation>Iniciar asistente de proyección.</translation>
+    </message>
+    <message>
+        <location filename="../overlay/IOverlayRefMap.ui" line="343"/>
+        <source>Delete</source>
+        <translation>Borrar</translation>
+    </message>
+</context>
+<context>
+    <name>IProjWizard</name>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="14"/>
+        <source>Proj4 Wizard</source>
+        <translation>Asistente de Proj4</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="29"/>
+        <source>Mercator</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="38"/>
+        <source>UTM</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="45"/>
+        <source>zone</source>
+        <translation>zona</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="82"/>
+        <source>user defined</source>
+        <translation>definida por el usuario</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="94"/>
+        <source>Datum</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="104"/>
+        <source>World Mercator (OSM)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="124"/>
+        <source>Result:</source>
+        <translation>Resultado:</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="138"/>
+        <source>UPS North (North Pole)</source>
+        <translation>UPS Norte (Polo Norte)</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="145"/>
+        <source>UPS South (South Pole)</source>
+        <translation>UPS Sur (Polo Sur)</translation>
+    </message>
+    <message>
+        <location filename="../overlay/refmap/IProjWizard.ui" line="152"/>
+        <source>Projection</source>
+        <translation>Proyección</translation>
+    </message>
+</context>
+<context>
+    <name>ISetupExtTools</name>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="14"/>
+        <source>Setup Ext. Tools</source>
+        <translation>Configurar Herramientas Ext.</translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="29"/>
+        <location filename="../setup/ISetupExtTools.ui" line="62"/>
+        <location filename="../setup/ISetupExtTools.ui" line="90"/>
+        <location filename="../setup/ISetupExtTools.ui" line="111"/>
+        <location filename="../setup/ISetupExtTools.ui" line="118"/>
+        <source><b style='color: red;'>not found</b></source>
+        <translation><b style='color: red;'>no encontrado</b></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="72"/>
+        <location filename="../setup/ISetupExtTools.ui" line="100"/>
+        <location filename="../setup/ISetupExtTools.ui" line="128"/>
+        <location filename="../setup/ISetupExtTools.ui" line="142"/>
+        <location filename="../setup/ISetupExtTools.ui" line="156"/>
+        <location filename="../setup/ISetupExtTools.ui" line="183"/>
+        <location filename="../setup/ISetupExtTools.ui" line="197"/>
+        <location filename="../setup/ISetupExtTools.ui" line="211"/>
+        <location filename="../setup/ISetupExtTools.ui" line="225"/>
+        <location filename="../setup/ISetupExtTools.ui" line="239"/>
+        <source>...</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="173"/>
+        <source>gdal_translate:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="22"/>
+        <source>gdalbuildvrt</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="42"/>
+        <source>gdaladdo:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="55"/>
+        <source>gdalwarp:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="69"/>
+        <location filename="../setup/ISetupExtTools.ui" line="97"/>
+        <location filename="../setup/ISetupExtTools.ui" line="125"/>
+        <location filename="../setup/ISetupExtTools.ui" line="139"/>
+        <location filename="../setup/ISetupExtTools.ui" line="153"/>
+        <source>Setup user defined path.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="83"/>
+        <source>qmt_rgb2pct</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="180"/>
+        <location filename="../setup/ISetupExtTools.ui" line="194"/>
+        <location filename="../setup/ISetupExtTools.ui" line="208"/>
+        <location filename="../setup/ISetupExtTools.ui" line="222"/>
+        <location filename="../setup/ISetupExtTools.ui" line="236"/>
+        <source>Reset user defined path setup.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../setup/ISetupExtTools.ui" line="252"/>
+        <source><b>Note:</b> Usually QMapTool should detect all external tools by itself. If it does not, it's a bad setup and you should fix the PATH variable of your system. You can setup the paths manually, too, if you know what you are doing. But please keep in mind that GDAL needs a proper environment setup to function properly. If it's not setup properly you might get results but these can be off grid.</source>
+        <translation><b>Nota:</b> Por lo general, QMapTool debería detectar todas las herramientas externas por sí mismo. Si no es asi, es debido a una mala configuración y debe corregir la variable PATH de su sistema. También puede configurar las rutas manualmente, si sabe lo que está haciendo, pero tenga en cuenta que GDAL necesita una configuración del entorno adecuada para funcionar correctamente. Si esto no está correcto, es posible que obtenga resultados, pero estos pue [...]
+    </message>
+</context>
+<context>
+    <name>ITimeZoneSetup</name>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="14"/>
+        <source>Setup Time Zone ...</source>
+        <translation>Configurar Zona Horaria...</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="22"/>
+        <source>UTC</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="32"/>
+        <source>Local</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="42"/>
+        <source>Automatic</source>
+        <translation>Automática</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="75"/>
+        <source>Print date/time in </source>
+        <translation>Mostrar fecha y hora en </translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="82"/>
+        <source>long format, or</source>
+        <translation>formato largo o</translation>
+    </message>
+    <message>
+        <location filename="../units/ITimeZoneSetup.ui" line="92"/>
+        <source>short format</source>
+        <translation>formato corto</translation>
+    </message>
+</context>
+<context>
+    <name>IToolAddOverview</name>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="59"/>
+        <source>do not translate</source>
+        <translation>no traducir</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="119"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="126"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="133"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="140"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="147"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="154"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="164"/>
+        <source>Remove all overview levels from map file.</source>
+        <translation>Borrar todos los niveles de zoom del archivo de mapa.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="167"/>
+        <source>Remove</source>
+        <translation>Borrar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="174"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation>No copiar los niveles de zoom en el mismo archivo. Añadirlos en un archivo externo.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="177"/>
+        <source>Overview as external file</source>
+        <translation>Niveles de zoom en archivo externo</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="207"/>
+        <source>Start</source>
+        <translation>Iniciar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="221"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="232"/>
+        <source>For all files</source>
+        <translation>Todos los archivos</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolAddOverview.ui" line="257"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdaladdo" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IToolCutMap</name>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation>no traducir</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="114"/>
+        <source>Output filename suffix</source>
+        <translation>Sufijo del nombre de archivo resultante</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="133"/>
+        <source>_cut</source>
+        <translation>cortar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="148"/>
+        <source>Create overviews for result.</source>
+        <translation>Crear resúmenes con el resultado.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="176"/>
+        <source>Start</source>
+        <translation>Iniciar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="190"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="201"/>
+        <source>For all files</source>
+        <translation type="unfinished">Todos los archivos</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="226"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation type="unfinished"><b style='color: red;'> "Gdalwarp"no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolCutMap.ui" line="236"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation type="unfinished"><b style='color: red;'> "Gdaladdo"no encontrado ¡Compruebe la configuración!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IToolGrid</name>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="56"/>
+        <source>Grid Tool</source>
+        <translation>Herramienta Malla</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="65"/>
+        <source>do not translate</source>
+        <translation>no traducir</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="99"/>
+        <source>Ok</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="110"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolGrid.ui" line="134"/>
+        <source>Reset</source>
+        <translation>Reiniciar</translation>
+    </message>
+</context>
+<context>
+    <name>IToolOverviewGroupBox</name>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="14"/>
+        <source>GroupBox</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="71"/>
+        <source>:2</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="78"/>
+        <source>:4</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="85"/>
+        <source>:8</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="92"/>
+        <source>:16</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="99"/>
+        <source>:32</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="106"/>
+        <source>:64</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="119"/>
+        <source>Do not copy the overviews into the file itself. Add them as external file.</source>
+        <translation>No copiar los niveles de zoom en el mismo archivo. Añadirlos en archivo externo.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolOverviewGroupBox.ui" line="122"/>
+        <source>Overview as external file</source>
+        <translation>Niveles de zoom en archivo externo</translation>
+    </message>
+</context>
+<context>
+    <name>IToolPalettize</name>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="65"/>
+        <location filename="../tool/IToolPalettize.ui" line="78"/>
+        <source>do not translate</source>
+        <translation>no traducir</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="96"/>
+        <source>Single files, filename suffix</source>
+        <translation>Archivos individuales, sufijo del nombre</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="109"/>
+        <source>_8bit</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="123"/>
+        <source>Combined file, filename:</source>
+        <translation>Archivos combinados, nombre:</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="135"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation>Insertar el resultado en un archivo *.vrt.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="142"/>
+        <source>Create overviews for result.</source>
+        <translation type="unfinished">Crear resúmenes con el resultado.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="170"/>
+        <source>Start</source>
+        <translation>Iniciar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="184"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="213"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdaladdo" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="223"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdal_translate" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="233"/>
+        <source><b style='color: red;'>No "qmt_rgb2pct" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Qmt_rgb2pct" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolPalettize.ui" line="247"/>
+        <source>Select filename</source>
+        <translation>Seleccionar nombre de archivo</translation>
+    </message>
+</context>
+<context>
+    <name>IToolRefMap</name>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="14"/>
+        <source>Form</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="59"/>
+        <source>do not translate</source>
+        <translation>no traducir</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="113"/>
+        <source>Output filename suffix</source>
+        <translation type="unfinished">Sufijo del nombre de archivo resultante</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="132"/>
+        <source>_ref</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="144"/>
+        <source>Embed result into *.vrt file.</source>
+        <translation>Insertar resultado en archivo *.vrt.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="151"/>
+        <source>Create overviews for result.</source>
+        <translation>Crear resúmenes con el resultado.</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="179"/>
+        <source>Start</source>
+        <translation>Iniciar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="193"/>
+        <source>Cancel</source>
+        <translation>Cancelar</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="204"/>
+        <source>For all files</source>
+        <translation>Todos los archivos</translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="229"/>
+        <source><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdalwarp" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="239"/>
+        <source><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdal_translate" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+    <message>
+        <location filename="../tool/IToolRefMap.ui" line="249"/>
+        <source><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></source>
+        <translation><b style='color: red;'>"Gdaladdo" no encontrado. ¡Compruebe la configuración!</b></translation>
+    </message>
+</context>
+<context>
+    <name>IUnit</name>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Error</source>
+        <translation type="unfinished">Error</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="740"/>
+        <source>Bad position format. Must be: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</source>
+        <translation>Formato de posición incorrecto. Debe ser: "[N|S] ddd mm.sss [W|E] ddd mm.sss" or "[N|S] ddd.ddd [W|E] ddd.ddd"</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnit.cpp" line="746"/>
+        <source>Position values out of bounds. </source>
+        <translation>Valores de posición fuera de los límites.</translation>
+    </message>
+</context>
+<context>
+    <name>IUnitsSetup</name>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="14"/>
+        <source>Setup units...</source>
+        <translation>Configurar unidades...</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="24"/>
+        <source>Nautical</source>
+        <translation>Náutico</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="31"/>
+        <source>Imperial</source>
+        <translation>Imperial</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="38"/>
+        <source>Metric</source>
+        <translation>Métrico</translation>
+    </message>
+    <message>
+        <location filename="../units/IUnitsSetup.ui" line="53"/>
+        <source><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</source>
+        <translation><b>Note:</b> El cambio de unidades no tendrá efecto en algunos elementos de la interfaz hasta que reinicie QMapTool.</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmaptool/main.cpp b/src/qmaptool/main.cpp
new file mode 100644
index 0000000..2d23b03
--- /dev/null
+++ b/src/qmaptool/main.cpp
@@ -0,0 +1,76 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "CSingleInstanceProxy.h"
+#include "setup/IAppSetup.h"
+#include "version.h"
+
+#include <QApplication>
+#include <QtWidgets>
+
+int main(int argc, char ** argv)
+{
+    QApplication app(argc, argv);
+
+    QCoreApplication::setApplicationName("QMapTool");
+    QCoreApplication::setOrganizationName("QLandkarte");
+    QCoreApplication::setOrganizationDomain("qlandkarte.org");
+
+    IAppSetup& env = IAppSetup::createInstance(qApp);
+    env.processArguments();
+    env.initLogHandler();
+    env.initQMapTool();
+
+    // make sure this is the one and only instance on the system
+    CSingleInstanceProxy s(qlOpts->arguments);
+
+    QSplashScreen *splash = nullptr;
+    if (!qlOpts->nosplash)
+    {
+        QPixmap pic(":/pic/splash.png");
+        QPainter p(&pic);
+        QFont f = p.font();
+        f.setBold(true);
+
+        p.setPen(Qt::black);
+        p.setFont(f);
+        p.drawText(260,195,"QMapTool, V " VER_STR);
+
+        splash = new QSplashScreen(pic);
+#ifdef Q_OS_MAC
+        // remove the splash screen flag on OS-X as workaround for the reported bug
+        // https://bugreports.qt.io/browse/QTBUG-49576
+        splash->setWindowFlags(splash->windowFlags() & (~Qt::SplashScreen));
+#endif
+        splash->show();
+    }
+
+    CMainWindow w;
+    w.show();
+
+    if(nullptr != splash)
+    {
+        splash->finish(&w);
+        delete splash;
+    }
+
+    return app.exec();
+}
+
+
diff --git a/src/qmaptool/overlay/COverlayCutMap.cpp b/src/qmaptool/overlay/COverlayCutMap.cpp
new file mode 100644
index 0000000..2dbb143
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayCutMap.cpp
@@ -0,0 +1,644 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "items/CItemCutMap.h"
+#include "overlay/COverlayCutMap.h"
+
+#include <QtWidgets>
+#include <functional>
+using std::bind;
+
+static inline qreal sqr(qreal a)
+{
+    return a*a;
+}
+
+static inline qreal sqrlen(const QPointF &a)
+{
+    return sqr(a.x()) + sqr(a.y());
+}
+
+
+COverlayCutMap::COverlayCutMap(CItemCutMap *item, QStackedWidget *stackedWidget)
+    : IOverlay(stackedWidget)
+    , context(item->getDrawContext())
+{
+    setupUi(this);
+
+    QFileInfo fi(item->getFilename());
+    shapeFilename = fi.completeBaseName() + ".shp";
+
+    connect(toolNone, &QToolButton::clicked, this, bind(&COverlayCutMap::slotSetMode, this, eModeNone, std::placeholders::_1));
+    connect(toolPointMove, &QToolButton::clicked, this, bind(&COverlayCutMap::slotSetMode, this, eModePointMove, std::placeholders::_1));
+    connect(toolPointAdd, &QToolButton::clicked, this, bind(&COverlayCutMap::slotSetMode, this, eModePointAdd, std::placeholders::_1));
+    connect(toolPointDel, &QToolButton::clicked, this, bind(&COverlayCutMap::slotSetMode, this, eModePointDel, std::placeholders::_1));
+    connect(toolPointDelAll, &QToolButton::clicked, this, &COverlayCutMap::slotResetMask);
+    connect(toolLoadShape, &QToolButton::clicked, this, &COverlayCutMap::slotLoadShape);
+    connect(toolSaveShape, &QToolButton::clicked, this, &COverlayCutMap::slotSaveShape);
+}
+
+void COverlayCutMap::saveSettings(QSettings& cfg)
+{
+    cfg.setValue("region", region);
+}
+
+void COverlayCutMap::loadSettings(QSettings& cfg)
+{
+    region = (cfg.value("region", QPolygonF()).value<QPolygonF>());
+
+    updateGui();
+}
+
+
+bool COverlayCutMap::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    if(region.isEmpty())
+    {
+        return true;
+    }
+
+    QPolygonF shape = region;
+    context->convertMap2Screen(shape);
+
+    if(shape.size() > 2)
+    {
+        QPainterPath path;
+
+        QRectF rectMap = context->getMapArea();
+        context->convertMap2Screen(rectMap);
+
+        path.addRect(rectMap);
+        path.addPolygon(shape);
+
+        p.setPen(QPen(Qt::darkBlue,1));
+
+        p.setBrush((idxFocus1 == NOIDX) ? Qt::BDiagPattern : Qt::NoBrush);
+        p.drawPath(path);
+    }
+
+    QRectF dot1(0,0,5,5);
+    QRectF dot2(0,0,7,7);
+    const QPointF& pt1 = idxFocus1 != NOIDX ? shape[idxFocus1] : NOPOINTF;
+    const QPointF& pt2 = idxFocus2 != NOIDX ? shape[idxFocus2] : NOPOINTF;
+
+    // draw black dots for each point in region
+    p.setPen(QPen(Qt::black, 1));
+    p.setBrush(Qt::black);
+    for(const QPointF& pt : shape)
+    {
+        if(pt == pt1)
+        {
+            continue;
+        }
+        dot1.moveCenter(pt);
+        p.drawRect(dot1);
+    }
+
+    // if just one dot is selected draw crosshair
+    if((idxFocus2 == NOIDX) && (idxFocus1 != NOIDX))
+    {
+        CDraw::drawCrossHairDot(p, pt1);
+    }
+    else if((idxFocus2 != NOIDX) && (idxFocus1 == NOIDX))
+    {
+        CDraw::drawCrossHairDot(p, pt2);
+    }
+    // if both points are selected highlight segment
+    else if((idxFocus2 != NOIDX) && (idxFocus1 != NOIDX))
+    {
+        p.setPen(QPen(Qt::red, 2));
+        p.setBrush(Qt::red);
+
+        dot2.moveCenter(pt1);
+        p.drawRect(dot2);
+        dot2.moveCenter(pt2);
+        p.drawRect(dot2);
+        p.drawLine(pt1, pt2);
+    }
+    return true;
+}
+
+void COverlayCutMap::mouseMoveEventFx(QMouseEvent *e)
+{
+    QPointF pt = e->pos();
+    context->convertScreen2Map(pt);
+
+    switch(mode)
+    {
+    case eModePointMove:
+        mouseMovePointMove(pt);
+        break;
+
+    case eModePointAdd:
+        mouseMovePointAdd(pt);
+        break;
+
+    case eModePointDel:
+        mouseMovePointDel(pt);
+        break;
+
+    default:
+        return;
+    }
+
+    updateGui();
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayCutMap::mouseReleaseEventFx(QMouseEvent *e)
+{
+    QPointF pt = e->pos();
+    context->convertScreen2Map(pt);
+
+    Qt::MouseButton button = e->button();
+
+    switch(mode)
+    {
+    case eModePointMove:
+        mouseReleasePointMove(pt, button);
+        break;
+
+    case eModePointAdd:
+        mouseReleasePointAdd(pt, button);
+        break;
+
+    case eModePointDel:
+        mouseReleasePointDel(pt, button);
+        break;
+
+    default:
+        return;
+    }
+
+    updateGui();
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+QCursor COverlayCutMap::getCursorFx()
+{
+    switch(mode)
+    {
+    case eModePointAdd:
+        return QCursor(QPixmap(":/cursors/cursorPointAdd.png"), 0, 0);
+
+    case eModePointDel:
+        return QCursor(QPixmap(":/cursors/cursorPointDel.png"), 0, 0);
+
+    case eModePointMove:
+        return QCursor(QPixmap(":/cursors/cursorPointMove.png"), 0, 0);
+    }
+
+    return Qt::ArrowCursor;
+}
+
+void COverlayCutMap::slotSetMode(mode_e m, bool on)
+{
+    if(on)
+    {
+        mode = m;
+    }
+}
+
+void COverlayCutMap::slotResetMask()
+{
+    int res = QMessageBox::question(this, tr("Delete mask..."), tr("Are you sure to delete complete mask?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+    if(res != QMessageBox::Yes)
+    {
+        return;
+    }
+
+    mouseReset();
+    region.clear();
+    storeToHistory(region);
+    updateGui();
+}
+
+void COverlayCutMap::slotSaveShape()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/shapeInput", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getSaveFileName(&CMainWindow::self(), tr("Save mask..."), path + "/" + shapeFilename, "Shape file (*.shp)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("Path/shapeInput", QFileInfo(shapeFilename).absolutePath());
+
+    if(region.isEmpty())
+    {
+        return;
+    }
+    shapeFilename = filename;
+    saveShape(filename);
+}
+
+void COverlayCutMap::saveShape(const QString& filename)
+{
+    const QPolygonF& line = region;
+
+    QFile file(filename);
+    file.open(QIODevice::WriteOnly);
+    QTextStream out(&file);
+
+    out << "id,WKT" << endl;
+    out << "1,\"POLYGON((";
+
+    bool first = true;
+    for(const QPointF& pt : line)
+    {
+        QPointF pt1 = pt;
+        context->convertMap2Coord(pt1);
+
+        if(!first)
+        {
+            out << ", ";
+        }
+        first =  false;
+
+        out << qRound(pt1.x()) << " " << qRound(pt1.y());
+    }
+    out << "))\"" << endl;
+}
+
+void COverlayCutMap::slotLoadShape()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/shapeInput", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getOpenFileName(&CMainWindow::self(), tr("Load mask..."), path, "Shape file (*.shp)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("Path/shapeInput", QFileInfo(filename).absolutePath());
+
+    QFile file(filename);
+    file.open(QIODevice::ReadOnly);
+    QTextStream in(&file);
+
+    QString line = in.readLine().simplified();
+    if(line != "id,WKT")
+    {        
+        QMessageBox::warning(&CMainWindow::self(), tr("Failed..."), tr("Not a shape file."), QMessageBox::Abort);
+        return;
+    }
+
+    while(!in.atEnd())
+    {
+        QString line = in.readLine().simplified();
+        if(line.startsWith("1,\"POLYGON(("))
+        {
+            region.clear();
+
+            line = line.mid(12);
+            QTextStream in2(&line, QIODevice::ReadOnly);
+
+            while(!in2.atEnd())
+            {
+                qreal x, y;
+                in2 >> x >> y;
+
+                QPointF pt(x,y);
+                context->convertCoord2Map(pt);
+
+                region << pt;
+
+                QString str;
+                in2 >> str;
+                if(str != ",")
+                {
+                    break;
+                }
+            }
+        }
+    }
+
+    updateGui();
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+    emit sigChanged();
+}
+
+void COverlayCutMap::mouseReset()
+{
+    addPoint    = false;
+    movePoint   = false;
+    idxFocus1   = NOIDX;
+    idxFocus1   = NOIDX;
+}
+
+void COverlayCutMap::abortStep()
+{
+    if(addPoint)
+    {
+        restoreFromHistory(region);
+        addPoint    = false;
+        idxFocus1   = NOIDX;
+        idxFocus2   = NOIDX;
+    }
+    else if(movePoint)
+    {
+        restoreFromHistory(region);
+        movePoint   = false;
+        idxFocus1   = NOIDX;
+    }
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayCutMap::restoreFromHistory(QPolygonF& line)
+{
+    line = history[idxHistory];
+    emit sigChanged();
+}
+
+void COverlayCutMap::storeToHistory(const QPolygonF& line)
+{
+    // crop history if necessary
+    if(idxHistory != NOIDX)
+    {
+        while(history.size() > (idxHistory + 1))
+        {
+            history.pop_back();
+        }
+    }
+
+    history << line;
+    idxHistory = history.size() - 1;
+
+    emit sigChanged();
+}
+
+void COverlayCutMap::isCloseTo(QPointF pt, QPolygonF line, qint32& idx) const
+{
+    idx = NOIDX;
+
+    context->convertMap2Screen(pt);
+    context->convertMap2Screen(line);
+
+    if(line.isEmpty())
+    {
+        return;
+    }
+
+    qint32 min = 30;
+    const int N = region.size();
+    for(int i = 0; i < N; i++)
+    {
+        qint32 d = (pt - line[i]).manhattanLength();
+        if(d < min)
+        {
+            min = d;
+            idx = i;
+        }
+    }
+}
+
+void COverlayCutMap::isCloseToLine(QPointF pt, QPolygonF line, qint32& idx1, qint32& idx2) const
+{
+    idx1 = NOIDX;
+    idx2 = NOIDX;
+
+    context->convertMap2Screen(pt);
+    context->convertMap2Screen(line);
+
+    const int count = line.size();
+    if(count < 2)
+    {
+        return;
+    }
+
+    QPointF b   = line[0];
+    QPointF dbq = b - pt;
+    qreal dist  = 30*30;
+
+    for (qint32 i = 1; i < count; ++i)
+    {
+        const QPointF a   = b;
+        const QPointF daq = dbq;
+        b = line[i];
+        dbq = b - pt;
+
+        const QPointF dab = a - b;
+
+        const qreal inv_sqrlen = 1./sqrlen(dab);
+        const qreal t = (dab.x()*daq.x() + dab.y()*daq.y())*inv_sqrlen;
+        if (t < 0.)
+        {
+            continue;
+        }
+        qreal current_dist;
+        if (t <= 1.)
+        {
+            current_dist = sqr(dab.x()*dbq.y() - dab.y()*dbq.x())*inv_sqrlen;
+        }
+        else//t>1.
+        {
+            current_dist = sqrlen(dbq);
+        }
+
+        if (current_dist < dist)
+        {
+            dist = current_dist;
+            idx1 = i - 1;
+            idx2 = i;
+        }
+    }
+}
+
+
+void COverlayCutMap::mouseMovePointAdd(const QPointF &pt)
+{
+    if(region.isEmpty())
+    {
+        return;
+    }
+
+    if(addPoint)
+    {
+        region[idxFocus1] = pt;
+    }
+    else
+    {
+        // find line segment close to cursor
+        isCloseToLine(pt, region, idxFocus1, idxFocus2);
+    }
+}
+
+void COverlayCutMap::mouseReleasePointAdd(const QPointF &pt, Qt::MouseButton button)
+{
+    if(button == Qt::LeftButton)
+    {
+        if(addPoint)
+        {
+            // if isPoint is true the line has been appended/prepended
+            // in this case go on with adding another point
+            if(idxFocus1 == (region.size() - 1))
+            {
+                idxFocus1++;
+            }
+            // store current state of line to undo/redo history
+            storeToHistory(region);
+            region.insert(idxFocus1, pt);
+        }
+        else if(idxFocus1 != NOIDX)
+        {
+            // add a new point to line segment
+            idxFocus2 = NOIDX;
+            idxFocus1++;
+            region.insert(idxFocus1, pt);
+            addPoint = true;
+            CCanvas::setOverrideCursor(Qt::BlankCursor, "COverlayCutMap::mouseReleasePointAdd");
+        }
+        else if(region.isEmpty())
+        {
+            region.append(pt);
+            storeToHistory(region);
+            region.append(pt);
+            region.append(pt);
+            idxFocus1 = 1;
+            addPoint = true;
+            CCanvas::setOverrideCursor(Qt::BlankCursor, "COverlayCutMap::mouseReleasePointAdd");
+        }
+    }
+    else if(button == Qt::RightButton)
+    {
+        CCanvas::restoreOverrideCursor("COverlayCutMap::mouseReleasePointAdd");
+        if(!addPoint)
+        {
+            toolNone->click();
+        }
+        abortStep();
+    }
+}
+
+void COverlayCutMap::mouseMovePointDel(const QPointF &pt)
+{
+    isCloseTo(pt, region, idxFocus1);
+}
+
+void COverlayCutMap::mouseReleasePointDel(const QPointF &pt, Qt::MouseButton button)
+{
+    if((idxFocus1 != NOIDX) && (button == Qt::LeftButton))
+    {
+        //special case first or last point.
+        if((idxFocus1 == 0) || (idxFocus1 == (region.size() - 1)))
+        {
+            if(region.size() > 2)
+            {
+                // more than one point set
+                region.pop_back();
+                region.pop_front();
+            }
+            else
+            {
+                // remove last point
+                region.clear();
+            }
+
+            // close polygon area by appending the first point
+            if(!region.isEmpty())
+            {
+                region << region.first();
+            }
+        }
+        else
+        {
+            region.remove(idxFocus1);
+        }
+        storeToHistory(region);
+    }
+    else if(button == Qt::RightButton)
+    {
+        CCanvas::restoreOverrideCursor("COverlayCutMap::mouseReleasePointDel");
+        toolNone->click();
+    }
+    idxFocus1 = NOIDX;
+}
+
+void COverlayCutMap::mouseMovePointMove(const QPointF &pt)
+{
+    if(movePoint)
+    {
+        if((idxFocus1 == 0) || (idxFocus1 == (region.size() - 1)))
+        {
+            region.first() = pt;
+            region.last() = pt;
+        }
+        else
+        {
+            region[idxFocus1] = pt;
+        }
+    }
+    else
+    {
+        // no point selected yet, find point to highlight
+        isCloseTo(pt, region, idxFocus1);
+    }
+}
+
+void COverlayCutMap::mouseReleasePointMove(const QPointF &pt, Qt::MouseButton button)
+{
+    if(button == Qt::LeftButton)
+    {
+        if(movePoint)
+        {
+            // terminate moving the point
+            movePoint = false;
+            // store new state of line to undo/redo history
+            storeToHistory(region);
+            CCanvas::restoreOverrideCursor("COverlayCutMap::mouseReleasePointAdd");
+        }
+        else if(idxFocus1 != NOIDX)
+        {
+            if((idxFocus1 == 0) || (idxFocus1 == (region.size() - 1)))
+            {
+                region.first() = pt;
+                region.last() = pt;
+            }
+            else
+            {
+                region[idxFocus1] = pt;
+            }
+
+            movePoint = true;
+            CCanvas::setOverrideCursor(Qt::BlankCursor, "COverlayCutMap::mouseReleasePointMove");
+        }
+    }
+    else if(button == Qt::RightButton)
+    {
+        CCanvas::restoreOverrideCursor("COverlayCutMap::mouseReleasePointMove");
+        if(!movePoint)
+        {
+            toolNone->click();
+        }
+        abortStep();
+    }
+}
+
+void COverlayCutMap::updateGui()
+{
+    bool enable = !region.isEmpty();
+    toolPointMove->setEnabled(enable);
+    toolPointDel->setEnabled(enable);
+    toolPointDelAll->setEnabled(enable);
+    toolSaveShape->setEnabled(enable);
+}
diff --git a/src/qmaptool/overlay/COverlayCutMap.h b/src/qmaptool/overlay/COverlayCutMap.h
new file mode 100644
index 0000000..8938f00
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayCutMap.h
@@ -0,0 +1,105 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef COVERLAYCUTMAP_H
+#define COVERLAYCUTMAP_H
+
+#include "canvas/CCanvas.h"
+#include "overlay/IOverlay.h"
+#include "ui_IOverlayCutMap.h"
+#include "units/IUnit.h"
+
+
+class QStackedWidget;
+class IDrawContext;
+class QSettings;
+class CItemCutMap;
+
+class COverlayCutMap : public IOverlay, private Ui::IOverlayCutMap
+{
+    Q_OBJECT
+public:
+    COverlayCutMap(CItemCutMap *item, QStackedWidget * stackedWidget);
+    virtual ~COverlayCutMap() = default;
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    QCursor getCursorFx();
+
+    void abortStep();
+
+    enum mode_e
+    {
+        eModeNone
+        ,eModePointMove
+        ,eModePointAdd
+        ,eModePointDel
+    };
+
+    void saveShape(const QString& filename);
+
+    bool isOk() const
+    {
+        return !region.isEmpty();
+    }
+
+private slots:
+    void slotSetMode(mode_e m, bool on);
+    void slotResetMask();
+    void slotSaveShape();
+    void slotLoadShape();
+
+private:
+    void restoreFromHistory(QPolygonF& line);
+    void storeToHistory(const QPolygonF& line);
+    void isCloseTo(QPointF pt, QPolygonF line, qint32& idx) const;
+    void isCloseToLine(QPointF pt, QPolygonF line, qint32 &idx1, qint32 &idx2) const;
+    void mouseReset();
+
+    void mouseMovePointAdd(const QPointF &pt);
+    void mouseMovePointDel(const QPointF &pt);
+    void mouseMovePointMove(const QPointF &pt);
+
+    void mouseReleasePointAdd(const QPointF &pt, Qt::MouseButton button);
+    void mouseReleasePointDel(const QPointF &pt, Qt::MouseButton button);
+    void mouseReleasePointMove(const QPointF &pt, Qt::MouseButton button);
+
+    void updateGui();
+
+    IDrawContext* context;
+
+    mode_e mode = eModeNone;
+    QPolygonF region;
+
+    qint32 idxFocus1 = NOIDX;
+    qint32 idxFocus2 = NOIDX;
+    bool addPoint   = false;
+    bool movePoint  = false;
+
+    QList<QPolygonF> history;
+    qint32 idxHistory = NOIDX;
+
+    QString shapeFilename;
+};
+
+#endif //COVERLAYCUTMAP_H
+
diff --git a/src/qmaptool/overlay/COverlayGridTool.cpp b/src/qmaptool/overlay/COverlayGridTool.cpp
new file mode 100644
index 0000000..d8e0d80
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayGridTool.cpp
@@ -0,0 +1,348 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "canvas/IDrawContext.h"
+#include "helpers/CSettings.h"
+#include "items/CItemRefMap.h"
+#include "overlay/COverlayGridTool.h"
+#include "overlay/refmap/COverlayRefMapPoint.h"
+#include "overlay/refmap/CProjWizard.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+COverlayGridTool::COverlayGridTool(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+    labelFinal->setText(tr("Before you proceed with 'ok':\n"
+                           "Please cross check all data once again. A bad reference coordinate will ruin "
+                           "all the work. Also cross check if the selected area contains as many reference "
+                           "points as possible at the border. You can easily delete points outside the map "
+                           "in the Reference Tool. But it's much more effort to set additional points in "
+                           "case you miss some.  When you are done press 'ok' to transfer the derived "
+                           "reference points to the Reference Tool.\n\n"
+                           "The next step will be to use the Reference Tool to adjust the position of all "
+                           "reference points to the real grid position on the map."));
+
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelFinal, &QLabel::setVisible);
+
+    QButtonGroup * group = new QButtonGroup(this);
+    group->addButton(radioSetRef);
+    group->addButton(radioGridPlacer);
+    group->addButton(radioSelectArea);
+
+
+    connect(radioSetRef, &QRadioButton::toggled, widgetSetRef, &QFrame::setEnabled);
+    connect(radioGridPlacer, &QRadioButton::toggled, widgetGridPlacer, &CGridPlacer::setEnabled);
+    connect(radioSelectArea, &QRadioButton::toggled, widgetSelectArea, &QLabel::setEnabled);
+
+
+    connect(widgetSetRef, &CGridSetRef::sigChanged, this, &COverlayGridTool::slotCalculate);
+    connect(widgetSetRef, &CGridSetRef::sigChanged, this, &COverlayGridTool::slotCheckInput);
+
+    connect(widgetGridPlacer, &CGridPlacer::sigChanged, this, &COverlayGridTool::slotCheckInput);
+    connect(widgetGridPlacer, &CGridPlacer::sigSetArea, this, &COverlayGridTool::slotSetArea);
+    connect(widgetGridPlacer, &CGridPlacer::sigChanged, this, &COverlayGridTool::slotCalculate);
+
+    connect(widgetSelectArea, &CGridSelArea::sigChanged, this, &COverlayGridTool::slotCalculate);
+    connect(widgetSelectArea, &CGridSelArea::sigChanged, this, &COverlayGridTool::slotCheckInput);
+}
+
+void COverlayGridTool::slotReset()
+{
+    widgetSetRef->slotReset();
+    widgetGridPlacer->slotReset();
+    widgetSelectArea->slotReset();
+
+    radioSetRef->setChecked(true);
+
+    SETTINGS;
+    cfg.beginGroup("GridTool");
+    cfg.remove("");
+    cfg.endGroup();
+    cfg.sync();
+}
+
+void COverlayGridTool::registerItem(CItemRefMap * item)
+{
+    this->item = item;
+    if(item != nullptr)
+    {
+        context = item->getDrawContext();
+        if(context == nullptr)
+        {
+            this->item = nullptr;
+        }
+    }
+    else
+    {
+        context = nullptr;
+    }
+
+
+    widgetGridPlacer->registerItem(this->item);
+    widgetSelectArea->registerItem(this->item);
+
+    radioSetRef->setChecked(true);
+
+    SETTINGS;
+    cfg.beginGroup("GridTool");
+    if(this->item != nullptr)
+    {
+        widgetSetRef->loadSettings(cfg);
+        widgetGridPlacer->loadSettings(cfg);
+        widgetSelectArea->loadSettings(cfg);
+    }
+    else
+    {
+        cfg.remove("");
+
+        widgetSetRef->saveSettings(cfg);
+        widgetGridPlacer->saveSettings(cfg);
+        widgetSelectArea->saveSettings(cfg);
+    }
+    cfg.endGroup();
+
+    slotCheckInput();
+}
+
+
+void COverlayGridTool::slotCheckInput()
+{
+    bool group1Ok = widgetSetRef->isOk();
+    radioGridPlacer->setEnabled(group1Ok);
+
+    bool group2Ok = widgetGridPlacer->isOk();
+    radioSelectArea->setEnabled(group2Ok&& group1Ok);
+
+    const QPointF& p1 = widgetGridPlacer->getPoint(0);
+    const QPointF& p2 = widgetGridPlacer->getPoint(1);
+    const QPointF& p3 = widgetGridPlacer->getPoint(2);
+    const QPointF& p4 = widgetGridPlacer->getPoint(3);
+    const QRectF& area = widgetSelectArea->getArea();
+
+    bool group3Ok = true;
+    group3Ok &= !area.isEmpty();
+    group3Ok &= area.isValid();
+    group3Ok &= !area.isNull();
+    group3Ok &= area.contains(p1);
+    group3Ok &= area.contains(p2);
+    group3Ok &= area.contains(p3);
+    group3Ok &= area.contains(p4);
+
+    labelFinal->setEnabled(group1Ok && group2Ok && group3Ok);
+
+    emit sigChanged(group1Ok && group2Ok && group3Ok);
+}
+
+bool COverlayGridTool::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    if(radioSelectArea->isEnabled())
+    {
+        widgetSelectArea->drawFx(p, needsRedraw);
+
+        QRectF dot1(0,0,7,7);
+        p.setPen(QPen(Qt::white, 1));
+        p.setBrush(Qt::darkGreen);
+
+        for(COverlayRefMapPoint * point : refPoints)
+        {
+            QPointF pt = point->getPtPtx();
+            context->convertMap2Screen(pt);
+            dot1.moveCenter(pt);
+            p.drawRect(dot1);
+        }
+    }
+
+    widgetGridPlacer->drawFx(p, needsRedraw);
+    return false;
+}
+
+void COverlayGridTool::mouseMoveEventFx(QMouseEvent *e)
+{
+    if(radioGridPlacer->isChecked())
+    {
+        widgetGridPlacer->mouseMoveEventFx(e);
+    }
+    else if(radioSelectArea->isChecked())
+    {
+        widgetSelectArea->mouseMoveEventFx(e);
+    }
+}
+
+void COverlayGridTool::mouseReleaseEventFx(QMouseEvent *e)
+{
+    if(radioGridPlacer->isChecked())
+    {
+        widgetGridPlacer->mouseReleaseEventFx(e);
+    }
+    else if(radioSelectArea->isChecked())
+    {
+        widgetSelectArea->mouseReleaseEventFx(e);
+    }
+}
+
+void COverlayGridTool::leaveEventFx(QEvent *e)
+{
+    if(radioGridPlacer->isChecked())
+    {
+        widgetGridPlacer->leaveEventFx(e);
+    }
+    else if(radioSelectArea->isChecked())
+    {
+        widgetSelectArea->leaveEventFx(e);
+    }
+}
+
+QCursor COverlayGridTool::getCursorFx()
+{
+    if(radioGridPlacer->isChecked())
+    {
+        return widgetGridPlacer->getCursorFx();
+    }
+    else if(radioSelectArea->isChecked())
+    {
+        return widgetSelectArea->getCursorFx();
+    }
+    else
+    {
+        return Qt::ArrowCursor;
+    }
+}
+
+
+void COverlayGridTool::slotSetArea(const QRectF& rect)
+{
+    qreal hspace    = rect.width() / 2;
+    qreal vspace    = rect.height() / 2;
+    QRectF area     = rect;
+
+    area.setTopLeft(rect.topLeft()          - QPointF(hspace, vspace));
+    area.setBottomRight(rect.bottomRight()  + QPointF(hspace, vspace));
+
+    widgetSelectArea->slotSetArea(area);
+    radioSelectArea->setChecked(true);
+}
+
+void COverlayGridTool::slotCalculate()
+{
+    if(!radioSelectArea->isEnabled())
+    {
+        return;
+    }
+
+    qDeleteAll(refPoints);
+    refPoints.clear();
+
+    projPJ pjsrc = pj_init_plus(widgetSetRef->getProjection().toLatin1());
+    if(pjsrc == nullptr)
+    {
+        return;
+    }
+
+    projPJ pjtar = pj_init_plus("+proj=longlat +datum=WGS84 +no_defs");
+    if(pjtar == nullptr)
+    {
+        pj_free(pjsrc);
+        return;
+    }
+
+    const QRectF& area = widgetSelectArea->getArea();
+
+    const QPointF& ptTopLeft        = widgetGridPlacer->getPoint(0);
+    const QPointF& ptTopRight       = widgetGridPlacer->getPoint(1);
+    const QPointF& ptBottomRight    = widgetGridPlacer->getPoint(2);
+    const QPointF& ptBottomLeft     = widgetGridPlacer->getPoint(3);
+
+    qreal dx11      = ptTopRight.x() - ptTopLeft.x();
+    qreal dy11      = ptTopRight.y() - ptTopLeft.y();
+    qreal dx12      = ptBottomRight.x() - ptBottomLeft.x();
+    qreal dy12      = ptBottomRight.y() - ptBottomLeft.y();
+    qreal dx1       = (dx11 + dx12) / 2;
+    qreal dy1       = (dy11 + dy12) / 2;
+
+    qreal alpha     = qAtan(dy1/dx1);
+    qreal distx     = qSqrt(dx1*dx1 + dy1*dy1);
+
+    qreal dx21      = ptBottomLeft.x() - ptTopLeft.x();
+    qreal dy21      = ptBottomLeft.y() - ptTopLeft.y();
+    qreal dx22      = ptBottomRight.x() - ptTopRight.x();
+    qreal dy22      = ptBottomRight.y() - ptTopRight.y();
+    qreal dx2       = (dx21 + dx22) / 2;
+    qreal dy2       = (dy21 + dy22) / 2;
+
+    qreal disty     = qSqrt(dx2*dx2 + dy2*dy2);
+
+    QMatrix translationMatrix(1, 0, 0, 1, ptTopLeft.x(), ptTopLeft.y());
+    QMatrix rotationMatrix(qCos(alpha), qSin(alpha), -qSin(alpha), qCos(alpha), 0, 0);
+    QMatrix scalingMatrix(distx, 0, 0, disty, 0, 0);
+
+    // forward matrix index -> map pixel coord
+    QMatrix mxFwd   = scalingMatrix * rotationMatrix * translationMatrix;
+    // backward matrix map pixel coord -> index
+    QMatrix mxBwd   = mxFwd.inverted();
+
+    QPointF tl      = mxBwd.map(area.topLeft());
+    QPointF br      = mxBwd.map(area.bottomRight());
+
+    int xMin        = qCeil(tl.x()) - 1;
+    int yMin        = qCeil(tl.y()) - 1;
+
+    int xMax        = qCeil(br.x()) + 1;
+    int yMax        = qCeil(br.y()) + 1;
+
+    qreal lonRef    = widgetSetRef->getEasting();
+    qreal latRef    = widgetSetRef->getNorthing();
+    qreal dLon      = widgetSetRef->getHorizSpacing();
+    qreal dLat      = widgetSetRef->getVertSpacing();
+
+    bool isLonLat = pj_is_latlong(pjsrc);
+
+    for(int y =  yMin; y < yMax; y++)
+    {
+        for(int x =  xMin; x < xMax; x++)
+        {
+            QPointF ptPtx = mxFwd.map(QPointF(x,y));
+            if(area.contains(ptPtx))
+            {
+                ptPtx.rx() = qRound(ptPtx.x());
+                ptPtx.ry() = qRound(ptPtx.y());
+
+                qreal lat = latRef - y * dLat;
+                qreal lon = lonRef + x * dLon;
+
+                if(isLonLat)
+                {
+                    lon *= DEG_TO_RAD;
+                    lat *= DEG_TO_RAD;
+                }
+
+                pj_transform(pjsrc, pjtar, 1, 0, &lon, &lat, 0);
+                lon *= RAD_TO_DEG;
+                lat *= RAD_TO_DEG;
+
+                refPoints << new COverlayRefMapPoint(0, QPointF(lon,lat), ptPtx, nullptr);
+            }
+        }
+    }
+
+    pj_free(pjsrc);
+    pj_free(pjtar);
+}
diff --git a/src/qmaptool/overlay/COverlayGridTool.h b/src/qmaptool/overlay/COverlayGridTool.h
new file mode 100644
index 0000000..f50b22f
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayGridTool.h
@@ -0,0 +1,68 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef COVERLAYGRIDTOOL_H
+#define COVERLAYGRIDTOOL_H
+
+#include "canvas/CCanvas.h"
+#include "ui_IOverlayGridTool.h"
+
+class CItemRefMap;
+class COverlayRefMapPoint;
+
+class COverlayGridTool : public QWidget, private Ui::IOverlayGridTool
+{
+    Q_OBJECT
+public:
+    COverlayGridTool(QWidget * parent);
+    virtual ~COverlayGridTool() = default;
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    void leaveEventFx(QEvent *e);
+    QCursor getCursorFx();
+
+    void registerItem(CItemRefMap * item);
+
+    QList<COverlayRefMapPoint*>& getRefPoints()
+    {
+        return refPoints;
+    }
+
+signals:
+    void sigChanged(bool ok);
+
+public slots:
+    void slotReset();
+
+private slots:
+    void slotCheckInput();
+    void slotSetArea(const QRectF& rect);
+    void slotCalculate();
+
+private:
+
+    CItemRefMap * item = nullptr;
+    const IDrawContext * context = nullptr;
+
+    QList<COverlayRefMapPoint*> refPoints;
+};
+
+#endif //COVERLAYGRIDTOOL_H
+
diff --git a/src/qmaptool/overlay/COverlayRefMap.cpp b/src/qmaptool/overlay/COverlayRefMap.cpp
new file mode 100644
index 0000000..4ce6014
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayRefMap.cpp
@@ -0,0 +1,747 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "helpers/CDraw.h"
+#include "helpers/CSettings.h"
+#include "items/CItemRefMap.h"
+#include "overlay/COverlayRefMap.h"
+#include "overlay/refmap/CDialogRefPoint.h"
+#include "overlay/refmap/COverlayRefMapPoint.h"
+#include "overlay/refmap/CProjWizard.h"
+
+#include <QtWidgets>
+#include <functional>
+using std::bind;
+
+COverlayRefMap::COverlayRefMap(CItemRefMap *item, QStackedWidget *stackedWidget)
+    : IOverlay(stackedWidget)
+    , context(item->getDrawContext())
+    , item(item)
+{
+    setupUi(this);
+
+    QFileInfo fi(item->getFilename());
+    gcpFilename = fi.completeBaseName() + ".gcp";
+
+    labelHelp->setText(tr("If you used the Grid Tool you have to fine tune the reference points by placing them "
+                          "as much as possible on the grid crossing. Be aware that if you over scale you get "
+                          "jumping points by rounding effects. Be precise but do not make religion out "
+                          "of the task.\nIf your mouse focus is on the map you can use the N and B keys to "
+                          "jump forward an backward in the reference point list. "
+                          "\nThe is also the option to fine tune the reference points in auto-mode. In this "
+                          "mode the next reference point is selected automatically right after you placed the "
+                          "current one. This is very convenient for a large number of reference points."));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    treeWidget->addAction(actionDelRefPoint);
+
+    connect(toolNone, &QToolButton::clicked, this, bind(&COverlayRefMap::slotSetMode, this, eModeNone, std::placeholders::_1));
+    connect(toolRefMove, &QToolButton::clicked, this, bind(&COverlayRefMap::slotSetMode, this, eModePointMove, std::placeholders::_1));
+    connect(toolRefAdd, &QToolButton::clicked, this, bind(&COverlayRefMap::slotSetMode, this, eModePointAdd, std::placeholders::_1));
+    connect(toolRefDel, &QToolButton::clicked, this, bind(&COverlayRefMap::slotSetMode, this, eModePointDel, std::placeholders::_1));
+    connect(toolRefMoveAuto, &QToolButton::clicked, this, bind(&COverlayRefMap::slotSetMode, this, eModePointMoveAuto, std::placeholders::_1));
+    connect(toolRefDelAll, &QToolButton::clicked, this, &COverlayRefMap::slotResetRef);
+    connect(toolLoadGcp, &QToolButton::clicked, this, &COverlayRefMap::slotLoadGcp);
+    connect(toolSaveGcp, &QToolButton::clicked, this, &COverlayRefMap::slotSaveGcp);
+    connect(toolProjection, &QToolButton::clicked, this, &COverlayRefMap::slotProjWizard);
+    connect(toolGridTool, &QToolButton::clicked, this, &COverlayRefMap::slotGridTool);
+    connect(toolSort, &QToolButton::clicked, this, &COverlayRefMap::slotSortRefPoints);
+    connect(treeWidget, &QTreeWidget::itemSelectionChanged, this, &COverlayRefMap::slotSelectionChanged);
+    connect(actionDelRefPoint, &QAction::triggered, this, &COverlayRefMap::slotDelRefPoints);
+}
+
+void COverlayRefMap::saveSettings(QSettings& cfg)
+{
+    QByteArray buffer;
+    QDataStream stream(&buffer, QIODevice::WriteOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_4);
+
+    const int N = treeWidget->topLevelItemCount();
+    stream << N;
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(item != nullptr)
+        {
+            stream << item->getPtPtx() << item->getPtRef();
+        }
+    }
+
+    cfg.beginGroup("grid");
+    cfg.setValue("points", buffer);
+    cfg.setValue("projection", lineProjection->text());
+    cfg.endGroup();
+}
+
+void COverlayRefMap::loadSettings(QSettings& cfg)
+{
+    QByteArray buffer;
+    cfg.beginGroup("grid");
+    buffer = cfg.value("points", buffer).toByteArray();
+    lineProjection->setText(cfg.value("projection", "").toString());
+    lineProjection->setCursorPosition(0);
+    cfg.endGroup();
+
+    QDataStream stream(&buffer, QIODevice::ReadOnly);
+    stream.setByteOrder(QDataStream::LittleEndian);
+    stream.setVersion(QDataStream::Qt_5_4);
+
+
+    int N;
+    stream >> N;
+    for(int n = 0; n < N; n++)
+    {
+        QPointF ptPtx;
+        QPointF ptRef;
+        stream >> ptPtx >> ptRef;
+        new COverlayRefMapPoint(n+1, ptRef, ptPtx, treeWidget);
+    }
+
+    updateGui();
+    slotSortRefPoints();
+    emit sigChanged();
+}
+
+void COverlayRefMap::slotSortRefPoints()
+{
+    treeWidget->sortItems(0, Qt::AscendingOrder);
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * point = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(point == nullptr)
+        {
+            continue;
+        }
+
+        point->setIndex(n);
+    }
+
+    treeWidget->header()->resizeSections(QHeaderView::ResizeToContents);
+}
+
+void COverlayRefMap::addRefPoints(QList<COverlayRefMapPoint*>& points)
+{
+    // it's faster to use a bulk add
+    QList<QTreeWidgetItem*> items;
+    for(QTreeWidgetItem * item : points)
+    {
+        items << item;
+    }
+    treeWidget->addTopLevelItems(items);
+
+    // as the tree widget owns the items now, the list has to be cleared
+    points.clear();
+    // reflect changes on the GUI
+    updateGui();
+
+    emit sigChanged();
+}
+
+QString COverlayRefMap::getMapProjection() const
+{
+    return lineProjection->text();
+}
+
+const QList<COverlayRefMapPoint*> COverlayRefMap::getRefPoints() const
+{
+    QList<COverlayRefMapPoint*> points;
+
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(item != nullptr)
+        {
+            points << item;
+        }
+    }
+
+    return points;
+}
+
+bool COverlayRefMap::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    QRectF dot1(0,0,5,5);
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(item != nullptr)
+        {
+            if(item->isSelected())
+            {
+                p.setPen(QPen(Qt::red, 1));
+                p.setBrush(Qt::red);
+            }
+            else
+            {
+                p.setPen(QPen(Qt::black, 1));
+                p.setBrush(Qt::black);
+            }
+
+            QPointF pt = item->getPtPtx();
+            if((pt - ptFocus1).manhattanLength() > 30)
+            {
+                context->convertMap2Screen(pt);
+                dot1.moveCenter(pt);
+                p.drawRect(dot1);
+            }
+        }
+    }
+
+    QPointF pt = NOPOINTF;
+    if(ptFocus2 != NOPOINTF)
+    {
+        pt = ptFocus2;
+    }
+    else if(ptFocus1 != NOPOINTF)
+    {
+        pt = ptFocus1;
+    }
+
+
+    if(pt != NOPOINTF)
+    {
+        context->convertMap2Screen(pt);
+
+        if(movePoint)
+        {
+            QPointF pt1 = ptFocus1;
+            context->convertMap2Screen(pt1);
+
+            p.setPen(QPen(Qt::red, 1));
+            p.setBrush(Qt::red);
+            p.drawLine(pt1, pt);
+            dot1.moveCenter(pt1);
+            p.drawRect(dot1);
+        }
+
+        CDraw::drawCrossHairDot(p, pt);
+    }
+
+
+    return true;
+}
+
+QPointF COverlayRefMap::isCloseTo(QPointF pt)
+{
+    qint32 min              = 30;
+    COverlayRefMapPoint * selItem  = nullptr;
+
+    context->convertMap2Screen(pt);
+
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(item == nullptr)
+        {
+            continue;
+        }
+
+        QPointF ptx = item->getPtPtx();
+        context->convertMap2Screen(ptx);
+
+        qint32 d = (pt - ptx).manhattanLength();
+        if(d < min)
+        {
+            min = d;
+            selItem = item;
+        }
+    }
+
+    if(selItem != nullptr)
+    {
+        treeWidget->setCurrentItem(selItem);
+        return selItem->getPtPtx();
+    }
+    else
+    {
+        return NOPOINTF;
+    }
+}
+
+
+void COverlayRefMap::mouseMoveEventFx(QMouseEvent *e)
+{
+    QPointF pt = e->pos();
+    context->convertScreen2Map(pt);
+
+    switch(mode)
+    {
+    case eModePointMove:
+    case eModePointMoveAuto:
+        mouseMovePointMove(pt);
+        break;
+
+    case eModePointAdd:
+        mouseMovePointAdd(pt);
+        break;
+
+    case eModePointDel:
+        mouseMovePointDel(pt);
+        break;
+    }
+
+    updateGui();
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayRefMap::mouseReleaseEventFx(QMouseEvent *e)
+{
+    QPointF pt = e->pos();
+    context->convertScreen2Map(pt);
+
+    Qt::MouseButton button = e->button();
+
+    switch(mode)
+    {
+    case eModePointMove:
+    case eModePointMoveAuto:
+        mouseReleasePointMove(pt, button);
+        break;
+
+    case eModePointAdd:
+        mouseReleasePointAdd(pt, button);
+        break;
+
+    case eModePointDel:
+        mouseReleasePointDel(pt, button);
+        break;
+    }
+
+    updateGui();
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayRefMap::mouseMovePointAdd(const QPointF &pt)
+{
+    ptFocus1 = pt;
+}
+
+void COverlayRefMap::mouseMovePointDel(const QPointF &pt)
+{
+    ptFocus1 = isCloseTo(pt);
+}
+
+void COverlayRefMap::mouseMovePointMove(const QPointF &pt)
+{
+    if(movePoint)
+    {
+        ptFocus2 = pt;
+    }
+    else
+    {
+        ptFocus1 = isCloseTo(pt);
+    }
+}
+
+void COverlayRefMap::mouseReleasePointAdd(const QPointF &pt, Qt::MouseButton button)
+{
+    if(button == Qt::LeftButton)
+    {
+        QPointF ptPtx = pt;
+        QPointF ptRef = NOPOINTF;
+        // ask for coordinate
+        CDialogRefPoint dlg(ptPtx, ptRef, this);
+        int res = dlg.exec();
+        if(res == QDialog::Accepted)
+        {
+            new COverlayRefMapPoint(treeWidget->topLevelItemCount() + 1, ptRef, ptPtx, treeWidget);
+            emit sigChanged();
+        }
+    }
+    else if(button == Qt::RightButton)
+    {
+        abortStep();
+        toolNone->click();
+        CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointAdd");
+    }
+}
+
+void COverlayRefMap::mouseReleasePointDel(const QPointF &pt, Qt::MouseButton button)
+{
+    if(button == Qt::LeftButton)
+    {
+        if(ptFocus1 == NOPOINTF)
+        {
+            return;
+        }
+
+        const int N = treeWidget->topLevelItemCount();
+        for(int n = 0; n < N; n++)
+        {
+            COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+            if(item == nullptr)
+            {
+                continue;
+            }
+
+            if(item->getPtPtx() == ptFocus1)
+            {
+                delete item;
+                abortStep();
+                emit sigChanged();
+                return;
+            }
+        }
+    }
+    else if(button == Qt::RightButton)
+    {
+        CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointDel");
+        toolNone->click();
+        abortStep();
+    }
+}
+
+void COverlayRefMap::mouseReleasePointMove(const QPointF &pt, Qt::MouseButton button)
+{
+    if(button == Qt::LeftButton)
+    {
+        if(movePoint)
+        {
+            const int N = treeWidget->topLevelItemCount();
+            for(int n = 0; n < N; n++)
+            {
+                COverlayRefMapPoint * item = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+                if(item == nullptr)
+                {
+                    continue;
+                }
+
+                if(item->getPtPtx() == ptFocus1)
+                {
+                    item->setPtPtx(pt);
+                    break;
+                }
+            }
+
+            switch(mode)
+            {
+            case eModePointMove:
+            {
+                abortStep();
+                CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointMove");
+                break;
+            }
+
+            case eModePointMoveAuto:
+            {
+                int idx = treeWidget->indexOfTopLevelItem(treeWidget->currentItem()) + 1;
+                if(idx >= treeWidget->topLevelItemCount())
+                {
+                    abortStep();
+                    CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointMove");
+                }
+                else
+                {
+                    COverlayRefMapPoint * point = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(idx));
+                    if(point == nullptr)
+                    {
+                        return;
+                    }
+                    treeWidget->setCurrentItem(point);
+                    treeWidget->scrollToItem(point);
+
+                    QPointF pt1 = point->getPtPtx();
+                    ptFocus1    = pt1;
+                    ptFocus2    = pt;
+                    context->convertMap2Screen(pt1);
+
+                    QPointF pt2 = context->getCanvas()->rect().center();
+                    context->move(pt2 - pt1);
+                    context->triggerCompleteUpdate(CCanvas::eRedrawAll);
+                }
+                break;
+            }
+            }
+        }
+        else
+        {
+            if(ptFocus1 != NOPOINTF)
+            {
+                ptFocus2    = pt;
+                movePoint   = true;
+                CCanvas::setOverrideCursor(Qt::BlankCursor, "CRefMapGrid::mouseReleasePointMove");
+            }
+        }
+    }
+    else if(button == Qt::RightButton)
+    {
+        if(!movePoint)
+        {
+            toolNone->click();
+        }
+        abortStep();
+        CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointMove");
+    }
+}
+
+
+bool COverlayRefMap::keyPressEventFx(QKeyEvent *e)
+{
+    QTreeWidgetItem * item = treeWidget->currentItem();
+    if(item == nullptr)
+    {
+        return false;
+    }
+
+    int idx = treeWidget->indexOfTopLevelItem(item);
+
+    switch(e->key())
+    {
+    case Qt::Key_N:
+    {
+        ++idx;
+        idx = qMin(idx, treeWidget->topLevelItemCount() - 1);
+        break;
+    }
+
+    case Qt::Key_B:
+    {
+        --idx;
+        idx = qMax(idx, 0);
+        break;
+    }
+
+    default:
+        return false;
+    }
+
+
+    if(movePoint)
+    {
+        switch(mode)
+        {
+        case eModePointMove:
+            return false;
+
+        case eModePointMoveAuto:
+            abortStep();
+            CCanvas::restoreOverrideCursor("CRefMapGrid::mouseReleasePointMove");
+            break;
+        }
+    }
+
+    COverlayRefMapPoint * point = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(idx));
+    if(point == nullptr)
+    {
+        return false;
+    }
+    treeWidget->setCurrentItem(point);
+    treeWidget->scrollToItem(point);
+
+    QPointF pt1 = point->getPtPtx();
+    QPointF pt2 = context->getCanvas()->rect().center();
+    context->convertMap2Screen(pt1);
+    context->move(pt2 - pt1);
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawAll);
+
+    return true;
+}
+
+QCursor COverlayRefMap::getCursorFx()
+{
+    switch(mode)
+    {
+    case COverlayRefMap::eModePointAdd:
+        return Qt::BlankCursor;
+
+    case COverlayRefMap::eModePointDel:
+        return QCursor(QPixmap(":/cursors/cursorPointDel.png"), 0, 0);
+
+    case COverlayRefMap::eModePointMoveAuto:
+    case COverlayRefMap::eModePointMove:
+        return QCursor(QPixmap(":/cursors/cursorPointMove.png"), 0, 0);
+    }
+
+    return Qt::ArrowCursor;
+}
+
+void COverlayRefMap::updateGui()
+{
+    bool isEmpty = treeWidget->topLevelItemCount() == 0;
+    toolRefDel->setDisabled(isEmpty);
+    toolRefMove->setDisabled(isEmpty);
+    toolRefDelAll->setDisabled(isEmpty);
+    toolRefMoveAuto->setDisabled(isEmpty);
+    toolSaveGcp->setDisabled(isEmpty);
+}
+
+void COverlayRefMap::abortStep()
+{
+    movePoint   = false;
+    ptFocus1    = NOPOINTF;
+    ptFocus2    = NOPOINTF;
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayRefMap::slotSetMode(mode_e m, bool on)
+{
+    if(on)
+    {
+        mode = m;
+    }
+}
+
+void COverlayRefMap::slotSaveGcp()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/gcpInput", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getSaveFileName(0, tr("Save reference points..."), path + "/" + gcpFilename, "Ref. points (*.gcp)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("Path/gcpInput", QFileInfo(filename).absolutePath());
+
+    gcpFilename = filename;
+
+    QFile file(filename);
+    file.open(QIODevice::WriteOnly);
+    QTextStream out(&file);
+    out.setRealNumberPrecision(10);
+
+    out << "#V1.0" << endl;
+    out << "#gcpproj: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" << endl;
+
+    const int N = treeWidget->topLevelItemCount();
+    for(int n = 0; n < N; n++)
+    {
+        COverlayRefMapPoint * pt = dynamic_cast<COverlayRefMapPoint*>(treeWidget->topLevelItem(n));
+        if(pt == nullptr)
+        {
+            continue;
+        }
+        const QPointF& ptx = pt->getPtPtx();
+        const QPointF& ref = pt->getPtRef();
+
+        out << "-gcp " << ptx.x() << " " << ptx.y() << " " << ref.y() << " " << ref.x() << endl;
+    }
+
+    file.close();
+}
+
+void COverlayRefMap::slotLoadGcp()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/gcpInput", QDir::homePath()).toString();
+
+    QString filename = QFileDialog::getOpenFileName(0, tr("Load reference points..."), path, "Ref. points (*.gcp)");
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("Path/gcpInput", QFileInfo(filename).absolutePath());
+
+    QFile file(filename);
+    file.open(QIODevice::ReadOnly);
+    QString line = file.readLine();
+    if(line.trimmed() == "#V1.0")
+    {
+        QRegExp re1("^-gcp\\s(-{0,1}[0-9]+)\\s(-{0,1}[0-9]+)\\s(-{0,1}[0-9\\.]+)\\s(-{0,1}[0-9\\.]+).*$");
+        QRegExp re2("^-a_srs\\s(.*)$");
+        QRegExp re3("^#gcpproj:\\s(.*)$");
+
+        qint32 cnt = 1;
+        while(1)
+        {
+            if(re1.exactMatch(line))
+            {
+                QPointF ptPtx(re1.cap(1).toDouble(),re1.cap(2).toDouble());
+                QPointF ptRef(re1.cap(4).toDouble(),re1.cap(3).toDouble());
+                new COverlayRefMapPoint(cnt++, ptRef, ptPtx, treeWidget);
+            }
+
+            if (file.atEnd())
+            {
+                break;
+            }
+            line = file.readLine();
+        }
+    }
+
+    updateGui();
+
+    emit sigChanged();
+}
+
+void COverlayRefMap::slotResetRef()
+{
+    int res = QMessageBox::question(this, tr("Delete all reference points..."), tr("Are you sure to delete all reference points in the list?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+    if(res != QMessageBox::Yes)
+    {
+        return;
+    }
+    treeWidget->clear();
+    updateGui();
+
+    emit sigChanged();
+}
+
+void COverlayRefMap::slotProjWizard()
+{
+    CProjWizard dlg(*lineProjection, this);
+    dlg.exec();
+    lineProjection->setCursorPosition(0);
+
+    emit sigChanged();
+}
+
+void COverlayRefMap::slotGridTool()
+{
+    CMainWindow::self().startGridTool(item);
+}
+
+void COverlayRefMap::slotSelectionChanged()
+{
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void COverlayRefMap::slotDelRefPoints()
+{
+    const QList<QTreeWidgetItem*>items = treeWidget->selectedItems();
+    if(items.count() > 1)
+    {
+        int res = QMessageBox::question(this, tr("Delete..."), tr("Delete all selected reference points?"), QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
+        if(res != QMessageBox::Yes)
+        {
+            return;
+        }
+    }
+
+    qDeleteAll(items);
+
+    emit sigChanged();
+}
+
+bool COverlayRefMap::isOk() const
+{
+    bool ok = true;
+    ok &= (treeWidget->topLevelItemCount() > 2);
+    ok &= CProjWizard::validProjStr(lineProjection->text());
+    return ok;
+}
diff --git a/src/qmaptool/overlay/COverlayRefMap.h b/src/qmaptool/overlay/COverlayRefMap.h
new file mode 100644
index 0000000..0339100
--- /dev/null
+++ b/src/qmaptool/overlay/COverlayRefMap.h
@@ -0,0 +1,103 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef COVERLAYREFMAP_H
+#define COVERLAYREFMAP_H
+
+#include "overlay/IOverlay.h"
+#include "ui_IOverlayRefMap.h"
+#include "units/IUnit.h"
+
+class QStackedWidget;
+class IDrawContext;
+class QSettings;
+class CItemRefMap;
+class COverlayRefMapPoint;
+
+class COverlayRefMap : public IOverlay, private Ui::IOverlayRefMap
+{
+    Q_OBJECT
+public:
+    COverlayRefMap(CItemRefMap *item, QStackedWidget * stackedWidget);
+    virtual ~COverlayRefMap() = default;
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    void addRefPoints(QList<COverlayRefMapPoint*>& points);
+    QString getMapProjection() const;
+    const QList<COverlayRefMapPoint *> getRefPoints() const;
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    bool keyPressEventFx(QKeyEvent *e);
+    QCursor getCursorFx();
+
+    void abortStep();
+
+    enum mode_e
+    {
+        eModeNone
+        ,eModePointMove
+        ,eModePointAdd
+        ,eModePointDel
+        ,eModePointMoveAuto
+    };
+
+    bool isOk() const;
+
+private slots:
+    void slotSetMode(mode_e m, bool on);
+    void slotSaveGcp();
+    void slotLoadGcp();
+    void slotResetRef();
+    void slotProjWizard();
+    void slotGridTool();
+    void slotSelectionChanged();
+    void slotDelRefPoints();
+    void slotSortRefPoints();
+
+
+private:
+    void updateGui();
+    QPointF isCloseTo(QPointF pt);
+
+    void mouseMovePointAdd(const QPointF &pt);
+    void mouseMovePointDel(const QPointF &pt);
+    void mouseMovePointMove(const QPointF &pt);
+
+    void mouseReleasePointAdd(const QPointF &pt, Qt::MouseButton button);
+    void mouseReleasePointDel(const QPointF &pt, Qt::MouseButton button);
+    void mouseReleasePointMove(const QPointF &pt, Qt::MouseButton button);
+
+    IDrawContext* context;
+    CItemRefMap * item;
+
+    mode_e mode = eModeNone;
+
+    QPointF ptFocus1 = NOPOINTF;
+    QPointF ptFocus2 = NOPOINTF;
+    bool movePoint   = false;
+
+    QString gcpFilename;
+};
+
+#endif //COVERLAYREFMAP_H
+
+
diff --git a/src/qmaptool/overlay/IOverlay.cpp b/src/qmaptool/overlay/IOverlay.cpp
new file mode 100644
index 0000000..148d1c1
--- /dev/null
+++ b/src/qmaptool/overlay/IOverlay.cpp
@@ -0,0 +1,36 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "overlay/IOverlay.h"
+
+#include <QtWidgets>
+
+IOverlay::IOverlay(QStackedWidget *parent)
+    : QWidget(parent)
+    , stackedWidget(parent)
+{
+    stackedWidget->addWidget(this);
+}
+
+
+void IOverlay::toFront()
+{
+    stackedWidget->setCurrentWidget(this);
+}
+
+
diff --git a/src/qmaptool/overlay/IOverlay.h b/src/qmaptool/overlay/IOverlay.h
new file mode 100644
index 0000000..d7e968e
--- /dev/null
+++ b/src/qmaptool/overlay/IOverlay.h
@@ -0,0 +1,43 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef IOVERLAY_H
+#define IOVERLAY_H
+
+#include <QWidget>
+
+class QStackedWidget;
+
+class IOverlay : public QWidget
+{
+    Q_OBJECT
+public:
+    IOverlay(QStackedWidget * parent);
+    virtual ~IOverlay() = default;
+
+    void toFront();
+
+signals:
+    void sigChanged();
+
+protected:
+    QStackedWidget * stackedWidget;
+};
+
+#endif //IOVERLAY_H
+
diff --git a/src/qmaptool/overlay/IOverlayCutMap.ui b/src/qmaptool/overlay/IOverlayCutMap.ui
new file mode 100644
index 0000000..e7a6976
--- /dev/null
+++ b/src/qmaptool/overlay/IOverlayCutMap.ui
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IOverlayCutMap</class>
+ <widget class="QWidget" name="IOverlayCutMap">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>254</width>
+    <height>25</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QHBoxLayout" name="horizontalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QToolButton" name="toolNone">
+     <property name="toolTip">
+      <string>Just move the map and zoom.</string>
+     </property>
+     <property name="text">
+      <string/>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/MoveArrow.png</normaloff>:/icons/32x32/MoveArrow.png</iconset>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+     <property name="autoExclusive">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolPointAdd">
+     <property name="toolTip">
+      <string>Add point to mask.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/PointAdd.png</normaloff>:/icons/32x32/PointAdd.png</iconset>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="autoExclusive">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolPointMove">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="toolTip">
+      <string>Move point of mask.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/PointMove.png</normaloff>:/icons/32x32/PointMove.png</iconset>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="autoExclusive">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolPointDel">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="toolTip">
+      <string>Remove point from mask.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/PointDel.png</normaloff>:/icons/32x32/PointDel.png</iconset>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="autoExclusive">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolPointDelAll">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="toolTip">
+      <string>Remove complete cut mask.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/PointDelAll.png</normaloff>:/icons/32x32/PointDelAll.png</iconset>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="Line" name="line_2">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolLoadShape">
+     <property name="toolTip">
+      <string>Load cut mask from shape file.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/LoadShape.png</normaloff>:/icons/32x32/LoadShape.png</iconset>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QToolButton" name="toolSaveShape">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="toolTip">
+      <string>Save cut mask to shape file.</string>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="icon">
+      <iconset resource="../resources.qrc">
+       <normaloff>:/icons/32x32/SaveShape.png</normaloff>:/icons/32x32/SaveShape.png</iconset>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <spacer name="horizontalSpacer">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/IOverlayGridTool.ui b/src/qmaptool/overlay/IOverlayGridTool.ui
new file mode 100644
index 0000000..7e8c1ab
--- /dev/null
+++ b/src/qmaptool/overlay/IOverlayGridTool.ui
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IOverlayGridTool</class>
+ <widget class="QWidget" name="IOverlayGridTool">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>462</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout_2">
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item row="0" column="0">
+    <layout class="QVBoxLayout" name="verticalLayout_3">
+     <item>
+      <widget class="QRadioButton" name="radioSetRef">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer_3">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="0">
+    <layout class="QVBoxLayout" name="verticalLayout">
+     <item>
+      <widget class="QRadioButton" name="radioGridPlacer">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="1" column="1">
+    <widget class="CGridPlacer" name="widgetGridPlacer" native="true">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <layout class="QVBoxLayout" name="verticalLayout_2">
+     <item>
+      <widget class="QRadioButton" name="radioSelectArea">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="verticalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>20</width>
+         <height>40</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item row="2" column="1">
+    <widget class="CGridSelArea" name="widgetSelectArea" native="true">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1">
+    <widget class="QLabel" name="labelFinal">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="text">
+      <string>do not translate</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="1">
+    <widget class="CGridSetRef" name="widgetSetRef" native="true"/>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CGridPlacer</class>
+   <extends>QWidget</extends>
+   <header>overlay/gridtool/CGridPlacer.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CGridSelArea</class>
+   <extends>QWidget</extends>
+   <header>overlay/gridtool/CGridSelArea.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CGridSetRef</class>
+   <extends>QWidget</extends>
+   <header>overlay/gridtool/CGridSetRef.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>radioSetRef</tabstop>
+  <tabstop>radioGridPlacer</tabstop>
+  <tabstop>radioSelectArea</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/IOverlayRefMap.ui b/src/qmaptool/overlay/IOverlayRefMap.ui
new file mode 100644
index 0000000..9001fe6
--- /dev/null
+++ b/src/qmaptool/overlay/IOverlayRefMap.ui
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IOverlayRefMap</class>
+ <widget class="QWidget" name="IOverlayRefMap">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>376</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QToolButton" name="toolNone">
+       <property name="toolTip">
+        <string>Just move the map and zoom.</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/MoveArrow.png</normaloff>:/icons/32x32/MoveArrow.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRefAdd">
+       <property name="toolTip">
+        <string>Add reference point.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/RefAdd.png</normaloff>:/icons/32x32/RefAdd.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRefMove">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Move reference point.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/RefMove.png</normaloff>:/icons/32x32/RefMove.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRefDel">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Remove single reference point.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/RefDel.png</normaloff>:/icons/32x32/RefDel.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRefMoveAuto">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Move reference points with auto mode. This will pickup the next point after you moved a reference point.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/RefMoveAuto.png</normaloff>:/icons/32x32/RefMoveAuto.png</iconset>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+       <property name="autoExclusive">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line_2">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolRefDelAll">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Remove all reference points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/RefDelAll.png</normaloff>:/icons/32x32/RefDelAll.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolGridTool">
+       <property name="toolTip">
+        <string>Switch to the Grid Tool.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/GridTool.png</normaloff>:/icons/32x32/GridTool.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="Line" name="line">
+       <property name="orientation">
+        <enum>Qt::Vertical</enum>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolLoadGcp">
+       <property name="toolTip">
+        <string>Load reference points from GCP file.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/LoadGcp.png</normaloff>:/icons/32x32/LoadGcp.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolSaveGcp">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="toolTip">
+        <string>Save reference points into GCP file.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/SaveGcp.png</normaloff>:/icons/32x32/SaveGcp.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolSort">
+       <property name="toolTip">
+        <string>Sort list of reference points.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/Sort.png</normaloff>:/icons/32x32/Sort.png</iconset>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QTreeWidget" name="treeWidget">
+     <property name="contextMenuPolicy">
+      <enum>Qt::ActionsContextMenu</enum>
+     </property>
+     <property name="selectionMode">
+      <enum>QAbstractItemView::ExtendedSelection</enum>
+     </property>
+     <property name="selectionBehavior">
+      <enum>QAbstractItemView::SelectRows</enum>
+     </property>
+     <property name="rootIsDecorated">
+      <bool>false</bool>
+     </property>
+     <property name="itemsExpandable">
+      <bool>false</bool>
+     </property>
+     <property name="expandsOnDoubleClick">
+      <bool>false</bool>
+     </property>
+     <column>
+      <property name="text">
+       <string notr="true">#</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>(x, y)[pixel]</string>
+      </property>
+     </column>
+     <column>
+      <property name="text">
+       <string>(lat, lon)[°]</string>
+      </property>
+     </column>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Final Map Projection:</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <property name="spacing">
+      <number>3</number>
+     </property>
+     <item>
+      <widget class="QLineEdit" name="lineProjection">
+       <property name="toolTip">
+        <string>Enter a valid projection string. Valid strings are "+proj..." or "+init=epsg:...".</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolProjection">
+       <property name="toolTip">
+        <string>Start projection wizard.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/GridWizard.png</normaloff>:/icons/32x32/GridWizard.png</iconset>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+  <action name="actionDelRefPoint">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/DeleteMultiple.png</normaloff>:/icons/32x32/DeleteMultiple.png</iconset>
+   </property>
+   <property name="text">
+    <string>Delete</string>
+   </property>
+  </action>
+ </widget>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/gridtool/CGridPlacer.cpp b/src/qmaptool/overlay/gridtool/CGridPlacer.cpp
new file mode 100644
index 0000000..ea77843
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridPlacer.cpp
@@ -0,0 +1,274 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "items/CItemRefMap.h"
+#include "overlay/gridtool/CGridPlacer.h"
+#include "overlay/gridtool/CGridPoint.h"
+
+#include <QtWidgets>
+#include <functional>
+using std::bind;
+
+
+CGridPlacer::CGridPlacer(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+
+    labelHelp->setText(tr("Select one of the corners and place the marker at "
+                          "the corresponding grid crossing on the map. All "
+                          "4 corners have to be placed."));
+
+    QButtonGroup * group = new QButtonGroup(this);
+    group->addButton(radioPoint1);
+    group->addButton(radioPoint2);
+    group->addButton(radioPoint3);
+    group->addButton(radioPoint4);
+
+    connect(radioPoint1, &QToolButton::toggled, this, bind(&CGridPlacer::slotSetPoint, this, 0, std::placeholders::_1));
+    connect(radioPoint2, &QToolButton::toggled, this, bind(&CGridPlacer::slotSetPoint, this, 1, std::placeholders::_1));
+    connect(radioPoint3, &QToolButton::toggled, this, bind(&CGridPlacer::slotSetPoint, this, 2, std::placeholders::_1));
+    connect(radioPoint4, &QToolButton::toggled, this, bind(&CGridPlacer::slotSetPoint, this, 3, std::placeholders::_1));
+    connect(pushReset, &QPushButton::clicked, this, &CGridPlacer::slotReset);
+    connect(pushSetArea, &QPushButton::clicked, this, &CGridPlacer::slotSetArea);
+}
+
+void CGridPlacer::registerItem(CItemRefMap * item)
+{
+    this->item = item;
+
+    if(item != nullptr)
+    {
+        points = QVector<CGridPoint>(4);
+
+        for(CGridPoint& point : points)
+        {
+            point.registerItem(item);
+        }
+
+        radioPoint1->setChecked(true);
+    }
+}
+
+void CGridPlacer::saveSettings(QSettings& cfg)
+{
+    cfg.beginGroup("Points");
+    for(int i = 0; i < points.size(); i++)
+    {
+        const QPointF& pt = points[i].getPoint();
+        if(pt != NOPOINTF)
+        {
+            cfg.setValue(QString::number(i), pt);
+        }
+    }
+    cfg.endGroup();
+}
+
+void CGridPlacer::loadSettings(QSettings& cfg)
+{
+    cfg.beginGroup("Points");
+    for(int i = 0; i < points.size(); i++)
+    {
+        QPointF pt = cfg.value(QString::number(i), NOPOINTF).toPointF();
+        points[i].setPoint(pt);
+    }
+    cfg.endGroup();
+    updateStatus();
+}
+
+bool CGridPlacer::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    for(CGridPoint& point : points)
+    {
+        point.drawFx(p, needsRedraw);
+    }
+
+    return true;
+}
+
+void CGridPlacer::mouseMoveEventFx(QMouseEvent *e)
+{
+    points[idx].mouseMoveEventFx(e);
+}
+
+void CGridPlacer::mouseReleaseEventFx(QMouseEvent *e)
+{
+    points[idx].mouseReleaseEventFx(e);
+    updateStatus();
+}
+
+void CGridPlacer::leaveEventFx(QEvent *e)
+{
+    points[idx].leaveEventFx(e);
+}
+
+QCursor CGridPlacer::getCursorFx()
+{
+    return points[idx].getCursorFx();
+}
+
+void CGridPlacer::slotSetPoint(qint32 i, bool on)
+{
+    if(on)
+    {
+        idx = i;
+    }
+}
+
+void CGridPlacer::slotReset()
+{
+    for(CGridPoint& point : points)
+    {
+        point.setPoint(NOPOINTF);
+    }
+
+    updateStatus();
+
+    item->getDrawContext()->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void CGridPlacer::updateStatus()
+{
+    /// @todo optimize this
+
+    const QPointF& pt1 = points[0].getPoint();
+    const QPointF& pt2 = points[1].getPoint();
+    const QPointF& pt3 = points[2].getPoint();
+    const QPointF& pt4 = points[3].getPoint();
+
+    statusIsOk = true;
+
+    if(pt1 == NOPOINTF)
+    {
+        statusIsOk = false;
+        labelStatusPoint1->setText(tr("Point 1 - not set"));
+    }
+    else
+    {
+        labelStatusPoint1->setText("<b style='color: green'>" + tr("Point 1 - ok") + "</b>");
+
+        if((pt2 != NOPOINTF) && (pt2.x() < pt1.x()))
+        {
+            statusIsOk = false;
+            labelStatusPoint1->setText("<b style='color: red'>" + tr("Point 1 - bad") + "</b>");
+        }
+        if((pt4 != NOPOINTF) && (pt4.y() < pt1.y()))
+        {
+            statusIsOk = false;
+            labelStatusPoint1->setText("<b style='color: red'>" + tr("Point 1 - bad") + "</b>");
+        }
+    }
+
+    if(pt2 == NOPOINTF)
+    {
+        statusIsOk = false;
+        labelStatusPoint2->setText(tr("Point 2 - not set"));
+    }
+    else
+    {
+        labelStatusPoint2->setText("<b style='color: green'>" + tr("Point 2 - ok") + "</b>");
+
+        if((pt1 != NOPOINTF) && (pt1.x() > pt2.x()))
+        {
+            statusIsOk = false;
+            labelStatusPoint2->setText("<b style='color: red'>" + tr("Point 2 - bad") + "</b>");
+        }
+        if((pt3 != NOPOINTF) && (pt3.y() < pt2.y()))
+        {
+            statusIsOk = false;
+            labelStatusPoint2->setText("<b style='color: red'>" + tr("Point 2 - bad") + "</b>");
+        }
+    }
+
+
+    if(pt3 == NOPOINTF)
+    {
+        statusIsOk = false;
+        labelStatusPoint3->setText(tr("Point 3 - not set"));
+    }
+    else
+    {
+        labelStatusPoint3->setText("<b style='color: green'>" + tr("Point 3 - ok") + "</b>");
+
+        if((pt4 != NOPOINTF) && (pt4.x() > pt3.x()))
+        {
+            statusIsOk = false;
+            labelStatusPoint3->setText("<b style='color: red'>" + tr("Point 3 - bad") + "</b>");
+        }
+        if((pt2 != NOPOINTF) && (pt2.y() > pt3.y()))
+        {
+            statusIsOk = false;
+            labelStatusPoint3->setText("<b style='color: red'>" + tr("Point 3 - bad") + "</b>");
+        }
+    }
+
+
+    if(pt4 == NOPOINTF)
+    {
+        statusIsOk = false;
+        labelStatusPoint4->setText(tr("Point 4 - not set"));
+    }
+    else
+    {
+        labelStatusPoint4->setText("<b style='color: green'>" + tr("Point 4 - ok") + "</b>");
+
+        if((pt3 != NOPOINTF) && (pt3.x() < pt4.x()))
+        {
+            statusIsOk = false;
+            labelStatusPoint4->setText("<b style='color: red'>" + tr("Point 4 - bad") + "</b>");
+        }
+        if((pt1 != NOPOINTF) && (pt1.y() > pt4.y()))
+        {
+            statusIsOk = false;
+            labelStatusPoint4->setText("<b style='color: red'>" + tr("Point 4 - bad") + "</b>");
+        }
+    }
+
+    pushSetArea->setEnabled(statusIsOk);
+
+    emit sigChanged();
+}
+
+
+void CGridPlacer::slotSetArea() const
+{
+    qreal bottom    = -NOFLOAT;
+    qreal top       =  NOFLOAT;
+    qreal left      =  NOFLOAT;
+    qreal right     = -NOFLOAT;
+
+    for(const CGridPoint& point : points)
+    {
+        const QPointF& pt = point.getPoint();
+
+        top     = qMin(pt.y(), top);
+        bottom  = qMax(pt.y(), bottom);
+        left    = qMin(pt.x(), left);
+        right   = qMax(pt.x(), right);
+    }
+
+    QRectF r(0,0,1,1);
+    r.setLeft(left);
+    r.setRight(right);
+    r.setTop(top);
+    r.setBottom(bottom);
+
+
+    emit sigSetArea(r);
+}
diff --git a/src/qmaptool/overlay/gridtool/CGridPlacer.h b/src/qmaptool/overlay/gridtool/CGridPlacer.h
new file mode 100644
index 0000000..8d32104
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridPlacer.h
@@ -0,0 +1,85 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGRIDPLACER_H
+#define CGRIDPLACER_H
+
+#include "canvas/CCanvas.h"
+#include "overlay/gridtool/CGridPoint.h"
+
+#include "ui_IGridPlacer.h"
+
+class CItemRefMap;
+class QSettings;
+
+class CGridPlacer : public QWidget, private Ui::IGridPlacer
+{
+    Q_OBJECT
+public:
+    CGridPlacer(QWidget * parent);
+    virtual ~CGridPlacer() = default;
+
+    void registerItem(CItemRefMap * item);
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    void leaveEventFx(QEvent *e);
+    QCursor getCursorFx();
+
+    bool isOk() const
+    {
+        return statusIsOk;
+    }
+
+    const QPointF& getPoint(int idx) const
+    {
+        if(idx < points.count())
+        {
+            return points[idx].getPoint();
+        }
+        return NOPOINTF;
+    }
+
+signals:
+    void sigChanged();
+    void sigSetArea(const QRectF& area) const;
+
+public slots:
+    void slotReset();
+
+private slots:
+    void slotSetPoint(qint32 i, bool on);
+    void slotSetArea() const;
+
+private:
+    void updateStatus();
+    CItemRefMap * item = nullptr;
+
+    qint32 idx = 0;
+
+    QVector<CGridPoint> points;
+
+    bool statusIsOk = false;
+};
+
+#endif //CGRIDPLACER_H
+
diff --git a/src/qmaptool/overlay/gridtool/CGridPoint.cpp b/src/qmaptool/overlay/gridtool/CGridPoint.cpp
new file mode 100644
index 0000000..b1a1cf6
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridPoint.cpp
@@ -0,0 +1,184 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "helpers/CDraw.h"
+#include "items/CItemRefMap.h"
+#include "overlay/gridtool/CGridPoint.h"
+
+#include <QtWidgets>
+
+CGridPoint::CGridPoint()
+{
+}
+
+void CGridPoint::registerItem(CItemRefMap * item)
+{
+    this->item = item;
+
+    if(item != nullptr)
+    {
+        context = item->getDrawContext();
+        if(context == nullptr)
+        {
+            this->item = nullptr;
+        }
+    }
+    else
+    {
+        context = nullptr;
+    }
+}
+
+bool CGridPoint::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    if(ptFocus1 != NOPOINTF)
+    {
+        QPointF pt = ptFocus1;
+        context->convertMap2Screen(pt);
+        CDraw::drawCrossHairDot(p, pt);
+    }
+
+    if(ptPoint != NOPOINTF)
+    {
+        QPointF pt = ptPoint;
+        context->convertMap2Screen(pt);
+
+        QRectF dot1(0,0,7,7);
+        dot1.moveCenter(pt);
+
+        if(state == eStateHighlight)
+        {
+            p.setPen(QPen(QColor("#ffaa00"), 2));
+            p.setBrush(QColor("#ffaa00"));
+        }
+        else
+        {
+            p.setPen(QPen(Qt::white, 1));
+            p.setBrush(QColor("#ffaa00"));
+        }
+
+        p.drawRect(dot1);
+    }
+
+    return true;
+}
+
+void CGridPoint::mouseMoveEventFx(QMouseEvent *e)
+{
+    QPointF pt = e->pos();
+
+
+    switch(state)
+    {
+    case eStateMove:
+    case eStateNotSet:
+        context->convertScreen2Map(pt);
+        ptFocus1 = pt;
+        break;
+
+    case eStateSet:
+    {
+        QPointF point = ptPoint;
+        context->convertMap2Screen(point);
+        if((point - pt).manhattanLength() < 30)
+        {
+            state = eStateHighlight;
+        }
+        break;
+    }
+
+    case eStateHighlight:
+    {
+        QPointF point = ptPoint;
+        context->convertMap2Screen(point);
+        if((point - pt).manhattanLength() >= 30)
+        {
+            state = eStateSet;
+        }
+        break;
+    }
+    }
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void CGridPoint::mouseReleaseEventFx(QMouseEvent *e)
+{
+    switch(state)
+    {
+    case eStateMove:
+    case eStateNotSet:
+        ptPoint     = ptFocus1;
+        ptFocus1    = NOPOINTF;
+        state       = eStateSet;
+        CCanvas::restoreOverrideCursor("CGridPoint::mouseReleaseEventFx");
+        break;
+
+    case eStateSet:
+        break;
+
+    case eStateHighlight:
+        ptFocus1    = ptPoint;
+        ptPoint     = NOPOINTF;
+        state       = eStateMove;
+        CCanvas::setOverrideCursor(Qt::BlankCursor, "CGridPoint::mouseReleaseEventFx");
+        break;
+    }
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+void CGridPoint::leaveEventFx(QEvent *e)
+{
+    ptFocus1 = NOPOINTF;
+
+    switch(state)
+    {
+    case eStateNotSet:
+    case eStateSet:
+        break;
+
+    case eStateHighlight:
+    case eStateMove:
+        state = eStateSet;
+        break;
+    }
+
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+}
+
+QCursor CGridPoint::getCursorFx()
+{
+    switch(state)
+    {
+    case eStateNotSet:
+        return Qt::BlankCursor;
+
+    case eStateSet:
+        return Qt::ArrowCursor;
+
+    case eStateHighlight:
+        return Qt::ArrowCursor;
+
+    case eStateMove:
+        return Qt::BlankCursor;
+    }
+
+    return Qt::ArrowCursor;
+}
diff --git a/src/qmaptool/overlay/gridtool/CGridPoint.h b/src/qmaptool/overlay/gridtool/CGridPoint.h
new file mode 100644
index 0000000..5db2d86
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridPoint.h
@@ -0,0 +1,70 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGRIDPOINT_H
+#define CGRIDPOINT_H
+
+#include "canvas/CCanvas.h"
+#include "units/IUnit.h"
+
+class CItemRefMap;
+class IDrawContext;
+
+class CGridPoint
+{
+public:
+    CGridPoint();
+    virtual ~CGridPoint() = default;
+
+    void registerItem(CItemRefMap * item);
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    void leaveEventFx(QEvent *e);
+    QCursor getCursorFx();
+
+    const QPointF& getPoint() const
+    {
+        return ptPoint;
+    }
+
+    void setPoint(const QPointF& pt)
+    {
+        ptPoint = pt;
+        state   = pt == NOPOINTF ? eStateNotSet : eStateSet;
+    }
+
+private:
+    enum state_e
+    {
+        eStateNotSet
+        ,eStateSet
+        ,eStateHighlight
+        ,eStateMove
+    };
+
+    state_e state                   = eStateNotSet;
+    CItemRefMap * item              = nullptr;
+    const IDrawContext * context    = nullptr;
+    QPointF ptPoint                 = NOPOINTF;
+    QPointF ptFocus1                = NOPOINTF;
+};
+
+#endif //CGRIDPOINT_H
+
diff --git a/src/qmaptool/overlay/gridtool/CGridSelArea.cpp b/src/qmaptool/overlay/gridtool/CGridSelArea.cpp
new file mode 100644
index 0000000..d929633
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridSelArea.cpp
@@ -0,0 +1,240 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "helpers/CDraw.h"
+#include "items/CItemRefMap.h"
+#include "overlay/gridtool/CGridSelArea.h"
+
+#include <QtWidgets>
+
+CGridSelArea::CGridSelArea(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+    labelHelp->setText(tr("Select the area to be covered by the calculated reference points. Simply grab "
+                          "the corners of the selection rectangle with a left click and place them where "
+                          "you want with a second click."));
+}
+
+
+void CGridSelArea::registerItem(CItemRefMap * item)
+{
+    this->item = item;
+
+    if(item != nullptr)
+    {
+        context = item->getDrawContext();
+        if(context == nullptr)
+        {
+            this->item = nullptr;
+        }
+    }
+    else
+    {
+        context = nullptr;
+    }
+}
+
+void CGridSelArea::saveSettings(QSettings& cfg)
+{
+    cfg.setValue("area", area);
+}
+
+void CGridSelArea::loadSettings(QSettings& cfg)
+{
+    area = cfg.value("area", QRectF()).toRectF();
+    emit sigChanged();
+}
+
+bool CGridSelArea::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    if(area.isEmpty())
+    {
+        return false;
+    }
+
+    QRectF rect = area;
+    context->convertMap2Screen(rect);
+
+    rectTopLeft.moveTopLeft(rect.topLeft());
+    rectTopRight.moveTopRight(rect.topRight());
+    rectBottomLeft.moveBottomLeft(rect.bottomLeft());
+    rectBottomRight.moveBottomRight(rect.bottomRight());
+
+    CDraw::drawRectangle(p, rectTopLeft, Qt::black, Qt::lightGray);
+    CDraw::drawRectangle(p, rectTopRight, Qt::black, Qt::lightGray);
+    CDraw::drawRectangle(p, rectBottomLeft, Qt::black, Qt::lightGray);
+    CDraw::drawRectangle(p, rectBottomRight, Qt::black, Qt::lightGray);
+
+    p.setBrush(Qt::red);
+    switch(corner)
+    {
+    case eCornerTopLeft:
+        CDraw::drawRectangle(p, rectTopLeft, Qt::black, Qt::red);
+        break;
+
+    case eCornerTopRight:
+        CDraw::drawRectangle(p, rectTopRight, Qt::black, Qt::red);
+        break;
+
+    case eCornerBottomLeft:
+        CDraw::drawRectangle(p, rectBottomLeft, Qt::black, Qt::red);
+        break;
+
+    case eCornerBottomRight:
+        CDraw::drawRectangle(p, rectBottomRight, Qt::black, Qt::red);
+        break;
+    }
+
+    CDraw::drawRectangle(p, rect, QPen(Qt::black), Qt::NoBrush);
+
+    return true;
+}
+
+void CGridSelArea::mouseMoveEventFx(QMouseEvent *e)
+{
+    switch(state)
+    {
+    case eStateIdle:
+    {
+        corner_e _corner = corner;
+        QPoint pos = e->pos();
+        if(rectTopLeft.contains(pos))
+        {
+            offset = pos - rectTopLeft.topLeft();
+            corner = eCornerTopLeft;
+        }
+        else if(rectTopRight.contains(pos))
+        {
+            offset = pos - rectTopRight.topRight();
+            corner = eCornerTopRight;
+        }
+        else if(rectBottomLeft.contains(pos))
+        {
+            offset = pos - rectBottomLeft.bottomLeft();
+            corner = eCornerBottomLeft;
+        }
+        else if(rectBottomRight.contains(pos))
+        {
+            offset = pos - rectBottomRight.bottomRight();
+            corner = eCornerBottomRight;
+        }
+        else
+        {
+            corner = eCornerNone;
+        }
+
+        if(corner != _corner)
+        {
+            context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+        }
+
+        break;
+    }
+
+    case eStateMove:
+    {
+        QPointF pos = e->pos() - offset;
+        context->convertScreen2Map(pos);
+
+        switch(corner)
+        {
+        case eCornerTopLeft:
+            area.setTopLeft(pos);
+            break;
+
+        case eCornerTopRight:
+            area.setTopRight(pos);
+            break;
+
+        case eCornerBottomLeft:
+            area.setBottomLeft(pos);
+            break;
+
+        case eCornerBottomRight:
+            area.setBottomRight(pos);
+            break;
+        }
+
+        emit sigChanged();
+        context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+        break;
+    }
+    }
+}
+
+void CGridSelArea::mouseReleaseEventFx(QMouseEvent *e)
+{
+    if(e->button() == Qt::LeftButton)
+    {
+        switch(state)
+        {
+        case eStateIdle:
+        {
+            if(corner != eCornerNone)
+            {
+                areaSave = area;
+                state    = eStateMove;
+            }
+            break;
+        }
+
+        case eStateMove:
+        {
+            corner = eCornerNone;
+            state  = eStateIdle;
+            break;
+        }
+        }
+    }
+    else
+    {
+        area   = areaSave;
+        state  = eStateIdle;
+        corner = eCornerNone;
+    }
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+    emit sigChanged();
+}
+
+void CGridSelArea::leaveEventFx(QEvent *e)
+{
+}
+
+QCursor CGridSelArea::getCursorFx()
+{
+    return Qt::ArrowCursor;
+}
+
+
+void CGridSelArea::slotSetArea(const QRectF& rect)
+{
+    area = rect;
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+    emit sigChanged();
+}
+
+void CGridSelArea::slotReset()
+{
+    area    = QRectF();
+    state   = eStateIdle;
+    corner  = eCornerNone;
+    context->triggerCompleteUpdate(CCanvas::eRedrawOverlay);
+    emit sigChanged();
+}
diff --git a/src/qmaptool/overlay/gridtool/CGridSelArea.h b/src/qmaptool/overlay/gridtool/CGridSelArea.h
new file mode 100644
index 0000000..1505c10
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridSelArea.h
@@ -0,0 +1,97 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGRIDSELAREA_H
+#define CGRIDSELAREA_H
+
+#include "canvas/CCanvas.h"
+#include "ui_IGridSelArea.h"
+
+class CItemRefMap;
+class QSettings;
+class IDrawContext;
+
+
+class CGridSelArea : public QWidget, private Ui::IGridSelArea
+{
+    Q_OBJECT
+public:
+    CGridSelArea(QWidget * parent);
+    virtual ~CGridSelArea() = default;
+
+    void registerItem(CItemRefMap * item);
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw);
+    void mouseMoveEventFx(QMouseEvent *e);
+    void mouseReleaseEventFx(QMouseEvent *e);
+    void leaveEventFx(QEvent *e);
+    QCursor getCursorFx();
+
+    const QRectF& getArea() const
+    {
+        return area;
+    }
+
+public slots:
+    void slotSetArea(const QRectF& rect);
+    void slotReset();
+
+
+signals:
+    void sigChanged();
+
+private:
+    CItemRefMap * item = nullptr;
+    const IDrawContext * context   = nullptr;
+
+    QRectF area;
+    QRectF areaSave;
+    QPointF offset;
+
+    QRectF rectTopLeft     {0, 0, 20, 20};
+    QRectF rectTopRight    {0, 0, 20, 20};
+    QRectF rectBottomLeft  {0, 0, 20, 20};
+    QRectF rectBottomRight {0, 0, 20, 20};
+
+    enum state_e
+    {
+        eStateIdle
+        ,eStateMove
+    };
+
+    state_e state = eStateIdle;
+
+    enum corner_e
+    {
+        eCornerNone
+        , eCornerTopLeft
+        , eCornerTopRight
+        , eCornerBottomLeft
+        , eCornerBottomRight
+        , eCornerPrint
+        , eCornerImage
+    };
+
+    corner_e corner = eCornerNone;
+};
+
+#endif //CGRIDSELAREA_H
+
diff --git a/src/qmaptool/overlay/gridtool/CGridSetRef.cpp b/src/qmaptool/overlay/gridtool/CGridSetRef.cpp
new file mode 100644
index 0000000..c027cf1
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridSetRef.cpp
@@ -0,0 +1,105 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "overlay/gridtool/CGridSetRef.h"
+#include "overlay/refmap/CProjWizard.h"
+
+#include <QtWidgets>
+
+CGridSetRef::CGridSetRef(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+
+    connect(toolGridProj, &QToolButton::clicked, this, &CGridSetRef::slotSetupGridProj);
+    connect(lineEasting, &QLineEdit::textChanged, this, &CGridSetRef::sigChanged);
+    connect(lineNorthing, &QLineEdit::textChanged, this, &CGridSetRef::sigChanged);
+    connect(lineHorizSpacing, &QLineEdit::textChanged, this, &CGridSetRef::sigChanged);
+    connect(lineVertSpacing, &QLineEdit::textChanged, this, &CGridSetRef::sigChanged);
+    connect(lineGridProj, &QLineEdit::textChanged, this, &CGridSetRef::sigChanged);
+
+    labelHelp->setText(tr("Valid coordinate formats: If the projection is lat/lon all values have to be in degree, e.g. \"48.2\" or \"12.4\". "
+                          "For all other projections values are either in multiple of meter or feet. If you are doing it wrong the entry field "
+                          "will turn red."
+                          ));
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+}
+
+void CGridSetRef::saveSettings(QSettings& cfg)
+{
+    cfg.setValue("proj", lineGridProj->text());
+    cfg.setValue("easting", lineEasting->text().toDouble());
+    cfg.setValue("northing", lineNorthing->text().toDouble());
+    cfg.setValue("horizSpacing", lineHorizSpacing->text().toDouble());
+    cfg.setValue("vertSpacing", lineVertSpacing->text().toDouble());
+}
+
+void CGridSetRef::loadSettings(QSettings& cfg)
+{
+    lineGridProj->setText(cfg.value("proj","").toString());
+    lineEasting->setText(cfg.value("easting","").toString());
+    lineNorthing->setText(cfg.value("northing","").toString());
+    lineHorizSpacing->setText(cfg.value("horizSpacing","").toString());
+    lineVertSpacing->setText(cfg.value("vertSpacing","").toString());
+    lineGridProj->setCursorPosition(0);
+}
+
+
+bool CGridSetRef::isOk()
+{
+    bool allOk = true;
+
+    bool ok = CProjWizard::validProjStr(lineGridProj->text());
+    markWidget(lineGridProj, ok);
+    allOk &= ok;
+
+    ok &= lineEasting->text().toDouble(&ok) != 0;
+    markWidget(lineEasting, ok);
+    allOk &= ok;
+
+    ok &= lineNorthing->text().toDouble(&ok) != 0;
+    markWidget(lineNorthing, ok);
+    allOk &= ok;
+
+    ok &= lineHorizSpacing->text().toDouble(&ok) != 0;
+    markWidget(lineHorizSpacing, ok);
+    allOk &= ok;
+
+    ok &= lineVertSpacing->text().toDouble(&ok) != 0;
+    markWidget(lineVertSpacing, ok);
+    allOk &= ok;
+
+    return allOk;
+}
+
+void CGridSetRef::slotSetupGridProj()
+{
+    CProjWizard dlg(*lineGridProj, this);
+    dlg.exec();
+    lineGridProj->setCursorPosition(0);
+}
+
+void CGridSetRef::slotReset()
+{
+    lineGridProj->clear();
+    lineEasting->clear();
+    lineNorthing->clear();
+    lineHorizSpacing->clear();
+    lineVertSpacing->clear();
+}
diff --git a/src/qmaptool/overlay/gridtool/CGridSetRef.h b/src/qmaptool/overlay/gridtool/CGridSetRef.h
new file mode 100644
index 0000000..7956b0d
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/CGridSetRef.h
@@ -0,0 +1,86 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CGRIDSETREF_H
+#define CGRIDSETREF_H
+
+#include "ui_IGridSetRef.h"
+
+class QSettings;
+
+class CGridSetRef : public QWidget, private Ui::IGridSetRef
+{
+    Q_OBJECT
+public:
+    CGridSetRef(QWidget * parent);
+    virtual ~CGridSetRef() = default;
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+    bool isOk();
+
+    QString getProjection() const
+    {
+        return lineGridProj->text();
+    }
+
+    qreal getEasting() const
+    {
+        return lineEasting->text().toDouble();
+    }
+
+    qreal getNorthing() const
+    {
+        return lineNorthing->text().toDouble();
+    }
+
+    qreal getHorizSpacing() const
+    {
+        return lineHorizSpacing->text().toDouble();
+    }
+
+    qreal getVertSpacing() const
+    {
+        return lineVertSpacing->text().toDouble();
+    }
+
+signals:
+    void sigChanged();
+
+public slots:
+    void slotReset();
+
+private slots:
+    void slotSetupGridProj();
+
+private:
+    template<typename T>
+    void markWidget(T * w, bool isOk)
+    {
+        QPalette pal = T(this).palette();
+        if(!isOk)
+        {
+            pal.setColor(QPalette::Base, "#ffaa7f");
+        }
+        w->setPalette(pal);
+    }
+};
+
+#endif //CGRIDSETREF_H
+
diff --git a/src/qmaptool/overlay/gridtool/IGridPlacer.ui b/src/qmaptool/overlay/gridtool/IGridPlacer.ui
new file mode 100644
index 0000000..833585a
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/IGridPlacer.ui
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGridPlacer</class>
+ <widget class="QWidget" name="IGridPlacer">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>254</width>
+    <height>224</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout" stretch="0">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="1" column="1">
+      <widget class="QRadioButton" name="radioPoint1">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="checked">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QRadioButton" name="radioPoint4">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/pic/line_3px_horizontal.png</pixmap>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="3">
+      <widget class="QRadioButton" name="radioPoint3">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="3">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/pic/line_3px_vertical.png</pixmap>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QRadioButton" name="radioPoint2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Maximum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/pic/line_3px_vertical.png</pixmap>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="4">
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item row="2" column="2">
+      <widget class="QPushButton" name="pushReset">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>Reset</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="2">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../../resources.qrc">:/pic/line_3px_horizontal.png</pixmap>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="5">
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QLabel" name="labelStatusPoint1">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="labelStatusPoint2">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="labelStatusPoint3">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QLabel" name="labelStatusPoint4">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QPushButton" name="pushSetArea">
+         <property name="text">
+          <string>Set Area</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item row="0" column="0" colspan="6">
+      <widget class="QLabel" name="labelHelp">
+       <property name="text">
+        <string/>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/gridtool/IGridSelArea.ui b/src/qmaptool/overlay/gridtool/IGridSelArea.ui
new file mode 100644
index 0000000..dd3f4a0
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/IGridSelArea.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGridSelArea</class>
+ <widget class="QWidget" name="IGridSelArea">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>0</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/gridtool/IGridSetRef.ui b/src/qmaptool/overlay/gridtool/IGridSetRef.ui
new file mode 100644
index 0000000..68fe4d3
--- /dev/null
+++ b/src/qmaptool/overlay/gridtool/IGridSetRef.ui
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IGridSetRef</class>
+ <widget class="QWidget" name="IGridSetRef">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>133</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QLabel" name="label">
+     <property name="text">
+      <string>Grid Projection:</string>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QLineEdit" name="lineGridProj"/>
+     </item>
+     <item>
+      <widget class="QToolButton" name="toolGridProj">
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../resources.qrc">
+         <normaloff>:/icons/32x32/GridWizard.png</normaloff>:/icons/32x32/GridWizard.png</iconset>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string>TextLabel</string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Easting</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLineEdit" name="lineEasting"/>
+     </item>
+     <item row="0" column="2">
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Horiz. Spacing</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="3">
+      <widget class="QLineEdit" name="lineHorizSpacing"/>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>Northing</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="lineNorthing"/>
+     </item>
+     <item row="1" column="2">
+      <widget class="QLabel" name="labelVertSpacing">
+       <property name="text">
+        <string>Vert. Spacing</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QLineEdit" name="lineVertSpacing"/>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/overlay/refmap/CDialogRefPoint.cpp b/src/qmaptool/overlay/refmap/CDialogRefPoint.cpp
new file mode 100644
index 0000000..895ef92
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/CDialogRefPoint.cpp
@@ -0,0 +1,74 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "overlay/refmap/CDialogRefPoint.h"
+#include "units/IUnit.h"
+
+#include <QtWidgets>
+
+CDialogRefPoint::CDialogRefPoint(QPointF& ptPtx, QPointF& ptRef, QWidget *parent)
+    : QDialog(parent)
+    , ptPtx(ptPtx)
+    , ptRef(ptRef)
+{
+    setupUi(this);
+    connect(lineCoord, &QLineEdit::textEdited, this, &CDialogRefPoint::slotEditPosition);
+
+    lineX->setText(QString::number(qRound(ptPtx.x())));
+    lineY->setText(QString::number(qRound(ptPtx.y())));
+    if(ptRef != NOPOINTF)
+    {
+        QString str;
+        if(IUnit::degToStr(ptRef.x(), ptRef.y(), str))
+        {
+            str = tr("bad coordinate");
+        }
+        lineCoord->setText(str);
+    }
+
+    labelWarning->hide();
+}
+
+void CDialogRefPoint::slotEditPosition(const QString& str)
+{
+    labelWarning->setVisible(!IUnit::isValidCoordString(str));
+}
+
+void CDialogRefPoint::accept()
+{
+    bool ok;
+    ptPtx.setX(lineX->text().toInt(&ok));
+    if(!ok)
+    {
+        QMessageBox::warning(this, tr("Error"), tr("Bad value for X pixel."), QMessageBox::Ok);
+        return;
+    }
+    ptPtx.setY(lineY->text().toInt(&ok));
+    if(!ok)
+    {
+        QMessageBox::warning(this, tr("Error"), tr("Bad value for Y pixel."), QMessageBox::Ok);
+        return;
+    }
+
+    if(!IUnit::strToDeg(lineCoord->text(), ptRef.rx(), ptRef.ry()))
+    {
+        return;
+    }
+
+    QDialog::accept();
+}
diff --git a/src/qmaptool/overlay/refmap/CDialogRefPoint.h b/src/qmaptool/overlay/refmap/CDialogRefPoint.h
new file mode 100644
index 0000000..67bc5df
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/CDialogRefPoint.h
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CDIALOGREFPOINT_H
+#define CDIALOGREFPOINT_H
+
+#include "ui_IDialogRefPoint.h"
+#include <QDialog>
+
+class QPointF;
+
+class CDialogRefPoint : public QDialog, private Ui::IDialogRefPoint
+{
+    Q_OBJECT
+public:
+    CDialogRefPoint(QPointF& ptPtx, QPointF& ptRef, QWidget * parent);
+    virtual ~CDialogRefPoint() = default;
+
+public slots:
+    void accept() override;
+
+private slots:
+    void slotEditPosition(const QString& str);
+
+private:
+    QPointF& ptPtx;
+    QPointF& ptRef;
+};
+
+#endif //CDIALOGREFPOINT_H
+
diff --git a/src/qmaptool/overlay/refmap/COverlayRefMapPoint.cpp b/src/qmaptool/overlay/refmap/COverlayRefMapPoint.cpp
new file mode 100644
index 0000000..eae5233
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/COverlayRefMapPoint.cpp
@@ -0,0 +1,52 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "overlay/refmap/COverlayRefMapPoint.h"
+#include "units/IUnit.h"
+
+COverlayRefMapPoint::COverlayRefMapPoint(qint32 cnt, const QPointF &ptRef, const QPointF &ptPtx, QTreeWidget *parent)
+    : QTreeWidgetItem(parent)
+{
+    setText(eColumnCnt, QString::number(cnt));
+    setPtPtx(ptPtx);
+    setPtRef(ptRef);
+}
+
+void COverlayRefMapPoint::setPtPtx(const QPointF& pt)
+{
+    ptPtx.rx() = qRound(pt.x());
+    ptPtx.ry() = qRound(pt.y());
+    setText(eColumnXY, QString("%1, %2").arg(ptPtx.x()).arg(ptPtx.y()));
+}
+
+void COverlayRefMapPoint::setPtRef(const QPointF& pt)
+{
+    ptRef = pt;
+    QString str;
+    if(!IUnit::self().degToStr(ptRef.x(), ptRef.y(), str))
+    {
+        str = tr("bad coordinate");
+    }
+    setText(eColumnLonLat, str);
+}
+
+void COverlayRefMapPoint::setIndex(int n)
+{
+    setText(eColumnCnt, QString::number(n));
+}
+
diff --git a/src/qmaptool/overlay/refmap/COverlayRefMapPoint.h b/src/qmaptool/overlay/refmap/COverlayRefMapPoint.h
new file mode 100644
index 0000000..53bced7
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/COverlayRefMapPoint.h
@@ -0,0 +1,67 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef COVERLAYREFMAPPOINT_H
+#define COVERLAYREFMAPPOINT_H
+
+#include <QCoreApplication>
+#include <QTreeWidgetItem>
+
+class COverlayRefMapPoint : public QTreeWidgetItem
+{
+    Q_DECLARE_TR_FUNCTIONS(COverlayRefMapPoint)
+public:
+    COverlayRefMapPoint(qint32 cnt, const QPointF& ptRef, const QPointF& ptPtx, QTreeWidget * parent);
+    virtual ~COverlayRefMapPoint() = default;
+
+    enum column_e
+    {
+        eColumnCnt
+        , eColumnXY
+        , eColumnLonLat
+    };
+
+    void setPtPtx(const QPointF& pt);
+    void setPtRef(const QPointF& pt);
+    void setIndex(int n);
+
+    const QPointF& getPtPtx() const
+    {
+        return ptPtx;
+    }
+
+    const QPointF& getPtRef() const
+    {
+        return ptRef;
+    }
+
+    bool operator<(const QTreeWidgetItem& p) const override
+    {
+        const COverlayRefMapPoint& pt = dynamic_cast<const COverlayRefMapPoint&>(p);
+        qreal v1 = ptPtx.y() * 1000000000 + ptPtx.x();
+        qreal v2 = pt.ptPtx.y() * 1000000000 + pt.ptPtx.x();
+        return v1 < v2;
+    }
+
+private:
+    QPointF ptRef;
+    QPointF ptPtx;
+};
+
+#endif //COVERLAYREFMAPPOINT_H
+
diff --git a/src/qmaptool/overlay/refmap/CProjWizard.cpp b/src/qmaptool/overlay/refmap/CProjWizard.cpp
new file mode 100644
index 0000000..e63a2c1
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/CProjWizard.cpp
@@ -0,0 +1,237 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "helpers/mitab.h"
+#include "overlay/refmap/CProjWizard.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+
+struct mitab_entry_t
+{
+    QString name;
+    int idx;
+};
+
+static bool mitabLessThan(const mitab_entry_t &s1, const mitab_entry_t &s2)
+{
+    return s1.name < s2.name;
+}
+
+CProjWizard::CProjWizard(QLineEdit &line, QWidget * parent)
+    : QDialog(parent)
+    , line(line)
+{
+    setupUi(this);
+    QList<mitab_entry_t> list;
+    int idx = 0;
+    const MapInfoDatumInfo * di = asDatumInfoListQL;
+
+    while(di->nMapInfoDatumID != -1)
+    {
+        mitab_entry_t entry;
+        entry.name  = di->pszOGCDatumName;
+        entry.idx   = idx;
+        list << entry;
+        ++di;
+        ++idx;
+    }
+    qSort(list.begin(), list.end(), mitabLessThan);
+
+    for(const mitab_entry_t &entry : list)
+    {
+        comboDatum->addItem(entry.name, entry.idx);
+    }
+
+    comboHemisphere->addItem(tr("north"), "");
+    comboHemisphere->addItem(tr("south"), "+south");
+
+    connect(radioMercator,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioWorldMercator, &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUPSNorth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUPSSouth,      &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUTM,           &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(radioUserDef,       &QRadioButton::clicked,  this, &CProjWizard::slotChange);
+    connect(lineUserDef,        &QLineEdit::textChanged, this, &CProjWizard::slotChange);
+
+    connect(spinUTMZone,        static_cast<void (QSpinBox::*)(int) >(&QSpinBox::valueChanged),         this, &CProjWizard::slotChange);
+    connect(comboDatum,         static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
+    connect(comboHemisphere,    static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CProjWizard::slotChange);
+
+    QString projstr = line.text();
+    QRegExp re2("\\s*\\+proj=merc \\+a=6378137 \\+b=6378137 \\+lat_ts=0.001 \\+lon_0=0.0 \\+x_0=0.0 \\+y_0=0 \\+k=1.0 \\+units=m \\+nadgrids=@null \\+no_defs");
+    QRegExp re3("\\s*\\+proj=merc\\s(.*)");
+    QRegExp re4("\\s*\\+proj=utm \\+zone=([0-9]+)\\s(.*)");
+
+    if(re2.exactMatch(projstr))
+    {
+        radioWorldMercator->setChecked(true);
+    }
+    else if(re3.exactMatch(projstr))
+    {
+        radioMercator->setChecked(true);
+        findDatum(re3.cap(1));
+    }
+    else if(re4.exactMatch(projstr))
+    {
+        radioUTM->setChecked(true);
+        spinUTMZone->setValue(re4.cap(1).toInt());
+
+        QString datum = re4.cap(2);
+        if(datum.startsWith("+south "))
+        {
+            datum = datum.mid(7);
+            comboHemisphere->setCurrentIndex(1);
+        }
+
+        findDatum(datum);
+    }
+
+    slotChange();
+}
+
+CProjWizard::~CProjWizard()
+{
+}
+
+
+void CProjWizard::findDatum(const QString& str)
+{
+    QString cmp;
+    int idx = 0;
+    const MapInfoDatumInfo * di   = asDatumInfoListQL;
+
+    while(di->nMapInfoDatumID != -1)
+    {
+        cmp.clear();
+        if(di->pszOGCDatumName != QString())
+        {
+            const MapInfoSpheroidInfo * si = asSpheroidInfoList;
+            while(si->nMapInfoId != -1)
+            {
+                if(si->nMapInfoId == di->nEllipsoid)
+                {
+                    break;
+                }
+                ++si;
+            }
+
+            cmp += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
+            cmp += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di->dfShiftX).arg(di->dfShiftY).arg(di->dfShiftZ).arg(di->dfDatumParm0).arg(di->dfDatumParm1).arg(di->dfDatumParm2).arg(di->dfDatumParm3).arg(di->dfDatumParm4);
+            cmp += "+units=m  +no_defs";
+        }
+
+        if(cmp == str)
+        {
+            comboDatum->setCurrentIndex(comboDatum->findText(di->pszOGCDatumName));
+            break;
+        }
+
+        ++di;
+        ++idx;
+    }
+}
+
+
+void CProjWizard::slotChange()
+{
+    QString str;
+    if(radioMercator->isChecked())
+    {
+        str += "+proj=merc ";
+    }
+    else if(radioWorldMercator->isChecked())
+    {
+        str += "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.001 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";
+        labelResult->setText(str);
+        return;
+    }
+    else if(radioUPSNorth->isChecked())
+    {
+        str += "+init=epsg:32661";
+    }
+    else if(radioUPSSouth->isChecked())
+    {
+        str += "+init=epsg:32761";
+    }
+    else if(radioUTM->isChecked())
+    {
+        str += QString("+proj=utm +zone=%1 %2 ").arg(spinUTMZone->value()).arg(comboHemisphere->itemData(comboHemisphere->currentIndex()).toString());
+    }
+    else if(radioUserDef->isChecked())
+    {
+        str += lineUserDef->text() + " ";
+    }
+
+    int idx = comboDatum->itemData(comboDatum->currentIndex()).toInt();
+    const MapInfoDatumInfo di = asDatumInfoListQL[idx];
+    if(di.pszOGCDatumName != QString())
+    {
+        const MapInfoSpheroidInfo * si = asSpheroidInfoList;
+        while(si->nMapInfoId != -1)
+        {
+            if(si->nMapInfoId == di.nEllipsoid)
+            {
+                break;
+            }
+            ++si;
+        }
+
+        str += QString("+a=%1 +b=%2 ").arg(si->dfA,0,'f',4).arg(si->dfA * (1.0 - (1.0/si->dfInvFlattening)),0,'f',4);
+        str += QString("+towgs84=%1,%2,%3,%4,%5,%6,%7,%8 ").arg(di.dfShiftX).arg(di.dfShiftY).arg(di.dfShiftZ).arg(di.dfDatumParm0).arg(di.dfDatumParm1).arg(di.dfDatumParm2).arg(di.dfDatumParm3).arg(di.dfDatumParm4);
+        str += "+units=m  +no_defs";
+    }
+
+    labelResult->setText(str);
+}
+
+
+void CProjWizard::accept()
+{
+    if (CProjWizard::validProjStr(labelResult->text()))
+    {
+        line.setText(labelResult->text());
+        line.setCursorPosition(0);
+        QDialog::accept();
+    }
+}
+
+
+bool CProjWizard::validProjStr(const QString projStr)
+{
+    if(projStr.isEmpty())
+    {
+        return false;
+    }
+
+    projPJ projCheck = pj_init_plus(projStr.toUtf8().data());
+
+    if (!projCheck)
+    {
+        QMessageBox::warning(&CMainWindow::self(), tr("Error..."),tr("The value\n'%1'\nis not a valid coordinate system definition:\n%2").arg(projStr).arg(pj_strerrno(pj_errno)),QMessageBox::Abort,QMessageBox::Abort);
+        return false;
+    }
+    else
+    {
+        pj_free(projCheck);
+        return true;
+    }
+}
+
+
diff --git a/src/qmaptool/overlay/refmap/CProjWizard.h b/src/qmaptool/overlay/refmap/CProjWizard.h
new file mode 100644
index 0000000..5cd1f38
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/CProjWizard.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+
+#ifndef CPROJWIZARD_H
+#define CPROJWIZARD_H
+
+#include "ui_IProjWizard.h"
+#include <QDialog>
+
+class CProjWizard : public QDialog, private Ui::IProjWizard
+{
+    Q_OBJECT
+public:
+    CProjWizard(QLineEdit& line, QWidget *parent);
+    virtual ~CProjWizard();
+    static bool validProjStr(const QString projStr);
+
+public slots:
+    void accept() override;
+    void slotChange();
+
+private:
+    void findDatum(const QString& str);
+
+    QLineEdit& line;
+};
+
+#endif //CPROJWIZARD_H
+
diff --git a/src/qmaptool/overlay/refmap/IDialogRefPoint.ui b/src/qmaptool/overlay/refmap/IDialogRefPoint.ui
new file mode 100644
index 0000000..7e1ecd4
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/IDialogRefPoint.ui
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IDialogRefPoint</class>
+ <widget class="QDialog" name="IDialogRefPoint">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>510</width>
+    <height>191</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="1" column="2" colspan="3">
+      <widget class="QLineEdit" name="lineCoord"/>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Coord. Map File [pixel]</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>x</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QLineEdit" name="lineX"/>
+     </item>
+     <item row="0" column="3">
+      <widget class="QLabel" name="label_5">
+       <property name="text">
+        <string>y</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_2">
+       <property name="text">
+        <string>Coord. lat/lon WGS84 [°]</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="4">
+      <widget class="QLineEdit" name="lineY"/>
+     </item>
+     <item row="2" column="2" colspan="3">
+      <widget class="QLabel" name="labelWarning">
+       <property name="text">
+        <string>Bad position format. Must be: 
+"[N|S] ddd mm.sss [W|E] ddd mm.sss"
+or
+"[N|S] ddd.ddd [W|E] ddd.ddd"</string>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </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>IDialogRefPoint</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>IDialogRefPoint</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/qmaptool/overlay/refmap/IProjWizard.ui b/src/qmaptool/overlay/refmap/IProjWizard.ui
new file mode 100644
index 0000000..3f78eec
--- /dev/null
+++ b/src/qmaptool/overlay/refmap/IProjWizard.ui
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IProjWizard</class>
+ <widget class="QDialog" name="IProjWizard">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>440</width>
+    <height>280</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Proj4 Wizard</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::StyledPanel</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QGridLayout">
+      <item row="1" column="1">
+       <widget class="QRadioButton" name="radioMercator">
+        <property name="text">
+         <string>Mercator</string>
+        </property>
+       </widget>
+      </item>
+      <item row="5" column="1">
+       <layout class="QHBoxLayout">
+        <item>
+         <widget class="QRadioButton" name="radioUTM">
+          <property name="text">
+           <string>UTM</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_3">
+          <property name="text">
+           <string>zone</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QSpinBox" name="spinUTMZone">
+          <property name="minimum">
+           <number>1</number>
+          </property>
+          <property name="maximum">
+           <number>60</number>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QComboBox" name="comboHemisphere"/>
+        </item>
+        <item>
+         <spacer>
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+      <item row="6" column="1">
+       <layout class="QHBoxLayout">
+        <item>
+         <widget class="QRadioButton" name="radioUserDef">
+          <property name="text">
+           <string>user defined</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineUserDef"/>
+        </item>
+       </layout>
+      </item>
+      <item row="7" column="0">
+       <widget class="QLabel" name="label_2">
+        <property name="text">
+         <string>Datum</string>
+        </property>
+       </widget>
+      </item>
+      <item row="7" column="1">
+       <widget class="QComboBox" name="comboDatum"/>
+      </item>
+      <item row="2" column="1">
+       <widget class="QRadioButton" name="radioWorldMercator">
+        <property name="text">
+         <string>World Mercator (OSM)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="8" column="1">
+       <spacer>
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>40</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item row="9" column="0">
+       <widget class="QLabel" name="label_4">
+        <property name="text">
+         <string>Result:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="9" column="1">
+       <widget class="QLabel" name="labelResult">
+        <property name="text">
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="QRadioButton" name="radioUPSNorth">
+        <property name="text">
+         <string>UPS North (North Pole)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="4" column="1">
+       <widget class="QRadioButton" name="radioUPSSouth">
+        <property name="text">
+         <string>UPS South (South Pole)</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="label">
+        <property name="text">
+         <string>Projection</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <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>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>IProjWizard</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>IProjWizard</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/qmaptool/pic/line_3px_horizontal.png b/src/qmaptool/pic/line_3px_horizontal.png
new file mode 100644
index 0000000..02c89c8
Binary files /dev/null and b/src/qmaptool/pic/line_3px_horizontal.png differ
diff --git a/src/qmaptool/pic/line_3px_vertical.png b/src/qmaptool/pic/line_3px_vertical.png
new file mode 100644
index 0000000..f0f447c
Binary files /dev/null and b/src/qmaptool/pic/line_3px_vertical.png differ
diff --git a/src/qmaptool/pic/splash.png b/src/qmaptool/pic/splash.png
new file mode 100644
index 0000000..8a58d5d
Binary files /dev/null and b/src/qmaptool/pic/splash.png differ
diff --git a/src/qmaptool/resources.qrc b/src/qmaptool/resources.qrc
new file mode 100644
index 0000000..97b5a2c
--- /dev/null
+++ b/src/qmaptool/resources.qrc
@@ -0,0 +1,87 @@
+<RCC>
+    <qresource prefix="/">
+        <file>../animation/loader.gif</file>
+
+        <file>../cursors/cursorPointAdd.png</file>
+        <file>../cursors/cursorPointDel.png</file>
+        <file>../cursors/cursorPointMove.png</file>
+
+        <file>../icons/32x32/AddOverview.png</file>
+        <file>../icons/32x32/Add.png</file>
+        <file>../icons/32x32/Apply.png</file>
+        <file>../icons/32x32/Cancel.png</file>
+        <file>../icons/32x32/Check.png</file>
+        <file>../icons/32x32/CombineMap.png</file>
+        <file>../icons/32x32/CutMap.png</file>
+        <file>../icons/32x32/DeleteMultiple.png</file>
+        <file>../icons/32x32/DeleteOne.png</file>
+        <file>../icons/32x32/GridTool.png</file>
+        <file>../icons/32x32/GridWizard.png</file>
+        <file>../icons/32x32/Info.png</file>
+        <file>../icons/32x32/LoadGcp.png</file>
+        <file>../icons/32x32/LoadShape.png</file>
+        <file>../icons/32x32/MouseWheel.png</file>
+        <file>../icons/32x32/MoveArrow.png</file>
+        <file>../icons/32x32/PathBlue.png</file>
+        <file>../icons/32x32/PointAdd.png</file>
+        <file>../icons/32x32/PointDelAll.png</file>
+        <file>../icons/32x32/PointDel.png</file>
+        <file>../icons/32x32/PointMove.png</file>
+        <file>../icons/32x32/QMapTool.png</file>
+        <file>../icons/32x32/Rasterize.png</file>
+        <file>../icons/32x32/RefAdd.png</file>
+        <file>../icons/32x32/RefDelAll.png</file>
+        <file>../icons/32x32/RefDel.png</file>
+        <file>../icons/32x32/ReferenceMap.png</file>
+        <file>../icons/32x32/RefMoveAuto.png</file>
+        <file>../icons/32x32/RefMove.png</file>
+        <file>../icons/32x32/Reload.png</file>
+        <file>../icons/32x32/Reset.png</file>
+        <file>../icons/32x32/SaveGcp.png</file>
+        <file>../icons/32x32/SaveShape.png</file>
+        <file>../icons/32x32/SetupCoordFormat.png</file>
+        <file>../icons/32x32/Sort.png</file>
+        <file>../icons/32x32/UnitSetup.png</file>
+
+        <file>../icons/48x48/AddOverview.png</file>
+        <file>../icons/48x48/Add.png</file>
+        <file>../icons/48x48/Apply.png</file>
+        <file>../icons/48x48/Cancel.png</file>
+        <file>../icons/48x48/Check.png</file>
+        <file>../icons/48x48/CombineMap.png</file>
+        <file>../icons/48x48/CutMap.png</file>
+        <file>../icons/48x48/DeleteMultiple.png</file>
+        <file>../icons/48x48/DeleteOne.png</file>
+        <file>../icons/48x48/GridTool.png</file>
+        <file>../icons/48x48/GridWizard.png</file>
+        <file>../icons/48x48/Info.png</file>
+        <file>../icons/48x48/LoadGcp.png</file>
+        <file>../icons/48x48/LoadShape.png</file>
+        <file>../icons/48x48/MouseWheel.png</file>
+        <file>../icons/48x48/MoveArrow.png</file>
+        <file>../icons/48x48/PathBlue.png</file>
+        <file>../icons/48x48/PointAdd.png</file>
+        <file>../icons/48x48/PointDelAll.png</file>
+        <file>../icons/48x48/PointDel.png</file>
+        <file>../icons/48x48/PointMove.png</file>
+        <file>../icons/48x48/QMapTool.png</file>
+        <file>../icons/48x48/Rasterize.png</file>
+        <file>../icons/48x48/RefAdd.png</file>
+        <file>../icons/48x48/RefDelAll.png</file>
+        <file>../icons/48x48/RefDel.png</file>
+        <file>../icons/48x48/ReferenceMap.png</file>
+        <file>../icons/48x48/RefMoveAuto.png</file>
+        <file>../icons/48x48/RefMove.png</file>
+        <file>../icons/48x48/Reload.png</file>
+        <file>../icons/48x48/Reset.png</file>
+        <file>../icons/48x48/SaveGcp.png</file>
+        <file>../icons/48x48/SaveShape.png</file>
+        <file>../icons/48x48/SetupCoordFormat.png</file>
+        <file>../icons/48x48/Sort.png</file>
+        <file>../icons/48x48/UnitSetup.png</file>
+
+        <file>pic/line_3px_horizontal.png</file>
+        <file>pic/line_3px_vertical.png</file>
+        <file>pic/splash.png</file>
+        </qresource>
+</RCC>
diff --git a/src/setup/CAppOpts.h b/src/qmaptool/setup/CAppOpts.h
similarity index 100%
rename from src/setup/CAppOpts.h
rename to src/qmaptool/setup/CAppOpts.h
diff --git a/src/qmaptool/setup/CAppSetupLinux.cpp b/src/qmaptool/setup/CAppSetupLinux.cpp
new file mode 100644
index 0000000..e2d012d
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupLinux.cpp
@@ -0,0 +1,62 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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 "config.h"
+#include "setup/CAppSetupLinux.h"
+
+#ifndef _MKSTR_1
+#define _MKSTR_1(x)    #x
+#define _MKSTR(x)      _MKSTR_1(x)
+#endif
+
+void CAppSetupLinux::initQMapTool()
+{
+    prepareGdal("", "");
+
+    // setup translators
+    QString resourceDir     = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    QString translationPath = QCoreApplication::applicationDirPath();
+    translationPath.replace(QRegExp("bin$"), "share/qmaptool/translations");
+    prepareTranslator(resourceDir, "qt_");
+    prepareTranslator(translationPath, "qmaptool_");
+
+    // create directories
+    IAppSetup::path(logDir(), 0, true, "LOG");
+
+    prepareToolPaths();
+}
+
+
+
+QString CAppSetupLinux::defaultCachePath()
+{
+    return IAppSetup::path(QDir::home().absolutePath(), ".QMapTool/", false, 0);
+}
+
+
+QString CAppSetupLinux::userDataPath(QString subdir)
+{
+    QString path = QDir::home().absoluteFilePath(CONFIGDIR);
+    return IAppSetup::path(path, subdir, false, 0);
+}
+
+
+QString CAppSetupLinux::logDir()
+{
+    return QDir::temp().absolutePath();
+}
diff --git a/src/qmaptool/setup/CAppSetupLinux.h b/src/qmaptool/setup/CAppSetupLinux.h
new file mode 100644
index 0000000..a0d26b4
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupLinux.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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/>.
+
+**********************************************************************************************/
+
+#ifndef CAPPSETUPLINUX_H
+#define CAPPSETUPLINUX_H
+
+#include "setup/IAppSetup.h"
+
+#include <QtCore>
+
+class CAppSetupLinux : public IAppSetup
+{
+public:
+    CAppSetupLinux(QObject * parent)
+        : IAppSetup(parent)
+    {
+    }
+
+    ~CAppSetupLinux() = default;
+    void initQMapTool() override;
+
+    QString defaultCachePath() override;
+    QString userDataPath(QString subdir = 0) override;
+    QString logDir() override;
+    QString findExecutable(const QString &name) override { return QStandardPaths::findExecutable(name); }
+};
+
+
+#endif // CAPPSETUPLINUX_H
diff --git a/src/qmaptool/setup/CAppSetupMac.cpp b/src/qmaptool/setup/CAppSetupMac.cpp
new file mode 100644
index 0000000..8d7ab0a
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupMac.cpp
@@ -0,0 +1,140 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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 "setup/CAppSetupMac.h"
+
+static QString relTranslationDir = "Resources/translations"; // app
+static QString relGdalDir        = "Resources/gdal"; // app
+static QString relProjDir        = "Resources/proj"; // app
+static QString relBinDir         = "Tools"; // app
+
+static QString relLogDir         = "Library/Logs"; // home
+
+
+void CAppSetupMac::extendPath()
+{
+    QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+    QStringList envlist = env.toStringList();
+    QString value = "";
+    for(int i=0; i < envlist.size(); i++)
+    {
+        QString entry = envlist[i];
+        if(entry.startsWith("PATH="))
+        {
+            int index = entry.indexOf("=");
+
+            if(index != -1)
+            {
+                value = entry.right(entry.length() - (index+1)) + ":";
+            }
+            break;
+        }
+    }
+    QString binDir = getApplicationDir(relBinDir).absolutePath();
+    qDebug() << "BIN" << binDir;
+    value += binDir;
+    qputenv("PATH", value.toLatin1().constData());
+
+    prepareToolPaths();
+}
+
+
+void CAppSetupMac::initQMapTool()
+{
+    extendPath();
+    // setup gdal
+    QString gdalDir = getApplicationDir(relGdalDir).absolutePath();
+    QString projDir = getApplicationDir(relProjDir).absolutePath();
+    prepareGdal(gdalDir, projDir);
+
+    // setup translators
+    QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+    prepareTranslator(translationPath, "qt_");
+    prepareTranslator(translationPath, "qmaptool_");
+
+    migrateDirContent(defaultCachePath());
+    migrateDirContent(userDataPath());
+
+    // create directories
+    IAppSetup::path(logDir(), 0, false, "LOG");
+}
+
+
+QString CAppSetupMac::defaultCachePath()
+{
+    QString cachePath =  QStandardPaths::standardLocations(QStandardPaths::CacheLocation).first();
+    return IAppSetup::path(cachePath, 0, false, 0);
+}
+
+
+QString CAppSetupMac::userDataPath(QString subdir)
+{
+#if QT_VERSION >= 0x050400
+    QString dataDir = QStandardPaths::standardLocations(QStandardPaths::AppLocalDataLocation).first();
+#else
+    QString dataDir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first();
+#endif
+    return IAppSetup::path(dataDir, subdir, false, 0);
+}
+
+
+QString CAppSetupMac::logDir()
+{
+    // home location returns / (root) instead of user home...
+    QString home = QStandardPaths::standardLocations(QStandardPaths::DesktopLocation).first();
+    QDir dir = QDir(home);
+    dir.cdUp();
+    return IAppSetup::path(dir.absolutePath(), relLogDir, false, 0);
+}
+
+
+QDir CAppSetupMac::getApplicationDir(QString subdir)
+{
+    QDir appDir(QCoreApplication::applicationDirPath());
+    appDir.cdUp();
+    appDir.cd(subdir);
+    return appDir;
+}
+
+
+void CAppSetupMac::migrateDirContent(QString dest)
+{
+    QString src = dest;
+    src.replace("/QLandkarte/", "/");
+    QDir dirDest = QDir(dest);
+    QDir dirSource = QDir(src);
+
+    if (!dirDest.exists() && dirSource.exists())
+    {
+        qDebug() << "src directory for migration" << src;
+        qDebug() << "dst directory for migration" << dest;
+
+        QDir wdir;
+        QString newdir = dest;
+        newdir.remove("/QMapTool");
+        wdir.mkdir(newdir);
+        qDebug() << "directory created" << newdir;
+
+        qDebug() << "migrate data from "<<dirSource.absolutePath() << "to" << dirDest.absolutePath();
+        QDir mvDir;
+        if(!mvDir.rename(dirSource.absolutePath(), dirDest.absolutePath()))
+        {
+            qDebug() << "error migrating directory" << dirSource;
+        }
+    }
+}
diff --git a/src/qmaptool/setup/CAppSetupMac.h b/src/qmaptool/setup/CAppSetupMac.h
new file mode 100644
index 0000000..6afbb8f
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupMac.h
@@ -0,0 +1,49 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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/>.
+
+**********************************************************************************************/
+
+#ifndef CAPPSETUPMAC_H
+#define CAPPSETUPMAC_H
+
+#include "setup/IAppSetup.h"
+
+#include <QtCore>
+
+
+class CAppSetupMac : public IAppSetup
+{
+public:
+    CAppSetupMac(QObject * parent)
+        : IAppSetup(parent)
+    {
+    }
+
+    ~CAppSetupMac() = default;
+    void initQMapTool() override;
+
+    QString defaultCachePath() override;
+    QString userDataPath(QString subdir = 0) override;
+    QString logDir() override;
+    QString findExecutable(const QString &name) override { return QStandardPaths::findExecutable(name); }
+
+private:
+    QDir getApplicationDir(QString subdir);
+    void migrateDirContent(QString dest);
+    void extendPath();
+};
+
+#endif // CAPPSETUPMAC_H
diff --git a/src/qmaptool/setup/CAppSetupWin.cpp b/src/qmaptool/setup/CAppSetupWin.cpp
new file mode 100644
index 0000000..85f28a8
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupWin.cpp
@@ -0,0 +1,69 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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 "config.h"
+#include "setup/CAppSetupWin.h"
+
+
+void CAppSetupWin::initQMapTool()
+{
+    // setup environment variables for GDAL/Proj4
+    QString apppath = QCoreApplication::applicationDirPath();
+    apppath = apppath.replace("/", "\\");
+    QString gdalDir = QString("%1\\data").arg(apppath);
+    QString projDir = QString("%1\\share").arg(apppath);
+
+    qunsetenv("GDAL_DRIVER_PATH");
+    prepareGdal(gdalDir, projDir);
+
+    QString appResourceDir = QString("%1\\translations").arg(apppath).toUtf8();
+    prepareTranslator(appResourceDir, "qtbase_");
+    prepareTranslator(appResourceDir, "qmaptool_");
+
+    // limit PATH to application directory in order to avoid that wrong .dll's are loaded
+    path = apppath.toUtf8();
+    qputenv("PATH", path);
+
+    // create directories
+    IAppSetup::path(logDir(), 0, true, "LOG");
+
+    prepareToolPaths();
+}
+
+QString CAppSetupWin::defaultCachePath()
+{
+    return IAppSetup::path(QDir::home().absolutePath(), ".QMapTool/", false, 0);
+}
+
+
+QString CAppSetupWin::userDataPath(QString subdir)
+{
+    QString path = QDir::home().absoluteFilePath(CONFIGDIR);
+    return IAppSetup::path(path, subdir, false, 0);
+}
+
+
+QString CAppSetupWin::logDir()
+{
+    return QDir::temp().absolutePath();
+}
+
+QString CAppSetupWin::findExecutable(const QString &name)
+{
+    return QStandardPaths::findExecutable(name);
+}
diff --git a/src/qmaptool/setup/CAppSetupWin.h b/src/qmaptool/setup/CAppSetupWin.h
new file mode 100644
index 0000000..4ef0043
--- /dev/null
+++ b/src/qmaptool/setup/CAppSetupWin.h
@@ -0,0 +1,45 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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/>.
+
+**********************************************************************************************/
+
+#ifndef CAPPSETUPWIN_H
+#define CAPPSETUPWIN_H
+
+#include "setup/IAppSetup.h"
+
+#include <QtCore>
+
+class CAppSetupWin : public IAppSetup
+{
+public:
+    CAppSetupWin(QObject * parent)
+        : IAppSetup(parent)
+    {
+    }
+
+    ~CAppSetupWin() = default;
+    void initQMapTool() override;
+
+    QString defaultCachePath() override;
+    QString userDataPath(QString subdir = 0) override;
+    QString logDir() override;
+    QString findExecutable(const QString &name) override;
+
+    QByteArray path;
+};
+
+#endif // CAPPSETUPWIN_H
diff --git a/src/qmaptool/setup/CCommandProcessor.cpp b/src/qmaptool/setup/CCommandProcessor.cpp
new file mode 100644
index 0000000..099dacc
--- /dev/null
+++ b/src/qmaptool/setup/CCommandProcessor.cpp
@@ -0,0 +1,58 @@
+/**********************************************************************************************
+   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 "setup/CCommandProcessor.h"
+
+#include <QApplication>
+#include <QCommandLineParser>
+#include <iostream>
+
+
+CAppOpts* CCommandProcessor::processOptions(const QStringList &arguments)
+{
+    QCommandLineParser parser;
+    QCommandLineOption helpOption = parser.addHelpOption(); // h help
+
+    QCommandLineOption debugOption(QStringList() << "d" << "debug", tr("Print debug output to console."));
+    parser.addOption(debugOption);
+
+    QCommandLineOption logfileOption(QStringList() << "f" << "logfile", tr("Print debug output to logfile (temp. path)."));
+    parser.addOption(logfileOption);
+
+    QCommandLineOption nosplashOption(QStringList() << "n" << "no-splash", tr("Do not show splash screen."));
+    parser.addOption(nosplashOption);
+
+    QCommandLineOption configOption(QStringList() << "c" << "config", tr("File with QMapTool configuration."), tr("file"));
+    parser.addOption(configOption);
+
+    //parser.addPositionalArgument("files", tr("Files for future use."));
+
+    if (!parser.parse(arguments))
+    {
+        std::cerr << parser.errorText().toUtf8().constData();
+        std::cerr << parser.helpText().toUtf8().constData();
+        exit(1);
+    }
+    if (parser.isSet(helpOption))
+    {
+        std::cout << parser.helpText().toUtf8().constData();
+        exit(0);
+    }
+
+    return new CAppOpts(parser.isSet(debugOption), parser.isSet(logfileOption), parser.isSet(nosplashOption), parser.value(configOption), parser.positionalArguments());
+}
diff --git a/src/setup/CCommandProcessor.h b/src/qmaptool/setup/CCommandProcessor.h
similarity index 100%
rename from src/setup/CCommandProcessor.h
rename to src/qmaptool/setup/CCommandProcessor.h
diff --git a/src/qmaptool/setup/CLogHandler.cpp b/src/qmaptool/setup/CLogHandler.cpp
new file mode 100644
index 0000000..41b87cc
--- /dev/null
+++ b/src/qmaptool/setup/CLogHandler.cpp
@@ -0,0 +1,122 @@
+/**********************************************************************************************
+   Copyright (C) 2015 Ivo Kronenberg
+
+   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 "setup/CLogHandler.h"
+#include <iostream>
+
+
+CLogHandler::CLogHandler(QString logDirectory, bool writeToFile, bool debugOutput) :
+    writeToFile(writeToFile), debugOutput(debugOutput), logFile(QDir(logDirectory).absoluteFilePath(logfileName())),
+    fileStream(&logFile)
+{
+    if (writeToFile)
+    {
+        fileStream.setCodec("UTF-8");
+        logFile.open(QIODevice::WriteOnly | QIODevice::Append);
+    }
+    qSetMessagePattern("%{time yyyy-MM-dd h:mm:ss.zzz} [%{type}] %{message}");
+}
+
+void CLogHandler::log(QtMsgType type, const QMessageLogContext &context, const QString &msg)
+{
+#if QT_VERSION >= 0x050400
+    QString txt = qFormatLogMessage(type, context, msg);
+#else
+    QString txt = msg;
+#endif
+    printToConsole(type, txt);
+    appendToFile(type, txt);
+}
+
+void CLogHandler::printLoggerInfo()
+{
+    qDebug() << "Log configuration:" << "log file=" << logFile.fileName() << "write to file=" << writeToFile <<
+        "debug output=" << debugOutput;
+}
+
+QString CLogHandler::logfileName()
+{
+    QStringList domainSplit = QCoreApplication::organizationDomain().split(".");
+    QString fileName;
+    for(const QString &part : domainSplit)
+    {
+        fileName = fileName.insert(0, part + ".");
+    }
+    fileName.append(QCoreApplication::applicationName() + ".log");
+    return fileName;
+}
+
+
+void CLogHandler::appendToFile(QtMsgType type, QString formatedMsg)
+{
+    Q_UNUSED(type);
+    if (writeToFile)
+    {
+        fileStream << formatedMsg << endl;
+    }
+}
+
+
+void CLogHandler::printToConsole(QtMsgType type, QString formatedMsg)
+{
+    switch (type)
+    {
+    case QtDebugMsg:
+        if (debugOutput)
+        {
+            std::cout << formatedMsg.toUtf8().constData() << std::endl;
+        }
+        break;
+
+#if QT_VERSION >= 0x050500
+    case QtInfoMsg:
+        std::cout << formatedMsg.toUtf8().constData() << std::endl;
+        break;
+
+#endif
+    case QtWarningMsg:
+        std::cerr << formatedMsg.toUtf8().constData() << std::endl;
+        break;
+
+    case QtCriticalMsg:
+        std::cerr << formatedMsg.toUtf8().constData() << std::endl;
+        break;
+
+    case QtFatalMsg:
+        std::cerr << formatedMsg.toUtf8().constData() << std::endl;
+        abort();
+        break;
+    }
+}
+
+static CLogHandler* logHandler = nullptr;
+
+static void logCallback(QtMsgType type, const QMessageLogContext &context, const QString &msg)
+{
+    logHandler->log(type, context, msg);
+}
+
+
+void CLogHandler::initLogHandler(QString logDirectory, bool writeToFile, bool debugOutput)
+{
+    logHandler = new CLogHandler(logDirectory, writeToFile, debugOutput);
+    qInstallMessageHandler(logCallback);
+    logHandler->printLoggerInfo();
+}
+
+
diff --git a/src/setup/CLogHandler.h b/src/qmaptool/setup/CLogHandler.h
similarity index 100%
rename from src/setup/CLogHandler.h
rename to src/qmaptool/setup/CLogHandler.h
diff --git a/src/qmaptool/setup/CSetupExtTools.cpp b/src/qmaptool/setup/CSetupExtTools.cpp
new file mode 100644
index 0000000..702f1ae
--- /dev/null
+++ b/src/qmaptool/setup/CSetupExtTools.cpp
@@ -0,0 +1,88 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "setup/CSetupExtTools.h"
+#include "setup/IAppSetup.h"
+
+#include <QtWidgets>
+
+using std::bind;
+
+#define slot1(name, method) \
+    std::bind(&CSetupExtTools::slotSetPathXOverride, this, name, [](const QString& path){IAppSetup::self().method(path); })
+
+#define slot2(method) \
+    std::bind(&CSetupExtTools::slotResetPathXOverride, this, [](){IAppSetup::self().method(); })
+
+CSetupExtTools::CSetupExtTools(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+    setupGui();
+
+    connect(toolPathGdaladdo, &QToolButton::pressed, this, slot1("gdaladdo", setGdaladdoOverride));
+    connect(toolPathGdaltranslate, &QToolButton::pressed, this, slot1("gdal_translate", setGdaltranslateOverride));
+    connect(toolPathGdalwarp, &QToolButton::pressed, this, slot1("gdalwarp", setGdalwarpOverride));
+    connect(toolPathGdalbuildvrt, &QToolButton::pressed, this, slot1("gdalbuildvrt", setGdalbuildvrtOverride));
+    connect(toolPathQmtrgb2pct, &QToolButton::pressed, this, slot1("qmt_rgb2pct", setQmtrgb2pctOverride));
+
+    connect(toolResetGdaladdo, &QToolButton::pressed, this, slot2(resetGdaladdoOverride));
+    connect(toolResetGdaltranslate, &QToolButton::pressed, this, slot2(resetGdaltranslateOverride));
+    connect(toolResetGdalwarp, &QToolButton::pressed, this, slot2(resetGdalwarpOverride));
+    connect(toolResetGdalbuildvrt, &QToolButton::pressed, this, slot2(resetGdalbuildvrtOverride));
+    connect(toolResetQmtrgb2pct, &QToolButton::pressed, this, slot2(resetQmtrgb2pctOverride));
+}
+
+void CSetupExtTools::setupGui()
+{
+    const IAppSetup& setup          = IAppSetup::self();
+    const QString& gdaladdo         = setup.getGdaladdo();
+    const QString& gdaltranslate    = setup.getGdaltranslate();
+    const QString& gdalwarp         = setup.getGdalwarp();
+    const QString& gdalbuildvrt     = setup.getGdalbuildvrt();
+    const QString& qmtrgb2pct       = setup.getQmtrgb2pct();
+
+    labelPathGdaladdo->setText(gdaladdo.isEmpty() ? tr("<b style='color: red;'>not found</b>") : gdaladdo);
+    labelPathGdaltranslate->setText(gdaltranslate.isEmpty() ? tr("<b style='color: red;'>not found</b>") : gdaltranslate);
+    labelPathGdalwarp->setText(gdalwarp.isEmpty() ? tr("<b style='color: red;'>not found</b>") : gdalwarp);
+    labelPathGdalbuildvrt->setText(gdalbuildvrt.isEmpty() ? tr("<b style='color: red;'>not found</b>") : gdalbuildvrt);
+    labelPathQmtrgb2pct->setText(qmtrgb2pct.isEmpty() ? tr("<b style='color: red;'>not found</b>") : qmtrgb2pct);
+
+    toolResetGdaladdo->setEnabled(setup.isGdaladdoOverride());
+    toolResetGdaltranslate->setEnabled(setup.isGdaltranslateOverride());
+    toolResetGdalwarp->setEnabled(setup.isGdalwarpOverride());
+    toolResetGdalbuildvrt->setEnabled(setup.isGdalbuildvrtOverride());
+    toolResetQmtrgb2pct->setEnabled(setup.isQmtrgb2pctOverride());
+}
+
+void CSetupExtTools::slotSetPathXOverride(const QString& name, fSetPath setPath)
+{
+    const QString& path = QFileDialog::getOpenFileName(this, tr("Select %1 binary...").arg(name), QDir::rootPath());
+    if(path.isEmpty())
+    {
+        return;
+    }
+    setPath(path);
+    setupGui();
+}
+
+void CSetupExtTools::slotResetPathXOverride(fResetPath resetPath)
+{
+    resetPath();
+    setupGui();
+}
diff --git a/src/qmaptool/setup/CSetupExtTools.h b/src/qmaptool/setup/CSetupExtTools.h
new file mode 100644
index 0000000..16c5abb
--- /dev/null
+++ b/src/qmaptool/setup/CSetupExtTools.h
@@ -0,0 +1,46 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CSETUPEXTTOOLS_H
+#define CSETUPEXTTOOLS_H
+
+#include <QDialog>
+#include <functional>
+
+#include "ui_ISetupExtTools.h"
+
+using fResetPath = std::function<void()>;
+using fSetPath = std::function<void(const QString&)>;
+
+class CSetupExtTools : public QDialog, private Ui::ISetupExtTools
+{
+    Q_OBJECT
+public:
+    CSetupExtTools(QWidget * parent);
+    virtual ~CSetupExtTools() = default;
+
+private slots:
+    void slotSetPathXOverride(const QString& name, fSetPath setPath);
+    void slotResetPathXOverride(fResetPath resetPath);
+
+private:
+    void setupGui();
+};
+
+#endif //CSETUPEXTTOOLS_H
+
diff --git a/src/qmaptool/setup/IAppSetup.cpp b/src/qmaptool/setup/IAppSetup.cpp
new file mode 100644
index 0000000..1d9eee7
--- /dev/null
+++ b/src/qmaptool/setup/IAppSetup.cpp
@@ -0,0 +1,158 @@
+/**********************************************************************************************
+   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 "setup/CCommandProcessor.h"
+#include "setup/CLogHandler.h"
+#include "setup/IAppSetup.h"
+
+#include "setup/CAppSetupLinux.h"
+#include "setup/CAppSetupMac.h"
+#include "setup/CAppSetupWin.h"
+
+#include "helpers/CSettings.h"
+
+#include <gdal.h>
+
+
+IAppSetup* IAppSetup::pSelf = nullptr;
+
+IAppSetup& IAppSetup::self()
+{
+    return *pSelf;
+}
+
+IAppSetup::~IAppSetup()
+{
+    SETTINGS;
+    cfg.setValue("ExtTools/pathGdaladdoOverride",pathGdaladdoOverride);
+    cfg.setValue("ExtTools/pathGdaltranslateOverride",pathGdaltranslateOverride);
+    cfg.setValue("ExtTools/pathGdalwarpOverride",pathGdalwarpOverride);
+    cfg.setValue("ExtTools/pathGdalbuildvrtOverride",pathGdalbuildvrtOverride);
+    cfg.setValue("ExtTools/pathQmtrgb2pctOverride",pathQmtrgb2pctOverride);
+}
+
+IAppSetup& IAppSetup::createInstance(QObject * parent)
+{
+    if(pSelf != nullptr)
+    {
+        return self();
+    }
+#if defined(Q_OS_MAC)
+    new CAppSetupMac(parent);
+#elif defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN)
+    new CAppSetupLinux(parent);
+#elif defined (Q_OS_WIN32)
+    new CAppSetupWin(parent);
+#else
+  #error OS not supported
+#endif
+    return self();
+}
+
+void IAppSetup::prepareToolPaths()
+{
+    pathGdaladdo        = this->findExecutable("gdaladdo");
+    pathGdaltranslate   = this->findExecutable("gdal_translate");
+    pathGdalwarp        = this->findExecutable("gdalwarp");
+    pathGdalbuildvrt    = this->findExecutable("gdalbuildvrt");
+    pathQmtrgb2pct      = this->findExecutable("qmt_rgb2pct");
+
+    SETTINGS;
+    pathGdaladdoOverride        = cfg.value("ExtTools/pathGdaladdoOverride",pathGdaladdoOverride).toString();
+    pathGdaltranslateOverride   = cfg.value("ExtTools/pathGdaltranslateOverride",pathGdaltranslateOverride).toString();
+    pathGdalwarpOverride        = cfg.value("ExtTools/pathGdalwarpOverride",pathGdalwarpOverride).toString();
+    pathGdalbuildvrtOverride    = cfg.value("ExtTools/pathGdalbuildvrtOverride", pathGdalbuildvrtOverride).toString();
+    pathQmtrgb2pctOverride      = cfg.value("ExtTools/pathQmtrgb2pctOverride", pathQmtrgb2pctOverride).toString();
+}
+
+void IAppSetup::prepareGdal(QString gdalDir, QString projDir)
+{
+    if(!gdalDir.isEmpty())
+    {
+        qputenv("GDAL_DATA", gdalDir.toUtf8());
+        qDebug() << "GDAL_DATA directory set to " + gdalDir;
+    }
+
+    if(!projDir.isEmpty())
+    {
+        qputenv("PROJ_LIB", projDir.toUtf8());
+        qDebug() << "PROJ_LIB directory set to " + projDir;
+    }
+
+    GDALAllRegister();
+}
+
+
+QString IAppSetup::path(QString path, QString subdir, bool mkdir, QString debugName)
+{
+    QDir pathDir(path);
+
+    if(subdir != 0)
+    {
+        pathDir = QDir(pathDir.absoluteFilePath(subdir));
+    }
+    if(mkdir && !pathDir.exists())
+    {
+        pathDir.mkpath(pathDir.absolutePath());
+        qDebug() << debugName << "path created" << pathDir.absolutePath();
+    }
+    else if (debugName != 0)
+    {
+        qDebug() << debugName << "path" << pathDir.absolutePath();
+    }
+    return pathDir.absolutePath();
+}
+
+
+void IAppSetup::prepareTranslator(QString translationPath, QString translationPrefix)
+{
+    QString locale = QLocale::system().name();
+    QDir dir(translationPath);
+    if(!QFile::exists(dir.absoluteFilePath(translationPrefix + locale)))
+    {
+        locale = locale.left(2);
+    }
+    qDebug() << "locale" << locale;
+
+    QApplication* app =  (QApplication*) QCoreApplication::instance();
+    QTranslator *qtTranslator = new QTranslator(app);
+    if (qtTranslator->load(translationPrefix + locale, translationPath))
+    {
+        app->installTranslator(qtTranslator);
+        qDebug() << "using file '"+ translationPath + "/" + translationPrefix + locale + ".qm' for translations.";
+    }
+    else
+    {
+        qWarning() << "no file found for translations '"+ translationPath + "/" + translationPrefix + locale + "' (using default).";
+    }
+}
+
+
+void IAppSetup::initLogHandler()
+{
+    CLogHandler::initLogHandler(logDir(), qlOpts->logfile, qlOpts->debug);
+}
+
+CAppOpts *qlOpts = nullptr;
+
+void IAppSetup::processArguments()
+{
+    CCommandProcessor cmdParse;
+    qlOpts = cmdParse.processOptions(QCoreApplication::instance()->arguments());
+}
diff --git a/src/qmaptool/setup/IAppSetup.h b/src/qmaptool/setup/IAppSetup.h
new file mode 100644
index 0000000..46fa217
--- /dev/null
+++ b/src/qmaptool/setup/IAppSetup.h
@@ -0,0 +1,186 @@
+/**********************************************************************************************
+   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/>.
+
+**********************************************************************************************/
+
+#ifndef IAPPSETUP_H
+#define IAPPSETUP_H
+
+#include "CAppOpts.h"
+#include <QApplication>
+#include <QtCore>
+
+
+class IAppSetup : public QObject
+{
+    Q_OBJECT
+public:
+    static IAppSetup& self();
+    static IAppSetup &createInstance(QObject * parent);
+
+    virtual ~IAppSetup();
+
+    virtual void initQMapTool() = 0;
+    void initLogHandler();
+    void processArguments();
+
+    virtual QString defaultCachePath() = 0;
+    virtual QString userDataPath(QString subdir = 0) = 0;
+    virtual QString logDir() = 0;
+    virtual QString findExecutable(const QString &name) = 0;
+
+    QString getGdaladdo() const
+    {
+        return QFile::exists(pathGdaladdoOverride) ? pathGdaladdoOverride : QFile::exists(pathGdaladdo) ? pathGdaladdo : "";
+    }
+
+    QString getGdaltranslate() const
+    {
+        return QFile::exists(pathGdaltranslateOverride) ? pathGdaltranslateOverride : QFile::exists(pathGdaltranslate) ? pathGdaltranslate : "";
+    }
+
+    QString getGdalwarp() const
+    {
+        return QFile::exists(pathGdalwarpOverride) ? pathGdalwarpOverride : QFile::exists(pathGdalwarp) ? pathGdalwarp : "";
+    }
+
+    QString getGdalbuildvrt() const
+    {
+        return QFile::exists(pathGdalbuildvrtOverride) ? pathGdalbuildvrtOverride : QFile::exists(pathGdalbuildvrt) ? pathGdalbuildvrt : "";
+    }
+
+    QString getQmtrgb2pct() const
+    {
+        return QFile::exists(pathQmtrgb2pctOverride) ? pathQmtrgb2pctOverride : QFile::exists(pathQmtrgb2pct) ? pathQmtrgb2pct : "";
+    }
+
+    void setGdaladdoOverride(const QString& path)
+    {
+        pathGdaladdoOverride = path;
+        emit sigSetupChanged();
+    }
+
+    void setGdaltranslateOverride(const QString& path)
+    {
+        pathGdaltranslateOverride = path;
+        emit sigSetupChanged();
+    }
+
+    void setGdalwarpOverride(const QString& path)
+    {
+        pathGdalwarpOverride = path;
+        emit sigSetupChanged();
+    }
+
+    void setGdalbuildvrtOverride(const QString& path)
+    {
+        pathGdalbuildvrtOverride = path;
+        emit sigSetupChanged();
+    }
+
+    void setQmtrgb2pctOverride(const QString& path)
+    {
+        pathQmtrgb2pctOverride = path;
+        emit sigSetupChanged();
+    }
+
+    void resetGdaladdoOverride()
+    {
+        pathGdaladdoOverride.clear();
+        emit sigSetupChanged();
+    }
+
+    void resetGdaltranslateOverride()
+    {
+        pathGdaltranslateOverride.clear();
+        emit sigSetupChanged();
+    }
+
+    void resetGdalwarpOverride()
+    {
+        pathGdalwarpOverride.clear();
+        emit sigSetupChanged();
+    }
+
+    void resetGdalbuildvrtOverride()
+    {
+        pathGdalbuildvrtOverride.clear();
+        emit sigSetupChanged();
+    }
+
+    void resetQmtrgb2pctOverride()
+    {
+        pathQmtrgb2pctOverride.clear();
+        emit sigSetupChanged();
+    }
+
+    bool isGdaladdoOverride() const
+    {
+        return !pathGdaladdoOverride.isEmpty();
+    }
+
+    bool isGdaltranslateOverride() const
+    {
+        return !pathGdaltranslateOverride.isEmpty();
+    }
+
+    bool isGdalwarpOverride() const
+    {
+        return !pathGdalwarpOverride.isEmpty();
+    }
+
+    bool isGdalbuildvrtOverride() const
+    {
+        return !pathGdalbuildvrtOverride.isEmpty();
+    }
+
+    bool isQmtrgb2pctOverride() const
+    {
+        return !pathQmtrgb2pctOverride.isEmpty();
+    }
+
+signals:
+    void sigSetupChanged();
+
+protected:
+    static IAppSetup* pSelf;
+
+    IAppSetup(QObject * parent)
+        : QObject(parent)
+    {
+        pSelf = this;
+    }
+
+    void prepareGdal(QString gdalDir, QString projDir);
+    void prepareTranslator(QString translationPath, QString translationPrefix);
+    void prepareToolPaths();
+
+    QString path(QString path, QString subdir, bool mkdir, QString debugName);
+
+    QString pathGdaladdo;
+    QString pathGdaltranslate;
+    QString pathGdalwarp;
+    QString pathGdalbuildvrt;
+    QString pathQmtrgb2pct;
+
+    QString pathGdaladdoOverride;
+    QString pathGdaltranslateOverride;
+    QString pathGdalwarpOverride;
+    QString pathGdalbuildvrtOverride;
+    QString pathQmtrgb2pctOverride;
+};
+
+#endif // IAPPSETUP_H
diff --git a/src/qmaptool/setup/ISetupExtTools.ui b/src/qmaptool/setup/ISetupExtTools.ui
new file mode 100644
index 0000000..01c230a
--- /dev/null
+++ b/src/qmaptool/setup/ISetupExtTools.ui
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ISetupExtTools</class>
+ <widget class="QDialog" name="ISetupExtTools">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>348</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup Ext. Tools</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="3" column="0">
+      <widget class="QLabel" name="label_4">
+       <property name="text">
+        <string>gdalbuildvrt</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QLabel" name="labelPathGdalbuildvrt">
+       <property name="text">
+        <string><b style='color: red;'>not found</b></string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="0">
+      <widget class="QLabel" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>gdaladdo:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="label_5">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>gdalwarp:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="labelPathGdalwarp">
+       <property name="text">
+        <string><b style='color: red;'>not found</b></string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2">
+      <widget class="QToolButton" name="toolPathGdalwarp">
+       <property name="toolTip">
+        <string>Setup user defined path.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="label_6">
+       <property name="text">
+        <string>qmt_rgb2pct</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QLabel" name="labelPathQmtrgb2pct">
+       <property name="text">
+        <string><b style='color: red;'>not found</b></string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="2">
+      <widget class="QToolButton" name="toolPathQmtrgb2pct">
+       <property name="toolTip">
+        <string>Setup user defined path.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="labelPathGdaltranslate">
+       <property name="text">
+        <string><b style='color: red;'>not found</b></string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="labelPathGdaladdo">
+       <property name="text">
+        <string><b style='color: red;'>not found</b></string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="2">
+      <widget class="QToolButton" name="toolPathGdalbuildvrt">
+       <property name="toolTip">
+        <string>Setup user defined path.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="QToolButton" name="toolPathGdaltranslate">
+       <property name="toolTip">
+        <string>Setup user defined path.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="2">
+      <widget class="QToolButton" name="toolPathGdaladdo">
+       <property name="toolTip">
+        <string>Setup user defined path.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="label_3">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string>gdal_translate:</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="3">
+      <widget class="QToolButton" name="toolResetGdaladdo">
+       <property name="toolTip">
+        <string>Reset user defined path setup.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QToolButton" name="toolResetGdaltranslate">
+       <property name="toolTip">
+        <string>Reset user defined path setup.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="3">
+      <widget class="QToolButton" name="toolResetGdalwarp">
+       <property name="toolTip">
+        <string>Reset user defined path setup.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="3">
+      <widget class="QToolButton" name="toolResetGdalbuildvrt">
+       <property name="toolTip">
+        <string>Reset user defined path setup.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="3">
+      <widget class="QToolButton" name="toolResetQmtrgb2pct">
+       <property name="toolTip">
+        <string>Reset user defined path setup.</string>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../../qmapshack/resources.qrc">
+         <normaloff>:/icons/32x32/Reset.png</normaloff>:/icons/32x32/Reset.png</iconset>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="label_2">
+     <property name="text">
+      <string><b>Note:</b> Usually QMapTool should detect all external tools by itself. If it does not, it's a bad setup and you should fix the PATH variable of your system. You can setup the paths manually, too, if you know what you are doing. But please keep in mind that GDAL needs a proper environment setup to function properly. If it's not setup properly you might get results but these can be off grid.</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignJustify|Qt::AlignVCenter</set>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="../../qmapshack/resources.qrc"/>
+ </resources>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ISetupExtTools</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>ISetupExtTools</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/qmaptool/shell/CShell.cpp b/src/qmaptool/shell/CShell.cpp
new file mode 100644
index 0000000..e124adb
--- /dev/null
+++ b/src/qmaptool/shell/CShell.cpp
@@ -0,0 +1,198 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "shell/CShell.h"
+
+#include <QtWidgets>
+
+CShell * CShell::pSelf = nullptr;
+
+CShell::CShell(QWidget *parent)
+    : QTextBrowser(parent)
+{
+    pSelf = this;
+
+    connect(&cmd, &QProcess::readyReadStandardError,  this, &CShell::slotStderr);
+    connect(&cmd, &QProcess::readyReadStandardOutput, this, &CShell::slotStdout);
+
+    connect(&cmd, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), this, &CShell::slotFinished);
+    connect(&cmd, static_cast<void (QProcess::*)(QProcess::ProcessError)   >(&QProcess::error),    this, &CShell::slotError);
+}
+
+void CShell::slotError(QProcess::ProcessError error)
+{
+    setTextColor(Qt::red);
+    insertPlainText(QString(tr("Execution of external program `%1` failed: ")).arg(cmd.program()));
+    switch(error)
+    {
+    case QProcess::FailedToStart:
+        insertPlainText(QString(tr("Process cannot be started.\n")));
+        insertPlainText(QString(tr("Make sure the required packages are installed, `%1` exists and is executable.\n")).arg(cmd.program()));
+        break;
+
+    case QProcess::Crashed:
+        insertPlainText(QString(tr("External process crashed.\n")));
+        break;
+
+    default:
+        insertPlainText(QString(tr("An unknown error occurred.\n")));
+        break;
+    }
+}
+
+void CShell::slotStderr()
+{
+    QString str;
+    setTextColor(Qt::red);
+    str = cmd.readAllStandardError();
+
+    if(str[0] == '\r')
+    {
+#ifdef WIN32
+        if(str.contains("\n"))
+        {
+            insertPlainText("\n");
+        }
+        else
+#endif // WIN32
+        {
+            moveCursor( QTextCursor::End, QTextCursor::MoveAnchor );
+            moveCursor( QTextCursor::StartOfLine, QTextCursor::MoveAnchor );
+            moveCursor( QTextCursor::End, QTextCursor::KeepAnchor );
+            textCursor().removeSelectedText();
+        }
+
+
+#ifdef WIN32
+        str = str.split("\r").last().remove("\r").remove("\n");
+#else
+        str = str.split("\r").last();
+#endif
+    }
+
+    insertPlainText(str);
+    verticalScrollBar()->setValue(verticalScrollBar()->maximum());
+}
+
+void CShell::slotStdout()
+{
+    QString str;
+    setTextColor(Qt::blue);
+    str = cmd.readAllStandardOutput();
+
+    if(str[0] == '\r')
+    {
+#ifdef WIN32
+        if(str.contains("\n"))
+        {
+            insertPlainText("\n");
+        }
+        else
+#endif // WIN32
+        {
+            moveCursor( QTextCursor::End, QTextCursor::MoveAnchor );
+            moveCursor( QTextCursor::StartOfLine, QTextCursor::MoveAnchor );
+            moveCursor( QTextCursor::End, QTextCursor::KeepAnchor );
+            textCursor().removeSelectedText();
+        }
+
+#ifdef WIN32
+        str = str.split("\r").last().remove("\r").remove("\n");
+#else
+        str = str.split("\r").last();
+#endif
+    }
+
+    insertPlainText(str);
+    verticalScrollBar()->setValue(verticalScrollBar()->maximum());
+}
+
+void CShell::stdOut(const QString& str)
+{
+    setTextColor(Qt::black);
+    append(str);
+}
+
+
+void CShell::stdErr(const QString& str)
+{
+    setTextColor(Qt::red);
+    append(str);
+}
+
+
+void CShell::slotFinished(int exitCode, QProcess::ExitStatus status)
+{
+    if(exitCode || status)
+    {
+        emit sigFinishedJob(jobId);
+        setTextColor(Qt::red);
+        append(tr("!!! failed !!!\n"));
+        return;
+    }
+
+    ++idxCommand;
+    nextCommand();
+}
+
+void CShell::slotCancel()
+{
+    if(cmd.state() == QProcess::NotRunning)
+    {
+        return;
+    }
+
+    stdOut(tr("\nCanceled by user's request.\n"));
+    cmd.kill();
+    cmd.waitForFinished(10000);
+}
+
+int CShell::execute(QList<CShellCmd> cmds)
+{
+    CMainWindow::self().makeShellVisible();
+
+    if(cmd.state() != QProcess::NotRunning)
+    {
+        return -1;
+    }
+
+    clear();
+
+    idxCommand  = 0;
+    commands    = cmds;
+
+    nextCommand();
+    return ++jobId;
+}
+
+
+void CShell::nextCommand()
+{
+    if(idxCommand >= commands.size())
+    {
+        emit sigFinishedJob(jobId);
+        setTextColor(Qt::darkGreen);
+        append(tr("!!! done !!!\n"));
+        return;
+    }
+
+    const CShellCmd& command = commands[idxCommand];
+    stdOut(command.getCmd() + " " + command.getArgs().join(" ") + "\n");
+    cmd.start(command.getCmd(), command.getArgs());
+}
diff --git a/src/qmaptool/shell/CShell.h b/src/qmaptool/shell/CShell.h
new file mode 100644
index 0000000..b4330c7
--- /dev/null
+++ b/src/qmaptool/shell/CShell.h
@@ -0,0 +1,75 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CSHELL_H
+#define CSHELL_H
+
+#include "shell/CShellCmd.h"
+
+#include <QList>
+#include <QProcess>
+#include <QTextBrowser>
+
+class CShell : public QTextBrowser
+{
+    Q_OBJECT
+public:
+    static CShell& self()
+    {
+        return *pSelf;
+    }
+
+    virtual ~CShell() = default;
+
+    int execute(QList<CShellCmd> cmds);
+signals:
+    void sigFinishedJob(qint32 jobId);
+
+public slots:
+    void slotCancel();
+
+protected slots:
+    /// read the stderr from the process and paste it into the text browser
+    void slotStderr();
+    /// read the stdout from the process and paste it into the text browser
+    void slotStdout();
+    void slotError(QProcess::ProcessError error);
+    virtual void slotFinished(int exitCode, QProcess::ExitStatus status);
+
+protected:
+    void nextCommand();
+
+    /// write text to stdout color channel of the text browser
+    void stdOut(const QString& str);
+    /// write text to stderr color channel of the text browser
+    void stdErr(const QString& str);
+
+    QProcess cmd;
+
+    QList<CShellCmd> commands;
+    qint32 idxCommand = 0;
+    qint32 jobId = 0;
+
+private:
+    friend class Ui_IMainWindow;
+    CShell(QWidget * parent);
+    static CShell * pSelf;
+};
+
+#endif //CSHELL_H
+
diff --git a/src/qmaptool/shell/CShellCmd.cpp b/src/qmaptool/shell/CShellCmd.cpp
new file mode 100644
index 0000000..25980d7
--- /dev/null
+++ b/src/qmaptool/shell/CShellCmd.cpp
@@ -0,0 +1,27 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "shell/CShellCmd.h"
+
+CShellCmd::CShellCmd(const QString &cmd, const QStringList &args)
+    : cmd(cmd)
+    , args(args)
+{
+}
+
+
diff --git a/src/qmaptool/shell/CShellCmd.h b/src/qmaptool/shell/CShellCmd.h
new file mode 100644
index 0000000..f440325
--- /dev/null
+++ b/src/qmaptool/shell/CShellCmd.h
@@ -0,0 +1,47 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CSHELLCMD_H
+#define CSHELLCMD_H
+
+#include <QString>
+#include <QStringList>
+
+class CShellCmd
+{
+public:
+    CShellCmd(const QString& cmd, const QStringList& args);
+    virtual ~CShellCmd() = default;
+
+    const QString& getCmd() const
+    {
+        return cmd;
+    }
+
+    const QStringList& getArgs() const
+    {
+        return args;
+    }
+
+private:
+    QString cmd;
+    QStringList args;
+};
+
+#endif //CSHELLCMD_H
+
diff --git a/src/qmaptool/tool/CToolAddOverview.cpp b/src/qmaptool/tool/CToolAddOverview.cpp
new file mode 100644
index 0000000..73d16a7
--- /dev/null
+++ b/src/qmaptool/tool/CToolAddOverview.cpp
@@ -0,0 +1,225 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "canvas/IDrawContext.h"
+#include "helpers/CSettings.h"
+#include "items/CItemFile.h"
+#include "setup/IAppSetup.h"
+#include "tool/CToolAddOverview.h"
+
+CToolAddOverview::CToolAddOverview(QWidget *parent)
+    : IToolGui(parent)
+{
+    setupUi(this);
+    setObjectName(tr("Add Overviews"));
+
+    labelHelp->setText(tr("Raster map files consume quite some memory if a larger area is displayed. "
+                          "Pre-calculated overview levels help to speed up loading and displaying the "
+                          "map. These overviews can be stored within the map file as well as an external "
+                          "file. GDAL can remove internally stored overviews, however it will not free "
+                          "the used space in the file. Therefore it's size will remain large. If you "
+                          "do not like that use the external option."));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    connect(itemList, &CItemListWidget::sigAddItem, this, &CToolAddOverview::slotAddItem);
+    connect(checkBy2, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkBy4, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkBy8, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkBy16, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkBy32, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkBy64, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+    connect(checkRemove, &QCheckBox::stateChanged, this, &CToolAddOverview::slotSelectionChanged);
+
+    connect(itemList, &CItemListWidget::sigSelectionChanged, this, &CToolAddOverview::slotMapSelectionChanged);
+
+    connect(pushStart, &QPushButton::clicked, this, &CToolAddOverview::slotStart);
+    connect(pushCancel, &QPushButton::clicked, &CShell::self(), &CShell::slotCancel);
+    connect(&CShell::self(), &CShell::sigFinishedJob, this, &CToolAddOverview::slotFinished);
+
+
+    setupChanged();
+
+    SETTINGS;
+    cfg.beginGroup("ToolAddOverview");
+    itemList->loadSettings(cfg);
+    checkBy2->setChecked(cfg.value("by2", false).toBool());
+    checkBy4->setChecked(cfg.value("by4", false).toBool());
+    checkBy8->setChecked(cfg.value("by8", false).toBool());
+    checkBy16->setChecked(cfg.value("by16", false).toBool());
+    checkBy32->setChecked(cfg.value("by32", false).toBool());
+    checkBy64->setChecked(cfg.value("by64", false).toBool());
+    checkExternal->setChecked(cfg.value("useExternal", true).toBool());
+    checkAllFiles->setChecked(cfg.value("allFiles", false).toBool());
+    cfg.endGroup();
+}
+
+CToolAddOverview::~CToolAddOverview()
+{
+    SETTINGS;
+    cfg.beginGroup("ToolAddOverview");
+    cfg.remove("");
+    itemList->saveSettings(cfg);
+    cfg.setValue("by2", checkBy2->isChecked());
+    cfg.setValue("by4", checkBy4->isChecked());
+    cfg.setValue("by8", checkBy8->isChecked());
+    cfg.setValue("by16", checkBy16->isChecked());
+    cfg.setValue("by32", checkBy32->isChecked());
+    cfg.setValue("by64", checkBy64->isChecked());
+    cfg.setValue("useExternal", checkExternal->isChecked());
+    cfg.setValue("allFiles", checkAllFiles->isChecked());
+    cfg.endGroup();
+}
+
+
+void CToolAddOverview::setupChanged()
+{
+    bool hasGdaladdo = !IAppSetup::self().getGdaladdo().isEmpty();
+    labelNoGdaladdo->setVisible(!hasGdaladdo);
+    frame->setVisible(hasGdaladdo);
+}
+
+void CToolAddOverview::slotAddItem(const QString& filename, QListWidget * list)
+{
+    CItemFile * item = new CItemFile(filename, list);
+    connect(item, &CItemFile::sigChanged, itemList, &CItemListWidget::sigChanged);
+}
+
+void CToolAddOverview::slotMapSelectionChanged()
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+    slotSelectionChanged();
+}
+
+void CToolAddOverview::slotSelectionChanged()
+{
+    bool enable = checkBy2->isChecked()|checkBy4->isChecked()|checkBy8->isChecked()|checkBy16->isChecked()|checkBy32->isChecked()|checkBy64->isChecked()|checkRemove->isChecked();
+    pushStart->setEnabled(enable && itemList->count());
+
+    bool isRemove = checkRemove->isChecked();
+    frameLevels->setDisabled(isRemove);
+    checkExternal->setDisabled(isRemove);
+}
+
+void CToolAddOverview::buildCmd(QList<CShellCmd>& cmds, const IItem *iitem)
+{
+    const CItemFile * item = dynamic_cast<const CItemFile*>(iitem);
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    item->getDrawContext()->unload();
+
+    // remove previous overview
+    QStringList args;
+    if(checkRemove->isChecked())
+    {
+        args << "-clean" << item->getFilename();
+        cmds << CShellCmd(IAppSetup::self().getGdaladdo(), args);
+        /// @todo: shrink the file
+    }
+    else
+    {
+        IDrawContext * context = item->getDrawContext();
+
+        // add new ones
+        args.clear();
+        args << "-r";
+        args << (context->is32BitRgb() ? "cubic" : "nearest");
+
+        if(checkExternal->isChecked())
+        {
+            args << "-ro";
+        }
+
+        args << item->getFilename();
+        if(checkBy2->isChecked())
+        {
+            args << "2";
+        }
+        if(checkBy4->isChecked())
+        {
+            args << "4";
+        }
+        if(checkBy8->isChecked())
+        {
+            args << "8";
+        }
+        if(checkBy16->isChecked())
+        {
+            args << "16";
+        }
+        if(checkBy32->isChecked())
+        {
+            args << "32";
+        }
+        if(checkBy64->isChecked())
+        {
+            args << "64";
+        }
+
+        cmds << CShellCmd(IAppSetup::self().getGdaladdo(), args);
+    }
+}
+
+void CToolAddOverview::slotStart()
+{
+    start(itemList, checkAllFiles->isChecked());
+    if(jobId > 0)
+    {
+        itemList->setEnabled(false);
+        frameInput->setEnabled(false);
+        pushStart->setEnabled(false);
+        pushCancel->setEnabled(true);
+    }
+}
+
+void CToolAddOverview::slotFinished(qint32 id)
+{
+    if(finished(id))
+    {
+        itemList->setEnabled(true);
+        frameInput->setEnabled(true);
+        pushStart->setEnabled(true);
+        pushCancel->setEnabled(false);
+    }
+
+    if(checkAllFiles->isChecked())
+    {
+        const int N = itemList->count();
+        for(int n = 0; n < N; n++)
+        {
+            IItem * item = itemList->item(n);
+            if(nullptr != item)
+            {
+                item->reload();
+            }
+        }
+    }
+    else
+    {
+        IItem * item = itemList->currentItem();
+        if(nullptr != item)
+        {
+            item->reload();
+        }
+    }
+}
diff --git a/src/qmaptool/tool/CToolAddOverview.h b/src/qmaptool/tool/CToolAddOverview.h
new file mode 100644
index 0000000..902c64a
--- /dev/null
+++ b/src/qmaptool/tool/CToolAddOverview.h
@@ -0,0 +1,51 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLADDOVERVIEW_H
+#define CTOOLADDOVERVIEW_H
+
+#include "items/IItem.h"
+#include "tool/ITool.h"
+#include "tool/IToolGui.h"
+#include "ui_IToolAddOverview.h"
+
+
+class CToolAddOverview : public IToolGui, public ITool, private Ui::IToolAddOverview
+{
+    Q_OBJECT
+public:
+    CToolAddOverview(QWidget * parent);
+    virtual ~CToolAddOverview();
+
+    void setupChanged() override;
+
+    FORWARD_LIST_ALL(itemList)
+
+private slots:
+    void slotAddItem(const QString& filename, QListWidget * list);
+    void slotMapSelectionChanged();
+    void slotSelectionChanged();
+    void slotStart();
+    void slotFinished(qint32 id);
+
+protected:
+    void buildCmd(QList<CShellCmd>& cmds, const IItem * iitem) override;
+};
+
+#endif //CTOOLADDOVERVIEW_H
+
diff --git a/src/qmaptool/tool/CToolBox.cpp b/src/qmaptool/tool/CToolBox.cpp
new file mode 100644
index 0000000..c154280
--- /dev/null
+++ b/src/qmaptool/tool/CToolBox.cpp
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "tool/CToolBox.h"
+
+CToolBox::CToolBox(QWidget *parent)
+    : QToolBox(parent)
+{
+    connect(this, &CToolBox::currentChanged, this, &CToolBox::slotToolChanged);
+}
+
+void CToolBox::setupChanged()
+{
+    const int N = count();
+    for(int n = 0; n < N; n++)
+    {
+        ITool * tool = dynamic_cast<ITool*>(widget(n));
+        if(nullptr != tool)
+        {
+            tool->setupChanged();
+        }
+    }
+}
+
+void CToolBox::slotToolChanged(int idx)
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+}
diff --git a/src/qmaptool/tool/CToolBox.h b/src/qmaptool/tool/CToolBox.h
new file mode 100644
index 0000000..d357d90
--- /dev/null
+++ b/src/qmaptool/tool/CToolBox.h
@@ -0,0 +1,40 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLBOX_H
+#define CTOOLBOX_H
+
+#include "tool/ITool.h"
+#include <QToolBox>
+
+class CToolBox : public ITool, public QToolBox
+{
+public:
+    CToolBox(QWidget * parent);
+    virtual ~CToolBox() = default;
+
+    void setupChanged() override;
+
+    FORWARD_WIDGET_ALL()
+
+private slots:
+    void slotToolChanged(int idx);
+};
+
+#endif //CTOOLBOX_H
+
diff --git a/src/qmaptool/tool/CToolCutMap.cpp b/src/qmaptool/tool/CToolCutMap.cpp
new file mode 100644
index 0000000..c29b31c
--- /dev/null
+++ b/src/qmaptool/tool/CToolCutMap.cpp
@@ -0,0 +1,202 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "canvas/IDrawContext.h"
+#include "helpers/CSettings.h"
+#include "items/CItemCutMap.h"
+#include "setup/IAppSetup.h"
+#include "tool/CToolCutMap.h"
+
+CToolCutMap::CToolCutMap(QWidget *parent)
+    : IToolGui(parent)
+{
+    setupUi(this);
+    setObjectName(tr("Cut Map"));
+
+    labelHelp->setText(tr("Paper maps usually have a border you don't want to have. To combine "
+                          "maps seamlessly you have to cut that border, replacing it by transparent "
+                          "pixel. This tool allows you to define a cut line and it will add an alpha "
+                          "channel for transparency to your map."));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    connect(itemList, &CItemListWidget::sigAddItem, this, &CToolCutMap::slotAddItem);
+    connect(itemList, &CItemListWidget::sigSelectionChanged, this, &CToolCutMap::slotMapSelectionChanged);
+    connect(itemList, &CItemListWidget::sigChanged, this, &CToolCutMap::slotSomethingChanged);
+
+    connect(lineSuffix, &QLineEdit::textChanged, this, &CToolCutMap::slotSomethingChanged);
+
+    connect(pushStart, &QPushButton::clicked, this, &CToolCutMap::slotStart);
+    connect(pushCancel, &QPushButton::clicked, &CShell::self(), &CShell::slotCancel);
+    connect(&CShell::self(), &CShell::sigFinishedJob, this, &CToolCutMap::slotFinished);
+
+    setupChanged();
+
+    SETTINGS;
+    cfg.beginGroup("ToolCutMap");
+    itemList->loadSettings(cfg);
+    groupOverviews->loadSettings(cfg);
+    checkAllFiles->setChecked(cfg.value("allFiles", false).toBool());
+    lineSuffix->setText(cfg.value("suffix","_cut").toString());
+    cfg.endGroup();
+
+    slotSomethingChanged();
+}
+
+CToolCutMap::~CToolCutMap()
+{
+    SETTINGS;
+    cfg.beginGroup("ToolCutMap");
+    cfg.remove("");
+    itemList->saveSettings(cfg);
+    groupOverviews->saveSettings(cfg);
+    cfg.setValue("allFiles", checkAllFiles->isChecked());
+    cfg.setValue("suffix", lineSuffix->text());
+    cfg.endGroup();
+}
+
+void CToolCutMap::setupChanged()
+{
+    bool hasGdalwarp = !IAppSetup::self().getGdalwarp().isEmpty();
+    labelNoGdalwarp->setVisible(!hasGdalwarp);
+
+    bool hasGdaladdo = !IAppSetup::self().getGdaladdo().isEmpty();
+    labelNoGdaladdo->setVisible(!hasGdaladdo);
+
+    frame->setVisible(hasGdalwarp && hasGdaladdo);
+}
+
+void CToolCutMap::slotAddItem(const QString& filename, QListWidget * list)
+{
+    CItemCutMap * item = new CItemCutMap(filename, stackedWidget, list);
+    connect(item, &CItemFile::sigChanged, itemList, &CItemListWidget::sigChanged);
+}
+
+void CToolCutMap::slotMapSelectionChanged()
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+    slotSomethingChanged();
+}
+
+void CToolCutMap::slotSomethingChanged()
+{
+    IItem * item = itemList->currentItem();
+    if(item != nullptr)
+    {
+        bool ok = item->isOk();
+        if(lineSuffix->text().isEmpty())
+        {
+            ok = false;
+        }
+        pushStart->setEnabled(ok);
+    }
+    else
+    {
+        pushStart->setEnabled(false);
+    }
+}
+
+
+void CToolCutMap::buildCmd(QList<CShellCmd>& cmds, const IItem *iitem)
+{
+    const CItemCutMap * item = dynamic_cast<const CItemCutMap*>(iitem);
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    // ---- command 1 ----------------------
+    const IDrawContext * context = item->getDrawContext();
+    QStringList args;
+    // --- overwrite last output file ---
+    args << "-overwrite";
+    // --- use all CPU cores when possible ---
+    args << "-multi";
+    args << "-wo";
+    args << "NUM_THREADS=ALL_CPUS";
+
+    if(context->getProjection().isEmpty())
+    {
+        // --- if the source in not referenced ---
+        args << "-to";
+        args << "SRC_METHOD=NO_GEOTRANSFORM";
+        args << "-to";
+        args << "DST_METHOD=NO_GEOTRANSFORM";
+    }
+    else
+    {
+        // --- this only works for referenced sources ---
+        args << "-crop_to_cutline";
+    }
+
+    // --- define transparent color ---
+    if(context->getRasterBandCount() == 1)
+    {
+        if(!context->getNoData())
+        {
+            // --- use no data value for destination, too ---
+            args << "-dstnodata" << "255";
+        }
+    }
+    else if(context->getRasterBandCount() == 3)
+    {
+        // --- add alpha channel to files with just RGB ---
+        args << "-dstalpha";
+    }
+
+    QString wktFilename = createTempFile("csv");
+    item->saveShape(wktFilename);
+    QString inFilename = item->getFilename();
+    QFileInfo fi(inFilename);
+    QString outFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + lineSuffix->text() + "." + fi.suffix());
+
+    args << "-cutline";
+    args << wktFilename;
+    args << inFilename;
+    args << outFilename;
+
+    cmds << CShellCmd(IAppSetup::self().getGdalwarp(), args);
+
+    // ---- command 2 ----------------------
+    groupOverviews->buildCmd(cmds, outFilename, context->is32BitRgb() ? "cubic" : "nearest");
+}
+
+void CToolCutMap::slotStart()
+{
+    start(itemList, checkAllFiles->isChecked());
+    if(jobId > 0)
+    {
+        itemList->setEnabled(false);
+        frameInput->setEnabled(false);
+        pushStart->setEnabled(false);
+        pushCancel->setEnabled(true);
+    }
+}
+
+void CToolCutMap::slotFinished(qint32 id)
+{
+    if(finished(id))
+    {
+        itemList->setEnabled(true);
+        frameInput->setEnabled(true);
+        pushStart->setEnabled(true);
+        pushCancel->setEnabled(false);
+    }
+}
diff --git a/src/qmaptool/tool/CToolCutMap.h b/src/qmaptool/tool/CToolCutMap.h
new file mode 100644
index 0000000..c2f9493
--- /dev/null
+++ b/src/qmaptool/tool/CToolCutMap.h
@@ -0,0 +1,51 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLCUTMAP_H
+#define CTOOLCUTMAP_H
+
+#include "items/IItem.h"
+#include "tool/ITool.h"
+#include "tool/IToolGui.h"
+#include "ui_IToolCutMap.h"
+
+class CToolCutMap : public IToolGui, public ITool, private Ui::IToolCutMap
+{
+    Q_OBJECT
+public:
+    CToolCutMap(QWidget * parent);
+    virtual ~CToolCutMap();
+
+    void setupChanged() override;
+
+    FORWARD_LIST_ALL(itemList)
+
+
+private slots:
+    void slotAddItem(const QString& filename, QListWidget * list);
+    void slotMapSelectionChanged();
+    void slotSomethingChanged();
+    void slotStart();
+    void slotFinished(qint32 id);
+
+private:
+    void buildCmd(QList<CShellCmd>& cmds, const IItem *iitem) override;
+};
+
+#endif //CTOOLCUTMAP_H
+
diff --git a/src/qmaptool/tool/CToolGrid.cpp b/src/qmaptool/tool/CToolGrid.cpp
new file mode 100644
index 0000000..c232340
--- /dev/null
+++ b/src/qmaptool/tool/CToolGrid.cpp
@@ -0,0 +1,124 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "items/CItemRefMap.h"
+#include "overlay/COverlayRefMap.h"
+#include "tool/CToolGrid.h"
+
+#include <QtWidgets>
+
+#define TESTITEM(cmd) \
+    if(nullptr == item) \
+    { \
+        return cmd; \
+    } \
+
+
+CToolGrid::CToolGrid(QWidget *parent)
+    : QWidget(parent)
+{
+    setupUi(this);
+    labelHelp->setText(tr("By placing 4 reference points at the corners of a grid "
+                          "square and referencing them by their top left corner, "
+                          "the width and height, all the other grid points can be "
+                          "estimated."));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    connect(pushOk, &QPushButton::clicked, this, &CToolGrid::slotOk);
+    connect(pushCancel, &QPushButton::clicked, this, &CToolGrid::slotCancel);
+    connect(overlay, &COverlayGridTool::sigChanged, pushOk, &QPushButton::setEnabled);
+    connect(pushReset, &QPushButton::clicked, overlay, &COverlayGridTool::slotReset);
+}
+
+void CToolGrid::registerItem(CItemRefMap * item)
+{
+    this->item = item;
+    overlay->registerItem(item);
+}
+
+bool CToolGrid::drawFx(QPainter& p, CCanvas::redraw_e needsRedraw)
+{
+    TESTITEM(false)
+    item->drawFx(p, needsRedraw);
+    overlay->drawFx(p, needsRedraw);
+
+    return true;
+}
+
+void CToolGrid::mousePressEventFx(QMouseEvent *e)
+{
+    TESTITEM()
+    item->CItemFile::mousePressEventFx(e);
+}
+
+void CToolGrid::mouseMoveEventFx(QMouseEvent *e)
+{
+    TESTITEM()
+    item->CItemFile::mouseMoveEventFx(e);
+    if(!item->getMapIsMoving())
+    {
+        overlay->mouseMoveEventFx(e);
+    }
+}
+
+void CToolGrid::mouseReleaseEventFx(QMouseEvent *e)
+{
+    TESTITEM()
+    if(!item->getMapDidMove())
+    {
+        overlay->mouseReleaseEventFx(e);
+    }
+    item->CItemFile::mouseReleaseEventFx(e);
+}
+
+void CToolGrid::wheelEventFx(QWheelEvent *e)
+{
+    TESTITEM()
+    item->CItemFile::wheelEventFx(e);
+}
+
+void CToolGrid::leaveEventFx(QEvent *e)
+{
+    TESTITEM()
+    item->CItemFile::leaveEventFx(e);
+    overlay->leaveEventFx(e);
+}
+
+QCursor CToolGrid::getCursorFx()
+{
+    TESTITEM(Qt::ArrowCursor)
+    return overlay->getCursorFx();
+}
+
+
+void CToolGrid::slotOk()
+{
+    TESTITEM()
+    item->addRefPoints(overlay->getRefPoints());
+    slotCancel();
+}
+
+
+void CToolGrid::slotCancel()
+{
+    CMainWindow::self().showToolBox();
+    registerItem(nullptr);
+}
diff --git a/src/qmaptool/tool/CToolGrid.h b/src/qmaptool/tool/CToolGrid.h
new file mode 100644
index 0000000..4dd970c
--- /dev/null
+++ b/src/qmaptool/tool/CToolGrid.h
@@ -0,0 +1,57 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLGRID_H
+#define CTOOLGRID_H
+
+#include "tool/ITool.h"
+#include "ui_IToolGrid.h"
+
+class CItemRefMap;
+
+class CToolGrid : public QWidget, public ITool, private Ui::IToolGrid
+{
+    Q_OBJECT
+public:
+    virtual ~CToolGrid() = default;
+
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override;
+    void mousePressEventFx(QMouseEvent *e) override;
+    void mouseMoveEventFx(QMouseEvent *e) override;
+    void mouseReleaseEventFx(QMouseEvent *e) override;
+    void wheelEventFx(QWheelEvent *e) override;
+    void leaveEventFx(QEvent *e) override;
+    QCursor getCursorFx() override;
+
+    void setupChanged() override {}
+
+    void registerItem(CItemRefMap * item);
+
+private slots:
+    void slotOk();
+    void slotCancel();
+
+private:
+    friend class CMainWindow;
+    CToolGrid(QWidget * parent);
+
+    CItemRefMap * item = nullptr;
+};
+
+#endif //CTOOLGRID_H
+
diff --git a/src/qmaptool/tool/CToolOverviewGroupBox.cpp b/src/qmaptool/tool/CToolOverviewGroupBox.cpp
new file mode 100644
index 0000000..4ea7d41
--- /dev/null
+++ b/src/qmaptool/tool/CToolOverviewGroupBox.cpp
@@ -0,0 +1,95 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "setup/IAppSetup.h"
+#include "tool/CToolOverviewGroupBox.h"
+
+#include <QtWidgets>
+
+CToolOverviewGroupBox::CToolOverviewGroupBox(QWidget *parent)
+    : QGroupBox(parent)
+{
+    setupUi(this);
+}
+
+void CToolOverviewGroupBox::saveSettings(QSettings& cfg)
+{
+    cfg.setValue("createOverviews", isChecked());
+    cfg.setValue("by2", checkBy2->isChecked());
+    cfg.setValue("by4", checkBy4->isChecked());
+    cfg.setValue("by8", checkBy8->isChecked());
+    cfg.setValue("by16", checkBy16->isChecked());
+    cfg.setValue("by32", checkBy32->isChecked());
+    cfg.setValue("by64", checkBy64->isChecked());
+    cfg.setValue("useExternal", checkExternal->isChecked());
+}
+
+void CToolOverviewGroupBox::loadSettings(QSettings& cfg)
+{
+    setChecked(cfg.value("createOverviews", false).toBool());
+    checkBy2->setChecked(cfg.value("by2", false).toBool());
+    checkBy4->setChecked(cfg.value("by4", false).toBool());
+    checkBy8->setChecked(cfg.value("by8", false).toBool());
+    checkBy16->setChecked(cfg.value("by16", false).toBool());
+    checkBy32->setChecked(cfg.value("by32", false).toBool());
+    checkBy64->setChecked(cfg.value("by64", false).toBool());
+    checkExternal->setChecked(cfg.value("useExternal", true).toBool());
+}
+
+
+void CToolOverviewGroupBox::buildCmd(QList<CShellCmd>& cmds, const QString& filename, const QString& resampling)
+{
+    if(isChecked())
+    {
+        QStringList args;
+        if(checkExternal->isChecked())
+        {
+            args << "-ro";
+        }
+
+        args << "-r";
+        args << resampling;
+
+        args << filename;
+        if(checkBy2->isChecked())
+        {
+            args << "2";
+        }
+        if(checkBy4->isChecked())
+        {
+            args << "4";
+        }
+        if(checkBy8->isChecked())
+        {
+            args << "8";
+        }
+        if(checkBy16->isChecked())
+        {
+            args << "16";
+        }
+        if(checkBy32->isChecked())
+        {
+            args << "32";
+        }
+        if(checkBy64->isChecked())
+        {
+            args << "64";
+        }
+        cmds << CShellCmd(IAppSetup::self().getGdaladdo(), args);
+    }
+}
diff --git a/src/qmaptool/tool/CToolOverviewGroupBox.h b/src/qmaptool/tool/CToolOverviewGroupBox.h
new file mode 100644
index 0000000..776a8a5
--- /dev/null
+++ b/src/qmaptool/tool/CToolOverviewGroupBox.h
@@ -0,0 +1,43 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLOVERVIEWGROUPBOX_H
+#define CTOOLOVERVIEWGROUPBOX_H
+
+#include "shell/CShellCmd.h"
+
+#include "ui_IToolOverviewGroupBox.h"
+
+class QSettings;
+
+class CToolOverviewGroupBox : public QGroupBox, private Ui::IToolOverviewGroupBox
+{
+    Q_OBJECT
+public:
+    CToolOverviewGroupBox(QWidget * parent);
+    virtual ~CToolOverviewGroupBox() = default;
+
+    void saveSettings(QSettings& cfg);
+    void loadSettings(QSettings& cfg);
+
+
+    void buildCmd(QList<CShellCmd>& cmds, const QString& filename, const QString &resampling);
+};
+
+#endif //CTOOLOVERVIEWGROUPBOX_H
+
diff --git a/src/qmaptool/tool/CToolPalettize.cpp b/src/qmaptool/tool/CToolPalettize.cpp
new file mode 100644
index 0000000..1f9a0d5
--- /dev/null
+++ b/src/qmaptool/tool/CToolPalettize.cpp
@@ -0,0 +1,302 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "CMainWindow.h"
+#include "helpers/CSettings.h"
+#include "items/CItemFile.h"
+#include "tool/CToolPalettize.h"
+
+#include <QtWidgets>
+
+CToolPalettize::CToolPalettize(QWidget *parent)
+    : IToolGui(parent)
+{
+    setupUi(this);
+    setObjectName(tr("Add Color Palette"));
+
+    lineFilename->addAction(actionFilename,QLineEdit::TrailingPosition);
+
+    labelHelp->setText(tr("Usually you use RGBA color while referencing a map because the large "
+                          "color space allows you to scale and rotate the map without any loss "
+                          "of quality. But it results into rather large files. The file size can "
+                          "be optimized by using a color palette instead of the RGBA color space. "
+                          "The impact on quality is low as long as you do not want to scale or "
+                          "rotate the map. If you want to combine files with a color palette all "
+                          "files need to have the same palette."
+                          ));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    labelNote->setText(tr("Note: This tool will use all files in the list as a combined input "
+                          "to derive an optimal palette. This will only work if all files have "
+                          "the same projection and scale."
+                          ));
+    labelNote->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelNote, &QLabel::setVisible);
+
+    connect(itemList, &CItemListWidget::sigAddItem, this, &CToolPalettize::slotAddItem);
+    connect(itemList, &CItemListWidget::sigSelectionChanged, this, &CToolPalettize::slotMapSelectionChanged);
+    connect(itemList, &CItemListWidget::sigChanged, this, &CToolPalettize::slotSomethingChanged);
+
+    connect(radioSingle, &QRadioButton::toggled, lineSuffix, &QLineEdit::setEnabled);
+    connect(radioSingle, &QRadioButton::toggled, this, &CToolPalettize::slotSomethingChanged);
+    connect(radioCombined, &QRadioButton::toggled, lineFilename, &QLineEdit::setEnabled);
+    connect(radioCombined, &QRadioButton::toggled, this, &CToolPalettize::slotSomethingChanged);
+
+    connect(actionFilename, &QAction::triggered, this, &CToolPalettize::slotSelectFilename);
+    connect(lineSuffix, &QLineEdit::textChanged, this, &CToolPalettize::slotSomethingChanged);
+    connect(lineFilename, &QLineEdit::textChanged, this, &CToolPalettize::slotSomethingChanged);
+
+    connect(pushStart, &QPushButton::clicked, this, &CToolPalettize::slotStart);
+    connect(pushCancel, &QPushButton::clicked, &CShell::self(), &CShell::slotCancel);
+    connect(&CShell::self(), &CShell::sigFinishedJob, this, &CToolPalettize::slotFinished);
+
+    setupChanged();
+
+    SETTINGS;
+    cfg.beginGroup("ToolPalettize");
+    itemList->loadSettings(cfg);
+    checkCreateVrt->setChecked(cfg.value("createVrt", false).toBool());
+    groupOverviews->loadSettings(cfg);
+    radioSingle->setChecked(cfg.value("singleFiles", true).toBool());
+    radioCombined->setChecked(cfg.value("combinedFile", false).toBool());
+    lineFilename->setText(cfg.value("filename","").toString());
+    lineSuffix->setText(cfg.value("suffix","_8bit").toString());
+    cfg.endGroup();
+
+    lineFilename->setEnabled(radioCombined->isChecked());
+    lineSuffix->setEnabled(radioSingle->isChecked());
+}
+
+CToolPalettize::~CToolPalettize()
+{
+    SETTINGS;
+    cfg.beginGroup("ToolPalettize");
+    cfg.remove("");
+    itemList->saveSettings(cfg);
+    cfg.setValue("createVrt", checkCreateVrt->isChecked());
+    groupOverviews->saveSettings(cfg);
+    cfg.setValue("singleFiles", radioSingle->isChecked());
+    cfg.setValue("combinedFile", radioCombined->isChecked());
+    cfg.setValue("filename", lineFilename->text());
+    cfg.setValue("suffix", lineSuffix->text());
+    cfg.endGroup();
+}
+
+void CToolPalettize::slotSelectFilename()
+{
+    SETTINGS;
+    QString path = cfg.value("Path/mapInput", QDir::homePath()).toString();
+    QString filename = QFileDialog::getSaveFileName(this, tr("Select filename..."), path);
+    if(filename.isEmpty())
+    {
+        return;
+    }
+    cfg.setValue("Path/mapInput", QFileInfo(filename).absolutePath());
+
+    if(!filename.endsWith(".tif"))
+    {
+        filename += ".tif";
+    }
+
+    lineFilename->setText(filename);
+}
+
+void CToolPalettize::setupChanged()
+{
+    bool hasGdaladdo = !IAppSetup::self().getGdaladdo().isEmpty();
+    labelNoGdaladdo->setVisible(!hasGdaladdo);
+
+    bool hasGdaltranslate = !IAppSetup::self().getGdaltranslate().isEmpty();
+    labelNoGdaltranslate->setVisible(!hasGdaltranslate);
+
+    bool hasQmtrgb2pct = !IAppSetup::self().getQmtrgb2pct().isEmpty();
+    labelNoQmtrgb2pct->setVisible(!hasQmtrgb2pct);
+
+    frame->setVisible(hasGdaladdo && hasQmtrgb2pct && hasGdaltranslate);
+}
+
+void CToolPalettize::slotAddItem(const QString& filename, QListWidget * list)
+{
+    CItemFile * item = new CItemFile(filename, list);
+    connect(item, &CItemFile::sigChanged, itemList, &CItemListWidget::sigChanged);
+}
+
+void CToolPalettize::slotMapSelectionChanged()
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+    slotSomethingChanged();
+}
+
+void CToolPalettize::slotSomethingChanged()
+{
+    bool ok = itemList->count() > 0;
+    if(radioSingle->isChecked() && lineSuffix->text().isEmpty())
+    {
+        ok = false;
+    }
+    if(radioCombined->isChecked() && lineFilename->text().isEmpty())
+    {
+        ok = false;
+    }
+
+    pushStart->setEnabled(ok);
+}
+
+void CToolPalettize::buildCmd(QList<CShellCmd>& cmds, const IItem * iitem)
+{
+    inputFiles << iitem->getFilename();
+}
+
+void CToolPalettize::buildCmdFinal(QList<CShellCmd>& cmds)
+{
+    QStringList args;
+
+    // ---- command 1 ----------------------
+    QString vrtFilename = createTempFile("vrt");
+    args.clear();
+    args << vrtFilename;
+    args += inputFiles;
+    cmds << CShellCmd(IAppSetup::self().getGdalbuildvrt(), args);
+
+    // ---- command 2 ----------------------
+    QString pctFilename = createTempFile("vrt");
+    args.clear();
+    args << "--sct" << pctFilename;
+    args << vrtFilename;
+    cmds << CShellCmd(IAppSetup::self().getQmtrgb2pct(), args);
+
+    // ---- command 2..2 + N ----------------------
+    if(radioCombined->isChecked())
+    {
+        QStringList tempFiles;
+
+        const int N = itemList->count();
+        for(int n = 0; n < N; n++)
+        {
+            const IItem * item = dynamic_cast<const IItem*>(itemList->item(n));
+            if(nullptr == item)
+            {
+                continue;
+            }
+            QString inFilename = item->getFilename();
+            QFileInfo fi(inFilename);
+            QString outFilename = createTempFile("tif");
+
+            tempFiles << outFilename;
+
+            args.clear();
+            args << "--pct" << pctFilename;
+            args << inFilename;
+            args << outFilename;
+            cmds << CShellCmd(IAppSetup::self().getQmtrgb2pct(), args);
+        }
+
+        // ---- command 2 + N + 1 ----------------------
+        QString vrtFilename = createTempFile("vrt");
+        args.clear();
+        args << vrtFilename;
+        args += tempFiles;
+        cmds << CShellCmd(IAppSetup::self().getGdalbuildvrt(), args);
+
+        // ---- command 2 + N + 2 ----------------------
+        QString outFilename = lineFilename->text();
+        args.clear();
+        args << "-co" << "TILED=YES";
+        args << "-co" << "COMPRESS=LZW";
+        args << vrtFilename;
+        args << outFilename;
+        cmds << CShellCmd(IAppSetup::self().getGdaltranslate(), args);
+
+        QString lastOutFilname = outFilename;
+        // ---- command 2 + N + 3 ----------------------
+        if(checkCreateVrt->isChecked())
+        {
+            QFileInfo fi(outFilename);
+            QString vrtFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + ".vrt");
+            args.clear();
+            args << vrtFilename << outFilename;
+            cmds << CShellCmd(IAppSetup::self().getGdalbuildvrt(), args);
+            lastOutFilname = vrtFilename;
+        }
+
+        // ---- command 2 + N + 4 ----------------------
+        groupOverviews->buildCmd(cmds, lastOutFilname, "nearest");
+    }
+    else
+    {
+        // ---- command 3..3*N ----------------------
+        const int N = itemList->count();
+        for(int n = 0; n < N; n++)
+        {
+            const IItem * item = dynamic_cast<const IItem*>(itemList->item(n));
+            if(nullptr == item)
+            {
+                continue;
+            }
+            QString inFilename = item->getFilename();
+            QFileInfo fi(inFilename);
+            QString outFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + lineSuffix->text() + "." + fi.suffix());
+
+            // ---- command n*3 ----------------------
+            args.clear();
+            args << "--pct" << pctFilename;
+            args << inFilename;
+            args << outFilename;
+            cmds << CShellCmd(IAppSetup::self().getQmtrgb2pct(), args);
+
+            QString lastOutFilname = outFilename;
+            // ---- command n*3 + 1 ----------------------
+            if(checkCreateVrt->isChecked())
+            {
+                QFileInfo fi(outFilename);
+                QString vrtFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + ".vrt");
+                args.clear();
+                args << vrtFilename << outFilename;
+                cmds << CShellCmd(IAppSetup::self().getGdalbuildvrt(), args);
+                lastOutFilname = vrtFilename;
+            }
+
+            // ---- command n*3 + 2 ----------------------
+            groupOverviews->buildCmd(cmds, lastOutFilname, "nearest");
+        }
+    }
+}
+
+void CToolPalettize::slotStart()
+{
+    inputFiles.clear();
+    start(itemList, true);
+    if(jobId > 0)
+    {
+        itemList->setEnabled(false);
+        pushStart->setEnabled(false);
+        pushCancel->setEnabled(true);
+    }
+}
+
+void CToolPalettize::slotFinished(qint32 id)
+{
+    if(finished(id))
+    {
+        itemList->setEnabled(true);
+        pushStart->setEnabled(true);
+        pushCancel->setEnabled(false);
+    }
+}
diff --git a/src/qmaptool/tool/CToolPalettize.h b/src/qmaptool/tool/CToolPalettize.h
new file mode 100644
index 0000000..4c7a7b9
--- /dev/null
+++ b/src/qmaptool/tool/CToolPalettize.h
@@ -0,0 +1,55 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLPALETTIZE_H
+#define CTOOLPALETTIZE_H
+
+#include "items/IItem.h"
+#include "tool/ITool.h"
+#include "tool/IToolGui.h"
+#include "ui_IToolPalettize.h"
+
+class CToolPalettize : public IToolGui, public ITool, private Ui::IToolPalettize
+{
+    Q_OBJECT
+public:
+    CToolPalettize(QWidget * parent);
+    virtual ~CToolPalettize();
+
+    void setupChanged() override;
+
+    FORWARD_LIST_ALL(itemList)
+
+private slots:
+    void slotAddItem(const QString& filename, QListWidget * list);
+    void slotMapSelectionChanged();
+    void slotSomethingChanged();
+    void slotStart();
+    void slotFinished(qint32 id);
+
+    void slotSelectFilename();
+
+private:
+    void buildCmd(QList<CShellCmd>& cmds, const IItem * iitem) override;
+    void buildCmdFinal(QList<CShellCmd>& cmds) override;
+
+    QStringList inputFiles;
+};
+
+#endif //CTOOLPALETTIZE_H
+
diff --git a/src/qmaptool/tool/CToolRefMap.cpp b/src/qmaptool/tool/CToolRefMap.cpp
new file mode 100644
index 0000000..1058885
--- /dev/null
+++ b/src/qmaptool/tool/CToolRefMap.cpp
@@ -0,0 +1,257 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "CToolRefMap.h"
+#include "canvas/IDrawContext.h"
+#include "helpers/CSettings.h"
+#include "items/CItemRefMap.h"
+#include "overlay/refmap/COverlayRefMapPoint.h"
+#include "setup/IAppSetup.h"
+#include "shell/CShell.h"
+
+#include <proj_api.h>
+
+CToolRefMap::CToolRefMap(QWidget *parent)
+    : IToolGui(parent)
+{
+    setupUi(this);
+    setObjectName(tr("Reference Map"));
+
+    labelHelp->setText(tr("A scan of a paper map can be converted to a referenced raster map if "
+                          "you place at least three reference points on the map. The more points "
+                          "the better the result. If your map has a grid you can place points on "
+                          "that grid with the grid tool."));
+
+    labelHelp->setVisible(CMainWindow::self().showToolHelp()->isChecked());
+    connect(CMainWindow::self().showToolHelp(), &QAction::toggled, labelHelp, &QLabel::setVisible);
+
+    connect(itemList, &CItemListWidget::sigAddItem, this, &CToolRefMap::slotAddItem);
+    connect(itemList, &CItemListWidget::sigSelectionChanged, this, &CToolRefMap::slotMapSelectionChanged);
+    connect(itemList, &CItemListWidget::sigChanged, this, &CToolRefMap::slotSomethingChanged);
+
+    connect(lineSuffix, &QLineEdit::textChanged, this, &CToolRefMap::slotSomethingChanged);
+
+    connect(pushStart, &QPushButton::clicked, this, &CToolRefMap::slotStart);
+    connect(pushCancel, &QPushButton::clicked, &CShell::self(), &CShell::slotCancel);
+    connect(&CShell::self(), &CShell::sigFinishedJob, this, &CToolRefMap::slotFinished);
+
+    setupChanged();
+
+    SETTINGS;
+    cfg.beginGroup("ToolRefMap");
+    itemList->loadSettings(cfg);
+    checkCreateVrt->setChecked(cfg.value("createVrt", false).toBool());
+    groupOverviews->loadSettings(cfg);
+    checkAllFiles->setChecked(cfg.value("allFiles", false).toBool());
+    lineSuffix->setText(cfg.value("suffix","_ref").toString());
+    cfg.endGroup();
+
+    slotSomethingChanged();
+
+    adjustSize();
+}
+
+CToolRefMap::~CToolRefMap()
+{
+    SETTINGS;
+    cfg.beginGroup("ToolRefMap");
+    cfg.remove("");
+    itemList->saveSettings(cfg);
+    cfg.setValue("createVrt", checkCreateVrt->isChecked());
+    groupOverviews->saveSettings(cfg);
+    cfg.setValue("allFiles", checkAllFiles->isChecked());
+    cfg.setValue("suffix", lineSuffix->text());
+    cfg.endGroup();
+}
+
+
+void CToolRefMap::setupChanged()
+{
+    bool hasGdalwarp = !IAppSetup::self().getGdalwarp().isEmpty();
+    labelNoGdalwarp->setVisible(!hasGdalwarp);
+
+    bool hasGdaltranslate = !IAppSetup::self().getGdaltranslate().isEmpty();
+    labelNoGdalTranslate->setVisible(!hasGdaltranslate);
+
+    bool hasGdaladdo = !IAppSetup::self().getGdaladdo().isEmpty();
+    labelNoGdaladdo->setVisible(!hasGdaladdo);
+
+    frame->setVisible(hasGdalwarp && hasGdaltranslate && hasGdaladdo);
+
+    checkCreateVrt->setVisible(!IAppSetup::self().getGdalbuildvrt().isEmpty());
+}
+
+void CToolRefMap::slotAddItem(const QString& filename, QListWidget * list)
+{
+    CItemRefMap * item = new CItemRefMap(filename, stackedWidget, list);
+    connect(item, &CItemFile::sigChanged, itemList, &CItemListWidget::sigChanged);
+}
+
+void CToolRefMap::slotMapSelectionChanged()
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+    slotSomethingChanged();
+}
+
+void CToolRefMap::slotSomethingChanged()
+{
+    IItem * item = itemList->currentItem();
+    if(item != nullptr)
+    {
+        bool ok = item->isOk();
+        if(lineSuffix->text().isEmpty())
+        {
+            ok = false;
+        }
+        pushStart->setEnabled(ok);
+    }
+    else
+    {
+        pushStart->setEnabled(false);
+    }
+}
+
+void CToolRefMap::buildCmd(QList<CShellCmd>& cmds, const IItem *iitem)
+{
+    const CItemRefMap * item = dynamic_cast<const CItemRefMap*>(iitem);
+    if(nullptr == item)
+    {
+        return;
+    }
+
+    projPJ pjsrc = pj_init_plus("+proj=longlat +datum=WGS84 +no_defs");
+    if(pjsrc == nullptr)
+    {
+        return;
+    }
+
+    projPJ pjtar = pj_init_plus(item->getMapProjection().toLatin1());
+    if(pjtar == nullptr)
+    {
+        pj_free(pjsrc);
+        return;
+    }
+
+    // ---- command 1 ----------------------
+    QStringList args;
+    args << "-a_srs" << item->getMapProjection();
+
+    const QList<COverlayRefMapPoint*>& points = item->getRefPoints();
+    for(const COverlayRefMapPoint* pt : points)
+    {
+        qreal lon = pt->getPtRef().x() * DEG_TO_RAD;
+        qreal lat = pt->getPtRef().y() * DEG_TO_RAD;
+        pj_transform(pjsrc, pjtar, 1, 0, &lon, &lat, 0);
+
+        args << "-gcp";
+        args << QString::number(pt->getPtPtx().x());
+        args << QString::number(pt->getPtPtx().y());
+
+        args << QString::number(lon,'f',6);
+        args << QString::number(lat,'f',6);
+        args << "0";
+    }
+
+    QString tmpname1    = createTempFile("tif");
+    QString inFilename  = item->getFilename();
+    args << inFilename << tmpname1;
+    cmds << CShellCmd(IAppSetup::self().getGdaltranslate(), args);
+
+    // ---- command 2 ----------------------
+    IDrawContext * context = item->getDrawContext();
+    args.clear();
+    // --- set re-sampling method ---
+    args << "-r";
+    args << (context->is32BitRgb() ? "cubic" : "near");
+    // --- overwrite last output file ---
+    args << "-overwrite";
+    // --- use all CPU cores when possible ---
+    args << "-multi";
+    args << "-wo";
+    args << "NUM_THREADS=ALL_CPUS";
+    // --- define transparent color ---
+    if(context->getRasterBandCount() == 1)
+    {
+        if(!context->getNoData())
+        {
+            // --- use no data value for destination, too ---
+            args << "-dstnodata" << "255";
+        }
+    }
+    else if(context->getRasterBandCount() == 3)
+    {
+        // --- add alpha channel to files with just RGB ---
+        args << "-dstalpha";
+    }
+
+    QString tmpname2 = createTempFile("tif");
+    args << tmpname1 << tmpname2;
+    cmds << CShellCmd(IAppSetup::self().getGdalwarp(), args);
+
+    // ---- command 3 ----------------------
+    QFileInfo fi(inFilename);
+    QString outFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + lineSuffix->text() + "." + fi.suffix());
+
+    args.clear();
+    args << "-co" << "tiled=yes" << "-co" << "compress=deflate";
+    args << tmpname2 << outFilename;
+    cmds << CShellCmd(IAppSetup::self().getGdaltranslate(), args);
+
+    QString lastOutFilname = outFilename;
+    // ---- command 4 ----------------------
+    if(checkCreateVrt->isChecked())
+    {
+        QFileInfo fi(outFilename);
+        QString vrtFilename = fi.absoluteDir().absoluteFilePath(fi.completeBaseName() + ".vrt");
+        args.clear();
+        args << vrtFilename << outFilename;
+        cmds << CShellCmd(IAppSetup::self().getGdalbuildvrt(), args);
+        lastOutFilname = vrtFilename;
+    }
+
+    // ---- command 5 ----------------------
+    groupOverviews->buildCmd(cmds, lastOutFilname, context->is32BitRgb() ? "cubic" : "nearest");
+
+    pj_free(pjsrc);
+    pj_free(pjtar);
+}
+
+void CToolRefMap::slotStart()
+{
+    start(itemList, checkAllFiles->isChecked());
+    if(jobId > 0)
+    {
+        itemList->setEnabled(false);
+        frameInput->setEnabled(false);
+        pushStart->setEnabled(false);
+        pushCancel->setEnabled(true);
+    }
+}
+
+void CToolRefMap::slotFinished(qint32 id)
+{
+    if(finished(id))
+    {
+        itemList->setEnabled(true);
+        frameInput->setEnabled(true);
+        pushStart->setEnabled(true);
+        pushCancel->setEnabled(false);
+    }
+}
+
diff --git a/src/qmaptool/tool/CToolRefMap.h b/src/qmaptool/tool/CToolRefMap.h
new file mode 100644
index 0000000..2f009b3
--- /dev/null
+++ b/src/qmaptool/tool/CToolRefMap.h
@@ -0,0 +1,52 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLREFMAP_H
+#define CTOOLREFMAP_H
+
+#include "items/IItem.h"
+#include "tool/ITool.h"
+#include "tool/IToolGui.h"
+#include "ui_IToolRefMap.h"
+
+
+class CToolRefMap : public IToolGui, public ITool, private Ui::IToolRefMap
+{
+    Q_OBJECT
+public:
+    CToolRefMap(QWidget * parent);
+    virtual ~CToolRefMap();
+
+    void setupChanged() override;
+
+    FORWARD_LIST_ALL(itemList)
+
+
+private slots:
+    void slotAddItem(const QString& filename, QListWidget * list);
+    void slotMapSelectionChanged();
+    void slotSomethingChanged();
+    void slotStart();
+    void slotFinished(qint32 id);
+
+private:
+    void buildCmd(QList<CShellCmd>& cmds, const IItem * iitem) override;
+};
+
+#endif //CTOOLREFMAP_H
+
diff --git a/src/qmaptool/tool/CToolStack.cpp b/src/qmaptool/tool/CToolStack.cpp
new file mode 100644
index 0000000..47cc916
--- /dev/null
+++ b/src/qmaptool/tool/CToolStack.cpp
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "CMainWindow.h"
+#include "tool/CToolStack.h"
+
+CToolStack::CToolStack(QWidget * parent)
+    : QStackedWidget(parent)
+{
+    connect(this, &CToolStack::currentChanged, this, &CToolStack::slotToolChanged);
+}
+
+void CToolStack::setupChanged()
+{
+    const int N = count();
+    for(int n = 0; n < N; n++)
+    {
+        ITool * tool = dynamic_cast<ITool*>(widget(n));
+        if(nullptr != tool)
+        {
+            tool->setupChanged();
+        }
+    }
+}
+
+void CToolStack::slotToolChanged(int idx)
+{
+    CMainWindow::self().getCanvas()->slotTriggerCompleteUpdate(CCanvas::eRedrawAll);
+}
diff --git a/src/qmaptool/tool/CToolStack.h b/src/qmaptool/tool/CToolStack.h
new file mode 100644
index 0000000..f0af7d2
--- /dev/null
+++ b/src/qmaptool/tool/CToolStack.h
@@ -0,0 +1,41 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef CTOOLSTACK_H
+#define CTOOLSTACK_H
+
+
+#include "tool/ITool.h"
+#include <QStackedWidget>
+
+class CToolStack : public ITool, public QStackedWidget
+{
+public:
+    CToolStack(QWidget * parent);
+    virtual ~CToolStack() = default;
+
+    void setupChanged() override;
+
+    FORWARD_WIDGET_ALL()
+
+private slots:
+    void slotToolChanged(int idx);
+};
+
+#endif //CTOOLSTACK_H
+
diff --git a/src/qmaptool/tool/ITool.cpp b/src/qmaptool/tool/ITool.cpp
new file mode 100644
index 0000000..157c999
--- /dev/null
+++ b/src/qmaptool/tool/ITool.cpp
@@ -0,0 +1,20 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "tool/ITool.h"
+
diff --git a/src/qmaptool/tool/ITool.h b/src/qmaptool/tool/ITool.h
new file mode 100644
index 0000000..0883812
--- /dev/null
+++ b/src/qmaptool/tool/ITool.h
@@ -0,0 +1,179 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef ITOOL_H
+#define ITOOL_H
+
+#include "canvas/CCanvas.h"
+#include "setup/IAppSetup.h"
+#include "shell/CShellCmd.h"
+#include <QCursor>
+#include <QWidget>
+class QPainter;
+class QMouseEvent;
+class QWheelEvent;
+class QEvent;
+class CItemListWidget;
+class IItem;
+
+#define FORWARD_WIDGET_VOID(cmd) \
+    ITool * tool = dynamic_cast<ITool*>(currentWidget()); \
+    if(nullptr != tool) \
+    { \
+        tool->cmd; \
+    } \
+
+#define FORWARD_WIDGET_RETURN(cmd, def) \
+    ITool * tool = dynamic_cast<ITool*>(currentWidget()); \
+    if(nullptr != tool) \
+    { \
+        return tool->cmd; \
+    } \
+    return def; \
+
+#define FORWARD_WIDGET_ALL() \
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override \
+    { \
+        FORWARD_WIDGET_RETURN(drawFx(p, needsRedraw), false) \
+    } \
+    void mousePressEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(mousePressEventFx(e)) \
+    } \
+    void mouseMoveEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(mouseMoveEventFx(e)) \
+    } \
+    void mouseReleaseEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(mouseReleaseEventFx(e)) \
+    } \
+    void mouseDoubleClickEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(mouseDoubleClickEventFx(e)) \
+    } \
+    void wheelEventFx(QWheelEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(wheelEventFx(e)) \
+    } \
+    void enterEventFx(QEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(enterEventFx(e)) \
+    } \
+    void leaveEventFx(QEvent *e) override \
+    { \
+        FORWARD_WIDGET_VOID(leaveEventFx(e)) \
+    } \
+    QCursor getCursorFx() override \
+    { \
+        FORWARD_WIDGET_RETURN(getCursorFx(), Qt::ArrowCursor) \
+    } \
+    bool keyPressEventFx(QKeyEvent * e) override \
+    { \
+        FORWARD_WIDGET_RETURN(keyPressEventFx(e), false) \
+    } \
+
+
+#define FORWARD_LIST_VOID(list, cmd) \
+    ITool * tool = dynamic_cast<ITool*>(list->currentItem()); \
+    if(nullptr != tool) \
+    { \
+        tool->cmd; \
+    } \
+
+#define FORWARD_LIST_RETURN(list, cmd, def) \
+    ITool * tool = dynamic_cast<ITool*>(list->currentItem()); \
+    if(nullptr != tool) \
+    { \
+        return tool->cmd; \
+    } \
+    return def; \
+
+
+#define FORWARD_LIST_ALL(list) \
+    bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) override \
+    { \
+        FORWARD_LIST_RETURN(list, drawFx(p, needsRedraw), false) \
+    } \
+    void mousePressEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, mousePressEventFx(e)) \
+    } \
+    void mouseMoveEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, mouseMoveEventFx(e)) \
+    } \
+    void mouseReleaseEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, mouseReleaseEventFx(e)) \
+    } \
+    void mouseDoubleClickEventFx(QMouseEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, mouseDoubleClickEventFx(e)) \
+    } \
+    void wheelEventFx(QWheelEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, wheelEventFx(e)) \
+    } \
+    void enterEventFx(QEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, enterEventFx(e)) \
+    } \
+    void leaveEventFx(QEvent *e) override \
+    { \
+        FORWARD_LIST_VOID(list, leaveEventFx(e)) \
+    } \
+    QCursor getCursorFx() override \
+    { \
+        FORWARD_LIST_RETURN(list, getCursorFx(), Qt::ArrowCursor) \
+    } \
+    bool keyPressEventFx(QKeyEvent * e) override \
+    { \
+        FORWARD_LIST_RETURN(list, keyPressEventFx(e), false) \
+    } \
+
+
+
+class ITool
+{
+public:
+    ITool()
+    {
+    }
+    virtual ~ITool() = default;
+
+    virtual bool drawFx(QPainter& p, CCanvas::redraw_e needsRedraw) = 0;
+    virtual void setupChanged() = 0;
+
+    virtual void mousePressEventFx(QMouseEvent *e) {}
+    virtual void mouseMoveEventFx(QMouseEvent *e){}
+    virtual void mouseReleaseEventFx(QMouseEvent *e){}
+    virtual void mouseDoubleClickEventFx(QMouseEvent *e){}
+    virtual void wheelEventFx(QWheelEvent *e){}
+    virtual void enterEventFx(QEvent *e){}
+    virtual void leaveEventFx(QEvent *e){}
+    virtual bool keyPressEventFx(QKeyEvent *e){return false; }
+
+    virtual QCursor getCursorFx()
+    {
+        return Qt::ArrowCursor;
+    }
+};
+
+#endif //ITOOL_H
+
diff --git a/src/qmaptool/tool/IToolAddOverview.ui b/src/qmaptool/tool/IToolAddOverview.ui
new file mode 100644
index 0000000..346fb21
--- /dev/null
+++ b/src/qmaptool/tool/IToolAddOverview.ui
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolAddOverview</class>
+ <widget class="QWidget" name="IToolAddOverview">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>601</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_3">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>3</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>3</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="labelHelp">
+        <property name="text">
+         <string>do not translate</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::RichText</enum>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CItemListWidget" name="itemList" native="true"/>
+      </item>
+      <item>
+       <widget class="QFrame" name="frameInput">
+        <property name="frameShape">
+         <enum>QFrame::NoFrame</enum>
+        </property>
+        <property name="frameShadow">
+         <enum>QFrame::Plain</enum>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout">
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <layout class="QFormLayout" name="formLayout">
+           <item row="0" column="1">
+            <widget class="QFrame" name="frameLevels">
+             <property name="frameShape">
+              <enum>QFrame::NoFrame</enum>
+             </property>
+             <property name="frameShadow">
+              <enum>QFrame::Plain</enum>
+             </property>
+             <layout class="QHBoxLayout" name="horizontalLayout">
+              <property name="leftMargin">
+               <number>0</number>
+              </property>
+              <property name="topMargin">
+               <number>0</number>
+              </property>
+              <property name="rightMargin">
+               <number>0</number>
+              </property>
+              <property name="bottomMargin">
+               <number>0</number>
+              </property>
+              <item>
+               <widget class="QCheckBox" name="checkBy2">
+                <property name="text">
+                 <string>:2</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QCheckBox" name="checkBy4">
+                <property name="text">
+                 <string>:4</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QCheckBox" name="checkBy8">
+                <property name="text">
+                 <string>:8</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QCheckBox" name="checkBy16">
+                <property name="text">
+                 <string>:16</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QCheckBox" name="checkBy32">
+                <property name="text">
+                 <string>:32</string>
+                </property>
+               </widget>
+              </item>
+              <item>
+               <widget class="QCheckBox" name="checkBy64">
+                <property name="text">
+                 <string>:64</string>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item row="2" column="1">
+            <widget class="QCheckBox" name="checkRemove">
+             <property name="toolTip">
+              <string>Remove all overview levels from map file.</string>
+             </property>
+             <property name="text">
+              <string>Remove</string>
+             </property>
+            </widget>
+           </item>
+           <item row="1" column="1">
+            <widget class="QCheckBox" name="checkExternal">
+             <property name="toolTip">
+              <string>Do not copy the overviews into the file itself. Add them as external file.</string>
+             </property>
+             <property name="text">
+              <string>Overview as external file</string>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>0</width>
+          <height>0</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QPushButton" name="pushStart">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Start</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushCancel">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Cancel</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Cancel.png</normaloff>:/icons/32x32/Cancel.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="checkAllFiles">
+          <property name="text">
+           <string>For all files</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdaladdo">
+     <property name="text">
+      <string><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CItemListWidget</class>
+   <extends>QWidget</extends>
+   <header>items/CItemListWidget.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/tool/IToolCutMap.ui b/src/qmaptool/tool/IToolCutMap.ui
new file mode 100644
index 0000000..75f9b23
--- /dev/null
+++ b/src/qmaptool/tool/IToolCutMap.ui
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolCutMap</class>
+ <widget class="QWidget" name="IToolCutMap">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>340</width>
+    <height>610</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_4">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="labelHelp">
+        <property name="text">
+         <string>do not translate</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::RichText</enum>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CItemListWidget" name="itemList" native="true"/>
+      </item>
+      <item>
+       <widget class="QFrame" name="frameInput">
+        <property name="frameShape">
+         <enum>QFrame::NoFrame</enum>
+        </property>
+        <property name="frameShadow">
+         <enum>QFrame::Plain</enum>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <widget class="QStackedWidget" name="stackedWidget">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <layout class="QHBoxLayout" name="horizontalLayout_2">
+           <item>
+            <widget class="QLabel" name="label_2">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>Output filename suffix</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+             </property>
+             <property name="wordWrap">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+           <item>
+            <widget class="QLineEdit" name="lineSuffix">
+             <property name="sizePolicy">
+              <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+               <horstretch>0</horstretch>
+               <verstretch>0</verstretch>
+              </sizepolicy>
+             </property>
+             <property name="text">
+              <string>_cut</string>
+             </property>
+             <property name="alignment">
+              <set>Qt::AlignCenter</set>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <widget class="CToolOverviewGroupBox" name="groupOverviews">
+        <property name="title">
+         <string>Create overviews for result.</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>0</width>
+          <height>0</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <property name="spacing">
+         <number>3</number>
+        </property>
+        <item>
+         <widget class="QPushButton" name="pushStart">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Start</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushCancel">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Cancel</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Cancel.png</normaloff>:/icons/32x32/Cancel.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="checkAllFiles">
+          <property name="text">
+           <string>For all files</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdalwarp">
+     <property name="text">
+      <string><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdaladdo">
+     <property name="text">
+      <string><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CItemListWidget</class>
+   <extends>QWidget</extends>
+   <header>items/CItemListWidget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CToolOverviewGroupBox</class>
+   <extends>QGroupBox</extends>
+   <header>tool/CToolOverviewGroupBox.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/tool/IToolGrid.ui b/src/qmaptool/tool/IToolGrid.ui
new file mode 100644
index 0000000..3a79eaa
--- /dev/null
+++ b/src/qmaptool/tool/IToolGrid.ui
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolGrid</class>
+ <widget class="QWidget" name="IToolGrid">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>6</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QLabel" name="label_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="pixmap">
+        <pixmap resource="../resources.qrc">:/icons/32x32/GridTool.png</pixmap>
+       </property>
+       <property name="scaledContents">
+        <bool>false</bool>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Grid Tool</string>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelHelp">
+     <property name="text">
+      <string>do not translate</string>
+     </property>
+     <property name="textFormat">
+      <enum>Qt::AutoText</enum>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="COverlayGridTool" name="overlay" native="true"/>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>226</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <widget class="QPushButton" name="pushOk">
+       <property name="enabled">
+        <bool>false</bool>
+       </property>
+       <property name="text">
+        <string>Ok</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/Check.png</normaloff>:/icons/32x32/Check.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushCancel">
+       <property name="text">
+        <string>Cancel</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/Cancel.png</normaloff>:/icons/32x32/Cancel.png</iconset>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="QPushButton" name="pushReset">
+       <property name="text">
+        <string>Reset</string>
+       </property>
+       <property name="icon">
+        <iconset resource="../resources.qrc">
+         <normaloff>:/icons/32x32/Reload.png</normaloff>:/icons/32x32/Reload.png</iconset>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>COverlayGridTool</class>
+   <extends>QWidget</extends>
+   <header>overlay/COverlayGridTool.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/tool/IToolGui.cpp b/src/qmaptool/tool/IToolGui.cpp
new file mode 100644
index 0000000..469d575
--- /dev/null
+++ b/src/qmaptool/tool/IToolGui.cpp
@@ -0,0 +1,81 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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 "canvas/IDrawContext.h"
+#include "items/CItemListWidget.h"
+#include "items/IItem.h"
+#include "shell/CShell.h"
+#include "tool/IToolGui.h"
+
+IToolGui::IToolGui(QWidget * parent)
+    : QWidget(parent)
+{
+}
+
+QString IToolGui::createTempFile(const QString& ext)
+{
+    QTemporaryFile * tmpFile = new QTemporaryFile(QDir::temp().absoluteFilePath("QMapTool_XXXXXX." + ext));
+    tmpFile->open();
+    tmpFile->close();
+    tmpFiles << tmpFile;
+
+    return tmpFile->fileName();
+}
+
+bool IToolGui::finished(qint32 id)
+{
+    if(id == jobId)
+    {
+        jobId = 0;
+        qDeleteAll(tmpFiles);
+        tmpFiles.clear();
+        return true;
+    }
+    return false;
+}
+
+void IToolGui::start(CItemListWidget * itemList, bool allFiles)
+{
+    QList<CShellCmd> cmds;
+
+    if(allFiles)
+    {
+        const int N = itemList->count();
+        for(int n = 0; n < N; n++)
+        {
+            const IItem * item = dynamic_cast<const IItem*>(itemList->item(n));
+            if(nullptr != item)
+            {
+                buildCmd(cmds, item);
+            }
+        }
+    }
+    else
+    {
+        const IItem * item = dynamic_cast<const IItem*>(itemList->currentItem());
+        if(nullptr != item)
+        {
+            buildCmd(cmds, item);
+        }
+    }
+
+    buildCmdFinal(cmds);
+
+    jobId = CShell::self().execute(cmds);
+}
+
diff --git a/src/qmaptool/tool/IToolGui.h b/src/qmaptool/tool/IToolGui.h
new file mode 100644
index 0000000..b10c4ac
--- /dev/null
+++ b/src/qmaptool/tool/IToolGui.h
@@ -0,0 +1,44 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef ITOOLGUI_H
+#define ITOOLGUI_H
+
+#include <QWidget>
+
+class IToolGui : public QWidget
+{
+    Q_OBJECT
+public:
+    IToolGui(QWidget * parent);
+    virtual ~IToolGui() = default;
+
+
+protected:
+    virtual void start(CItemListWidget * itemList, bool allFiles);
+    virtual bool finished(qint32 id);
+    virtual void buildCmd(QList<CShellCmd>& cmds, const IItem * iitem) = 0;
+    virtual void buildCmdFinal(QList<CShellCmd>& cmds){}
+
+    QString createTempFile(const QString &ext);
+    qint32 jobId = 0;
+    QList<QTemporaryFile*> tmpFiles;
+};
+
+#endif //ITOOLGUI_H
+
diff --git a/src/qmaptool/tool/IToolOverviewGroupBox.ui b/src/qmaptool/tool/IToolOverviewGroupBox.ui
new file mode 100644
index 0000000..97fee4c
--- /dev/null
+++ b/src/qmaptool/tool/IToolOverviewGroupBox.ui
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolOverviewGroupBox</class>
+ <widget class="QGroupBox" name="IToolOverviewGroupBox">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>96</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>GroupBox</string>
+  </property>
+  <property name="flat">
+   <bool>true</bool>
+  </property>
+  <property name="checkable">
+   <bool>true</bool>
+  </property>
+  <property name="checked">
+   <bool>true</bool>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>9</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>9</number>
+   </property>
+   <property name="bottomMargin">
+    <number>3</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frameOverviews">
+     <property name="enabled">
+      <bool>true</bool>
+     </property>
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QHBoxLayout" name="horizontalLayout_4">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QCheckBox" name="checkBy2">
+        <property name="text">
+         <string>:2</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy4">
+        <property name="text">
+         <string>:4</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy8">
+        <property name="text">
+         <string>:8</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy16">
+        <property name="text">
+         <string>:16</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy32">
+        <property name="text">
+         <string>:32</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkBy64">
+        <property name="text">
+         <string>:64</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QCheckBox" name="checkExternal">
+     <property name="enabled">
+      <bool>true</bool>
+     </property>
+     <property name="toolTip">
+      <string>Do not copy the overviews into the file itself. Add them as external file.</string>
+     </property>
+     <property name="text">
+      <string>Overview as external file</string>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/tool/IToolPalettize.ui b/src/qmaptool/tool/IToolPalettize.ui
new file mode 100644
index 0000000..f51da73
--- /dev/null
+++ b/src/qmaptool/tool/IToolPalettize.ui
@@ -0,0 +1,269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolPalettize</class>
+ <widget class="QWidget" name="IToolPalettize">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>399</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Raised</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="labelHelp">
+        <property name="text">
+         <string>do not translate</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CItemListWidget" name="itemList" native="true"/>
+      </item>
+      <item>
+       <widget class="QLabel" name="labelNote">
+        <property name="text">
+         <string>do not translate</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <widget class="QRadioButton" name="radioSingle">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="text">
+           <string>Single files, filename suffix</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineSuffix">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="text">
+           <string>_8bit</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignCenter</set>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" name="verticalLayout_3">
+        <item>
+         <widget class="QRadioButton" name="radioCombined">
+          <property name="text">
+           <string>Combined file, filename:</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineFilename"/>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkCreateVrt">
+        <property name="text">
+         <string>Embed result into *.vrt file.</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CToolOverviewGroupBox" name="groupOverviews">
+        <property name="title">
+         <string>Create overviews for result.</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>40</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <property name="spacing">
+         <number>3</number>
+        </property>
+        <item>
+         <widget class="QPushButton" name="pushStart">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Start</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushCancel">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Cancel</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Cancel.png</normaloff>:/icons/32x32/Cancel.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer_2">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdaladdo">
+     <property name="text">
+      <string><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdaltranslate">
+     <property name="text">
+      <string><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoQmtrgb2pct">
+     <property name="text">
+      <string><b style='color: red;'>No "qmt_rgb2pct" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+  <action name="actionFilename">
+   <property name="icon">
+    <iconset resource="../resources.qrc">
+     <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
+   </property>
+   <property name="text">
+    <string>Select filename</string>
+   </property>
+  </action>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CItemListWidget</class>
+   <extends>QWidget</extends>
+   <header>items/CItemListWidget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CToolOverviewGroupBox</class>
+   <extends>QGroupBox</extends>
+   <header>tool/CToolOverviewGroupBox.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/qmaptool/tool/IToolRefMap.ui b/src/qmaptool/tool/IToolRefMap.ui
new file mode 100644
index 0000000..9218f5f
--- /dev/null
+++ b/src/qmaptool/tool/IToolRefMap.ui
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IToolRefMap</class>
+ <widget class="QWidget" name="IToolRefMap">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>596</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout_4">
+   <property name="spacing">
+    <number>3</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>3</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QFrame" name="frame">
+     <property name="frameShape">
+      <enum>QFrame::NoFrame</enum>
+     </property>
+     <property name="frameShadow">
+      <enum>QFrame::Plain</enum>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_3">
+      <property name="spacing">
+       <number>3</number>
+      </property>
+      <property name="leftMargin">
+       <number>0</number>
+      </property>
+      <property name="topMargin">
+       <number>0</number>
+      </property>
+      <property name="rightMargin">
+       <number>0</number>
+      </property>
+      <property name="bottomMargin">
+       <number>0</number>
+      </property>
+      <item>
+       <widget class="QLabel" name="labelHelp">
+        <property name="text">
+         <string>do not translate</string>
+        </property>
+        <property name="textFormat">
+         <enum>Qt::RichText</enum>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CItemListWidget" name="itemList" native="true"/>
+      </item>
+      <item>
+       <widget class="QFrame" name="frameInput">
+        <property name="frameShape">
+         <enum>QFrame::NoFrame</enum>
+        </property>
+        <property name="frameShadow">
+         <enum>QFrame::Plain</enum>
+        </property>
+        <layout class="QVBoxLayout" name="verticalLayout_2">
+         <property name="spacing">
+          <number>0</number>
+         </property>
+         <property name="leftMargin">
+          <number>0</number>
+         </property>
+         <property name="topMargin">
+          <number>0</number>
+         </property>
+         <property name="rightMargin">
+          <number>0</number>
+         </property>
+         <property name="bottomMargin">
+          <number>0</number>
+         </property>
+         <item>
+          <widget class="QStackedWidget" name="stackedWidget"/>
+         </item>
+        </layout>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <item>
+         <widget class="QLabel" name="label_2">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="text">
+           <string>Output filename suffix</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+          </property>
+          <property name="wordWrap">
+           <bool>true</bool>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="lineSuffix">
+          <property name="sizePolicy">
+           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="text">
+           <string>_ref</string>
+          </property>
+          <property name="alignment">
+           <set>Qt::AlignCenter</set>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="checkCreateVrt">
+        <property name="text">
+         <string>Embed result into *.vrt file.</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="CToolOverviewGroupBox" name="groupOverviews">
+        <property name="title">
+         <string>Create overviews for result.</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>20</width>
+          <height>40</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <property name="spacing">
+         <number>3</number>
+        </property>
+        <item>
+         <widget class="QPushButton" name="pushStart">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Start</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Apply.png</normaloff>:/icons/32x32/Apply.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushCancel">
+          <property name="enabled">
+           <bool>false</bool>
+          </property>
+          <property name="text">
+           <string>Cancel</string>
+          </property>
+          <property name="icon">
+           <iconset resource="../resources.qrc">
+            <normaloff>:/icons/32x32/Cancel.png</normaloff>:/icons/32x32/Cancel.png</iconset>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QCheckBox" name="checkAllFiles">
+          <property name="text">
+           <string>For all files</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer_2">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdalwarp">
+     <property name="text">
+      <string><b style='color: red;'>No "gdalwarp" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdalTranslate">
+     <property name="text">
+      <string><b style='color: red;'>No "gdal_translate" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <widget class="QLabel" name="labelNoGdaladdo">
+     <property name="text">
+      <string><b style='color: red;'>No "gdaladdo" found. Please check setup!</b></string>
+     </property>
+     <property name="wordWrap">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>CItemListWidget</class>
+   <extends>QWidget</extends>
+   <header>items/CItemListWidget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>CToolOverviewGroupBox</class>
+   <extends>QGroupBox</extends>
+   <header>tool/CToolOverviewGroupBox.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <resources>
+  <include location="../resources.qrc"/>
+ </resources>
+ <connections/>
+</ui>
diff --git a/src/units/CCoordFormatSetup.cpp b/src/qmaptool/units/CCoordFormatSetup.cpp
similarity index 100%
rename from src/units/CCoordFormatSetup.cpp
rename to src/qmaptool/units/CCoordFormatSetup.cpp
diff --git a/src/units/CCoordFormatSetup.h b/src/qmaptool/units/CCoordFormatSetup.h
similarity index 100%
rename from src/units/CCoordFormatSetup.h
rename to src/qmaptool/units/CCoordFormatSetup.h
diff --git a/src/units/CTimeZoneSetup.cpp b/src/qmaptool/units/CTimeZoneSetup.cpp
similarity index 100%
rename from src/units/CTimeZoneSetup.cpp
rename to src/qmaptool/units/CTimeZoneSetup.cpp
diff --git a/src/units/CTimeZoneSetup.h b/src/qmaptool/units/CTimeZoneSetup.h
similarity index 100%
rename from src/units/CTimeZoneSetup.h
rename to src/qmaptool/units/CTimeZoneSetup.h
diff --git a/src/units/CUnitImperial.cpp b/src/qmaptool/units/CUnitImperial.cpp
similarity index 100%
rename from src/units/CUnitImperial.cpp
rename to src/qmaptool/units/CUnitImperial.cpp
diff --git a/src/units/CUnitImperial.h b/src/qmaptool/units/CUnitImperial.h
similarity index 100%
rename from src/units/CUnitImperial.h
rename to src/qmaptool/units/CUnitImperial.h
diff --git a/src/units/CUnitMetric.cpp b/src/qmaptool/units/CUnitMetric.cpp
similarity index 100%
rename from src/units/CUnitMetric.cpp
rename to src/qmaptool/units/CUnitMetric.cpp
diff --git a/src/units/CUnitMetric.h b/src/qmaptool/units/CUnitMetric.h
similarity index 100%
rename from src/units/CUnitMetric.h
rename to src/qmaptool/units/CUnitMetric.h
diff --git a/src/units/CUnitNautic.cpp b/src/qmaptool/units/CUnitNautic.cpp
similarity index 100%
rename from src/units/CUnitNautic.cpp
rename to src/qmaptool/units/CUnitNautic.cpp
diff --git a/src/units/CUnitNautic.h b/src/qmaptool/units/CUnitNautic.h
similarity index 100%
rename from src/units/CUnitNautic.h
rename to src/qmaptool/units/CUnitNautic.h
diff --git a/src/qmaptool/units/CUnitsSetup.cpp b/src/qmaptool/units/CUnitsSetup.cpp
new file mode 100644
index 0000000..8d083f6
--- /dev/null
+++ b/src/qmaptool/units/CUnitsSetup.cpp
@@ -0,0 +1,59 @@
+/**********************************************************************************************
+    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 "CMainWindow.h"
+#include "units/CUnitsSetup.h"
+#include "units/IUnit.h"
+
+CUnitsSetup::CUnitsSetup(QWidget *parent)
+    : QDialog(parent)
+{
+    setupUi(this);
+
+    switch(IUnit::self().type)
+    {
+    case IUnit::eTypeMetric:
+        radioMetric->setChecked(true);
+        break;
+
+    case IUnit::eTypeImperial:
+        radioImperial->setChecked(true);
+        break;
+
+    case IUnit::eTypeNautic:
+        radioNautic->setChecked(true);
+        break;
+    }
+}
+
+void CUnitsSetup::accept()
+{
+    if(radioMetric->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeMetric, &CMainWindow::self());
+    }
+    else if(radioImperial->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeImperial, &CMainWindow::self());
+    }
+    else if(radioNautic->isChecked())
+    {
+        IUnit::setUnitType(IUnit::eTypeNautic, &CMainWindow::self());
+    }
+    QDialog::accept();
+}
diff --git a/src/units/CUnitsSetup.h b/src/qmaptool/units/CUnitsSetup.h
similarity index 100%
rename from src/units/CUnitsSetup.h
rename to src/qmaptool/units/CUnitsSetup.h
diff --git a/src/qmaptool/units/ICoordFormatSetup.ui b/src/qmaptool/units/ICoordFormatSetup.ui
new file mode 100644
index 0000000..df39ec7
--- /dev/null
+++ b/src/qmaptool/units/ICoordFormatSetup.ui
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ICoordFormatSetup</class>
+ <widget class="QDialog" name="ICoordFormatSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>512</width>
+    <height>144</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Coordinate Format...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QRadioButton" name="radioFormat3">
+         <property name="text">
+          <string>N48° 53' 39.6" E13° 31' 6.78"</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioFormat2">
+         <property name="text">
+          <string>N48.8943° E013.51855°</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioFormat1">
+         <property name="text">
+          <string>N48° 53.660 E013° 31.113</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </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>ICoordFormatSetup</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>ICoordFormatSetup</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/qmaptool/units/ITimeZoneSetup.ui b/src/qmaptool/units/ITimeZoneSetup.ui
new file mode 100644
index 0000000..2313e88
--- /dev/null
+++ b/src/qmaptool/units/ITimeZoneSetup.ui
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ITimeZoneSetup</class>
+ <widget class="QDialog" name="ITimeZoneSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>398</width>
+    <height>106</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup Time Zone ...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_2">
+     <item>
+      <widget class="QRadioButton" name="radioUtc">
+       <property name="text">
+        <string>UTC</string>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <widget class="QRadioButton" name="radioLocal">
+       <property name="text">
+        <string>Local</string>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <widget class="QRadioButton" name="radioAutomatic">
+       <property name="text">
+        <string>Automatic</string>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <widget class="QRadioButton" name="radioSelected">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Maximum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <widget class="QComboBox" name="comboTimeZone"/>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="text">
+        <string>Print date/time in </string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QRadioButton" name="radioLongFormat">
+       <property name="text">
+        <string>long format, or</string>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup_2</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <widget class="QRadioButton" name="radioShortFormat">
+       <property name="text">
+        <string>short format</string>
+       </property>
+       <attribute name="buttonGroup">
+        <string notr="true">buttonGroup_2</string>
+       </attribute>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>40</width>
+         <height>20</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>40</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <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>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ITimeZoneSetup</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>ITimeZoneSetup</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>
+ <buttongroups>
+  <buttongroup name="buttonGroup"/>
+  <buttongroup name="buttonGroup_2"/>
+ </buttongroups>
+</ui>
diff --git a/src/qmaptool/units/IUnit.cpp b/src/qmaptool/units/IUnit.cpp
new file mode 100644
index 0000000..272b9b3
--- /dev/null
+++ b/src/qmaptool/units/IUnit.cpp
@@ -0,0 +1,776 @@
+/**********************************************************************************************
+    Copyright (C) 2008 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 2 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, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+**********************************************************************************************/
+#include "CMainWindow.h"
+#include "GeoMath.h"
+#include "units/CUnitImperial.h"
+#include "units/CUnitMetric.h"
+#include "units/CUnitNautic.h"
+
+#include <QtWidgets>
+#include <proj_api.h>
+const IUnit * IUnit::m_self = nullptr;
+
+const QPointF NOPOINTF(NOFLOAT, NOFLOAT);
+const QPoint NOPOINT (NOINT, NOINT);
+
+IUnit::tz_mode_e IUnit::timeZoneMode = IUnit::eTZUtc;
+IUnit::coord_format_e IUnit::coordFormat = IUnit::eCoordFormat1;
+QByteArray IUnit::timeZone = "UTC";
+bool IUnit::useShortFormat = false;
+
+const char * IUnit::tblTimezone[] =
+{
+    "Africa/Abidjan",
+    "Africa/Accra",
+    "Africa/Addis_Ababa",
+    "Africa/Algiers",
+    "Africa/Asmara",
+    "Africa/Bamako",
+    "Africa/Bangui",
+    "Africa/Banjul",
+    "Africa/Bissau",
+    "Africa/Blantyre",
+    "Africa/Brazzaville",
+    "Africa/Bujumbura",
+    "Africa/Cairo",
+    "Africa/Casablanca",
+    "Africa/Conakry",
+    "Africa/Dakar",
+    "Africa/Dar_es_Salaam",
+    "Africa/Djibouti",
+    "Africa/Douala",
+    "Africa/El_Aaiun",
+    "Africa/Freetown",
+    "Africa/Gaborone",
+    "Africa/Harare",
+    "Africa/Johannesburg",
+    "Africa/Kampala",
+    "Africa/Khartoum",
+    "Africa/Kigali",
+    "Africa/Kinshasa",
+    "Africa/Lagos",
+    "Africa/Libreville",
+    "Africa/Lome",
+    "Africa/Luanda",
+    "Africa/Lubumbashi",
+    "Africa/Lusaka",
+    "Africa/Malabo",
+    "Africa/Maputo",
+    "Africa/Maseru",
+    "Africa/Mbabane",
+    "Africa/Mogadishu",
+    "Africa/Monrovia",
+    "Africa/Nairobi",
+    "Africa/Ndjamena",
+    "Africa/Niamey",
+    "Africa/Nouakchott",
+    "Africa/Ouagadougou",
+    "Africa/Porto-Novo",
+    "Africa/Sao_Tome",
+    "Africa/Tripoli",
+    "Africa/Tunis",
+    "Africa/Windhoek",
+    "America/Adak",
+    "America/Anguilla",
+    "America/Antigua",
+    "America/Araguaina",
+    "America/Argentina/Buenos_Aires",
+    "America/Argentina/Catamarca",
+    "America/Argentina/Cordoba",
+    "America/Argentina/Jujuy",
+    "America/Argentina/La_Rioja",
+    "America/Argentina/Mendoza",
+    "America/Argentina/Rio_Gallegos",
+    "America/Argentina/San_Juan",
+    "America/Argentina/San_Luis",
+    "America/Argentina/Tucuman",
+    "America/Argentina/Ushuaia",
+    "America/Aruba",
+    "America/Asuncion",
+    "America/Atikokan",
+    "America/Bahia",
+    "America/Barbados",
+    "America/Belem",
+    "America/Belize",
+    "America/Blanc-Sablon",
+    "America/Boa_Vista",
+    "America/Bogota",
+    "America/Boise",
+    "America/Cambridge_Bay",
+    "America/Campo_Grande",
+    "America/Cancun",
+    "America/Caracas",
+    "America/Cayenne",
+    "America/Cayman",
+    "America/Chicago",
+    "America/Chihuahua",
+    "America/Coral_Harbour",
+    "America/Costa_Rica",
+    "America/Cuiaba",
+    "America/Curacao",
+    "America/Dawson",
+    "America/Dawson_Creek",
+    "America/Denver",
+    "America/Dominica",
+    "America/Edmonton",
+    "America/Eirunepe",
+    "America/El_Salvador",
+    "America/Fortaleza",
+    "America/Glace_Bay",
+    "America/Goose_Bay",
+    "America/Grand_Turk",
+    "America/Grenada",
+    "America/Guadeloupe",
+    "America/Guatemala",
+    "America/Guayaquil",
+    "America/Guyana",
+    "America/Halifax",
+    "America/Havana",
+    "America/Hermosillo",
+    "America/Indiana/Indianapolis",
+    "America/Indiana/Knox",
+    "America/Indiana/Marengo",
+    "America/Indiana/Petersburg",
+    "America/Indiana/Vevay",
+    "America/Indiana/Vincennes",
+    "America/Indiana/Winamac",
+    "America/Inuvik",
+    "America/Iqaluit",
+    "America/Jamaica",
+    "America/Juneau",
+    "America/Kentucky/Louisville",
+    "America/Kentucky/Monticello",
+    "America/La_Paz",
+    "America/Lima",
+    "America/Los_Angeles",
+    "America/Maceio",
+    "America/Managua",
+    "America/Manaus",
+    "America/Marigot",
+    "America/Martinique",
+    "America/Mazatlan",
+    "America/Menominee",
+    "America/Merida",
+    "America/Mexico_City",
+    "America/Miquelon",
+    "America/Moncton",
+    "America/Monterrey",
+    "America/Montevideo",
+    "America/Montreal",
+    "America/Montserrat",
+    "America/Nassau",
+    "America/New_York",
+    "America/Nipigon",
+    "America/Noronha",
+    "America/North_Dakota/Center",
+    "America/North_Dakota/Salem",
+    "America/Panama",
+    "America/Pangnirtung",
+    "America/Paramaribo",
+    "America/Phoenix",
+    "America/Port-au-Prince",
+    "America/Port_of_Spain",
+    "America/Porto_Velho",
+    "America/Puerto_Rico",
+    "America/Rainy_River",
+    "America/Rankin_Inlet",
+    "America/Recife",
+    "America/Regina",
+    "America/Resolute",
+    "America/Rio_Branco",
+    "America/Santarem",
+    "America/Santiago",
+    "America/Santo_Domingo",
+    "America/Sao_Paulo",
+    "America/St_Barthelemy",
+    "America/St_Johns",
+    "America/St_Kitts",
+    "America/St_Lucia",
+    "America/St_Thomas",
+    "America/St_Vincent",
+    "America/Tegucigalpa",
+    "America/Thunder_Bay",
+    "America/Tijuana",
+    "America/Toronto",
+    "America/Tortola",
+    "America/Vancouver",
+    "America/Whitehorse",
+    "America/Winnipeg",
+    "America/Yellowknife",
+    "Ameriica/Swift_Current",
+    "Arctic/Longyearbyen",
+    "Asia/Aden",
+    "Asia/Almaty",
+    "Asia/Amman",
+    "Asia/Anadyr",
+    "Asia/Aqtau",
+    "Asia/Aqtobe",
+    "Asia/Ashgabat",
+    "Asia/Baghdad",
+    "Asia/Bahrain",
+    "Asia/Baku",
+    "Asia/Bangkok",
+    "Asia/Beirut",
+    "Asia/Bishkek",
+    "Asia/Brunei",
+    "Asia/Choibalsan",
+    "Asia/Chongqing",
+    "Asia/Colombo",
+    "Asia/Damascus",
+    "Asia/Dhaka",
+    "Asia/Dili",
+    "Asia/Dubai",
+    "Asia/Dushanbe",
+    "Asia/Gaza",
+    "Asia/Harbin",
+    "Asia/Ho_Chi_Minh",
+    "Asia/Hong_Kong",
+    "Asia/Hovd",
+    "Asia/Irkutsk",
+    "Asia/Jakarta",
+    "Asia/Jayapura",
+    "Asia/Jerusalem",
+    "Asia/Kabul",
+    "Asia/Kamchatka",
+    "Asia/Karachi",
+    "Asia/Kashgar",
+    "Asia/Katmandu",
+    "Asia/Kolkata",
+    "Asia/Krasnoyarsk",
+    "Asia/Kuala_Lumpur",
+    "Asia/Kuching",
+    "Asia/Kuwait",
+    "Asia/Macau",
+    "Asia/Magadan",
+    "Asia/Makassar",
+    "Asia/Manila",
+    "Asia/Muscat",
+    "Asia/Nicosia",
+    "Asia/Novosibirsk",
+    "Asia/Omsk",
+    "Asia/Oral",
+    "Asia/Phnom_Penh",
+    "Asia/Pontianak",
+    "Asia/Pyongyang",
+    "Asia/Qatar",
+    "Asia/Qyzylorda",
+    "Asia/Rangoon",
+    "Asia/Riyadh",
+    "Asia/Sakhalin",
+    "Asia/Samarkand",
+    "Asia/Seoul",
+    "Asia/Shanghai",
+    "Asia/Singapore",
+    "Asia/Taipei",
+    "Asia/Tashkent",
+    "Asia/Tbilisi",
+    "Asia/Tehran",
+    "Asia/Thimphu",
+    "Asia/Tokyo",
+    "Asia/Ulaanbaatar",
+    "Asia/Urumqi",
+    "Asia/Vientiane",
+    "Asia/Vladivostok",
+    "Asia/Yakutsk",
+    "Asia/Yekaterinburg",
+    "Asia/Yerevan",
+    "Atlantic/Azores",
+    "Atlantic/Bermuda",
+    "Atlantic/Canary",
+    "Atlantic/Cape_Verde",
+    "Atlantic/Faroe",
+    "Atlantic/Madeira",
+    "Atlantic/Reykjavik",
+    "Atlantic/South_Georgia",
+    "Atlantic/St_Helena",
+    "Atlantic/Stanley",
+    "Australia/Adelaide",
+    "Australia/Brisbane",
+    "Australia/Broken_Hill",
+    "Australia/Currie",
+    "Australia/Darwin",
+    "Australia/Eucla",
+    "Australia/Hobart",
+    "Australia/Lindeman",
+    "Australia/Lord_Howe",
+    "Australia/Melbourne",
+    "Australia/Perth",
+    "Australia/Sydney",
+    "Europe/Amsterdam",
+    "Europe/Andorra",
+    "Europe/Athens",
+    "Europe/Belgrade",
+    "Europe/Berlin",
+    "Europe/Bratislava",
+    "Europe/Brussels",
+    "Europe/Bucharest",
+    "Europe/Budapest",
+    "Europe/Chisinau",
+    "Europe/Copenhagen",
+    "Europe/Dublin",
+    "Europe/Gibraltar",
+    "Europe/Guernsey",
+    "Europe/Helsinki",
+    "Europe/Isle_of_Man",
+    "Europe/Istanbul",
+    "Europe/Jersey",
+    "Europe/Kaliningrad",
+    "Europe/Kiev",
+    "Europe/Lisbon",
+    "Europe/Ljubljana",
+    "Europe/London",
+    "Europe/Luxembourg",
+    "Europe/Madrid",
+    "Europe/Malta",
+    "Europe/Marienhamn",
+    "Europe/Minsk",
+    "Europe/Monaco",
+    "Europe/Moscow",
+    "Europe/Oslo",
+    "Europe/Paris",
+    "Europe/Podgorica",
+    "Europe/Prague",
+    "Europe/Riga",
+    "Europe/Rome",
+    "Europe/Samara",
+    "Europe/San_Marino",
+    "Europe/Sarajevo",
+    "Europe/Simferopol",
+    "Europe/Skopje",
+    "Europe/Sofia",
+    "Europe/Stockholm",
+    "Europe/Tallinn",
+    "Europe/Tirane",
+    "Europe/Uzhgorod",
+    "Europe/Vaduz",
+    "Europe/Vatican",
+    "Europe/Vienna",
+    "Europe/Vilnius",
+    "Europe/Volgograd",
+    "Europe/Warsaw",
+    "Europe/Zagreb",
+    "Europe/Zaporozhye",
+    "Europe/Zurich",
+    "Indian/Antananarivo",
+    "Indian/Chagos",
+    "Indian/Christmas",
+    "Indian/Cocos",
+    "Indian/Comoro",
+    "Indian/Kerguelen",
+    "Indian/Mahe",
+    "Indian/Maldives",
+    "Indian/Mauritius",
+    "Indian/Mayotte",
+    "Indian/Reunion",
+    "Pacific/Apia",
+    "Pacific/Auckland",
+    "Pacific/Chatham",
+    "Pacific/Easter",
+    "Pacific/Efate",
+    "Pacific/Enderbury",
+    "Pacific/Fakaofo",
+    "Pacific/Fiji",
+    "Pacific/Funafuti",
+    "Pacific/Galapagos",
+    "Pacific/Gambier",
+    "Pacific/Guadalcanal",
+    "Pacific/Guam",
+    "Pacific/Honolulu",
+    "Pacific/Johnston",
+    "Pacific/Kiritimati",
+    "Pacific/Kosrae",
+    "Pacific/Kwajalein",
+    "Pacific/Majuro",
+    "Pacific/Marquesas",
+    "Pacific/Midway",
+    "Pacific/Nauru",
+    "Pacific/Niue",
+    "Pacific/Norfolk",
+    "Pacific/Noumea",
+    "Pacific/Pago_Pago",
+    "Pacific/Palau",
+    "Pacific/Pitcairn",
+    "Pacific/Ponape",
+    "Pacific/Port_Moresby",
+    "Pacific/Rarotonga",
+    "Pacific/Saipan",
+    "Pacific/Tahiti",
+    "Pacific/Tarawa",
+    "Pacific/Tongatapu",
+    "Pacific/Truk",
+    "Pacific/Wake",
+    "Pacific/Wallis",
+    0
+};
+
+const int N_TIMEZONES = sizeof(IUnit::tblTimezone)/sizeof(const char*);
+
+const QRegExp IUnit::reCoord1("^\\s*([N|S]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s+([E|W|O]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s*$");
+
+const QRegExp IUnit::reCoord2("^\\s*([N|S]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s+([E|W|O]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s*$");
+
+const QRegExp IUnit::reCoord3("^\\s*([-0-9]+\\.[0-9]+)\\s+([-0-9]+\\.[0-9]+)\\s*$");
+
+const QRegExp IUnit::reCoord4("^\\s*([N|S]){1}\\s*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*([E|W|O]){1}\\W*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*\\s*$");
+
+const QRegExp IUnit::reCoord5("^\\s*([-0-9]+\\.[0-9]+)([N|S])\\s+([-0-9]+\\.[0-9]+)([W|E])\\s*$");
+
+IUnit::IUnit(const type_e &type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject * parent)
+    : QObject(parent)
+    , type(type)
+    , baseunit(baseunit)
+    , basefactor(basefactor)
+    , speedunit(speedunit)
+    , speedfactor(speedfactor)
+{
+    //there can be only one...
+    if(nullptr != m_self)
+    {
+        delete m_self;
+    }
+    m_self = this;
+}
+
+
+void IUnit::setUnitType(type_e t, QObject * parent)
+{
+    switch(t)
+    {
+    case eTypeMetric:
+        new CUnitMetric(parent);
+        break;
+
+    case eTypeImperial:
+        new CUnitImperial(parent);
+        break;
+
+    case eTypeNautic:
+        new CUnitNautic(parent);
+        break;
+    }
+
+    QSettings cfg;
+    cfg.setValue("Units/type",t);
+}
+
+void IUnit::meter2speed(qreal meter, QString& val, QString& unit) const
+{
+    val.sprintf("%2.2f",meter * speedfactor);
+    unit = speedunit;
+}
+
+void IUnit::seconds2time(quint32 ttime, QString& val, QString& unit) const
+{
+    QTime time(0,0,0);
+    quint32 days  = ttime / 86400;
+
+    time = time.addSecs(ttime);
+
+    if(days)
+    {
+        val = QString("%1:").arg(days) + time.toString("HH:mm:ss");
+        unit = "d";
+    }
+    else
+    {
+        val = time.toString("HH:mm:ss");
+        unit = "h";
+    }
+}
+
+bool IUnit::parseTimestamp(const QString &time, QDateTime &datetime)
+{
+    int tzoffset;
+    datetime = parseTimestamp(time, tzoffset);
+
+    return datetime.isValid();
+}
+
+
+QDateTime IUnit::parseTimestamp(const QString &timetext, int& tzoffset)
+{
+    const QRegExp tzRE("[-+]\\d\\d:\\d\\d$");
+    int i;
+
+    tzoffset = 0;
+
+    QString format = "yyyy-MM-dd'T'hh:mm:ss";
+
+    i = timetext.indexOf(".");
+    if (i != NOIDX)
+    {
+        if(timetext[i+1] == '0')
+        {
+            format += ".zzz";
+        }
+        else
+        {
+            format += ".z";
+        }
+    }
+
+    // trailing "Z" explicitly declares the timestamp to be UTC
+    if (timetext.indexOf("Z") != NOIDX)
+    {
+        format += "'Z'";
+    }
+    else if ((i = tzRE.indexIn(timetext)) != NOIDX)
+    {
+        // trailing timezone offset [-+]HH:MM present
+        // This does not match the original intentions of the GPX
+        // file format but appears to be found occasionally in
+        // the wild.  Try our best parsing it.
+
+        // add the literal string to the format so fromString()
+        // will succeed
+        format += "'";
+        format += timetext.right(6);
+        format += "'";
+
+        // calculate the offset
+        int offsetHours(timetext.mid(i + 1, 2).toUInt());
+        int offsetMinutes(timetext.mid(i + 4, 2).toUInt());
+        if (timetext[i] == '-')
+        {
+            tzoffset = -(60 * offsetHours + offsetMinutes);
+        }
+        else
+        {
+            tzoffset = 60 * offsetHours + offsetMinutes;
+        }
+        tzoffset *= 60;          // seconds
+    }
+
+    QDateTime datetime = QDateTime::fromString(timetext, format);
+    datetime.setOffsetFromUtc(tzoffset);
+
+    return datetime;
+}
+
+QString IUnit::datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos)
+{
+    QTimeZone tz;
+
+    tz_mode_e tmpMode = (pos != NOPOINTF) ? timeZoneMode : eTZLocal;
+
+    switch(tmpMode)
+    {
+    case eTZUtc:
+        tz = QTimeZone("UTC");
+        break;
+
+    case eTZLocal:
+        tz = QTimeZone(QTimeZone::systemTimeZoneId());
+        break;
+
+    case eTZAuto:
+        tz = QTimeZone(pos2timezone(pos));
+        break;
+
+    case eTZSelected:
+        tz = QTimeZone(timeZone);
+        break;
+    }
+
+    QDateTime tmp = time.toTimeZone(tz);
+    return tmp.toString((shortDate|useShortFormat) ? Qt::ISODate : Qt::SystemLocaleLongDate);
+}
+
+QByteArray IUnit::pos2timezone(const QPointF& pos)
+{
+    static QImage imgTimezone = QPixmap(":/pics/timezones.png").toImage();
+
+    int x = qRound(2048.0 / 360.0 * (180.0 + pos.x() * RAD_TO_DEG));
+    int y = qRound(1024.0 / 180.0 * (90.0  - pos.y() * RAD_TO_DEG));
+
+    QRgb rgb = imgTimezone.pixel(x,y);
+
+    if(qRed(rgb) == 0 && qGreen(rgb) == 0)
+    {
+        return "UTC";
+    }
+
+    int tz = ((qRed(rgb) & 248) << 1) + ((qGreen(rgb) >> 4) & 15);
+    if(tz >= N_TIMEZONES)
+    {
+        return 0;
+    }
+
+    return tblTimezone[tz];
+}
+
+bool IUnit::degToStr(const qreal& x, const qreal& y, QString& str)
+{
+    if(x < -180 || 180 < x)
+    {
+        return false;
+    }
+
+    if(y < -90 || 90 < y)
+    {
+        return false;
+    }
+
+    switch(coordFormat)
+    {
+    case eCoordFormat1:
+    {
+        qint32 degN,degE;
+        qreal minN,minE;
+
+        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
+        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
+
+        const QString &lat = signLat ? "S" : "N";
+        const QString &lng = signLon ? "W" : "E";
+        str.sprintf("%s%02d° %06.3f %s%03d° %06.3f",lat.toUtf8().data(),qAbs(degN),minN,lng.toUtf8().data(),qAbs(degE),minE);
+        break;
+    }
+
+    case eCoordFormat2:
+    {
+        const QString &lat = (y < 0) ? "S" : "N";
+        const QString &lng = (x < 0) ? "W" : "E";
+        str.sprintf("%s%02.6f° %s%03.6f°",lat.toUtf8().data(),qAbs(y),lng.toUtf8().data(),qAbs(x));
+        break;
+    }
+
+    case eCoordFormat3:
+    {
+        qint32 degN,degE;
+        qreal minN,minE;
+
+        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
+        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
+
+        qreal secN = (minN - qFloor(minN)) * 60;
+        qreal secE = (minE - qFloor(minE)) * 60;
+
+        const QString &lat = signLat ? "S" : "N";
+        const QString &lng = signLon ? "W" : "E";
+        str.sprintf("%s%02d° %02d' %02.2f'' %s%03d° %02d' %02.2f''",lat.toUtf8().data(),qAbs(degN),qFloor(minN),secN,lng.toUtf8().data(),qAbs(degE),qFloor(minE),secE);
+        break;
+    }
+    }
+
+    return true;
+}
+
+bool IUnit::strToDeg(const QString& str, qreal& lon, qreal& lat)
+{
+    if(reCoord2.exactMatch(str))
+    {
+        bool signLat    = reCoord2.cap(1) == "S";
+        qreal absLat    = reCoord2.cap(2).toDouble();
+        lat = signLat ? -absLat : absLat;
+
+        bool signLon    = reCoord2.cap(3) == "W";
+        qreal absLon    = reCoord2.cap(4).toDouble();
+        lon = signLon ? -absLon : absLon;
+    }
+    else if(reCoord1.exactMatch(str))
+    {
+        bool signLat    = reCoord1.cap(1) == "S";
+        int degLat      = reCoord1.cap(2).toInt();
+        qreal minLat    = reCoord1.cap(3).toDouble();
+
+        GPS_Math_DegMin_To_Deg(signLat, degLat, minLat, lat);
+
+        bool signLon    = reCoord1.cap(4) == "W";
+        int degLon      = reCoord1.cap(5).toInt();
+        qreal minLon    = reCoord1.cap(6).toDouble();
+
+        GPS_Math_DegMin_To_Deg(signLon, degLon, minLon, lon);
+    }
+    else if(reCoord3.exactMatch(str))
+    {
+        lat             = reCoord3.cap(1).toDouble();
+        lon             = reCoord3.cap(2).toDouble();
+    }
+    else if(reCoord4.exactMatch(str))
+    {
+        bool signLat    = reCoord4.cap(1) == "S";
+        int degLat      = reCoord4.cap(2).toInt();
+        int minLat      = reCoord4.cap(3).toInt();
+        qreal secLat    = reCoord4.cap(4).toFloat();
+
+        GPS_Math_DegMinSec_To_Deg(signLat, degLat, minLat, secLat, lat);
+
+        bool signLon    = reCoord4.cap(5) == "W";
+        int degLon      = reCoord4.cap(6).toInt();
+        int minLon      = reCoord4.cap(7).toInt();
+        qreal secLon    = reCoord4.cap(8).toFloat();
+
+        GPS_Math_DegMinSec_To_Deg(signLon, degLon, minLon, secLon, lon);
+    }
+    else if(reCoord5.exactMatch(str))
+    {
+        bool signLon    = reCoord4.cap(4) == "W";
+        bool signLat    = reCoord4.cap(2) == "S";
+        lat             = reCoord5.cap(1).toDouble();
+        lon             = reCoord5.cap(3).toDouble();
+
+        if(signLon)
+        {
+            lon = -lon;
+        }
+        if(signLat)
+        {
+            lat = -lat;
+        }
+    }
+    else
+    {
+        QMessageBox::warning(&CMainWindow::self(),tr("Error"),tr("Bad position format. Must be: \"[N|S] ddd mm.sss [W|E] ddd mm.sss\" or \"[N|S] ddd.ddd [W|E] ddd.ddd\""),QMessageBox::Ok,QMessageBox::NoButton);
+        return false;
+    }
+
+    if(fabs(lon) > 180.0 || fabs(lat) > 90.0)
+    {
+        QMessageBox::warning(&CMainWindow::self(),tr("Error"),tr("Position values out of bounds. "),QMessageBox::Ok,QMessageBox::NoButton);
+        return false;
+    }
+
+    return true;
+}
+
+bool IUnit::isValidCoordString(const QString& str)
+{
+    if(reCoord1.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord2.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord3.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord4.exactMatch(str))
+    {
+        return true;
+    }
+    else if(reCoord5.exactMatch(str))
+    {
+        return true;
+    }
+    return false;
+}
diff --git a/src/qmaptool/units/IUnit.h b/src/qmaptool/units/IUnit.h
new file mode 100644
index 0000000..f88077a
--- /dev/null
+++ b/src/qmaptool/units/IUnit.h
@@ -0,0 +1,153 @@
+/**********************************************************************************************
+    Copyright (C) 2008 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 2 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, write to the Free Software
+    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
+
+**********************************************************************************************/
+#ifndef IUNIT_H
+#define IUNIT_H
+#include <QObject>
+#include <QTimeZone>
+
+
+#define NOFLOAT 1000000000000.0
+#define NOINT   0x7FFFFFFF
+#define NOTIME  0xFFFFFFFF
+#define NOIDX   (-1)
+
+extern const QPointF NOPOINTF;
+extern const QPoint NOPOINT;
+
+class IUnit : public QObject
+{
+    Q_OBJECT
+public:
+    virtual ~IUnit() = default;
+
+    static const IUnit& self()
+    {
+        return *m_self;
+    }
+
+    /// convert meter of elevation into a value and unit string
+    virtual void meter2elevation(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert meter of distance into a value and unit string
+    virtual void meter2distance(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert meter per second to a speed value string and unit label
+    virtual void meter2speed(qreal meter, QString& val, QString& unit) const;
+    /// convert square meter to string and unit label
+    virtual void meter2area(qreal meter, QString& val, QString& unit) const = 0;
+    /// convert seconds to a timespan of days, hours, minutes and seconds
+    virtual void seconds2time(quint32 ttime, QString& val, QString& unit) const;
+    /// convert an elevation string to a float
+    virtual qreal elevation2meter(const QString& val) const = 0;
+    /// convert a range in meter into a scale and a matching unit
+    virtual void meter2unit(qreal meter, qreal& scale, QString&  unit) const  = 0;
+
+
+    enum type_e {eTypeMetric, eTypeImperial, eTypeNautic};
+    /// instantiate the correct unit object
+    static void setUnitType(type_e t, QObject * parent);
+
+    /// parse a string for a timestamp
+    static bool parseTimestamp(const QString &time, QDateTime &datetime);
+
+    /**
+       @brief Convert date time object to string using the current timezone configuration
+
+
+       @param time          the date/time object
+       @param shortDate     set true to get a short ISO time string
+       @param pos           optional a position attached to the date/time object [rad]
+       @return              A time string.
+     */
+    static QString datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos = NOPOINTF);
+
+    /// find the timezone setup by position
+    static QByteArray pos2timezone(const QPointF& pos);
+
+    const type_e type;
+    const QString baseunit;
+    const qreal basefactor;
+    const QString speedunit;
+    const qreal speedfactor;
+    static const char *tblTimezone[];
+
+    enum tz_mode_e
+    {
+        eTZUtc
+        ,eTZLocal
+        ,eTZAuto
+        ,eTZSelected
+    };
+
+    static void getTimeZoneSetup(tz_mode_e& mode, QByteArray& zone, bool& format)
+    {
+        mode   = timeZoneMode;
+        zone   = timeZone;
+        format = useShortFormat;
+    }
+
+    static void setTimeZoneSetup(tz_mode_e mode, const QByteArray& zone, bool format)
+    {
+        timeZoneMode   = mode;
+        timeZone       = zone;
+        useShortFormat = format;
+    }
+
+    enum coord_format_e
+    {
+        eCoordFormat1
+        ,eCoordFormat2
+        ,eCoordFormat3
+    };
+
+    static enum coord_format_e getCoordFormat()
+    {
+        return coordFormat;
+    }
+
+    static void setCoordFormat(const coord_format_e format)
+    {
+        coordFormat = format;
+    }
+
+    static bool degToStr(const qreal& x, const qreal& y, QString& str);
+
+    static bool strToDeg(const QString& str, qreal& lon, qreal& lat);
+
+    static bool isValidCoordString(const QString& str);
+
+protected:
+    IUnit(const type_e& type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject *parent);
+
+    static QDateTime parseTimestamp(const QString &timetext, int& tzoffset);
+
+    static tz_mode_e timeZoneMode;
+    static QByteArray timeZone;
+    static bool useShortFormat;
+
+    static coord_format_e coordFormat;
+
+private:
+    static const IUnit * m_self;
+
+    static const QRegExp reCoord1;
+    static const QRegExp reCoord2;
+    static const QRegExp reCoord3;
+    static const QRegExp reCoord4;
+    static const QRegExp reCoord5;
+};
+#endif //IUNIT_H
diff --git a/src/qmaptool/units/IUnitsSetup.ui b/src/qmaptool/units/IUnitsSetup.ui
new file mode 100644
index 0000000..4ccb69f
--- /dev/null
+++ b/src/qmaptool/units/IUnitsSetup.ui
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>IUnitsSetup</class>
+ <widget class="QDialog" name="IUnitsSetup">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>432</width>
+    <height>147</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Setup units...</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <item>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <item>
+        <widget class="QRadioButton" name="radioNautic">
+         <property name="text">
+          <string>Nautical</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioImperial">
+         <property name="text">
+          <string>Imperial</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QRadioButton" name="radioMetric">
+         <property name="text">
+          <string>Metric</string>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </item>
+     <item>
+      <widget class="QLabel" name="label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="text">
+        <string><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapTool.</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
+       </property>
+       <property name="wordWrap">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>7</height>
+      </size>
+     </property>
+    </spacer>
+   </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>IUnitsSetup</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>IUnitsSetup</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/qmaptool/version.h b/src/qmaptool/version.h
new file mode 100644
index 0000000..5e1ba03
--- /dev/null
+++ b/src/qmaptool/version.h
@@ -0,0 +1,33 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef VERSION_H
+#define VERSION_H
+
+#ifndef _MKSTR_1
+#define _MKSTR_1(x)    #x
+#define _MKSTR(x)      _MKSTR_1(x)
+#endif
+
+#define VER_STR       _MKSTR(VER_MAJOR) "." _MKSTR (VER_MINOR) "." _MKSTR (VER_STEP)
+#define VER_SUFFIX    _MKSTR(VER_TWEAK)
+
+#define WHAT_STR      "QMapTool, Version " VER_STR
+
+#endif //VERSION_H
+
diff --git a/src/qmt_map2jnx/CMakeLists.txt b/src/qmt_map2jnx/CMakeLists.txt
new file mode 100644
index 0000000..638a9d3
--- /dev/null
+++ b/src/qmt_map2jnx/CMakeLists.txt
@@ -0,0 +1,65 @@
+
+
+set(APPLICATION_NAME qmt_map2jnx)
+set(MAP2JNX_VERSION_MAJOR 1)
+set(MAP2JNX_VERSION_MINOR 0)
+set(MAP2JNX_VERSION_PATCH 0)
+
+add_definitions(
+    -DVER_MAJOR=${MAP2JNX_VERSION_MAJOR}
+    -DVER_MINOR=${MAP2JNX_VERSION_MINOR}
+    -DVER_STEP=${MAP2JNX_VERSION_PATCH}
+    -DVER_TWEAK=${VERSION_SUFFIX}
+    -DAPPLICATION_NAME=${APPLICATION_NAME}
+)
+
+IF(WIN32)
+  LINK_DIRECTORIES( ${CMAKE_SOURCE_DIR}/win32 )
+  INCLUDE_DIRECTORIES( ../win32 )
+ENDIF(WIN32)
+
+
+#if you don't want the full compiler output, remove the following line
+SET(CMAKE_VERBOSE_MAKEFILE ON)
+SET(SRCS main.cpp argv.cpp)
+SET(HDRS argv.h)
+
+
+include_directories(
+  ${CMAKE_BINARY_DIR}
+  ${CMAKE_CURRENT_BINARY_DIR}
+  ${GDAL_INCLUDE_DIRS}
+  ${PROJ_INCLUDE_DIRS}
+  ${JPEG_INCLUDE_DIRS}
+)
+
+if(WIN32)
+    include_directories(
+        ${CMAKE_SOURCE_DIR}/Win32/
+    )
+endif(WIN32)
+
+#list all source files here
+ADD_EXECUTABLE( ${APPLICATION_NAME} ${SRCS} ${HDRS})
+
+#add definitions, compiler switches, etc.
+IF(UNIX)
+  ADD_DEFINITIONS(-Wall)  
+ENDIF(UNIX)
+
+IF(WIN32)
+  ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
+ENDIF(WIN32)
+
+TARGET_LINK_LIBRARIES(${APPLICATION_NAME} ${GDAL_LIBRARIES} ${PROJ_LIBRARIES} ${JPEG_LIBRARIES})
+
+if(APPLE)
+  set_target_properties(${APPLICATION_NAME} PROPERTIES
+    RUNTIME_OUTPUT_DIRECTORY ${MAC_BUNDLE_PATH}/Contents/Resources
+    )
+endif(APPLE)
+
+install(
+    TARGETS ${APPLICATION_NAME} DESTINATION ${BIN_INSTALL_DIR}
+)
+
diff --git a/src/qmt_map2jnx/argv.cpp b/src/qmt_map2jnx/argv.cpp
new file mode 100644
index 0000000..a7f7939
--- /dev/null
+++ b/src/qmt_map2jnx/argv.cpp
@@ -0,0 +1,45 @@
+/**********************************************************************************************
+    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 <stdlib.h>
+#include <string.h>
+
+#ifdef WIN32
+#include <windows.h>
+#endif
+
+char* get_argv(const int index, char** argv)
+{
+    char* result = NULL;
+    int len;
+
+#ifdef WIN32
+    int numargs;
+    wchar_t** argw = CommandLineToArgvW(GetCommandLineW(), &numargs);
+
+    // determine the buffer length first (including the trailing null)
+    len = WideCharToMultiByte(CP_UTF8, 0, argw[index], -1, NULL, 0, NULL, NULL);
+    result = (char*)calloc(len, 1);
+    WideCharToMultiByte(CP_UTF8, 0, argw[index], -1, result, len, NULL, NULL);
+
+    GlobalFree(argw);
+#else
+    len = strlen(argv[index]) + 1;
+    result = (char*)calloc(len, 1);
+    strcpy(result, argv[index]);
+#endif
+
+    return result;
+}
diff --git a/src/qmt_map2jnx/argv.h b/src/qmt_map2jnx/argv.h
new file mode 100644
index 0000000..0967d0b
--- /dev/null
+++ b/src/qmt_map2jnx/argv.h
@@ -0,0 +1,16 @@
+/**********************************************************************************************
+    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/>.
+
+**********************************************************************************************/
+char* get_argv(const int index, char** argv);
diff --git a/src/qmt_map2jnx/main.cpp b/src/qmt_map2jnx/main.cpp
new file mode 100644
index 0000000..ebf08bf
--- /dev/null
+++ b/src/qmt_map2jnx/main.cpp
@@ -0,0 +1,1039 @@
+/**********************************************************************************************
+    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 "config.h"
+
+#ifdef _MSC_VER
+#define fseeko _fseeki64
+#define ftello _ftelli64
+#else
+#define _FILE_OFFSET_BITS 64
+#endif //
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <math.h>
+#include <wctype.h>
+
+
+#include <list>
+#include <string>
+#include <vector>
+
+#include <gdal_priv.h>
+#include <proj_api.h>
+#include <ogr_spatialref.h>
+
+extern "C"
+{
+#include <jpeglib.h>
+}
+
+#include "argv.h"
+
+
+#ifndef _MKSTR_1
+#define _MKSTR_1(x)         #x
+#define _MKSTR(x)           _MKSTR_1(x)
+#endif
+
+#define VER_STR             _MKSTR(VER_MAJOR) "." _MKSTR(VER_MINOR) "." _MKSTR(VER_STEP)
+#define WHAT_STR            "map2jnx, Version " VER_STR
+
+#define JNX_MAX_TILES       50000 //6250
+#define JNX_MAX_TILE_SIZE   1024
+
+#define JPG_BLOCK_SIZE      (JNX_MAX_TILE_SIZE * JNX_MAX_TILE_SIZE)
+
+#define HEADER_BLOCK_SIZE   1024
+
+#pragma pack(1)
+
+struct jnx_hdr_t
+{
+    jnx_hdr_t(): version(0x00000004), devid(0), expire(0), productId(0), crc(0), signature(0), signature_offset(0), zorder(25){}
+    uint32_t version;           // byte 00000000..00000003
+    uint32_t devid;             // byte 00000004..00000007
+    int32_t  top;               // byte 00000014..00000017
+    int32_t  right;             // byte 00000010..00000013
+    int32_t  bottom;            // byte 0000000C..0000000F
+    int32_t  left;              // byte 00000008..0000000B
+    uint32_t details;           // byte 00000018..0000001B
+    uint32_t expire;            // byte 0000001C..0000001F
+    uint32_t productId;         // byte 00000020..00000023
+    uint32_t crc;               // byte 00000024..00000027
+    uint32_t signature;         // byte 00000028..0000002B
+    uint32_t signature_offset;  // byte 0000002C..0000002F
+    uint32_t zorder;            // byte 00000030..00000033
+};
+
+
+struct jnx_level_t
+{
+    jnx_level_t(): nTiles(0), offset(0), scale(0), dummy(2){}
+
+    uint32_t nTiles;
+    uint32_t offset;
+    uint32_t scale;
+    uint32_t dummy;
+};
+
+struct jnx_tile_t
+{
+    jnx_tile_t() : top(0), right(0), bottom(0), left(0), width(0), height(0), size(0), offset(0){}
+    int32_t  top;
+    int32_t  right;
+    int32_t  bottom;
+    int32_t  left;
+    uint16_t width;
+    uint16_t height;
+    uint32_t size;
+    uint32_t offset;
+};
+
+
+#ifdef WIN32
+#pragma pack()
+#else
+#pragma pack(0)
+#endif
+
+struct file_t
+{
+    file_t(): dataset(0), pj(0){memset(colortable,0, sizeof(colortable));}
+    ~file_t()
+    {
+        //if(dataset) delete dataset;
+        if(pj) pj_free(pj);
+    }
+
+    bool operator<(const file_t& other)  const
+    {
+        return (xscale > other.xscale);
+    }
+
+    std::string     filename;
+    std::string     projection;
+    GDALDataset *   dataset;
+    projPJ          pj;
+    uint32_t        width;
+    uint32_t        height;
+    double          xscale;
+    double          yscale;
+    double          scale;
+    double          xref1;
+    double          yref1;
+    double          xref2;
+    double          yref2;
+
+    double          lon1;
+    double          lat1;
+    double          lon2;
+    double          lat2;
+
+    uint32_t        colortable[256];
+
+};
+
+struct level_t : public jnx_level_t
+{
+    std::list<file_t *> files;
+    uint32_t tileSize;
+};
+
+struct scale_t
+{
+    double scale;
+    uint32_t jnxScale;
+};
+
+/// number of used levels
+static int32_t nLevels;
+/// up to five levels. nLevels gives the actual count
+static level_t levels[5];
+/// information about all files
+static std::list<file_t> files;
+/// the target lon/lat WGS84 projection
+static projPJ wgs84;
+/// the JNX file header to be copied to the outfile
+static jnx_hdr_t jnx_hdr;
+/// the tile information table for all 5 levels
+static jnx_tile_t tileTable[JNX_MAX_TILES * 5];
+/// tile buffer for 8 bit palette tiles, private to readTile
+static uint8_t  tileBuf8Bit[JNX_MAX_TILE_SIZE * JNX_MAX_TILE_SIZE] = {0};
+/// tile buffer for 24 bit raw RGB tiles, private to writeTile
+static uint8_t tileBuf24Bit[JNX_MAX_TILE_SIZE * JNX_MAX_TILE_SIZE * 3] = {0};
+/// tile buffer for 32 bit raw RGBA tiles
+static uint32_t tileBuf32Bit[JNX_MAX_TILE_SIZE * JNX_MAX_TILE_SIZE] = {0};
+/// internal jpeg buffer used by write tile.
+static std::vector<JOCTET> jpgbuf;
+
+static void prinfFileinfo(const file_t& file)
+{
+    printf("\n\n----------------------");
+    printf("\n%s:", file.filename.c_str());
+    printf("\nprojection: %s", file.projection.c_str());
+    printf("\nwidth: %i pixel height: %i pixel", file.width, file.height);
+
+    if(pj_is_latlong(file.pj))
+    {
+        printf("\narea (top/left, bottom/right): %f %f, %f %f", file.lat1, file.lon1, file.lat2, file.lon2);
+        printf("\nxscale: %f °/px, yscale: %f °/px", file.xscale, file.yscale);
+    }
+    else
+    {
+        printf("\narea (top/left, bottom/right): %f %f, %f %f", file.lat1, file.lon1, file.lat2, file.lon2);
+        printf("\nxscale: %f m/px, yscale: %f m/px", file.xscale, file.yscale);
+    }
+    printf("\nreal scale: %f m/px", file.scale);
+}
+
+bool readTile(uint32_t xoff, uint32_t yoff, uint32_t xsize, uint32_t ysize, file_t& file, uint32_t * output)
+{
+    GDALDataset * dataset = file.dataset;
+    int32_t rasterBandCount = dataset->GetRasterCount();
+
+    memset(output,-1, sizeof(uint32_t) * xsize * ysize);
+
+    if(rasterBandCount == 1)
+    {
+        GDALRasterBand * pBand;
+        pBand = dataset->GetRasterBand(1);
+        if(pBand->RasterIO(GF_Read,(int)xoff,(int)yoff, xsize, ysize, tileBuf8Bit,xsize,ysize,GDT_Byte,0,0) == CE_Failure)
+        {
+            return false;
+        }
+
+        for(unsigned int i = 0; i < (xsize * ysize); i++)
+        {
+            output[i] = file.colortable[tileBuf8Bit[i]];
+        }
+    }
+    else
+    {
+        for(int b = 1; b <= rasterBandCount; ++b)
+        {
+            GDALRasterBand * pBand;
+            pBand = dataset->GetRasterBand(b);
+
+            uint32_t mask = ~(0x000000FF << (8*(b-1)));
+
+            if(pBand->RasterIO(GF_Read,(int)xoff,(int)yoff, xsize, ysize, tileBuf8Bit,xsize,ysize,GDT_Byte,0,0) == CE_Failure)
+            {
+                return false;
+            }
+
+            for(unsigned int i = 0; i < (xsize * ysize); i++)
+            {
+                uint32_t pixel = output[i];
+
+                pixel &= mask;
+                pixel |= tileBuf8Bit[i] << (8*(b-1));
+                output[i] = pixel;
+            }
+        }
+    }
+
+    return true;
+}
+
+
+
+static void init_destination (j_compress_ptr cinfo)
+{
+    jpgbuf.resize(JPG_BLOCK_SIZE);
+    cinfo->dest->next_output_byte   = &jpgbuf[0];
+    cinfo->dest->free_in_buffer     = jpgbuf.size();
+}
+
+static boolean empty_output_buffer (j_compress_ptr cinfo)
+{
+    size_t oldsize = jpgbuf.size();
+    jpgbuf.resize(oldsize + JPG_BLOCK_SIZE);
+    cinfo->dest->next_output_byte   = &jpgbuf[oldsize];
+    cinfo->dest->free_in_buffer     = jpgbuf.size() - oldsize;
+    return true;
+}
+
+static void term_destination (j_compress_ptr cinfo)
+{
+    jpgbuf.resize(jpgbuf.size() - cinfo->dest->free_in_buffer);
+}
+
+
+static uint32_t writeTile(uint32_t xsize, uint32_t ysize, uint32_t * raw_image, FILE * fid, int quality, int subsampling)
+{
+    uint32_t size = 0;
+    struct jpeg_compress_struct cinfo;
+    struct jpeg_error_mgr jerr;
+    JSAMPROW row_pointer[1];
+
+    jpeg_destination_mgr destmgr    = {0};
+    destmgr.init_destination        = init_destination;
+    destmgr.empty_output_buffer     = empty_output_buffer;
+    destmgr.term_destination        = term_destination;
+
+    // convert from RGBA to RGB
+    for(uint32_t r = 0; r < ysize; r++)
+    {
+        for(uint32_t c = 0; c < xsize; c++)
+        {
+            uint32_t pixel = raw_image[r * xsize + c];
+            tileBuf24Bit[r * xsize * 3 + c * 3]     =  pixel        & 0x0FF;
+            tileBuf24Bit[r * xsize * 3 + c * 3 + 1] = (pixel >>  8) & 0x0FF;
+            tileBuf24Bit[r * xsize * 3 + c * 3 + 2] = (pixel >> 16) & 0x0FF;
+        }
+    }
+
+    cinfo.err = jpeg_std_error( &jerr );
+    jpeg_create_compress(&cinfo);
+
+    cinfo.dest              = &destmgr;
+    cinfo.image_width       = xsize;
+    cinfo.image_height      = ysize;
+    cinfo.input_components  = 3;
+    cinfo.in_color_space    = JCS_RGB;
+
+    jpeg_set_defaults( &cinfo );
+
+    if (subsampling != -1)
+    {
+        switch (subsampling)
+        {
+        case 422:  // 2x1, 1x1, 1x1 (4:2:2) : Medium
+            {
+                cinfo.comp_info[0].h_samp_factor = 2;
+                cinfo.comp_info[0].v_samp_factor = 1;
+                cinfo.comp_info[1].h_samp_factor = 1;
+                cinfo.comp_info[1].v_samp_factor = 1;
+                cinfo.comp_info[2].h_samp_factor = 1;
+                cinfo.comp_info[2].v_samp_factor = 1;
+                break;
+            }
+        case 411:  // 2x2, 1x1, 1x1 (4:1:1) : High
+            {
+                cinfo.comp_info[0].h_samp_factor = 2;
+                cinfo.comp_info[0].v_samp_factor = 2;
+                cinfo.comp_info[1].h_samp_factor = 1;
+                cinfo.comp_info[1].v_samp_factor = 1;
+                cinfo.comp_info[2].h_samp_factor = 1;
+                cinfo.comp_info[2].v_samp_factor = 1;
+                break;
+            }
+        case 444:  // 1x1 1x1 1x1 (4:4:4) : None
+            {
+                cinfo.comp_info[0].h_samp_factor = 1;
+                cinfo.comp_info[0].v_samp_factor = 1;
+                cinfo.comp_info[1].h_samp_factor = 1;
+                cinfo.comp_info[1].v_samp_factor = 1;
+                cinfo.comp_info[2].h_samp_factor = 1;
+                cinfo.comp_info[2].v_samp_factor = 1;
+                break;
+            }
+        }
+    }
+
+    if (quality != -1)
+    {
+        jpeg_set_quality( &cinfo, quality, TRUE );
+    }
+
+    jpeg_start_compress( &cinfo, TRUE );
+
+    while( cinfo.next_scanline < cinfo.image_height )
+    {
+        row_pointer[0] = (JSAMPLE*)&tileBuf24Bit[ cinfo.next_scanline * cinfo.image_width *  cinfo.input_components];
+        jpeg_write_scanlines( &cinfo, row_pointer, 1 );
+    }
+    /* similar to read file, clean up after we're done compressing */
+    jpeg_finish_compress( &cinfo );
+    jpeg_destroy_compress( &cinfo );
+
+    // write data to output file
+    size = jpgbuf.size() - 2;
+    fwrite(&jpgbuf[2], size, 1, fid);
+
+    return size;
+}
+
+static double distance(const double u1, const double v1, const double u2, const double v2)
+{
+    double dU = u2 - u1; // lambda
+    double dV = v2 - v1; // roh
+
+    double d = 2*asin(sqrt(sin(dV/2) * sin(dV/2) + cos(v1) * cos(v2) * sin(dU/2) * sin(dU/2)));
+
+    return 6371010 * d;
+}
+
+static uint32_t scale2jnx(double scale)
+{
+    /*
+    Ok, I've made some calculations, and got the following formula to
+    calculate the JNX scale (S) depending on the map's meters/pixel
+    ratio (R):
+
+      S(R) =
+        qRound(
+          76437 *
+          exp(
+            ln(2.000032708011) *
+            qRound(
+              ln(R * 130.2084 / 76437) /
+              ln(2.000032708011)
+            )
+          )
+        )
+
+
+    where
+      qRound - is a function which returns the closest integer from
+        floating point value, [unfortunately its defined in C99 but not standard C++]
+      exp - exponent,
+      ln - natural logarithm.
+
+    Magic number 130.2084 - is an average value for
+      (JNX scale) / (maps meters per pixel)
+    ratio among all zoom levels in metric system.
+
+    Magic number 2.000032708011 is a ratio on which our standard scale
+    table is built. It is (76437 / 4777) ^ (1/4).
+    */
+
+    return (uint32_t)floor(0.5 + 76437 * exp(log(2.000032708011) * floor(0.5 + log(scale * 10 * 130.2084 / 76437) / log(2.000032708011) ) ) );
+}
+
+static char randChar()
+{
+    char buf[2];
+#if defined(HAVE_ARC4RANDOM)
+    int r = (int)((arc4random() * 16.0) / UINT_MAX);
+#else
+    int r = (int)((rand() * 16.0) / RAND_MAX);
+#endif
+    sprintf(buf,"%X", r & 0x0F);
+    return buf[0];
+}
+
+static void createGUID(char * guid)
+{
+#if !defined(HAVE_ARC4RANDOM)
+    srand((unsigned int)time(0));
+#endif
+
+    guid[0]     = randChar();
+    guid[1]     = randChar();
+    guid[2]     = randChar();
+    guid[3]     = randChar();
+    guid[4]     = randChar();
+    guid[5]     = randChar();
+    guid[6]     = randChar();
+    guid[7]     = randChar();
+    guid[8]     = '-';
+    guid[9]     = randChar();
+    guid[10]    = randChar();
+    guid[11]    = randChar();
+    guid[12]    = randChar();
+    guid[13]    = '-';
+    guid[14]    = randChar();
+    guid[15]    = randChar();
+    guid[16]    = randChar();
+    guid[17]    = randChar();
+    guid[18]    = '-';
+    guid[19]    = randChar();
+    guid[20]    = randChar();
+    guid[21]    = randChar();
+    guid[22]    = randChar();
+    guid[23]    = '-';
+    guid[24]    = randChar();
+    guid[25]    = randChar();
+    guid[26]    = randChar();
+    guid[27]    = randChar();
+    guid[28]    = randChar();
+    guid[29]    = randChar();
+    guid[30]    = randChar();
+    guid[31]    = randChar();
+    guid[32]    = randChar();
+    guid[33]    = randChar();
+    guid[34]    = randChar();
+    guid[35]    = randChar();
+    guid[36]    = 0;
+
+}
+
+/// this code is from the GDAL project
+static void printProgress(int current, int total)
+{
+    double dfComplete = double(current)/double(total);
+
+    static int nLastTick = -1;
+    int nThisTick = (int) (dfComplete * 40.0);
+
+    nThisTick = MIN(40,MAX(0,nThisTick));
+
+    // Have we started a new progress run?
+    if( nThisTick < nLastTick && nLastTick >= 39 )
+    {
+        nLastTick = -1;
+    }
+
+    if( nThisTick <= nLastTick )
+    {
+        return;
+    }
+
+    while( nThisTick > nLastTick )
+    {
+        nLastTick++;
+        if( nLastTick % 4 == 0 )
+        {
+            fprintf( stdout, "%d", (nLastTick / 4) * 10 );
+        }
+        else
+        {
+            fprintf( stdout, "." );
+        }
+    }
+
+    if( nThisTick == 40 )
+    {
+        fprintf( stdout, " - done.\n" );
+    }
+    else
+    {
+        fflush( stdout );
+    }
+
+}
+
+
+int main(int argc, char ** argv)
+{
+    uint16_t tmp16;
+    const uint8_t dummy = 0;
+    uint32_t tileTableStart = 0;
+    uint32_t tileCnt    = 0;
+    uint32_t tilesTotal = 0;
+    char projstr[1024];
+    OGRSpatialReference oSRS;
+    int quality         = -1;
+    int subsampling     = -1;
+
+    const char *copyright = "Unknown";
+    const char *subscname = "BirdsEye";
+    const char *mapname   = "Unknown";
+
+    char *copyright_buf = NULL;
+    char *subscname_buf = NULL;
+    char *mapname_buf   = NULL;
+
+    std::vector<int> forced_scale_values;
+
+    printf("\n****** %s ******\n", WHAT_STR);
+
+    if(argc < 2)
+    {
+        fprintf(stderr,"\nusage: map2jnx -q <1..100> -s <411|422|444> -p <0..> -c \"copyright notice\" -m \"BirdsEye\" -n \"Unknown\" -x file1_scale,file2_scale,...,fileN_scale <file1> <file2> ... <fileN> <outputfile>\n");
+        fprintf(stderr,"\n");
+        fprintf(stderr,"  -q The JPEG quality from 1 to 100. Default is 75 \n");
+        fprintf(stderr,"  -s The chroma subsampling. Default is 411  \n");
+        fprintf(stderr,"  -p The product ID. Default is 0  \n");
+        fprintf(stderr,"  -c The copyright notice. Default is \"Unknown\"  \n");
+        fprintf(stderr,"  -m The subscription product name. Default is \"BirdsEye\"  \n");
+        fprintf(stderr,"  -n The map name. Default is \"Unknown\"  \n");
+        fprintf(stderr,"  -z The z order (drawing order). Default is 25\n");
+        fprintf(stderr,"  -x Override levels scale. Default: autodetect\n");
+        fprintf(stderr,"\n");
+        fprintf(stderr,"\nThe projection of the input files must have the same latitude along");
+        fprintf(stderr,"\na pixel row. Mecator and Longitude/Latitude projections match this");
+        fprintf(stderr,"\nthis property. Transversal Merkator or Lambert projections do not.");
+        fprintf(stderr,"\n");
+        fprintf(stderr,"\nTo rectify a geotiff map, you can use the gdalwarp command, e.g.");
+        fprintf(stderr,"\ngdalwarp -t_srs \"EPSG:4326\" <inputfile> <outputfile>");
+        fprintf(stderr,"\n");
+        fprintf(stderr,"Scale levels must be pass in same order as level files pointed.\n");
+        fprintf(stderr,"Empty and zero values equal to autodetect. We can point only needed\n");
+        fprintf(stderr,"levels, like:\n");
+        fprintf(stderr,"  -x 45356,,,75; -x ,,,,75\n");
+        fprintf(stderr,"Calculated levels table can be found:\n");
+        fprintf(stderr,"  English: http://whiter.brinkster.net/en/JNX.shtml\n");
+        fprintf(stderr,"  Russian: http://whiter.brinkster.net/JNX.shtml\n");
+        fprintf(stderr,"Most common values for different map scales:\n");
+        fprintf(stderr,"  JNX scale              Map scale\n");
+        fprintf(stderr,"  -------------          ---------\n");
+        fprintf(stderr,"  78125-31250            1:1 000 000\n");
+        fprintf(stderr,"  20834-7813             1:500 000\n");
+        fprintf(stderr,"  7813-3125              1:200 000\n");
+        fprintf(stderr,"  3125-2084              1:100 000\n");
+        fprintf(stderr,"  2084-782               1:50 000\n");
+        fprintf(stderr,"  782-32                 1:25 000\n");
+        fprintf(stderr,"  32-21                  1:10 000\n");
+        fprintf(stderr,"  21-14                  1:5000, 1:2000\n");
+        fprintf(stderr,"\n");
+        fprintf(stderr,"\n");
+        exit(-1);
+    }
+
+    GDALAllRegister();
+    wgs84 = pj_init_plus("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs");
+
+    // read geo information from input files
+    //files.resize(argc - 2);
+    int skip_next_arg = 0;
+    int files_count = 0;
+
+    for(int i = 1; i < (argc - 1); i++)
+    {
+        if (skip_next_arg)
+        {
+            skip_next_arg = 0;
+            continue;
+        }
+
+        if (argv[i][0] == '-')
+        {
+            if (towupper(argv[i][1]) == 'Q')
+            {
+                quality = atol(argv[i+1]);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'S')
+            {
+                subsampling = atol(argv[i+1]);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'P')
+            {
+                jnx_hdr.productId = atol(argv[i+1]);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'C')
+            {
+                copyright = copyright_buf = get_argv(i + 1, argv);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'M')
+            {
+                subscname = subscname_buf = get_argv(i + 1, argv);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'N')
+            {
+                mapname = mapname_buf = get_argv(i + 1, argv);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'Z')
+            {
+                jnx_hdr.zorder = atol(argv[i+1]);
+                skip_next_arg = 1;
+                continue;
+            }
+            else if (towupper(argv[i][1]) == 'X')
+            {
+                skip_next_arg = 1;
+
+                std::string scales_buf(get_argv(i + 1, argv));
+                size_t pos = 0;
+                size_t last_pos = 0;
+
+                pos = scales_buf.find_first_of(',');
+                std::string val;
+                while (pos != std::string::npos)
+                {
+                    val = scales_buf.substr(last_pos, pos - last_pos);
+                    last_pos = pos + 1;
+                    pos = scales_buf.find_first_of(',', pos + 1);
+
+                    //printf("val: %s : %d\n", val.c_str(), pos);
+                    forced_scale_values.push_back(atol(val.c_str()));
+                }
+                val = scales_buf.substr(last_pos, pos);
+                //printf("val: %s : %d\n", val.c_str(), pos);
+                forced_scale_values.push_back(atol(val.c_str()));
+
+                continue;
+            }
+
+        }
+
+        files_count++;
+        files.resize(files_count);
+
+        double dist;
+
+        GDALDataset * dataset = (GDALDataset*)GDALOpen(argv[i],GA_ReadOnly);
+        if(dataset == 0)
+        {
+            fprintf(stderr,"\nFailed to open %s\n", argv[i]);
+            exit(-1);
+        }
+
+        projPJ   pj;
+        char * ptr = projstr;
+
+        if(dataset->GetProjectionRef())
+        {
+            strncpy(projstr,dataset->GetProjectionRef(),sizeof(projstr));
+        }
+        oSRS.importFromWkt(&ptr);
+        oSRS.exportToProj4(&ptr);
+
+        pj = pj_init_plus(ptr);
+        if(pj == 0)
+        {
+            fprintf(stderr,"\nUnknown projection in file %s\n", argv[i]);
+            exit(-1);
+        }
+
+        double adfGeoTransform[6];
+        dataset->GetGeoTransform( adfGeoTransform );
+
+        std::list<file_t>::iterator f = files.begin();
+        std::advance(f, files_count - 1);
+
+        file_t& file    = *f;
+        file.filename   = argv[i];
+        file.projection = ptr;
+        file.dataset    = dataset;
+        file.pj         = pj;
+        file.width      = dataset->GetRasterXSize();
+        file.height     = dataset->GetRasterYSize();
+        file.xscale     = adfGeoTransform[1];
+        file.yscale     = adfGeoTransform[5];
+        file.xref1      = adfGeoTransform[0];
+        file.yref1      = adfGeoTransform[3];
+        file.xref2      = file.xref1 + file.width  * file.xscale;
+        file.yref2      = file.yref1 + file.height * file.yscale;
+
+        if(pj_is_latlong(file.pj))
+        {
+            file.lon1 = file.xref1;
+            file.lat1 = file.yref1;
+            file.lon2 = file.xref2;
+            file.lat2 = file.yref2;
+        }
+        else
+        {
+            file.lon1 = file.xref1;
+            file.lat1 = file.yref1;
+            file.lon2 = file.xref2;
+            file.lat2 = file.yref2;
+
+            pj_transform(pj,wgs84,1,0,&file.lon1,&file.lat1,0);
+            pj_transform(pj,wgs84,1,0,&file.lon2,&file.lat2,0);
+
+            file.lon1 *= RAD_TO_DEG;
+            file.lat1 *= RAD_TO_DEG;
+            file.lon2 *= RAD_TO_DEG;
+            file.lat2 *= RAD_TO_DEG;
+        }
+
+        dist = distance(file.lon1 * DEG_TO_RAD, file.lat1 * DEG_TO_RAD, file.lon2 * DEG_TO_RAD, file.lat1 * DEG_TO_RAD);
+        file.scale = dist/file.width;
+
+        // fill color table if necessary
+        GDALRasterBand * pBand;
+        pBand = dataset->GetRasterBand(1);
+
+        if(pBand->GetColorInterpretation() == GCI_PaletteIndex)
+        {
+            GDALColorTable * pct = pBand->GetColorTable();
+            for(int c=0; c < pct->GetColorEntryCount(); ++c)
+            {
+                const GDALColorEntry& e = *pct->GetColorEntry(c);
+                file.colortable[c] = e.c1 | (e.c2 << 8) | (e.c3 << 16) | (e.c4 << 24);
+            }
+        }
+        else if(pBand->GetColorInterpretation() ==  GCI_GrayIndex )
+        {
+            for(int c=0; c < 256; ++c)
+            {
+                file.colortable[c] = c | (c << 8) | (c << 16) | 0xFF000000;
+            }
+        }
+
+        int success = 0;
+        int idx = (int)pBand->GetNoDataValue(&success);
+
+        if(success)
+        {
+            file.colortable[idx] &= 0x00FFFFFF;
+        }
+    }
+
+    // apply sorted files to levels and extract file header data
+    double right    = -180.0;
+    double top      =  -90.0;
+    double left     =  180.0;
+    double bottom   =   90.0;
+
+    double scale = 0.0;
+    files.sort();
+    std::list<file_t>::iterator f;
+    for(f = files.begin(); f != files.end(); f++)
+    {
+        file_t& file = *f;
+        prinfFileinfo(file);
+
+        if(file.lon1 < left)    left   = file.lon1;
+        if(file.lat1 > top)     top    = file.lat1;
+        if(file.lat2 < bottom)  bottom = file.lat2;
+        if(file.lon2 > right)   right  = file.lon2;
+
+        if(scale != 0.0 && ((fabs(scale - file.xscale)) / scale) > 0.02)
+        {
+            nLevels++;
+            if(nLevels > 4)
+            {
+                fprintf(stderr,"\nToo many different detail levels.\n");
+                exit(-1);
+            }
+        }
+        scale = file.xscale;
+
+        levels[nLevels].files.push_back(&file);
+    }
+    nLevels++;
+
+    FILE * fid = fopen(argv[argc-1],"wb");
+    if(fid == 0)
+    {
+        fprintf(stderr,"\nFailed to create file %s\n", argv[argc-1]);
+        exit(-1);
+    }
+
+    jnx_hdr.left    = (int32_t)((left   * 0x7FFFFFFF) / 180);
+    jnx_hdr.top     = (int32_t)((top    * 0x7FFFFFFF) / 180);
+    jnx_hdr.right   = (int32_t)((right  * 0x7FFFFFFF) / 180);
+    jnx_hdr.bottom  = (int32_t)((bottom * 0x7FFFFFFF) / 180);
+
+    jnx_hdr.details = nLevels;
+
+    printf("\n\n======== map header ========");
+    printf("\nmap area (top/left, bottom/right): %f %f, %f %f", left, top, right, bottom);
+    printf("\n                                   %08X %08X, %08X %08X", jnx_hdr.left, jnx_hdr.top, jnx_hdr.right, jnx_hdr.bottom);
+    printf("\nnumber of detail levels:           %i", jnx_hdr.details);
+    printf("\nz-order:                           %i\n", jnx_hdr.zorder);
+
+
+    for(int i=0; i<HEADER_BLOCK_SIZE; i++)
+    {
+        fwrite(&dummy, sizeof(dummy), 1, fid);
+    }
+    fseeko(fid,0,SEEK_SET);
+    fwrite(&jnx_hdr, sizeof(jnx_hdr), 1, fid);
+
+    // --------------------------------------------------------------
+    // get all information to write the table of detail levels and the dummy tile table
+    for(int i = 0; i < nLevels; i++)
+    {
+        uint32_t size   = 256;
+        level_t& level  = levels[i];
+        std::list<file_t *>::iterator f;
+        double scale    = 0.0;
+
+        while(size <= JNX_MAX_TILE_SIZE)
+        {
+            level.nTiles    = 0;
+            level.tileSize  = size;
+            for(f = level.files.begin(); f != level.files.end(); f++)
+            {
+                file_t& file  = *(*f);
+                double xTiles = file.width  / double(size);
+                double yTiles = file.height / double(size);
+                level.nTiles += int(ceil(xTiles)) * int(ceil(yTiles));
+
+                scale         = file.scale;
+            }
+
+            if(level.nTiles < JNX_MAX_TILES)
+            {
+                break;
+            }
+            size <<= 1;
+        }
+
+
+        level.offset    = tilesTotal * sizeof(jnx_tile_t) + HEADER_BLOCK_SIZE; // still has to be offset by complete header
+        if (forced_scale_values.size() == 0 || (unsigned)i >= forced_scale_values.size() ||  forced_scale_values[i] == 0)
+        {
+            level.scale     = scale2jnx(scale);
+        }
+        else
+        {
+            level.scale     = forced_scale_values[i];
+        }
+        tilesTotal     += level.nTiles;
+
+        fwrite(&level.nTiles, sizeof(level.nTiles), 1, fid);
+        fwrite(&level.offset, sizeof(level.offset), 1, fid);
+        fwrite(&level.scale, sizeof(level.scale), 1, fid);
+        fwrite(&level.dummy, sizeof(level.dummy), 1, fid);
+        fwrite(copyright, strlen(copyright) + 1, 1, fid);
+
+
+        printf("\n    Level %i: % 5i tiles, offset %08X, scale: %i, %ix%i", i, level.nTiles, level.offset, level.scale, level.tileSize, level.tileSize);
+
+    }
+
+    // --------------------------------------------------------------
+    // write map loader info block
+    uint32_t blockVersion = 0x00000009;
+    char GUID[40];
+    createGUID(GUID);
+
+    tmp16 = jnx_hdr.productId;
+
+    fwrite(&blockVersion, sizeof(blockVersion), 1, fid);
+    fwrite(GUID, 37, 1, fid);
+    fwrite(subscname, strlen(subscname) + 1, 1, fid);
+    fwrite(&dummy, sizeof(dummy), 1, fid);
+    fwrite(&tmp16, sizeof(tmp16), 1, fid);
+    fwrite(mapname, strlen(mapname) + 1, 1, fid);
+    fwrite(&nLevels , sizeof(nLevels), 1, fid);
+    for(int i = 1; i <= nLevels; i++)
+    {
+        char str[40];
+        sprintf(str,"Level %i", i);
+        fwrite(str, strlen(str) + 1, 1, fid);
+        fwrite(str, strlen(str) + 1, 1, fid);
+        fwrite(copyright, strlen(copyright) + 1, 1, fid);
+        fwrite(&i,sizeof(i), 1, fid);
+    }
+
+    // --------------------------------------------------------------
+    // write dummy tile table
+    tileTableStart = HEADER_BLOCK_SIZE;
+    fseeko(fid, tileTableStart, SEEK_SET);
+    fwrite(tileTable, sizeof(jnx_tile_t), tilesTotal, fid);
+
+    // --------------------------------------------------------------
+    // read tiles from input files and write jpeg coded tiles to output file
+    printf("\n\nStart conversion:\n");
+    for(int l = 0; l < nLevels; l++)
+    {
+        level_t& level = levels[l];
+
+        std::list<file_t *>::iterator f;
+        for(f = level.files.begin(); f != level.files.end(); f++)
+        {
+            file_t& file  = *(*f);
+
+            uint32_t xoff = 0;
+            uint32_t yoff = 0;
+
+            uint32_t xsize = level.tileSize;
+            uint32_t ysize = level.tileSize;
+
+            while(yoff < file.height)
+            {
+                if(ysize > (file.height - yoff))
+                {
+                    ysize = file.height - yoff;
+                }
+
+                xsize = level.tileSize;
+                xoff  = 0;
+
+                while(xoff < file.width)
+                {
+                    if(xsize > (file.width - xoff))
+                    {
+                        xsize = (file.width - xoff);
+                    }
+
+                    // //
+                    if(!readTile(xoff, yoff, xsize, ysize, file, tileBuf32Bit))
+                    {
+                        fprintf(stderr,"\nError reading tiles from map file\n");
+                        exit(-1);
+                    }
+
+                    jnx_tile_t& tile = tileTable[tileCnt++];
+                    if(pj_is_latlong(file.pj))
+                    {
+
+                        double u1 = file.lon1 + xoff * file.xscale;
+                        double v1 = file.lat1 + yoff * file.yscale;
+                        double u2 = file.lon1 + (xoff + xsize) * file.xscale;
+                        double v2 = file.lat1 + (yoff + ysize) * file.yscale;
+
+
+                        tile.left   = (int32_t)(u1 * 0x7FFFFFFF / 180);
+                        tile.top    = (int32_t)(v1 * 0x7FFFFFFF / 180);
+                        tile.right  = (int32_t)(u2 * 0x7FFFFFFF / 180);
+                        tile.bottom = (int32_t)(v2 * 0x7FFFFFFF / 180);
+
+                    }
+                    else
+                    {
+                        double u1 = file.xref1 + xoff * file.xscale;
+                        double v1 = file.yref1 + yoff * file.yscale;
+                        double u2 = file.xref1 + (xoff + xsize) * file.xscale;
+                        double v2 = file.yref1 + (yoff + ysize) * file.yscale;
+
+                        pj_transform(file.pj,wgs84,1,0,&u1,&v1,0);
+                        pj_transform(file.pj,wgs84,1,0,&u2,&v2,0);
+
+                        tile.left    = (int32_t)((u1 * RAD_TO_DEG) * 0x7FFFFFFF / 180);
+                        tile.top     = (int32_t)((v1 * RAD_TO_DEG) * 0x7FFFFFFF / 180);
+                        tile.right   = (int32_t)((u2 * RAD_TO_DEG) * 0x7FFFFFFF / 180);
+                        tile.bottom  = (int32_t)((v2 * RAD_TO_DEG) * 0x7FFFFFFF / 180);
+                    }
+
+                    tile.width  = xsize;
+                    tile.height = ysize;
+                    tile.offset = (uint32_t)(ftello(fid) & 0x0FFFFFFFF);
+                    tile.size   = writeTile(xsize, ysize, tileBuf32Bit, fid, quality, subsampling);
+
+                    printProgress(tileCnt, tilesTotal);
+                    // //
+                    xoff += xsize;
+                }
+
+                yoff += ysize;
+            }
+        }
+    }
+
+    // terminate output file
+    fwrite("BirdsEye", 8, 1, fid);
+
+    // write final tile table
+    fseeko(fid, tileTableStart, SEEK_SET);
+    fwrite(tileTable, sizeof(jnx_tile_t), tilesTotal, fid);
+    // done
+    fclose(fid);
+
+    // clean up
+    pj_free(wgs84);
+    GDALDestroyDriverManager();
+    if (copyright_buf)
+        free(copyright_buf);
+    if (subscname_buf)
+        free(subscname_buf);
+    if (mapname_buf)
+        free(mapname_buf);
+    printf("\n\n");
+    return 0;
+}
diff --git a/src/qmt_map2rmap/README.md b/src/qmt_map2rmap/README.md
new file mode 100644
index 0000000..4cf0074
--- /dev/null
+++ b/src/qmt_map2rmap/README.md
@@ -0,0 +1,7 @@
+
+
+This is a sub-project of QMapShack and it's not supposed to compile on it's own. Please refere to
+
+https://bitbucket.org/maproom/qmapshack/overview
+
+to check out and compile this project.
diff --git a/src/qmt_rgb2pct/CApp.cpp b/src/qmt_rgb2pct/CApp.cpp
new file mode 100644
index 0000000..e12ef75
--- /dev/null
+++ b/src/qmt_rgb2pct/CApp.cpp
@@ -0,0 +1,280 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "CApp.h"
+
+#include <gdal_alg.h>
+#include <gdal_priv.h>
+#include <iostream>
+
+const GDALColorEntry CApp::noColor = {255,255,255,0};
+
+void printStdoutQString(const QString& str)
+{
+    QByteArray array = str.toUtf8();
+    printf(array.data());
+    printf("\n");
+}
+
+void printStderrQString(const QString& str)
+{
+    QByteArray array = str.toUtf8();
+    fprintf(stderr, array.data());
+    fprintf(stderr, "\n");
+}
+
+
+
+CApp::CApp(qint32 ncolors, const QString& pctFilename, const QString &sctFilename, const QString &srcFilename, const QString &tarFilename)
+    : ncolors(ncolors)
+    , pctFilename(pctFilename)
+    , sctFilename(sctFilename)
+    , srcFilename(srcFilename)
+    , tarFilename(tarFilename)
+{
+    GDALAllRegister();
+}
+
+qint32 CApp::exec()
+{
+    qint32 res = 0;
+    GDALColorTable * ct = nullptr;
+    GDALDataset * dsSrc = nullptr;
+    try
+    {
+        dsSrc = (GDALDataset*)GDALOpenShared(srcFilename.toUtf8(),GA_ReadOnly);
+        if(dsSrc == nullptr)
+        {
+            throw tr("Failed to open source file.");
+        }
+
+        if(dsSrc->GetRasterCount() < 3 || dsSrc->GetRasterCount() > 4)
+        {
+            throw tr("Raster band count of source file must be either 3 or 4.");
+        }
+
+        if(QFile(tarFilename).exists())
+        {
+            QFile::remove(tarFilename);
+        }
+
+        ct = createColorTable(ncolors, pctFilename, dsSrc);
+        saveColorTable(ct, sctFilename);
+        ditherMap(dsSrc, tarFilename, ct);
+    }
+    catch(const QString& msg)
+    {
+        printStderrQString(msg);
+        res = -1;
+    }
+
+
+    GDALClose(dsSrc);
+    delete ct;
+    return res;
+}
+
+GDALColorTable * CApp::createColorTable(qint32 ncolors, const QString& pctFilename, GDALDataset * dataset)
+{
+    GDALColorTable * ct = nullptr;
+    try
+    {
+        if(pctFilename.isEmpty())
+        {
+            ct = (GDALColorTable*)GDALCreateColorTable(GPI_RGB);
+
+            printStdoutQString(tr("Calculate optimal color table from source file"));
+
+            int ok = GDALComputeMedianCutPCT(dataset->GetRasterBand(1),
+                                             dataset->GetRasterBand(2),
+                                             dataset->GetRasterBand(3),
+                                             nullptr,
+                                             ncolors,
+                                             ct,
+                                             GDALTermProgress,
+                                             0
+                                             );
+
+            if(ok != CE_None)
+            {
+                throw tr("Failed to create color table.");
+            }
+        }
+        else
+        {
+            GDALDataset * dsPct = (GDALDataset*)GDALOpenShared(pctFilename.toUtf8(),GA_ReadOnly);
+            if(dsPct == nullptr)
+            {
+                throw tr("Failed to open file with palette.");
+            }
+
+            GDALRasterBand * band = (GDALRasterBand*)dsPct->GetRasterBand(1);
+
+            if((dsPct->GetRasterCount() != 1) || (band->GetColorInterpretation() != GCI_PaletteIndex))
+            {
+                GDALClose(dsPct);
+                throw tr("Palette file does not have a single band with a color table");
+            }
+
+            int ok = 0;
+            band->GetNoDataValue(&ok);
+
+            if(ok || band->GetColorTable()->GetColorEntryCount() > 255)
+            {
+                GDALClose(dsPct);
+                throw tr("The color table must not contain a \"no data\" value and it's size must not exceed 255 colors.");
+            }
+
+            ct = dsPct->GetRasterBand(1)->GetColorTable()->Clone();
+        }
+    }
+    catch(const QString& msg)
+    {
+        delete ct;
+        throw msg;
+    }
+    return ct;
+}
+
+void CApp::saveColorTable(GDALColorTable * ct, QString& sctFilename)
+{
+    if(sctFilename.isEmpty())
+    {
+        return;
+    }
+
+    if(!sctFilename.endsWith(".vrt"))
+    {
+        sctFilename += ".vrt";
+    }
+
+    QByteArray buf = sctFilename.toUtf8();
+    printStdoutQString(tr("Save color table to: %1").arg(buf.data()));
+
+    GDALDriverManager * drvman  = GetGDALDriverManager();
+    GDALDriver * driver         = drvman->GetDriverByName("VRT");
+    GDALDataset * dataset       = driver->Create(sctFilename.toUtf8(), 1, 1, 1, GDT_Byte, {});
+
+    dataset->GetRasterBand(1)->SetColorInterpretation(GCI_PaletteIndex);
+    dataset->GetRasterBand(1)->SetColorTable(ct);
+
+    dataset->FlushCache();
+    GDALClose(dataset);
+}
+
+void CApp::ditherMap(GDALDataset * dsSrc, const QString& tarFilename, GDALColorTable *ct)
+{
+    if(tarFilename.isEmpty())
+    {
+        return;
+    }
+
+    qint32 xsize = dsSrc->GetRasterBand(1)->GetXSize();
+    qint32 ysize = dsSrc->GetRasterBand(1)->GetYSize();
+
+    GDALDriverManager * drvman  = nullptr;
+    GDALDriver * driver         = nullptr;
+    GDALDataset * dataset       = nullptr;
+
+    try
+    {
+        const char * cargs[] = {"TILED=YES","COMPRESS=LZW", 0};
+        drvman  = GetGDALDriverManager();
+        driver  = drvman->GetDriverByName("GTiff");
+        dataset = driver->Create(tarFilename.toUtf8(), xsize, ysize, 1, GDT_Byte, (char**)cargs);
+
+        if(dataset == nullptr)
+        {
+            throw tr("Failed to create target file.");
+        }
+
+        dataset->GetRasterBand(1)->SetColorTable(ct);
+        dataset->GetRasterBand(1)->SetNoDataValue(ct->GetColorEntryCount());
+        dataset->SetProjection(dsSrc->GetProjectionRef());
+
+        double adfGeoTransform[6] = {0};
+        dsSrc->GetGeoTransform(adfGeoTransform);
+        dataset->SetGeoTransform(adfGeoTransform);
+
+        printStdoutQString(tr("Dither source file to target file"));
+        int res = GDALDitherRGB2PCT(dsSrc->GetRasterBand(1),
+                                    dsSrc->GetRasterBand(2),
+                                    dsSrc->GetRasterBand(3),
+                                    dataset->GetRasterBand(1),
+                                    ct,
+                                    GDALTermProgress,
+                                    0
+                                    );
+        if(res != CE_None)
+        {
+            throw tr("Failed to dither file.");
+        }
+
+        if(dsSrc->GetRasterCount() == 3)
+        {
+            return;
+        }
+
+        GDALRasterBand * alpha = dsSrc->GetRasterBand(4);
+        GDALRasterBand * band  = dataset->GetRasterBand(1);
+
+        QByteArray buffer1(xsize, 0);
+        QByteArray buffer2(xsize, 0);
+
+        quint8 nodata = band->GetNoDataValue();
+        printStdoutQString(tr("Apply alpha channel as no data value to target file"));
+        for(int y = 0; y < ysize; y++)
+        {
+            GDALTermProgress(double(xsize * y)/(xsize*ysize),0,0);
+            res = alpha->RasterIO(GF_Read, 0, y, xsize, 1, buffer1.data(), xsize, 1, GDT_Byte, 0, 0);
+            if(res != CE_None)
+            {
+                throw tr("Failed to read from alpha channel.");
+            }
+
+            res = band->RasterIO(GF_Read, 0, y, xsize, 1, buffer2.data(), xsize, 1, GDT_Byte, 0, 0);
+            if(res != CE_None)
+            {
+                throw tr("Failed to read from target file.");
+            }
+
+            for(int x = 0; x < xsize; x++)
+            {
+                if(buffer1[x] != char(0xFF))
+                {
+                    buffer2[x] = nodata;
+                }
+            }
+
+            res = band->RasterIO(GF_Write, 0, y, xsize, 1, buffer2.data(), xsize, 1, GDT_Byte, 0, 0);
+            if(res != CE_None)
+            {
+                throw tr("Failed to write to target file.");
+            }
+        }
+        GDALTermProgress(1.0,0,0);
+    }
+    catch(const QString& msg)
+    {
+        GDALClose(dataset);
+        throw msg;
+    }
+
+    dataset->FlushCache();
+    GDALClose(dataset);
+}
diff --git a/src/qmt_rgb2pct/CApp.h b/src/qmt_rgb2pct/CApp.h
new file mode 100644
index 0000000..e2e0f7c
--- /dev/null
+++ b/src/qmt_rgb2pct/CApp.h
@@ -0,0 +1,55 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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/>.
+
+**********************************************************************************************/
+
+#ifndef CAPP_H
+#define CAPP_H
+
+#include <QtCore>
+#include <gdal.h>
+
+class GDALColorTable;
+class GDALDataset;
+
+class CApp
+{
+    Q_DECLARE_TR_FUNCTIONS(CApp)
+public:
+    CApp(qint32 ncolors, const QString& pctFilename, const QString& sctFilename, const QString& srcFilename, const QString& tarFilename);
+    virtual ~CApp() = default;
+
+    qint32 exec();
+
+private:
+    static GDALColorTable * createColorTable(qint32 ncolors, const QString& pctFilename, GDALDataset *dataset);
+    static void saveColorTable(GDALColorTable *ct, QString &sctFilename);
+    static void ditherMap(GDALDataset * dsSrc, const QString& tarFilename, GDALColorTable *ct);
+
+    qint32 ncolors = 0;
+    QString pctFilename;
+    QString sctFilename;
+    QString srcFilename;
+    QString tarFilename;
+
+    static const GDALColorEntry noColor;
+};
+
+void printStdoutQString(const QString& str);
+void printStderrQString(const QString& str);
+
+#endif //CAPP_H
+
diff --git a/src/qmt_rgb2pct/CMakeLists.txt b/src/qmt_rgb2pct/CMakeLists.txt
new file mode 100644
index 0000000..90ab2a9
--- /dev/null
+++ b/src/qmt_rgb2pct/CMakeLists.txt
@@ -0,0 +1,117 @@
+# Prevent custom commands/targets outputs to be deleted by make clean
+# We need this to prevent .ts files from being deleted with make clean, when
+# UPDATE_TRANSLATIONS=ON
+# WARNING: Only works with Makefile generator.
+set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
+# Find includes in corresponding build directories
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+# Instruct CMake to run moc automatically when needed.
+set(CMAKE_AUTOMOC ON)
+
+###############################################################################################
+# Setup application name and version tags
+###############################################################################################
+
+set(APPLICATION_NAME qmt_rgb2pct)
+set(RGB2PCT_VERSION_MAJOR 1)
+set(RGB2PCT_VERSION_MINOR 0)
+set(RGB2PCT_VERSION_PATCH 0)
+
+add_definitions(
+    -DVER_MAJOR=${RGB2PCT_VERSION_MAJOR}
+    -DVER_MINOR=${RGB2PCT_VERSION_MINOR}
+    -DVER_STEP=${RGB2PCT_VERSION_PATCH}
+    -DVER_TWEAK=${VERSION_SUFFIX}
+    -DAPPLICATION_NAME=${APPLICATION_NAME}
+)
+
+###############################################################################################
+# All source files needed to compile
+###############################################################################################
+set( SRCS
+    main.cpp
+    CApp.cpp
+)
+
+set( HDRS
+    version.h
+    CApp.h
+)
+
+set( UIS
+)
+
+set( RCS
+)
+
+###############################################################################################
+# Some Qt magic
+###############################################################################################
+
+qt5_wrap_ui(UI_HDRS ${UIS})
+qt5_add_resources(RC_SRCS ${RCS})
+
+###############################################################################################
+# Translation related stuff
+###############################################################################################
+translate_ts(${APPLICATION_NAME}_QM_FILES
+    UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
+    UPDATE_OPTIONS "-I${CMAKE_CURRENT_SOURCE_DIR}" "-no-obsolete"
+    SOURCES ${SRCS} ${HDRS} ${UIS}
+    TEMPLATE ${APPLICATION_NAME}
+    TRANSLATION_DIR "locale"
+)
+
+###############################################################################################
+# Build source file and include paths lists
+###############################################################################################
+set(MAININP
+    ${SRCS}
+    ${HDRS}
+    ${UI_HDRS}
+    ${RC_SRCS}
+    ${${APPLICATION_NAME}_QM_FILES}
+    ${${APPLICATION_NAME}_DESKTOP_FILES}
+)
+
+include_directories(
+    SYSTEM # this prevents warnings from non-QMS headers
+    ${CMAKE_BINARY_DIR}
+    ${GDAL_INCLUDE_DIRS}
+    ${PROJ_INCLUDE_DIRS}
+)
+
+if(APPLE)
+     INCLUDE_DIRECTORIES(/System/Library/Frameworks/Foundation.framework)
+     INCLUDE_DIRECTORIES(/System/Library/Frameworks/DiskArbitration.framework)
+endif(APPLE)
+
+
+###############################################################################################
+# Build the executable and define necessary libraries.
+###############################################################################################
+add_executable(${APPLICATION_NAME} WIN32 ${MAININP})
+
+target_link_libraries(${APPLICATION_NAME}
+    Qt5::Core
+    ${GDAL_LIBRARIES}
+    ${PROJ_LIBRARIES}
+)
+
+if(APPLE)
+     target_link_libraries(${APPLICATION_NAME}
+     ${Foundation_LIBRARY}
+     ${DiskArbitration_LIBRARY}
+    )
+endif(APPLE)
+
+
+###############################################################################################
+# Install target related stuff
+###############################################################################################
+install(TARGETS     ${APPLICATION_NAME}                     DESTINATION     ${BIN_INSTALL_DIR})
+
+if (UNIX AND NOT WIN32 AND NOT APPLE)
+    install(FILES   ${${APPLICATION_NAME}_QM_FILES}         DESTINATION     ${DATA_INSTALL_PREFIX}/${APPLICATION_NAME}/translations)
+    install(FILES   ${${APPLICATION_NAME}_DESKTOP_FILES}    DESTINATION     ${XDG_APPS_DIR})
+endif (UNIX AND NOT WIN32 AND NOT APPLE)
diff --git a/src/qmt_rgb2pct/README.md b/src/qmt_rgb2pct/README.md
new file mode 100644
index 0000000..21e6c75
--- /dev/null
+++ b/src/qmt_rgb2pct/README.md
@@ -0,0 +1,5 @@
+This is a sub-project of QMapShack and it's not supposed to compile on it's own. Please refere to
+
+https://bitbucket.org/maproom/qmapshack/overview
+
+to check out and compile this project.
\ No newline at end of file
diff --git a/src/qmt_rgb2pct/locale/qmt_rgb2pct.ts b/src/qmt_rgb2pct/locale/qmt_rgb2pct.ts
new file mode 100644
index 0000000..0290457
--- /dev/null
+++ b/src/qmt_rgb2pct/locale/qmt_rgb2pct.ts
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1">
+<context>
+    <name>CApp</name>
+    <message>
+        <location filename="../CApp.cpp" line="63"/>
+        <source>Failed to open source file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="68"/>
+        <source>Raster band count of source file must be either 3 or 4.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="101"/>
+        <source>Calculate optimal color table from source file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="115"/>
+        <source>Failed to create color table.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="123"/>
+        <source>Failed to open file with palette.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="131"/>
+        <source>Palette file does not have a single band with a color table</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="140"/>
+        <source>The color table must not contain a "no data" value and it's size must not exceed 255 colors.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="167"/>
+        <source>Save color table to: %1</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="203"/>
+        <source>Failed to create target file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="214"/>
+        <source>Dither source file to target file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="225"/>
+        <source>Failed to dither file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="240"/>
+        <source>Apply alpha channel as no data value to target file</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="247"/>
+        <source>Failed to read from alpha channel.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="253"/>
+        <source>Failed to read from target file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="267"/>
+        <source>Failed to write to target file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>
+Convert a map file with RGBA color coding to a color palette coding.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="99"/>
+        <source>Source file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="100"/>
+        <source>Target file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="104"/>
+        <source>Number of colors. (default: 255)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="107"/>
+        <source>Input palette file for color table (*.vrt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="110"/>
+        <source>Save color table to palette file (*.vrt)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="120"/>
+        <source>There must be a source and destination file.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="143"/>
+        <source>--ncolors must be an integer value less than 256</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmt_rgb2pct/locale/qmt_rgb2pct_de.ts b/src/qmt_rgb2pct/locale/qmt_rgb2pct_de.ts
new file mode 100644
index 0000000..9622b8d
--- /dev/null
+++ b/src/qmt_rgb2pct/locale/qmt_rgb2pct_de.ts
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+    <name>CApp</name>
+    <message>
+        <location filename="../CApp.cpp" line="63"/>
+        <source>Failed to open source file.</source>
+        <translation>Konnte Quelldatei nicht öffnen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="68"/>
+        <source>Raster band count of source file must be either 3 or 4.</source>
+        <translation>Die Anzahl der Rasterbänder muss entweder 3 oder 4 sein.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="101"/>
+        <source>Calculate optimal color table from source file</source>
+        <translation>Berechne die optimale Farbtabelle für die Quelldatei</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="115"/>
+        <source>Failed to create color table.</source>
+        <translation>Konnte die Farbtabelle nicht erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="123"/>
+        <source>Failed to open file with palette.</source>
+        <translation>Konnte die Datei mit der Palette nicht öffnen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="131"/>
+        <source>Palette file does not have a single band with a color table</source>
+        <translation>Die Datei mit der Palette hat kein einzelnes Band mit einer Farbtabelle</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="140"/>
+        <source>The color table must not contain a "no data" value and it's size must not exceed 255 colors.</source>
+        <translation>Die Farbtabelle darf keinen Eintrag für "no data" haben und ihre Größe darf nicht 255 Farben überschreiten.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="167"/>
+        <source>Save color table to: %1</source>
+        <translation>Speichere Farbtabelle in: %1</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="203"/>
+        <source>Failed to create target file.</source>
+        <translation>Konnte Zieldatei nicht erstellen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="214"/>
+        <source>Dither source file to target file</source>
+        <translation>Wandle Quelldatei in Zieldatei um</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="225"/>
+        <source>Failed to dither file.</source>
+        <translation>Konnte die Datei nicht umwandeln.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="240"/>
+        <source>Apply alpha channel as no data value to target file</source>
+        <translation>Wandle für die Zieldatei den Alphakanal in "no data" Werte um </translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="247"/>
+        <source>Failed to read from alpha channel.</source>
+        <translation>Konnte den Alphakanal nicht lesen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="253"/>
+        <source>Failed to read from target file.</source>
+        <translation>Konnte die Zieldatei nicht lesen.</translation>
+    </message>
+    <message>
+        <location filename="../CApp.cpp" line="267"/>
+        <source>Failed to write to target file.</source>
+        <translation>Konnte die Zieldatei nicht schreiben.</translation>
+    </message>
+</context>
+<context>
+    <name>main</name>
+    <message>
+        <location filename="../main.cpp" line="96"/>
+        <source>
+Convert a map file with RGBA color coding to a color palette coding.</source>
+        <translation>
+Konvertiert eine Kartendatei mit RGBA Farbschema in eine Kartendatei mit Farbtabelle.</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="99"/>
+        <source>Source file.</source>
+        <translation>Quelldatei.</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="100"/>
+        <source>Target file.</source>
+        <translation>Zieldatei.</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="104"/>
+        <source>Number of colors. (default: 255)</source>
+        <translation>Anzahl an Farben (Vorgabe: 255)</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="107"/>
+        <source>Input palette file for color table (*.vrt)</source>
+        <translation>Datei mit Palette als Vorgabe für die Farbtabelle (*.vrt) </translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="110"/>
+        <source>Save color table to palette file (*.vrt)</source>
+        <translation>Farbtabelle in Datei mit Palette sichern (*.vrt)</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="120"/>
+        <source>There must be a source and destination file.</source>
+        <translation>Es muss eine Quell- und eine Zieldatei angegeben werden.</translation>
+    </message>
+    <message>
+        <location filename="../main.cpp" line="143"/>
+        <source>--ncolors must be an integer value less than 256</source>
+        <translation>--ncolors muss eine ganze Zahl kleiner 256 sein</translation>
+    </message>
+</context>
+</TS>
diff --git a/src/qmt_rgb2pct/main.cpp b/src/qmt_rgb2pct/main.cpp
new file mode 100644
index 0000000..f242161
--- /dev/null
+++ b/src/qmt_rgb2pct/main.cpp
@@ -0,0 +1,155 @@
+/**********************************************************************************************
+    Copyright (C) 2018 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 "CApp.h"
+#include "version.h"
+#include <QtCore>
+
+#ifdef O_OS_OSX
+static QDir getApplicationDir(QString subdir)
+{
+    QDir appDir(QCoreApplication::applicationDirPath());
+    appDir.cdUp();
+    appDir.cd(subdir);
+    return appDir;
+}
+#endif
+static void prepareTranslator(QString translationPath, QString translationPrefix)
+{
+    QString locale = QLocale::system().name();
+    QDir dir(translationPath);
+    if(!QFile::exists(dir.absoluteFilePath(translationPrefix + locale)))
+    {
+        locale = locale.left(2);
+    }
+
+    QCoreApplication* app =  (QCoreApplication*) QCoreApplication::instance();
+    QTranslator *qtTranslator = new QTranslator(app);
+
+    if (qtTranslator->load(translationPrefix + locale, translationPath))
+    {
+        app->installTranslator(qtTranslator);
+    }
+}
+
+static void loadTranslations()
+{
+#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(Q_OS_CYGWIN)
+    QString resourceDir     = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+    QString translationPath = QCoreApplication::applicationDirPath();
+    translationPath.replace(QRegExp("bin$"), "share/" APP_STR "/translations");
+    prepareTranslator(resourceDir, "qt_");
+    prepareTranslator(translationPath, APP_STR "_");
+#endif
+
+#ifdef Q_OS_OSX
+    // os x
+    static QString relTranslationDir = "Resources/translations"; // app
+    QString translationPath = getApplicationDir(relTranslationDir).absolutePath();
+    prepareTranslator(translationPath, "qt_");
+    prepareTranslator(translationPath, APP_STR "_");
+#endif
+
+#ifdef Q_OS_WIN
+    QString apppath = QCoreApplication::applicationDirPath();
+    apppath = apppath.replace("/", "\\");
+    QString appResourceDir = QString("%1\\translations").arg(apppath).toUtf8();
+    prepareTranslator(appResourceDir, "qtbase_");
+    prepareTranslator(appResourceDir, APP_STR "_");
+#endif
+
+}
+
+int main(int argc, char ** argv)
+{
+    QCoreApplication app(argc, argv);
+    QCoreApplication::setApplicationName(APP_STR);
+    QCoreApplication::setApplicationVersion(VER_STR);
+    if(QString(VER_SUFFIX).isEmpty())
+    {
+        QCoreApplication::setApplicationVersion(VER_STR);
+    }
+    else
+    {
+        QCoreApplication::setApplicationVersion(VER_STR "." VER_SUFFIX);
+    }
+
+
+    loadTranslations();
+
+    QCommandLineParser parser;
+    parser.setApplicationDescription(QCoreApplication::translate("main", "\nConvert a map file with RGBA color coding to a color palette coding."));
+    parser.addHelpOption();
+    parser.addVersionOption();
+    parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file."));
+    parser.addPositionalArgument("target", QCoreApplication::translate("main", "Target file."));
+
+    parser.addOptions({
+        {
+            {"n","ncolors"}, QCoreApplication::translate("main", "Number of colors. (default: 255)"), "number", "255"
+        },
+        {
+            {"p","pct"},  QCoreApplication::translate("main", "Input palette file for color table (*.vrt)"), "filename", ""
+        },
+        {
+            {"s","sct"},  QCoreApplication::translate("main", "Save color table to palette file (*.vrt)"), "filename", ""
+        },
+    });
+
+    // Process the actual command line arguments given by the user
+    parser.process(app);
+
+    if(parser.positionalArguments().count() == 1 && parser.value("sct").isEmpty())
+    {
+        printStderrQString("");
+        printStderrQString(QCoreApplication::translate("main","There must be a source and destination file."));
+        printStderrQString("");
+        parser.showHelp(-1);
+    }
+
+    if(parser.positionalArguments().isEmpty())
+    {
+        parser.showHelp(-1);
+    }
+
+    QString srcFilename = parser.positionalArguments()[0];
+    QString tarFilename;
+    if(parser.positionalArguments().count() > 1)
+    {
+        tarFilename = parser.positionalArguments()[1];
+    }
+
+
+    bool ok = false;
+    const qint32 ncolors = parser.value("ncolors").toInt(&ok);
+    if(!ok || ncolors > 255)
+    {
+        printStderrQString("");
+        printStderrQString(QCoreApplication::translate("main","--ncolors must be an integer value less than 256"));
+        printStderrQString("");
+        parser.showHelp(-1);
+    }
+
+    QString pctFilename = parser.value("pct");
+    QString sctFilename = parser.value("sct");
+
+    CApp theApp(ncolors, pctFilename, sctFilename, srcFilename, tarFilename);
+    return theApp.exec();
+}
+
+
diff --git a/src/qmt_rgb2pct/version.h b/src/qmt_rgb2pct/version.h
new file mode 100644
index 0000000..60f94f7
--- /dev/null
+++ b/src/qmt_rgb2pct/version.h
@@ -0,0 +1,33 @@
+/**********************************************************************************************
+    Copyright (C) 2017 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/>.
+
+**********************************************************************************************/
+
+#ifndef VERSION_H
+#define VERSION_H
+
+#ifndef _MKSTR_1
+#define _MKSTR_1(x)    #x
+#define _MKSTR(x)      _MKSTR_1(x)
+#endif
+
+#define VER_STR       _MKSTR(VER_MAJOR) "." _MKSTR (VER_MINOR) "." _MKSTR (VER_STEP)
+#define VER_SUFFIX    _MKSTR(VER_TWEAK)
+#define APP_STR       _MKSTR(APPLICATION_NAME)
+#define WHAT_STR      _MKSTR(APPLICATION_NAME) ", Version " VER_STR
+
+#endif //VERSION_H
+
diff --git a/src/resources.qrc b/src/resources.qrc
deleted file mode 100644
index a58370e..0000000
--- a/src/resources.qrc
+++ /dev/null
@@ -1,595 +0,0 @@
-<RCC>
-    <qresource prefix="/">
-        <file>animation/loader.gif</file>
-        <file>animation/loader2.gif</file>
-        
-        <file>cursors/cursorArrow.png</file>
-        <file>cursors/cursorDelete.png</file>
-        <file>cursors/cursorMove.png</file>
-        <file>cursors/cursorMoveArea.png</file>
-        <file>cursors/cursorMoveLine.png</file>
-        <file>cursors/cursorMoveMap.png</file>
-        <file>cursors/cursorMoveWpt.png</file>
-        <file>cursors/cursorPointAdd.png</file>
-        <file>cursors/cursorPointDel.png</file>
-        <file>cursors/cursorPointMove.png</file>
-        <file>cursors/cursorPrint.png</file>
-        <file>cursors/cursorRadiusWpt.png</file>
-        <file>cursors/cursorSave.png</file>
-        <file>cursors/cursorSelectArea.png</file>
-        <file>cursors/cursorSelectRange.png</file>
-        <file>cursors/wptHighlightBlue.png</file>
-        <file>cursors/wptHighlightRed.png</file>
-        
-        <file>icons/16x16/ActAero.png</file>
-        <file>icons/16x16/ActBike.png</file>
-        <file>icons/16x16/ActCable.png</file>
-        <file>icons/16x16/ActCar.png</file>
-        <file>icons/16x16/ActCycle.png</file>
-        <file>icons/16x16/ActFoot.png</file>
-        <file>icons/16x16/ActNone.png</file>
-        <file>icons/16x16/ActShip.png</file>
-        <file>icons/16x16/ActSki.png</file>
-        <file>icons/16x16/ActSwim.png</file>
-        <file>icons/16x16/ActTrain.png</file>
-        <file>icons/16x16/EditDetails.png</file>
-        
-        <file>icons/32x32/2NavProject.png</file>
-        <file>icons/32x32/A.png</file>
-        <file>icons/32x32/ActAero.png</file>
-        <file>icons/32x32/ActBike.png</file>
-        <file>icons/32x32/ActCable.png</file>
-        <file>icons/32x32/ActCar.png</file>
-        <file>icons/32x32/ActCycle.png</file>
-        <file>icons/32x32/ActFoot.png</file>
-        <file>icons/32x32/ActNone.png</file>
-        <file>icons/32x32/ActShip.png</file>
-        <file>icons/32x32/ActSki.png</file>
-        <file>icons/32x32/ActSwim.png</file>
-        <file>icons/32x32/ActTrain.png</file>
-        <file>icons/32x32/Activity.png</file>
-        <file>icons/32x32/Add.png</file>
-        <file>icons/32x32/AddArea.png</file>
-        <file>icons/32x32/AddImage.png</file>
-        <file>icons/32x32/AddMapWorkspace.png</file>
-        <file>icons/32x32/AddProject.png</file>
-        <file>icons/32x32/AddRte.png</file>
-        <file>icons/32x32/AddTrk.png</file>
-        <file>icons/32x32/AddWpt.png</file>
-        <file>icons/32x32/Apply.png</file>
-        <file>icons/32x32/Area.png</file>
-        <file>icons/32x32/AreaMove.png</file>
-        <file>icons/32x32/AreaOn.png</file>
-        <file>icons/32x32/ArrowDef.png</file>
-        <file>icons/32x32/ArrowUser.png</file>
-        <file>icons/32x32/AutoSave.png</file>
-        <file>icons/32x32/Bubble.png</file>
-        <file>icons/32x32/CSrcATemp.png</file>
-        <file>icons/32x32/CSrcAccel.png</file>
-        <file>icons/32x32/CSrcCAD.png</file>
-        <file>icons/32x32/CSrcCourse.png</file>
-        <file>icons/32x32/CSrcDepth.png</file>
-        <file>icons/32x32/CSrcDistance.png</file>
-        <file>icons/32x32/CSrcElevation.png</file>
-        <file>icons/32x32/CSrcEnergy.png</file>
-        <file>icons/32x32/CSrcHR.png</file>
-        <file>icons/32x32/CSrcSeaLevelPressure.png</file>
-        <file>icons/32x32/CSrcSlope.png</file>
-        <file>icons/32x32/CSrcSolid.png</file>
-        <file>icons/32x32/CSrcSpeed.png</file>
-        <file>icons/32x32/CSrcUnknown.png</file>
-        <file>icons/32x32/CSrcVertSpeed.png</file>
-        <file>icons/32x32/CSrcWTemp.png</file>
-        <file>icons/32x32/Cancel.png</file>
-        <file>icons/32x32/Check.png</file>
-        <file>icons/32x32/CloneMapWorkspace.png</file>
-        <file>icons/32x32/Close.png</file>
-        <file>icons/32x32/Combine.png</file>
-        <file>icons/32x32/Copy.png</file>
-        <file>icons/32x32/CopyTrkWithWpt.png</file>
-        <file>icons/32x32/Cut.png</file>
-        <file>icons/32x32/CutHistoryAfter.png</file>
-        <file>icons/32x32/CutHistoryBefore.png</file>
-        <file>icons/32x32/CutMode1.png</file>
-        <file>icons/32x32/CutMode2.png</file>
-        <file>icons/32x32/DBProject.png</file>
-        <file>icons/32x32/Database.png</file>
-        <file>icons/32x32/DatabaseConvert.png</file>
-        <file>icons/32x32/DatabaseSetup.png</file>
-        <file>icons/32x32/DatabaseSync.png</file>
-        <file>icons/32x32/DelImage.png</file>
-        <file>icons/32x32/DeleteMultiple.png</file>
-        <file>icons/32x32/DeleteOne.png</file>
-        <file>icons/32x32/Device.png</file>
-        <file>icons/32x32/Down.png</file>
-        <file>icons/32x32/EditDetails.png</file>
-        <file>icons/32x32/EditText.png</file>
-        <file>icons/32x32/Empty.png</file>
-        <file>icons/32x32/Error.png</file>
-        <file>icons/32x32/Filter.png</file>
-        <file>icons/32x32/FilterModifyExtension.png</file>
-        <file>icons/32x32/FilterSubPt2Pt.png</file>
-        <file>icons/32x32/FitProject.png</file>
-        <file>icons/32x32/FolderDEM.png</file>
-        <file>icons/32x32/FolderMap.png</file>
-        <file>icons/32x32/Font.png</file>
-        <file>icons/32x32/FromMap.png</file>
-        <file>icons/32x32/FullScreen.png</file>
-        <file>icons/32x32/GpxProject.png</file>
-        <file>icons/32x32/Grid.png</file>
-        <file>icons/32x32/GridSetup.png</file>
-        <file>icons/32x32/GridWizzard.png</file>
-        <file>icons/32x32/Help.png</file>
-        <file>icons/32x32/Image.png</file>
-        <file>icons/32x32/Info.png</file>
-        <file>icons/32x32/Left.png</file>
-        <file>icons/32x32/Limit.png</file>
-        <file>icons/32x32/LimitSys.png</file>
-        <file>icons/32x32/LimitUsr.png</file>
-        <file>icons/32x32/LineMove.png</file>
-        <file>icons/32x32/LineWidthDef.png</file>
-        <file>icons/32x32/LineWidthUser.png</file>
-        <file>icons/32x32/Link.png</file>
-        <file>icons/32x32/LoadGIS.png</file>
-        <file>icons/32x32/LoadView.png</file>
-        <file>icons/32x32/Lock.png</file>
-        <file>icons/32x32/LogProject.png</file>
-        <file>icons/32x32/Map.png</file>
-        <file>icons/32x32/MimeDemVRT.png</file>
-        <file>icons/32x32/MimeGEMF.png</file>
-        <file>icons/32x32/MimeIMG.png</file>
-        <file>icons/32x32/MimeJNX.png</file>
-        <file>icons/32x32/MimeMAP.png</file>
-        <file>icons/32x32/MimeRMAP.png</file>
-        <file>icons/32x32/MimeTMS.png</file>
-        <file>icons/32x32/MimeVRT.png</file>
-        <file>icons/32x32/MimeWMTS.png</file>
-        <file>icons/32x32/MouseWheel.png</file>
-        <file>icons/32x32/Move.png</file>
-        <file>icons/32x32/MoveArrow.png</file>
-        <file>icons/32x32/MySQL.png</file>
-        <file>icons/32x32/MySQLNoConn.png</file>
-        <file>icons/32x32/NightDay.png</file>
-        <file>icons/32x32/NoGo.png</file>
-        <file>icons/32x32/O.png</file>
-        <file>icons/32x32/Off.png</file>
-        <file>icons/32x32/Opacity.png</file>
-        <file>icons/32x32/POIText.png</file>
-        <file>icons/32x32/Paste.png</file>
-        <file>icons/32x32/PasteNormal.png</file>
-        <file>icons/32x32/PastePlain.png</file>
-        <file>icons/32x32/PathBlue.png</file>
-        <file>icons/32x32/PathGreen.png</file>
-        <file>icons/32x32/PathOrange.png</file>
-        <file>icons/32x32/Pattern.png</file>
-        <file>icons/32x32/PointAdd.png</file>
-        <file>icons/32x32/PointDel.png</file>
-        <file>icons/32x32/PointHide.png</file>
-        <file>icons/32x32/PointMove.png</file>
-        <file>icons/32x32/PointShow.png</file>
-        <file>icons/32x32/Print.png</file>
-        <file>icons/32x32/PrintSave.png</file>
-        <file>icons/32x32/ProfileToWindow.png</file>
-        <file>icons/32x32/Progress.png</file>
-        <file>icons/32x32/QMapShack.png</file>
-        <file>icons/32x32/QlbProject.png</file>
-        <file>icons/32x32/QmsProject.png</file>
-        <file>icons/32x32/Redo.png</file>
-        <file>icons/32x32/RegularScreen.png</file>
-        <file>icons/32x32/ReloadImage.png</file>
-        <file>icons/32x32/Reset.png</file>
-        <file>icons/32x32/Reverse.png</file>
-        <file>icons/32x32/Right.png</file>
-        <file>icons/32x32/Route.png</file>
-        <file>icons/32x32/RouteOn.png</file>
-        <file>icons/32x32/RouteSetup.png</file>
-        <file>icons/32x32/RteInstr.png</file>
-        <file>icons/32x32/SQLite.png</file>
-        <file>icons/32x32/SQLiteNoConn.png</file>
-        <file>icons/32x32/Save.png</file>
-        <file>icons/32x32/SaveAllGIS.png</file>
-        <file>icons/32x32/SaveGIS.png</file>
-        <file>icons/32x32/SaveGISAs.png</file>
-        <file>icons/32x32/SaveGISAsGpx11.png</file>
-        <file>icons/32x32/SaveView.png</file>
-        <file>icons/32x32/Scale.png</file>
-        <file>icons/32x32/SearchDatabase.png</file>
-        <file>icons/32x32/SearchGoogle.png</file>
-        <file>icons/32x32/SelectArea.png</file>
-        <file>icons/32x32/SelectColor.png</file>
-        <file>icons/32x32/SelectExactArea.png</file>
-        <file>icons/32x32/SelectIntersectArea.png</file>
-        <file>icons/32x32/SelectRange.png</file>
-        <file>icons/32x32/SetEle.png</file>
-        <file>icons/32x32/SetupCoordFormat.png</file>
-        <file>icons/32x32/SetupMapWorkspace.png</file>
-        <file>icons/32x32/SetupWptSym.png</file>
-        <file>icons/32x32/ShowAll.png</file>
-        <file>icons/32x32/ShowNone.png</file>
-        <file>icons/32x32/SizeArrow.png</file>
-        <file>icons/32x32/SlfProject.png</file>
-        <file>icons/32x32/SmlProject.png</file>
-        <file>icons/32x32/SortName.png</file>
-        <file>icons/32x32/Start.png</file>
-        <file>icons/32x32/Tainted.png</file>
-        <file>icons/32x32/TcxProject.png</file>
-        <file>icons/32x32/Template.png</file>
-        <file>icons/32x32/TextBold.png</file>
-        <file>icons/32x32/TextCenter.png</file>
-        <file>icons/32x32/TextItalic.png</file>
-        <file>icons/32x32/TextJustified.png</file>
-        <file>icons/32x32/TextLeft.png</file>
-        <file>icons/32x32/TextRight.png</file>
-        <file>icons/32x32/TextUnderlined.png</file>
-        <file>icons/32x32/Time.png</file>
-        <file>icons/32x32/TimeZoneSetup.png</file>
-        <file>icons/32x32/ToBottom.png</file>
-        <file>icons/32x32/ToTop.png</file>
-        <file>icons/32x32/ToggleDatabase.png</file>
-        <file>icons/32x32/ToggleDem.png</file>
-        <file>icons/32x32/ToggleDocks.png</file>
-        <file>icons/32x32/ToggleGis.png</file>
-        <file>icons/32x32/ToggleMaps.png</file>
-        <file>icons/32x32/ToggleRouter.png</file>
-        <file>icons/32x32/ToolBar.png</file>
-        <file>icons/32x32/ToolBarSetup.png</file>
-        <file>icons/32x32/ToolTip.png</file>
-        <file>icons/32x32/Track.png</file>
-        <file>icons/32x32/TrackMinMax.png</file>
-        <file>icons/32x32/TrackOn.png</file>
-        <file>icons/32x32/TrkCut.png</file>
-        <file>icons/32x32/TrkProfile.png</file>
-        <file>icons/32x32/UnLock.png</file>
-        <file>icons/32x32/Undo.png</file>
-        <file>icons/32x32/UnitSetup.png</file>
-        <file>icons/32x32/Up.png</file>
-        <file>icons/32x32/V.png</file>
-        <file>icons/32x32/VrtBuilder.png</file>
-        <file>icons/32x32/WaypointOn.png</file>
-        <file>icons/32x32/WptAvoid.png</file>
-        <file>icons/32x32/WptDelProx.png</file>
-        <file>icons/32x32/WptEditProx.png</file>
-        <file>icons/32x32/WptMove.png</file>
-        <file>icons/32x32/WptProj.png</file>
-        <file>icons/32x32/WptProx.png</file>
-        <file>icons/32x32/Zoom.png</file>
-        
-        <file>icons/48x48/2NavProject.png</file>
-        <file>icons/48x48/A.png</file>
-        <file>icons/48x48/ActAero.png</file>
-        <file>icons/48x48/ActBike.png</file>
-        <file>icons/48x48/ActCable.png</file>
-        <file>icons/48x48/ActCar.png</file>
-        <file>icons/48x48/ActCycle.png</file>
-        <file>icons/48x48/ActFoot.png</file>
-        <file>icons/48x48/ActNone.png</file>
-        <file>icons/48x48/ActShip.png</file>
-        <file>icons/48x48/ActSki.png</file>
-        <file>icons/48x48/ActSwim.png</file>
-        <file>icons/48x48/ActTrain.png</file>
-        <file>icons/48x48/Activity.png</file>
-        <file>icons/48x48/Add.png</file>
-        <file>icons/48x48/AddArea.png</file>
-        <file>icons/48x48/AddImage.png</file>
-        <file>icons/48x48/AddMapWorkspace.png</file>
-        <file>icons/48x48/AddProject.png</file>
-        <file>icons/48x48/AddRte.png</file>
-        <file>icons/48x48/AddTrk.png</file>
-        <file>icons/48x48/AddWpt.png</file>
-        <file>icons/48x48/Apply.png</file>
-        <file>icons/48x48/Area.png</file>
-        <file>icons/48x48/AreaMove.png</file>
-        <file>icons/48x48/AreaOn.png</file>
-        <file>icons/48x48/ArrowDef.png</file>
-        <file>icons/48x48/ArrowUser.png</file>
-        <file>icons/48x48/AutoSave.png</file>
-        <file>icons/48x48/Bubble.png</file>
-        <file>icons/48x48/CSrcATemp.png</file>
-        <file>icons/48x48/CSrcAccel.png</file>
-        <file>icons/48x48/CSrcCAD.png</file>
-        <file>icons/48x48/CSrcCourse.png</file>
-        <file>icons/48x48/CSrcDepth.png</file>
-        <file>icons/48x48/CSrcDistance.png</file>
-        <file>icons/48x48/CSrcElevation.png</file>
-        <file>icons/48x48/CSrcEnergy.png</file>
-        <file>icons/48x48/CSrcHR.png</file>
-        <file>icons/48x48/CSrcSeaLevelPressure.png</file>
-        <file>icons/48x48/CSrcSlope.png</file>
-        <file>icons/48x48/CSrcSolid.png</file>
-        <file>icons/48x48/CSrcSpeed.png</file>
-        <file>icons/48x48/CSrcUnknown.png</file>
-        <file>icons/48x48/CSrcVertSpeed.png</file>
-        <file>icons/48x48/CSrcWTemp.png</file>
-        <file>icons/48x48/Cancel.png</file>
-        <file>icons/48x48/Check.png</file>
-        <file>icons/48x48/CloneMapWorkspace.png</file>
-        <file>icons/48x48/Close.png</file>
-        <file>icons/48x48/Combine.png</file>
-        <file>icons/48x48/Copy.png</file>
-        <file>icons/48x48/CopyTrkWithWpt.png</file>
-        <file>icons/48x48/Cut.png</file>
-        <file>icons/48x48/CutHistoryAfter.png</file>
-        <file>icons/48x48/CutHistoryBefore.png</file>
-        <file>icons/48x48/CutMode1.png</file>
-        <file>icons/48x48/CutMode2.png</file>
-        <file>icons/48x48/DBProject.png</file>
-        <file>icons/48x48/Database.png</file>
-        <file>icons/48x48/DatabaseConvert.png</file>
-        <file>icons/48x48/DatabaseSetup.png</file>
-        <file>icons/48x48/DatabaseSync.png</file>
-        <file>icons/48x48/DelImage.png</file>
-        <file>icons/48x48/DeleteMultiple.png</file>
-        <file>icons/48x48/DeleteOne.png</file>
-        <file>icons/48x48/Device.png</file>
-        <file>icons/48x48/Down.png</file>
-        <file>icons/48x48/EditDetails.png</file>
-        <file>icons/48x48/EditText.png</file>
-        <file>icons/48x48/Empty.png</file>
-        <file>icons/48x48/Error.png</file>
-        <file>icons/48x48/Filter.png</file>
-        <file>icons/48x48/FilterModifyExtension.png</file>
-        <file>icons/48x48/FilterSubPt2Pt.png</file>
-        <file>icons/48x48/FitProject.png</file>
-        <file>icons/48x48/FolderDEM.png</file>
-        <file>icons/48x48/FolderMap.png</file>
-        <file>icons/48x48/Font.png</file>
-        <file>icons/48x48/FromMap.png</file>
-        <file>icons/48x48/FullScreen.png</file>
-        <file>icons/48x48/GpxProject.png</file>
-        <file>icons/48x48/Grid.png</file>
-        <file>icons/48x48/GridSetup.png</file>
-        <file>icons/48x48/GridWizzard.png</file>
-        <file>icons/48x48/Help.png</file>
-        <file>icons/48x48/Image.png</file>
-        <file>icons/48x48/Info.png</file>
-        <file>icons/48x48/Left.png</file>
-        <file>icons/48x48/Limit.png</file>
-        <file>icons/48x48/LimitSys.png</file>
-        <file>icons/48x48/LimitUsr.png</file>
-        <file>icons/48x48/LineMove.png</file>
-        <file>icons/48x48/LineWidthDef.png</file>
-        <file>icons/48x48/LineWidthUser.png</file>
-        <file>icons/48x48/Link.png</file>
-        <file>icons/48x48/LoadGIS.png</file>
-        <file>icons/48x48/LoadView.png</file>
-        <file>icons/48x48/Lock.png</file>
-        <file>icons/48x48/LogProject.png</file>
-        <file>icons/48x48/Map.png</file>
-        <file>icons/48x48/MimeDemVRT.png</file>
-        <file>icons/48x48/MimeGEMF.png</file>
-        <file>icons/48x48/MimeIMG.png</file>
-        <file>icons/48x48/MimeJNX.png</file>
-        <file>icons/48x48/MimeMAP.png</file>
-        <file>icons/48x48/MimeRMAP.png</file>
-        <file>icons/48x48/MimeTMS.png</file>
-        <file>icons/48x48/MimeVRT.png</file>
-        <file>icons/48x48/MimeWMTS.png</file>
-        <file>icons/48x48/MouseWheel.png</file>
-        <file>icons/48x48/Move.png</file>
-        <file>icons/48x48/MoveArrow.png</file>
-        <file>icons/48x48/MySQL.png</file>
-        <file>icons/48x48/MySQLNoConn.png</file>
-        <file>icons/48x48/NightDay.png</file>
-        <file>icons/48x48/NoGo.png</file>
-        <file>icons/48x48/O.png</file>
-        <file>icons/48x48/Off.png</file>
-        <file>icons/48x48/Opacity.png</file>
-        <file>icons/48x48/POIText.png</file>
-        <file>icons/48x48/Paste.png</file>
-        <file>icons/48x48/PasteNormal.png</file>
-        <file>icons/48x48/PastePlain.png</file>
-        <file>icons/48x48/PathBlue.png</file>
-        <file>icons/48x48/PathGreen.png</file>
-        <file>icons/48x48/PathOrange.png</file>
-        <file>icons/48x48/Pattern.png</file>
-        <file>icons/48x48/PointAdd.png</file>
-        <file>icons/48x48/PointDel.png</file>
-        <file>icons/48x48/PointHide.png</file>
-        <file>icons/48x48/PointMove.png</file>
-        <file>icons/48x48/PointShow.png</file>
-        <file>icons/48x48/Print.png</file>
-        <file>icons/48x48/PrintSave.png</file>
-        <file>icons/48x48/ProfileToWindow.png</file>
-        <file>icons/48x48/Progress.png</file>
-        <file>icons/48x48/QMapShack.png</file>
-        <file>icons/48x48/QlbProject.png</file>
-        <file>icons/48x48/QmsProject.png</file>
-        <file>icons/48x48/Redo.png</file>
-        <file>icons/48x48/RegularScreen.png</file>
-        <file>icons/48x48/ReloadImage.png</file>
-        <file>icons/48x48/Reset.png</file>
-        <file>icons/48x48/Reverse.png</file>
-        <file>icons/48x48/Right.png</file>
-        <file>icons/48x48/Route.png</file>
-        <file>icons/48x48/RouteOn.png</file>
-        <file>icons/48x48/RouteSetup.png</file>
-        <file>icons/48x48/RteInstr.png</file>
-        <file>icons/48x48/SQLite.png</file>
-        <file>icons/48x48/SQLiteNoConn.png</file>
-        <file>icons/48x48/Save.png</file>
-        <file>icons/48x48/SaveAllGIS.png</file>
-        <file>icons/48x48/SaveGIS.png</file>
-        <file>icons/48x48/SaveGISAs.png</file>
-        <file>icons/48x48/SaveGISAsGpx11.png</file>
-        <file>icons/48x48/SaveView.png</file>
-        <file>icons/48x48/Scale.png</file>
-        <file>icons/48x48/SearchDatabase.png</file>
-        <file>icons/48x48/SearchGoogle.png</file>
-        <file>icons/48x48/SelectArea.png</file>
-        <file>icons/48x48/SelectColor.png</file>
-        <file>icons/48x48/SelectExactArea.png</file>
-        <file>icons/48x48/SelectIntersectArea.png</file>
-        <file>icons/48x48/SelectRange.png</file>
-        <file>icons/48x48/SetEle.png</file>
-        <file>icons/48x48/SetupCoordFormat.png</file>
-        <file>icons/48x48/SetupMapWorkspace.png</file>
-        <file>icons/48x48/SetupWptSym.png</file>
-        <file>icons/48x48/ShowAll.png</file>
-        <file>icons/48x48/ShowNone.png</file>
-        <file>icons/48x48/SizeArrow.png</file>
-        <file>icons/48x48/SlfProject.png</file>
-        <file>icons/48x48/SmlProject.png</file>
-        <file>icons/48x48/SortName.png</file>
-        <file>icons/48x48/Start.png</file>
-        <file>icons/48x48/Tainted.png</file>
-        <file>icons/48x48/TcxProject.png</file>
-        <file>icons/48x48/Template.png</file>
-        <file>icons/48x48/TextBold.png</file>
-        <file>icons/48x48/TextCenter.png</file>
-        <file>icons/48x48/TextItalic.png</file>
-        <file>icons/48x48/TextJustified.png</file>
-        <file>icons/48x48/TextLeft.png</file>
-        <file>icons/48x48/TextRight.png</file>
-        <file>icons/48x48/TextUnderlined.png</file>
-        <file>icons/48x48/Time.png</file>
-        <file>icons/48x48/TimeZoneSetup.png</file>
-        <file>icons/48x48/ToBottom.png</file>
-        <file>icons/48x48/ToTop.png</file>
-        <file>icons/48x48/ToggleDatabase.png</file>
-        <file>icons/48x48/ToggleDem.png</file>
-        <file>icons/48x48/ToggleDocks.png</file>
-        <file>icons/48x48/ToggleGis.png</file>
-        <file>icons/48x48/ToggleMaps.png</file>
-        <file>icons/48x48/ToggleRouter.png</file>
-        <file>icons/48x48/ToolBar.png</file>
-        <file>icons/48x48/ToolBarSetup.png</file>
-        <file>icons/48x48/ToolTip.png</file>
-        <file>icons/48x48/Track.png</file>
-        <file>icons/48x48/TrackMinMax.png</file>
-        <file>icons/48x48/TrackOn.png</file>
-        <file>icons/48x48/TrkCut.png</file>
-        <file>icons/48x48/TrkProfile.png</file>
-        <file>icons/48x48/UnLock.png</file>
-        <file>icons/48x48/Undo.png</file>
-        <file>icons/48x48/UnitSetup.png</file>
-        <file>icons/48x48/Up.png</file>
-        <file>icons/48x48/V.png</file>
-        <file>icons/48x48/VrtBuilder.png</file>
-        <file>icons/48x48/WaypointOn.png</file>
-        <file>icons/48x48/WptAvoid.png</file>
-        <file>icons/48x48/WptEditProx.png</file>
-        <file>icons/48x48/WptMove.png</file>
-        <file>icons/48x48/WptProj.png</file>
-        <file>icons/48x48/WptProx.png</file>
-        <file>icons/48x48/WptDelProx.png</file>
-        <file>icons/48x48/Zoom.png</file>
-        
-        <file>icons/8x8/bullet_black.png</file>
-        <file>icons/8x8/bullet_blue.png</file>
-        <file>icons/8x8/bullet_brown.png</file>
-        <file>icons/8x8/bullet_cyan.png</file>
-        <file>icons/8x8/bullet_dark_blue.png</file>
-        <file>icons/8x8/bullet_dark_cyan.png</file>
-        <file>icons/8x8/bullet_dark_gray.png</file>
-        <file>icons/8x8/bullet_dark_green.png</file>
-        <file>icons/8x8/bullet_dark_magenta.png</file>
-        <file>icons/8x8/bullet_dark_red.png</file>
-        <file>icons/8x8/bullet_dark_yellow.png</file>
-        <file>icons/8x8/bullet_gray.png</file>
-        <file>icons/8x8/bullet_green.png</file>
-        <file>icons/8x8/bullet_magenta.png</file>
-        <file>icons/8x8/bullet_orange.png</file>
-        <file>icons/8x8/bullet_red.png</file>
-        <file>icons/8x8/bullet_white.png</file>
-        <file>icons/8x8/bullet_yellow.png</file>
-        
-        <file>icons/cache/32x32/DistIcon.png</file>
-        <file>icons/cache/32x32/OCMLogo.png</file>
-        <file>icons/cache/32x32/OCMLogoSmall.png</file>
-        <file>icons/cache/32x32/SearchIcon.png</file>
-        <file>icons/cache/32x32/bluepin.png</file>
-        <file>icons/cache/32x32/cito.png</file>
-        <file>icons/cache/32x32/corrected.png</file>
-        <file>icons/cache/32x32/dnf.png</file>
-        <file>icons/cache/32x32/down_icon.png</file>
-        <file>icons/cache/32x32/earth.png</file>
-        <file>icons/cache/32x32/event.png</file>
-        <file>icons/cache/32x32/found.png</file>
-        <file>icons/cache/32x32/ftf.png</file>
-        <file>icons/cache/32x32/greenpin.png</file>
-        <file>icons/cache/32x32/halfstar.png</file>
-        <file>icons/cache/32x32/letterbox.png</file>
-        <file>icons/cache/32x32/log.png</file>
-        <file>icons/cache/32x32/maxicon.png</file>
-        <file>icons/cache/32x32/mega.png</file>
-        <file>icons/cache/32x32/minicon.png</file>
-        <file>icons/cache/32x32/multi.png</file>
-        <file>icons/cache/32x32/needs_maintenance.png</file>
-        <file>icons/cache/32x32/other.png</file>
-        <file>icons/cache/32x32/parking.png</file>
-        <file>icons/cache/32x32/pushpin.png</file>
-        <file>icons/cache/32x32/restore.png</file>
-        <file>icons/cache/32x32/star.png</file>
-        <file>icons/cache/32x32/star_empty.png</file>
-        <file>icons/cache/32x32/traditional.png</file>
-        <file>icons/cache/32x32/trailhead.png</file>
-        <file>icons/cache/32x32/treasure.png</file>
-        <file>icons/cache/32x32/unknown.png</file>
-        <file>icons/cache/32x32/up_icon.png</file>
-        <file>icons/cache/32x32/virtual.png</file>
-        <file>icons/cache/32x32/waypoint-flag-red.png</file>
-        <file>icons/cache/32x32/webcam.png</file>
-        <file>icons/cache/32x32/wherigo.png</file>
-        <file>icons/cache/32x32/write_note.png</file>
-        
-        <file>icons/waypoints/32x32/1stCategory.png</file>
-        <file>icons/waypoints/32x32/2ndCategory.png</file>
-        <file>icons/waypoints/32x32/3rdCategory.png</file>
-        <file>icons/waypoints/32x32/4thCategory.png</file>
-        <file>icons/waypoints/32x32/BoxBlue.png</file>
-        <file>icons/waypoints/32x32/BoxGreen.png</file>
-        <file>icons/waypoints/32x32/BoxRed.png</file>
-        <file>icons/waypoints/32x32/CityCapitol.png</file>
-        <file>icons/waypoints/32x32/CityLarge.png</file>
-        <file>icons/waypoints/32x32/CityMedium.png</file>
-        <file>icons/waypoints/32x32/CitySmall.png</file>
-        <file>icons/waypoints/32x32/Danger.png</file>
-        <file>icons/waypoints/32x32/Default.png</file>
-        <file>icons/waypoints/32x32/DiamondBlue.png</file>
-        <file>icons/waypoints/32x32/DiamondGreen.png</file>
-        <file>icons/waypoints/32x32/DiamondRed.png</file>
-        <file>icons/waypoints/32x32/End.png</file>
-        <file>icons/waypoints/32x32/FirstAid.png</file>
-        <file>icons/waypoints/32x32/FlagBlue.png</file>
-        <file>icons/waypoints/32x32/FlagGreen.png</file>
-        <file>icons/waypoints/32x32/FlagRed.png</file>
-        <file>icons/waypoints/32x32/Food.png</file>
-        <file>icons/waypoints/32x32/Generic.png</file>
-        <file>icons/waypoints/32x32/HorsCategory.png</file>
-        <file>icons/waypoints/32x32/Left.png</file>
-        <file>icons/waypoints/32x32/LeftFork.png</file>
-        <file>icons/waypoints/32x32/MiddleFork.png</file>
-        <file>icons/waypoints/32x32/PinBlue.png</file>
-        <file>icons/waypoints/32x32/PinGreen.png</file>
-        <file>icons/waypoints/32x32/PinRed.png</file>
-        <file>icons/waypoints/32x32/Residence.png</file>
-        <file>icons/waypoints/32x32/Right.png</file>
-        <file>icons/waypoints/32x32/RightFork.png</file>
-        <file>icons/waypoints/32x32/SharpLeft.png</file>
-        <file>icons/waypoints/32x32/SharpRight.png</file>
-        <file>icons/waypoints/32x32/SlightLeft.png</file>
-        <file>icons/waypoints/32x32/SlightRight.png</file>
-        <file>icons/waypoints/32x32/Sprint.png</file>
-        <file>icons/waypoints/32x32/Start.png</file>
-        <file>icons/waypoints/32x32/Straight.png</file>
-        <file>icons/waypoints/32x32/Summit.png</file>
-        <file>icons/waypoints/32x32/UTurn.png</file>
-        <file>icons/waypoints/32x32/Valley.png</file>
-        <file>icons/waypoints/32x32/Water.png</file>
-        <file>icons/waypoints/32x32/Waypoint.png</file>
-        
-        <file>map/OSM_Topo.tms</file>
-        <file>map/OpenCycleMap.tms</file>
-        <file>map/OpenStreetMap.tms</file>
-        <file>map/WorldSat.wmts</file>
-        <file>map/WorldTopo.wmts</file>
-        
-        <file>pics/about.png</file>
-        <file>pics/compass.png</file>
-        <file>pics/noMap256x256.png</file>
-        <file>pics/splash.png</file>
-        <file>pics/timezones.png</file>
-        
-        <file>templates/Hiking_Tour_Summary.ui</file>
-    </qresource>
-</RCC>
diff --git a/src/setup/CAppSetupWin.cpp b/src/setup/CAppSetupWin.cpp
deleted file mode 100644
index 3bd17dc..0000000
--- a/src/setup/CAppSetupWin.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/**********************************************************************************************
-   Copyright (C) 2015 Ivo Kronenberg
-
-   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 "CAppSetupWin.h"
-#include "config.h"
-
-
-void CAppSetupWin::initQMapShack()
-{
-    // setup environment variables for GDAL/Proj4
-    QString apppath = QCoreApplication::applicationDirPath();
-    apppath = apppath.replace("/", "\\");
-    QString gdalDir = QString("%1\\data").arg(apppath);
-    QString projDir = QString("%1\\share").arg(apppath);
-
-    qunsetenv("GDAL_DRIVER_PATH");
-    IAppSetup::prepareGdal(gdalDir, projDir);
-
-    QString appResourceDir = QString("%1\\translations").arg(apppath).toUtf8();
-    prepareTranslator(appResourceDir, "qtbase_");
-    prepareTranslator(appResourceDir, "qmapshack_");
-
-    path = qgetenv("PATH");
-    //reset PATH to avoid that wrong .dll's are loaded
-    qputenv("PATH", "");
-
-    // create directories
-    IAppSetup::path(defaultCachePath(), 0, true, "CACHE");
-    IAppSetup::path(userDataPath("WaypointIcons"), 0, true, "USER DATA");
-    IAppSetup::path(logDir(), 0, true, "LOG");
-}
-
-
-QString CAppSetupWin::routinoPath(QString xmlFile)
-{
-    QString apppath = QCoreApplication::applicationDirPath();
-    apppath = apppath.replace("/", "\\");
-    QDir dirXml(QString("%1\\routino-xml").arg(apppath).toUtf8());
-    return IAppSetup::path(dirXml.absolutePath(), xmlFile, false, "ROUTINO");
-}
-
-
-QString CAppSetupWin::defaultCachePath()
-{
-    return IAppSetup::path(QDir::home().absolutePath(), ".QMapShack/", false, 0);
-}
-
-
-QString CAppSetupWin::userDataPath(QString subdir)
-{
-    QString path = QDir::home().absoluteFilePath(CONFIGDIR);
-    return IAppSetup::path(path, subdir, false, 0);
-}
-
-
-QString CAppSetupWin::logDir()
-{
-    return QDir::temp().absolutePath();
-}
-
-QString CAppSetupWin::findExecutable(const QString &name)
-{
-    qputenv("PATH",path);
-    return QStandardPaths::findExecutable(name);
-    qputenv("PATH","");
-}
diff --git a/src/tool/CMapVrtBuilder.cpp b/src/tool/CMapVrtBuilder.cpp
deleted file mode 100644
index c6fca0a..0000000
--- a/src/tool/CMapVrtBuilder.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-/**********************************************************************************************
-    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 "CMapVrtBuilder.h"
-#include "helpers/CSettings.h"
-
-#include <QtWidgets>
-
-CMapVrtBuilder::CMapVrtBuilder(QWidget *parent)
-    : IToolShell(parent)
-{
-    setupUi(this);
-    setTextBrowser(textBrowser);
-    setObjectName(tr("Build GDAL VRT"));
-
-    connect(toolSourceFiles, &QToolButton::clicked, this, &CMapVrtBuilder::slotSelectSourceFiles);
-    connect(toolTargetFile,  &QToolButton::clicked, this, &CMapVrtBuilder::slotSelectTargetFile);
-    connect(pushStart,       &QPushButton::clicked, this, &CMapVrtBuilder::slotStart);
-    connect(labelHelpGDAL,   &QLabel::linkActivated,this, &CMapVrtBuilder::slotLinkActivated);
-
-    pushStart->setDisabled(true);
-
-    SETTINGS;
-    cfg.beginGroup("VrtBuilder");
-    groupAdvancedOptions->setChecked(cfg.value("AdvancedOptions", false).toBool());
-    lineASrs->setText(cfg.value("a_srs", "").toString());
-    lineSrcNoData->setText(cfg.value("srcndata", "").toString());
-    lineVrtNoData->setText(cfg.value("vrtndata", "").toString());
-    cfg.endGroup();
-}
-
-CMapVrtBuilder::~CMapVrtBuilder()
-{
-    SETTINGS;
-    cfg.beginGroup("VrtBuilder");
-    cfg.setValue("AdvancedOptions", groupAdvancedOptions->isChecked());
-    cfg.setValue("a_srs", lineASrs->text());
-    cfg.setValue("srcndata", lineSrcNoData->text());
-    cfg.setValue("vrtndata", lineVrtNoData->text());
-    cfg.endGroup();
-}
-
-void CMapVrtBuilder::slotSelectSourceFiles()
-{
-    SETTINGS;
-    QString path = cfg.value("VrtBuilder/sourcePath",QDir::homePath()).toString();
-
-    QStringList files = QFileDialog::getOpenFileNames(this, tr("Select files..."), path);
-    if(files.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(files.first());
-    path = fi.absolutePath();
-    cfg.setValue("VrtBuilder/sourcePath", path);
-
-    listWidget->clear();
-    for(const QString &file : files)
-    {
-        new QListWidgetItem(QIcon("://icons/32x32/Map.png"), file, listWidget);
-    }
-
-    enableStartButton();
-}
-
-void CMapVrtBuilder::slotSelectTargetFile()
-{
-    SETTINGS;
-    QString path = cfg.value("VrtBuilder/targetPath",QDir::homePath()).toString();
-
-    QString file = QFileDialog::getSaveFileName(this, tr("Select target file..."), path, "GDAL vrt (*.vrt)");
-    if(file.isEmpty())
-    {
-        return;
-    }
-
-    QFileInfo fi(file);
-    path = fi.absolutePath();
-    cfg.setValue("VrtBuilder/targetPath", path);
-
-    if(fi.suffix().toLower() != "vrt")
-    {
-        file += ".vrt";
-    }
-
-    labelTargetFilename->setText(file);
-
-    enableStartButton();
-}
-
-void CMapVrtBuilder::enableStartButton()
-{
-    pushStart->setEnabled(listWidget->count() > 0 && labelTargetFilename->text() != "-");
-}
-
-void CMapVrtBuilder::slotStart()
-{
-    pushStart->setDisabled(true);
-
-    QStringList args;
-
-    if(groupAdvancedOptions->isChecked())
-    {
-        if(!lineASrs->text().isEmpty())
-        {
-            args << "-a_srs" << lineASrs->text();
-        }
-
-        if(!lineSrcNoData->text().isEmpty())
-        {
-            args << "-srcnodata" << lineSrcNoData->text();
-        }
-
-        if(!lineVrtNoData->text().isEmpty())
-        {
-            args << "-vrtnodata" << lineVrtNoData->text();
-        }
-    }
-
-    args << labelTargetFilename->text();
-
-    for(const QListWidgetItem * item : listWidget->findItems("*", Qt::MatchWildcard))
-    {
-        args << item->text();
-    }
-
-    stdOut("gdalbuildvrt " +  args.join(" ") + "\n");
-    cmd.start("gdalbuildvrt", args);
-}
-
-void CMapVrtBuilder::finished(int exitCode, QProcess::ExitStatus status)
-{
-    textBrowser->setTextColor(Qt::darkGreen);
-    textBrowser->append(tr("!!! done !!!\n"));
-    pushStart->setEnabled(true);
-}
-
-void CMapVrtBuilder::slotLinkActivated(const QUrl& url)
-{
-    QDesktopServices::openUrl(url);
-}
diff --git a/src/tool/CMapVrtBuilder.h b/src/tool/CMapVrtBuilder.h
deleted file mode 100644
index 98e845f..0000000
--- a/src/tool/CMapVrtBuilder.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef CMAPVRTBUILDER_H
-#define CMAPVRTBUILDER_H
-
-#include "tool/IToolShell.h"
-#include "ui_IMapVrtBuilder.h"
-#include <QWidget>
-
-class CMapVrtBuilder : public IToolShell, private Ui::IMapVrtBuilder
-{
-    Q_OBJECT
-public:
-    CMapVrtBuilder(QWidget * parent);
-    virtual ~CMapVrtBuilder();
-
-private slots:
-    void slotSelectSourceFiles();
-    void slotSelectTargetFile();
-    void slotStart();
-    void slotLinkActivated(const QUrl& url);
-
-private:
-    void finished(int exitCode, QProcess::ExitStatus status) override;
-    void enableStartButton();
-};
-
-#endif //CMAPVRTBUILDER_H
-
diff --git a/src/tool/IMapVrtBuilder.ui b/src/tool/IMapVrtBuilder.ui
deleted file mode 100644
index 8cb80bb..0000000
--- a/src/tool/IMapVrtBuilder.ui
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IMapVrtBuilder</class>
- <widget class="QWidget" name="IMapVrtBuilder">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>980</width>
-    <height>616</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Form</string>
-  </property>
-  <layout class="QGridLayout" name="gridLayout">
-   <item row="3" column="1">
-    <widget class="QPushButton" name="pushStart">
-     <property name="text">
-      <string>Start</string>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="0">
-    <widget class="QGroupBox" name="groupAdvancedOptions">
-     <property name="title">
-      <string>Advanced Options</string>
-     </property>
-     <property name="checkable">
-      <bool>true</bool>
-     </property>
-     <property name="checked">
-      <bool>false</bool>
-     </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <item row="2" column="0">
-       <widget class="QLabel" name="label_3">
-        <property name="text">
-         <string>Source No Data (-srcnodata)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="label_5">
-        <property name="text">
-         <string>Target No Data (-vrtnodata)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QLineEdit" name="lineVrtNoData"/>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="text">
-         <string>Target Projection (-a_srs)</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" colspan="2">
-       <widget class="QLabel" name="labelHelpGDAL">
-        <property name="text">
-         <string>These options are for particular cases and usually you would like to leave blank.See GDAL <a href='http://www.gdal.org/gdalbuildvrt.html'>Help</a> for more information.</string>
-        </property>
-        <property name="wordWrap">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QLineEdit" name="lineSrcNoData">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="lineASrs">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item row="3" column="0">
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QToolButton" name="toolTargetFile">
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../resources.qrc">
-         <normaloff>:/icons/32x32/PathBlue.png</normaloff>:/icons/32x32/PathBlue.png</iconset>
-       </property>
-       <property name="iconSize">
-        <size>
-         <width>22</width>
-         <height>22</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string>Target Filename:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="labelTargetFilename">
-       <property name="text">
-        <string>-</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="0" column="0">
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QToolButton" name="toolSourceFiles">
-       <property name="text">
-        <string>...</string>
-       </property>
-       <property name="icon">
-        <iconset resource="../resources.qrc">
-         <normaloff>:/icons/32x32/PathGreen.png</normaloff>:/icons/32x32/PathGreen.png</iconset>
-       </property>
-       <property name="iconSize">
-        <size>
-         <width>22</width>
-         <height>22</height>
-        </size>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_4">
-       <property name="text">
-        <string>Select source files:</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="0">
-    <widget class="QListWidget" name="listWidget">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-    </widget>
-   </item>
-   <item row="2" column="1">
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
-      <widget class="QLabel" name="label_7">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Maximum" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-       <property name="pixmap">
-        <pixmap resource="../resources.qrc">:/icons/48x48/Help.png</pixmap>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QLabel" name="label_8">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="text">
-        <string><ol>
-<li>Select one or multiple source files.</li>
-<li>Select a file name for the target VRT file.</li>
-<li>Press "Start" button.</li>
-</ol>
-
-Tip:
-<ul>
-<li>If you have several files place them in a subfolder of your map path. Create the VRT file in your map path.</li>
-<li>Use the advanced options to add a "no data" value if your source files do not have one and do not form a rectangular map. Areas with no map file will become transparent.</li>
-<li>The "-a_srs" option is intended to assign a Projection/Datum when the source file lacks it. This does NOT re-project the data.</li>
-</ul></string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-       </property>
-       <property name="wordWrap">
-        <bool>true</bool>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="1" column="1">
-    <widget class="QTextBrowser" name="textBrowser"/>
-   </item>
-  </layout>
- </widget>
- <resources>
-  <include location="../resources.qrc"/>
- </resources>
- <connections/>
-</ui>
diff --git a/src/units/CUnitsSetup.cpp b/src/units/CUnitsSetup.cpp
deleted file mode 100644
index afb6bdb..0000000
--- a/src/units/CUnitsSetup.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/**********************************************************************************************
-    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 "CMainWindow.h"
-#include "units/CUnitsSetup.h"
-#include "units/IUnit.h"
-
-CUnitsSetup::CUnitsSetup(QWidget *parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-
-    switch(IUnit::self().type)
-    {
-    case IUnit::eTypeMetric:
-        radioMetric->setChecked(true);
-        break;
-
-    case IUnit::eTypeImperial:
-        radioImperial->setChecked(true);
-        break;
-
-    case IUnit::eTypeNautic:
-        radioNautic->setChecked(true);
-        break;
-    }
-
-    switch(IUnit::getSlopeMode())
-    {
-    case IUnit::eSlopeDegrees:
-        radioDegrees->setChecked(true);
-        break;
-
-    case IUnit::eSlopePercent:
-        radioPercent->setChecked(true);
-        break;
-    }
-}
-
-void CUnitsSetup::accept()
-{
-    if(radioMetric->isChecked())
-    {
-        IUnit::setUnitType(IUnit::eTypeMetric, &CMainWindow::self());
-    }
-    else if(radioImperial->isChecked())
-    {
-        IUnit::setUnitType(IUnit::eTypeImperial, &CMainWindow::self());
-    }
-    else if(radioNautic->isChecked())
-    {
-        IUnit::setUnitType(IUnit::eTypeNautic, &CMainWindow::self());
-    }
-
-    if(radioDegrees->isChecked())
-    {
-        IUnit::setSlopeMode(IUnit::eSlopeDegrees);
-    }
-    else if(radioPercent->isChecked())
-    {
-        IUnit::setSlopeMode(IUnit::eSlopePercent);
-    }
-    QDialog::accept();
-}
diff --git a/src/units/IUnit.cpp b/src/units/IUnit.cpp
deleted file mode 100644
index 795e08f..0000000
--- a/src/units/IUnit.cpp
+++ /dev/null
@@ -1,806 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2008 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 2 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, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
-
-**********************************************************************************************/
-#include "CMainWindow.h"
-#include "GeoMath.h"
-#include "units/CUnitImperial.h"
-#include "units/CUnitMetric.h"
-#include "units/CUnitNautic.h"
-
-#include <QtWidgets>
-#include <proj_api.h>
-const IUnit * IUnit::m_self = nullptr;
-
-const QPointF NOPOINTF(NOFLOAT, NOFLOAT);
-const QPoint NOPOINT (NOINT, NOINT);
-
-IUnit::tz_mode_e IUnit::timeZoneMode = IUnit::eTZUtc;
-IUnit::coord_format_e IUnit::coordFormat = IUnit::eCoordFormat1;
-QByteArray IUnit::timeZone = "UTC";
-bool IUnit::useShortFormat = false;
-
-IUnit::slope_mode_e IUnit::slopeMode = IUnit::eSlopeDegrees;
-
-const char * IUnit::tblTimezone[] =
-{
-    "Africa/Abidjan",
-    "Africa/Accra",
-    "Africa/Addis_Ababa",
-    "Africa/Algiers",
-    "Africa/Asmara",
-    "Africa/Bamako",
-    "Africa/Bangui",
-    "Africa/Banjul",
-    "Africa/Bissau",
-    "Africa/Blantyre",
-    "Africa/Brazzaville",
-    "Africa/Bujumbura",
-    "Africa/Cairo",
-    "Africa/Casablanca",
-    "Africa/Conakry",
-    "Africa/Dakar",
-    "Africa/Dar_es_Salaam",
-    "Africa/Djibouti",
-    "Africa/Douala",
-    "Africa/El_Aaiun",
-    "Africa/Freetown",
-    "Africa/Gaborone",
-    "Africa/Harare",
-    "Africa/Johannesburg",
-    "Africa/Kampala",
-    "Africa/Khartoum",
-    "Africa/Kigali",
-    "Africa/Kinshasa",
-    "Africa/Lagos",
-    "Africa/Libreville",
-    "Africa/Lome",
-    "Africa/Luanda",
-    "Africa/Lubumbashi",
-    "Africa/Lusaka",
-    "Africa/Malabo",
-    "Africa/Maputo",
-    "Africa/Maseru",
-    "Africa/Mbabane",
-    "Africa/Mogadishu",
-    "Africa/Monrovia",
-    "Africa/Nairobi",
-    "Africa/Ndjamena",
-    "Africa/Niamey",
-    "Africa/Nouakchott",
-    "Africa/Ouagadougou",
-    "Africa/Porto-Novo",
-    "Africa/Sao_Tome",
-    "Africa/Tripoli",
-    "Africa/Tunis",
-    "Africa/Windhoek",
-    "America/Adak",
-    "America/Anguilla",
-    "America/Antigua",
-    "America/Araguaina",
-    "America/Argentina/Buenos_Aires",
-    "America/Argentina/Catamarca",
-    "America/Argentina/Cordoba",
-    "America/Argentina/Jujuy",
-    "America/Argentina/La_Rioja",
-    "America/Argentina/Mendoza",
-    "America/Argentina/Rio_Gallegos",
-    "America/Argentina/San_Juan",
-    "America/Argentina/San_Luis",
-    "America/Argentina/Tucuman",
-    "America/Argentina/Ushuaia",
-    "America/Aruba",
-    "America/Asuncion",
-    "America/Atikokan",
-    "America/Bahia",
-    "America/Barbados",
-    "America/Belem",
-    "America/Belize",
-    "America/Blanc-Sablon",
-    "America/Boa_Vista",
-    "America/Bogota",
-    "America/Boise",
-    "America/Cambridge_Bay",
-    "America/Campo_Grande",
-    "America/Cancun",
-    "America/Caracas",
-    "America/Cayenne",
-    "America/Cayman",
-    "America/Chicago",
-    "America/Chihuahua",
-    "America/Coral_Harbour",
-    "America/Costa_Rica",
-    "America/Cuiaba",
-    "America/Curacao",
-    "America/Dawson",
-    "America/Dawson_Creek",
-    "America/Denver",
-    "America/Dominica",
-    "America/Edmonton",
-    "America/Eirunepe",
-    "America/El_Salvador",
-    "America/Fortaleza",
-    "America/Glace_Bay",
-    "America/Goose_Bay",
-    "America/Grand_Turk",
-    "America/Grenada",
-    "America/Guadeloupe",
-    "America/Guatemala",
-    "America/Guayaquil",
-    "America/Guyana",
-    "America/Halifax",
-    "America/Havana",
-    "America/Hermosillo",
-    "America/Indiana/Indianapolis",
-    "America/Indiana/Knox",
-    "America/Indiana/Marengo",
-    "America/Indiana/Petersburg",
-    "America/Indiana/Vevay",
-    "America/Indiana/Vincennes",
-    "America/Indiana/Winamac",
-    "America/Inuvik",
-    "America/Iqaluit",
-    "America/Jamaica",
-    "America/Juneau",
-    "America/Kentucky/Louisville",
-    "America/Kentucky/Monticello",
-    "America/La_Paz",
-    "America/Lima",
-    "America/Los_Angeles",
-    "America/Maceio",
-    "America/Managua",
-    "America/Manaus",
-    "America/Marigot",
-    "America/Martinique",
-    "America/Mazatlan",
-    "America/Menominee",
-    "America/Merida",
-    "America/Mexico_City",
-    "America/Miquelon",
-    "America/Moncton",
-    "America/Monterrey",
-    "America/Montevideo",
-    "America/Montreal",
-    "America/Montserrat",
-    "America/Nassau",
-    "America/New_York",
-    "America/Nipigon",
-    "America/Noronha",
-    "America/North_Dakota/Center",
-    "America/North_Dakota/Salem",
-    "America/Panama",
-    "America/Pangnirtung",
-    "America/Paramaribo",
-    "America/Phoenix",
-    "America/Port-au-Prince",
-    "America/Port_of_Spain",
-    "America/Porto_Velho",
-    "America/Puerto_Rico",
-    "America/Rainy_River",
-    "America/Rankin_Inlet",
-    "America/Recife",
-    "America/Regina",
-    "America/Resolute",
-    "America/Rio_Branco",
-    "America/Santarem",
-    "America/Santiago",
-    "America/Santo_Domingo",
-    "America/Sao_Paulo",
-    "America/St_Barthelemy",
-    "America/St_Johns",
-    "America/St_Kitts",
-    "America/St_Lucia",
-    "America/St_Thomas",
-    "America/St_Vincent",
-    "America/Tegucigalpa",
-    "America/Thunder_Bay",
-    "America/Tijuana",
-    "America/Toronto",
-    "America/Tortola",
-    "America/Vancouver",
-    "America/Whitehorse",
-    "America/Winnipeg",
-    "America/Yellowknife",
-    "Ameriica/Swift_Current",
-    "Arctic/Longyearbyen",
-    "Asia/Aden",
-    "Asia/Almaty",
-    "Asia/Amman",
-    "Asia/Anadyr",
-    "Asia/Aqtau",
-    "Asia/Aqtobe",
-    "Asia/Ashgabat",
-    "Asia/Baghdad",
-    "Asia/Bahrain",
-    "Asia/Baku",
-    "Asia/Bangkok",
-    "Asia/Beirut",
-    "Asia/Bishkek",
-    "Asia/Brunei",
-    "Asia/Choibalsan",
-    "Asia/Chongqing",
-    "Asia/Colombo",
-    "Asia/Damascus",
-    "Asia/Dhaka",
-    "Asia/Dili",
-    "Asia/Dubai",
-    "Asia/Dushanbe",
-    "Asia/Gaza",
-    "Asia/Harbin",
-    "Asia/Ho_Chi_Minh",
-    "Asia/Hong_Kong",
-    "Asia/Hovd",
-    "Asia/Irkutsk",
-    "Asia/Jakarta",
-    "Asia/Jayapura",
-    "Asia/Jerusalem",
-    "Asia/Kabul",
-    "Asia/Kamchatka",
-    "Asia/Karachi",
-    "Asia/Kashgar",
-    "Asia/Katmandu",
-    "Asia/Kolkata",
-    "Asia/Krasnoyarsk",
-    "Asia/Kuala_Lumpur",
-    "Asia/Kuching",
-    "Asia/Kuwait",
-    "Asia/Macau",
-    "Asia/Magadan",
-    "Asia/Makassar",
-    "Asia/Manila",
-    "Asia/Muscat",
-    "Asia/Nicosia",
-    "Asia/Novosibirsk",
-    "Asia/Omsk",
-    "Asia/Oral",
-    "Asia/Phnom_Penh",
-    "Asia/Pontianak",
-    "Asia/Pyongyang",
-    "Asia/Qatar",
-    "Asia/Qyzylorda",
-    "Asia/Rangoon",
-    "Asia/Riyadh",
-    "Asia/Sakhalin",
-    "Asia/Samarkand",
-    "Asia/Seoul",
-    "Asia/Shanghai",
-    "Asia/Singapore",
-    "Asia/Taipei",
-    "Asia/Tashkent",
-    "Asia/Tbilisi",
-    "Asia/Tehran",
-    "Asia/Thimphu",
-    "Asia/Tokyo",
-    "Asia/Ulaanbaatar",
-    "Asia/Urumqi",
-    "Asia/Vientiane",
-    "Asia/Vladivostok",
-    "Asia/Yakutsk",
-    "Asia/Yekaterinburg",
-    "Asia/Yerevan",
-    "Atlantic/Azores",
-    "Atlantic/Bermuda",
-    "Atlantic/Canary",
-    "Atlantic/Cape_Verde",
-    "Atlantic/Faroe",
-    "Atlantic/Madeira",
-    "Atlantic/Reykjavik",
-    "Atlantic/South_Georgia",
-    "Atlantic/St_Helena",
-    "Atlantic/Stanley",
-    "Australia/Adelaide",
-    "Australia/Brisbane",
-    "Australia/Broken_Hill",
-    "Australia/Currie",
-    "Australia/Darwin",
-    "Australia/Eucla",
-    "Australia/Hobart",
-    "Australia/Lindeman",
-    "Australia/Lord_Howe",
-    "Australia/Melbourne",
-    "Australia/Perth",
-    "Australia/Sydney",
-    "Europe/Amsterdam",
-    "Europe/Andorra",
-    "Europe/Athens",
-    "Europe/Belgrade",
-    "Europe/Berlin",
-    "Europe/Bratislava",
-    "Europe/Brussels",
-    "Europe/Bucharest",
-    "Europe/Budapest",
-    "Europe/Chisinau",
-    "Europe/Copenhagen",
-    "Europe/Dublin",
-    "Europe/Gibraltar",
-    "Europe/Guernsey",
-    "Europe/Helsinki",
-    "Europe/Isle_of_Man",
-    "Europe/Istanbul",
-    "Europe/Jersey",
-    "Europe/Kaliningrad",
-    "Europe/Kiev",
-    "Europe/Lisbon",
-    "Europe/Ljubljana",
-    "Europe/London",
-    "Europe/Luxembourg",
-    "Europe/Madrid",
-    "Europe/Malta",
-    "Europe/Marienhamn",
-    "Europe/Minsk",
-    "Europe/Monaco",
-    "Europe/Moscow",
-    "Europe/Oslo",
-    "Europe/Paris",
-    "Europe/Podgorica",
-    "Europe/Prague",
-    "Europe/Riga",
-    "Europe/Rome",
-    "Europe/Samara",
-    "Europe/San_Marino",
-    "Europe/Sarajevo",
-    "Europe/Simferopol",
-    "Europe/Skopje",
-    "Europe/Sofia",
-    "Europe/Stockholm",
-    "Europe/Tallinn",
-    "Europe/Tirane",
-    "Europe/Uzhgorod",
-    "Europe/Vaduz",
-    "Europe/Vatican",
-    "Europe/Vienna",
-    "Europe/Vilnius",
-    "Europe/Volgograd",
-    "Europe/Warsaw",
-    "Europe/Zagreb",
-    "Europe/Zaporozhye",
-    "Europe/Zurich",
-    "Indian/Antananarivo",
-    "Indian/Chagos",
-    "Indian/Christmas",
-    "Indian/Cocos",
-    "Indian/Comoro",
-    "Indian/Kerguelen",
-    "Indian/Mahe",
-    "Indian/Maldives",
-    "Indian/Mauritius",
-    "Indian/Mayotte",
-    "Indian/Reunion",
-    "Pacific/Apia",
-    "Pacific/Auckland",
-    "Pacific/Chatham",
-    "Pacific/Easter",
-    "Pacific/Efate",
-    "Pacific/Enderbury",
-    "Pacific/Fakaofo",
-    "Pacific/Fiji",
-    "Pacific/Funafuti",
-    "Pacific/Galapagos",
-    "Pacific/Gambier",
-    "Pacific/Guadalcanal",
-    "Pacific/Guam",
-    "Pacific/Honolulu",
-    "Pacific/Johnston",
-    "Pacific/Kiritimati",
-    "Pacific/Kosrae",
-    "Pacific/Kwajalein",
-    "Pacific/Majuro",
-    "Pacific/Marquesas",
-    "Pacific/Midway",
-    "Pacific/Nauru",
-    "Pacific/Niue",
-    "Pacific/Norfolk",
-    "Pacific/Noumea",
-    "Pacific/Pago_Pago",
-    "Pacific/Palau",
-    "Pacific/Pitcairn",
-    "Pacific/Ponape",
-    "Pacific/Port_Moresby",
-    "Pacific/Rarotonga",
-    "Pacific/Saipan",
-    "Pacific/Tahiti",
-    "Pacific/Tarawa",
-    "Pacific/Tongatapu",
-    "Pacific/Truk",
-    "Pacific/Wake",
-    "Pacific/Wallis",
-    0
-};
-
-const int N_TIMEZONES = sizeof(IUnit::tblTimezone)/sizeof(const char*);
-
-const QRegExp IUnit::reCoord1("^\\s*([N|S]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s+([E|W|O]){1}\\W*([0-9]+)\\W*([0-9]+\\.[0-9]+)\\s*$");
-
-const QRegExp IUnit::reCoord2("^\\s*([N|S]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s+([E|W|O]){1}\\s*([0-9]+\\.[0-9]+)\\W*\\s*$");
-
-const QRegExp IUnit::reCoord3("^\\s*([-0-9]+\\.[0-9]+)\\s+([-0-9]+\\.[0-9]+)\\s*$");
-
-const QRegExp IUnit::reCoord4("^\\s*([N|S]){1}\\s*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*([E|W|O]){1}\\W*([0-9]+)\\W+([0-9]+)\\W+([0-9]+\\.[0-9]+)\\W*\\s*$");
-
-const QRegExp IUnit::reCoord5("^\\s*([-0-9]+\\.[0-9]+)([N|S])\\s+([-0-9]+\\.[0-9]+)([W|E])\\s*$");
-
-IUnit::IUnit(const type_e &type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject * parent)
-    : QObject(parent)
-    , type(type)
-    , baseunit(baseunit)
-    , basefactor(basefactor)
-    , speedunit(speedunit)
-    , speedfactor(speedfactor)
-{
-    //there can be only one...
-    delete m_self;
-    m_self = this;
-}
-
-void IUnit::slope2string(qreal slope, QString &val, QString &unit)
-{
-    switch(slopeMode)
-    {
-    case eSlopeDegrees:
-        val.sprintf("%.1f", slope);
-        unit = "°";
-        break;
-
-    case eSlopePercent:
-        val.sprintf("%.0f", qTan(qDegreesToRadians(slope))*100.0);
-        unit = "%";
-        break;
-    }
-}
-
-void IUnit::slope2unit(qreal slope, qreal &val, QString &unit)
-{
-    switch(slopeMode)
-    {
-    case eSlopeDegrees:
-        val = slope;
-        unit = "°";
-        break;
-
-    case eSlopePercent:
-        val = qTan(qDegreesToRadians(slope))*100.0;
-        unit = "%";
-        break;
-    }
-}
-
-void IUnit::setUnitType(type_e t, QObject * parent)
-{
-    switch(t)
-    {
-    case eTypeMetric:
-        new CUnitMetric(parent);
-        break;
-
-    case eTypeImperial:
-        new CUnitImperial(parent);
-        break;
-
-    case eTypeNautic:
-        new CUnitNautic(parent);
-        break;
-    }
-
-    QSettings cfg;
-    cfg.setValue("Units/type",t);
-}
-
-void IUnit::meter2speed(qreal meter, QString& val, QString& unit) const
-{
-    val.sprintf("%2.2f",meter * speedfactor);
-    unit = speedunit;
-}
-
-void IUnit::seconds2time(quint32 ttime, QString& val, QString& unit) const
-{
-    QTime time(0,0,0);
-    quint32 days  = ttime / 86400;
-
-    time = time.addSecs(ttime);
-
-    if(days)
-    {
-        val = QString("%1:").arg(days) + time.toString("HH:mm:ss");
-        unit = "d";
-    }
-    else
-    {
-        val = time.toString("HH:mm:ss");
-        unit = "h";
-    }
-}
-
-bool IUnit::parseTimestamp(const QString &time, QDateTime &datetime)
-{
-    int tzoffset;
-    datetime = parseTimestamp(time, tzoffset);
-
-    return datetime.isValid();
-}
-
-
-QDateTime IUnit::parseTimestamp(const QString &timetext, int& tzoffset)
-{
-    const QRegExp tzRE("[-+]\\d\\d:\\d\\d$");
-    int i;
-
-    tzoffset = 0;
-    bool applyTzOffset = false;
-
-    QString format = "yyyy-MM-dd'T'hh:mm:ss";
-
-    i = timetext.indexOf(".");
-    if (i != NOIDX)
-    {
-        if(timetext[i+1] == '0')
-        {
-            format += ".zzz";
-        }
-        else
-        {
-            format += ".z";
-        }
-    }
-
-    // trailing "Z" explicitly declares the timestamp to be UTC
-    if (timetext.indexOf("Z") != NOIDX)
-    {
-        format += "'Z'";
-        applyTzOffset = true;
-    }
-
-    else if ((i = tzRE.indexIn(timetext)) != NOIDX)
-    {
-        // trailing timezone offset [-+]HH:MM present
-        // This does not match the original intentions of the GPX
-        // file format but appears to be found occasionally in
-        // the wild.  Try our best parsing it.
-
-        // add the literal string to the format so fromString()
-        // will succeed
-        format += "'";
-        format += timetext.right(6);
-        format += "'";
-
-        // calculate the offset
-        int offsetHours(timetext.mid(i + 1, 2).toUInt());
-        int offsetMinutes(timetext.mid(i + 4, 2).toUInt());
-        if (timetext[i] == '-')
-        {
-            tzoffset = -(60 * offsetHours + offsetMinutes);
-        }
-        else
-        {
-            tzoffset = 60 * offsetHours + offsetMinutes;
-        }
-        tzoffset *= 60;          // seconds
-        applyTzOffset = true;
-    }
-
-    QDateTime datetime = QDateTime::fromString(timetext, format);
-
-    if (applyTzOffset)
-    {
-        datetime.setOffsetFromUtc(tzoffset);
-    }
-    else
-    {   // if timetext has no 'Z' and no [-+]HH:MM then this is local time then simply switch to UTC without applying any offset
-        datetime = datetime.toUTC();
-    }
-
-    return datetime;
-}
-
-QString IUnit::datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos)
-{
-    QTimeZone tz;
-
-    tz_mode_e tmpMode = (pos != NOPOINTF) ? timeZoneMode : eTZLocal;
-
-    switch(tmpMode)
-    {
-    case eTZUtc:
-        tz = QTimeZone("UTC");
-        break;
-
-    case eTZLocal:
-        tz = QTimeZone(QTimeZone::systemTimeZoneId());
-        break;
-
-    case eTZAuto:
-        tz = QTimeZone(pos2timezone(pos));
-        break;
-
-    case eTZSelected:
-        tz = QTimeZone(timeZone);
-        break;
-    }
-
-    QDateTime tmp = time.toTimeZone(tz);
-    return tmp.toString((shortDate|useShortFormat) ? Qt::ISODate : Qt::SystemLocaleLongDate);
-}
-
-QByteArray IUnit::pos2timezone(const QPointF& pos)
-{
-    static QImage imgTimezone = QPixmap(":/pics/timezones.png").toImage();
-
-    int x = qRound(2048.0 / 360.0 * (180.0 + pos.x() * RAD_TO_DEG));
-    int y = qRound(1024.0 / 180.0 * (90.0  - pos.y() * RAD_TO_DEG));
-
-    QRgb rgb = imgTimezone.pixel(x,y);
-
-    if(qRed(rgb) == 0 && qGreen(rgb) == 0)
-    {
-        return "UTC";
-    }
-
-    int tz = ((qRed(rgb) & 248) << 1) + ((qGreen(rgb) >> 4) & 15);
-    if(tz >= N_TIMEZONES)
-    {
-        return 0;
-    }
-
-    return tblTimezone[tz];
-}
-
-void IUnit::degToStr(const qreal& x, const qreal& y, QString& str)
-{
-    switch(coordFormat)
-    {
-    case eCoordFormat1:
-    {
-        qint32 degN,degE;
-        qreal minN,minE;
-
-        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
-        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
-
-        const QString &lat = signLat ? "S" : "N";
-        const QString &lng = signLon ? "W" : "E";
-        str.sprintf("%s%02d° %06.3f %s%03d° %06.3f",lat.toUtf8().data(),qAbs(degN),minN,lng.toUtf8().data(),qAbs(degE),minE);
-        break;
-    }
-
-    case eCoordFormat2:
-    {
-        const QString &lat = (y < 0) ? "S" : "N";
-        const QString &lng = (x < 0) ? "W" : "E";
-        str.sprintf("%s%02.6f° %s%03.6f°",lat.toUtf8().data(),qAbs(y),lng.toUtf8().data(),qAbs(x));
-        break;
-    }
-
-    case eCoordFormat3:
-    {
-        qint32 degN,degE;
-        qreal minN,minE;
-
-        bool signLat = GPS_Math_Deg_To_DegMin(y, &degN, &minN);
-        bool signLon = GPS_Math_Deg_To_DegMin(x, &degE, &minE);
-
-        qreal secN = (minN - qFloor(minN)) * 60;
-        qreal secE = (minE - qFloor(minE)) * 60;
-
-        const QString &lat = signLat ? "S" : "N";
-        const QString &lng = signLon ? "W" : "E";
-        str.sprintf("%s%02d° %02d' %02.2f'' %s%03d° %02d' %02.2f''",lat.toUtf8().data(),qAbs(degN),qFloor(minN),secN,lng.toUtf8().data(),qAbs(degE),qFloor(minE),secE);
-        break;
-    }
-    }
-}
-
-bool IUnit::strToDeg(const QString& str, qreal& lon, qreal& lat)
-{
-    if(reCoord2.exactMatch(str))
-    {
-        bool signLat    = reCoord2.cap(1) == "S";
-        qreal absLat    = reCoord2.cap(2).toDouble();
-        lat = signLat ? -absLat : absLat;
-
-        bool signLon    = reCoord2.cap(3) == "W";
-        qreal absLon    = reCoord2.cap(4).toDouble();
-        lon = signLon ? -absLon : absLon;
-    }
-    else if(reCoord1.exactMatch(str))
-    {
-        bool signLat    = reCoord1.cap(1) == "S";
-        int degLat      = reCoord1.cap(2).toInt();
-        qreal minLat    = reCoord1.cap(3).toDouble();
-
-        GPS_Math_DegMin_To_Deg(signLat, degLat, minLat, lat);
-
-        bool signLon    = reCoord1.cap(4) == "W";
-        int degLon      = reCoord1.cap(5).toInt();
-        qreal minLon    = reCoord1.cap(6).toDouble();
-
-        GPS_Math_DegMin_To_Deg(signLon, degLon, minLon, lon);
-    }
-    else if(reCoord3.exactMatch(str))
-    {
-        lat             = reCoord3.cap(1).toDouble();
-        lon             = reCoord3.cap(2).toDouble();
-    }
-    else if(reCoord4.exactMatch(str))
-    {
-        bool signLat    = reCoord4.cap(1) == "S";
-        int degLat      = reCoord4.cap(2).toInt();
-        int minLat      = reCoord4.cap(3).toInt();
-        qreal secLat    = reCoord4.cap(4).toFloat();
-
-        GPS_Math_DegMinSec_To_Deg(signLat, degLat, minLat, secLat, lat);
-
-        bool signLon    = reCoord4.cap(5) == "W";
-        int degLon      = reCoord4.cap(6).toInt();
-        int minLon      = reCoord4.cap(7).toInt();
-        qreal secLon    = reCoord4.cap(8).toFloat();
-
-        GPS_Math_DegMinSec_To_Deg(signLon, degLon, minLon, secLon, lon);
-    }
-    else if(reCoord5.exactMatch(str))
-    {
-        bool signLon    = reCoord4.cap(4) == "W";
-        bool signLat    = reCoord4.cap(2) == "S";
-        lat             = reCoord5.cap(1).toDouble();
-        lon             = reCoord5.cap(3).toDouble();
-
-        if(signLon)
-        {
-            lon = -lon;
-        }
-        if(signLat)
-        {
-            lat = -lat;
-        }
-    }
-    else
-    {
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(),tr("Error"),tr("Bad position format. Must be: \"[N|S] ddd mm.sss [W|E] ddd mm.sss\" or \"[N|S] ddd.ddd [W|E] ddd.ddd\""),QMessageBox::Ok,QMessageBox::NoButton);
-        return false;
-    }
-
-    if(fabs(lon) > 180.0 || fabs(lat) > 90.0)
-    {
-        QMessageBox::warning(CMainWindow::getBestWidgetForParent(),tr("Error"),tr("Position values out of bounds. "),QMessageBox::Ok,QMessageBox::NoButton);
-        return false;
-    }
-
-    return true;
-}
-
-bool IUnit::isValidCoordString(const QString& str)
-{
-    if(reCoord1.exactMatch(str))
-    {
-        return true;
-    }
-    else if(reCoord2.exactMatch(str))
-    {
-        return true;
-    }
-    else if(reCoord3.exactMatch(str))
-    {
-        return true;
-    }
-    else if(reCoord4.exactMatch(str))
-    {
-        return true;
-    }
-    else if(reCoord5.exactMatch(str))
-    {
-        return true;
-    }
-    return false;
-}
diff --git a/src/units/IUnit.h b/src/units/IUnit.h
deleted file mode 100644
index 9b4a876..0000000
--- a/src/units/IUnit.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2008 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 2 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, write to the Free Software
-    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA
-
-**********************************************************************************************/
-#ifndef IUNIT_H
-#define IUNIT_H
-#include <QObject>
-#include <QTimeZone>
-
-
-#define NOFLOAT 1000000000000.0
-#define NOINT   0x7FFFFFFF
-#define NOTIME  0xFFFFFFFF
-#define NOIDX   (-1)
-
-extern const QPointF NOPOINTF;
-extern const QPoint NOPOINT;
-
-class IUnit : public QObject
-{
-    Q_OBJECT
-public:
-    virtual ~IUnit() = default;
-
-    static const IUnit& self()
-    {
-        return *m_self;
-    }
-
-    /// convert meter of elevation into a value and unit string
-    virtual void meter2elevation(qreal meter, QString& val, QString& unit) const = 0;
-    /// convert meter of distance into a value and unit string
-    virtual void meter2distance(qreal meter, QString& val, QString& unit) const = 0;
-    /// convert meter per second to a speed value string and unit label
-    virtual void meter2speed(qreal meter, QString& val, QString& unit) const;
-    /// convert square meter to string and unit label
-    virtual void meter2area(qreal meter, QString& val, QString& unit) const = 0;
-    /// convert seconds to a timespan of days, hours, minutes and seconds
-    virtual void seconds2time(quint32 ttime, QString& val, QString& unit) const;
-    /// convert an elevation string to a float
-    virtual qreal elevation2meter(const QString& val) const = 0;
-    /// convert a range in meter into a scale and a matching unit
-    virtual void meter2unit(qreal meter, qreal& scale, QString&  unit) const  = 0;
-
-
-    enum type_e {eTypeMetric, eTypeImperial, eTypeNautic};
-    /// instantiate the correct unit object
-    static void setUnitType(type_e t, QObject * parent);
-
-    enum slope_mode_e {eSlopePercent, eSlopeDegrees};
-    static void setSlopeMode(slope_mode_e mode)
-    {
-        slopeMode = mode;
-    }
-    static enum slope_mode_e getSlopeMode()
-    {
-        return slopeMode;
-    }
-    static void slope2string(qreal slope, QString& val, QString& unit);
-    static void slope2unit(qreal slope, qreal& val, QString& unit);
-
-    /// parse a string for a timestamp
-    static bool parseTimestamp(const QString &time, QDateTime &datetime);
-
-    /**
-       @brief Convert date time object to string using the current timezone configuration
-
-
-       @param time          the date/time object
-       @param shortDate     set true to get a short ISO time string
-       @param pos           optional a position attached to the date/time object [rad]
-       @return              A time string.
-     */
-    static QString datetime2string(const QDateTime& time, bool shortDate, const QPointF& pos = NOPOINTF);
-
-    /// find the timezone setup by position
-    static QByteArray pos2timezone(const QPointF& pos);
-
-    const type_e type;
-    const QString baseunit;
-    const qreal basefactor;
-    const QString speedunit;
-    const qreal speedfactor;
-    static const char *tblTimezone[];
-
-    enum tz_mode_e
-    {
-        eTZUtc
-        ,eTZLocal
-        ,eTZAuto
-        ,eTZSelected
-    };
-
-    static void getTimeZoneSetup(tz_mode_e& mode, QByteArray& zone, bool& format)
-    {
-        mode   = timeZoneMode;
-        zone   = timeZone;
-        format = useShortFormat;
-    }
-
-    static void setTimeZoneSetup(tz_mode_e mode, const QByteArray& zone, bool format)
-    {
-        timeZoneMode   = mode;
-        timeZone       = zone;
-        useShortFormat = format;
-    }
-
-    enum coord_format_e
-    {
-        eCoordFormat1
-        ,eCoordFormat2
-        ,eCoordFormat3
-    };
-
-    static enum coord_format_e getCoordFormat()
-    {
-        return coordFormat;
-    }
-
-    static void setCoordFormat(const coord_format_e format)
-    {
-        coordFormat = format;
-    }
-
-    static void degToStr(const qreal& x, const qreal& y, QString& str);
-
-    static bool strToDeg(const QString& str, qreal& lon, qreal& lat);
-
-    static bool isValidCoordString(const QString& str);
-
-protected:
-    IUnit(const type_e& type, const QString& baseunit, const qreal basefactor, const QString& speedunit, const qreal speedfactor, QObject *parent);
-
-    static slope_mode_e slopeMode;
-
-    static QDateTime parseTimestamp(const QString &timetext, int& tzoffset);
-
-    static tz_mode_e timeZoneMode;
-    static QByteArray timeZone;
-    static bool useShortFormat;
-
-    static coord_format_e coordFormat;
-
-private:
-    static const IUnit * m_self;
-
-    static const QRegExp reCoord1;
-    static const QRegExp reCoord2;
-    static const QRegExp reCoord3;
-    static const QRegExp reCoord4;
-    static const QRegExp reCoord5;
-};
-#endif //IUNIT_H
diff --git a/src/units/IUnitsSetup.ui b/src/units/IUnitsSetup.ui
deleted file mode 100644
index e5fa9f6..0000000
--- a/src/units/IUnitsSetup.ui
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>IUnitsSetup</class>
- <widget class="QDialog" name="IUnitsSetup">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>269</width>
-    <height>229</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Setup units...</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QTabWidget" name="tabWidget">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-       <horstretch>0</horstretch>
-       <verstretch>1</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="currentIndex">
-      <number>0</number>
-     </property>
-     <property name="documentMode">
-      <bool>false</bool>
-     </property>
-     <property name="tabBarAutoHide">
-      <bool>false</bool>
-     </property>
-     <widget class="QWidget" name="tabLength">
-      <attribute name="title">
-       <string>Length unit</string>
-      </attribute>
-      <widget class="QRadioButton" name="radioNautic">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>0</y>
-         <width>343</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Nautic</string>
-       </property>
-      </widget>
-      <widget class="QRadioButton" name="radioImperial">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>20</y>
-         <width>343</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Imperial</string>
-       </property>
-      </widget>
-      <widget class="QRadioButton" name="radioMetric">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>40</y>
-         <width>343</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Metric</string>
-       </property>
-      </widget>
-     </widget>
-     <widget class="QWidget" name="tabSlope">
-      <attribute name="title">
-       <string>Slope unit</string>
-      </attribute>
-      <widget class="QRadioButton" name="radioDegrees">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>10</y>
-         <width>343</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Degrees (°)</string>
-       </property>
-      </widget>
-      <widget class="QRadioButton" name="radioPercent">
-       <property name="geometry">
-        <rect>
-         <x>10</x>
-         <y>30</y>
-         <width>343</width>
-         <height>20</height>
-        </rect>
-       </property>
-       <property name="text">
-        <string>Percent (%)</string>
-       </property>
-      </widget>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>7</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <widget class="QLabel" name="label">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="text">
-      <string><b>Note:</b> For some GUI elements changing the units will not take effect until you restart QMapShack.</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-    </widget>
-   </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>IUnitsSetup</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>IUnitsSetup</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/version.h b/src/version.h
deleted file mode 100644
index 7958441..0000000
--- a/src/version.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/**********************************************************************************************
-    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/>.
-
-**********************************************************************************************/
-
-#ifndef VERSION_H
-#define VERSION_H
-
-#ifndef _MKSTR_1
-#define _MKSTR_1(x)    #x
-#define _MKSTR(x)      _MKSTR_1(x)
-#endif
-
-#define VER_STR       _MKSTR(VER_MAJOR) "." _MKSTR (VER_MINOR) "." _MKSTR (VER_STEP)
-#define WHAT_STR      _MKSTR(APPLICATION_NAME) ", Version " VER_STR
-
-#endif //VERSION_H
-
diff --git a/src/widgets/CColorChooser.cpp b/src/widgets/CColorChooser.cpp
deleted file mode 100644
index 7619e7f..0000000
--- a/src/widgets/CColorChooser.cpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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 "gis/IGisItem.h"
-#include "widgets/CColorChooser.h"
-
-#include <QtWidgets>
-#include <functional>
-
-using std::bind;
-
-CColorChooser::CColorChooser(QToolButton *parent)
-    : QDialog(parent)
-    , parentButton(parent)
-{
-    setupUi(this);
-    setWindowFlags(Qt::ToolTip);
-
-    for(quint32 i = 0; i < IGisItem::colorMapSize; i++)
-    {
-        QPixmap pixmap(16,16);
-        pixmap.fill(IGisItem::colorMap[i].color);
-
-        QToolButton * button = new QToolButton(this);
-        button->setToolButtonStyle(Qt::ToolButtonIconOnly);
-        button->setAutoRaise(true);
-        button->setIcon(QIcon(pixmap));
-        button->setProperty("color", IGisItem::colorMap[i].color.name());
-        horizontalLayout->addWidget(button);
-
-        auto selectFunc = bind(&CColorChooser::slotSelect, this, button);
-        connect(button, &QToolButton::clicked, this, selectFunc);
-    }
-
-    QToolButton * butEsc = new QToolButton(this);
-    butEsc->setText(tr("Esc."));
-    butEsc->setAutoRaise(true);
-    horizontalLayout->addWidget(butEsc);
-    connect(butEsc, &QToolButton::clicked, this, &CColorChooser::reject);
-
-    adjustSize();
-}
-
-void CColorChooser::slotSelect(QToolButton * button)
-{
-    parentButton->setIcon(button->icon());
-    parentButton->setProperty("color", button->property("color"));
-    accept();
-}
diff --git a/src/widgets/CColorChooser.h b/src/widgets/CColorChooser.h
deleted file mode 100644
index df8c262..0000000
--- a/src/widgets/CColorChooser.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2016 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/>.
-
-**********************************************************************************************/
-
-#ifndef CCOLORCHOOSER_H
-#define CCOLORCHOOSER_H
-
-#include "ui_IColorChooser.h"
-#include <QDialog>
-
-class QToolButton;
-
-class CColorChooser : public QDialog, private Ui::IColorChooser
-{
-    Q_OBJECT
-public:
-    CColorChooser(QToolButton * parent);
-    virtual ~CColorChooser() = default;
-
-private slots:
-    void slotSelect(QToolButton * button);
-
-private:
-    QToolButton* parentButton;
-};
-
-#endif //CCOLORCHOOSER_H
-
diff --git a/src/widgets/CSelectDoubleListWidget.cpp b/src/widgets/CSelectDoubleListWidget.cpp
deleted file mode 100644
index ddcf517..0000000
--- a/src/widgets/CSelectDoubleListWidget.cpp
+++ /dev/null
@@ -1,262 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-**********************************************************************************************/
-
-#include "CSelectDoubleListWidget.h"
-#include <QListWidgetItem>
-
-CSelectDoubleListWidget::CSelectDoubleListWidget(QWidget * parent, IItemFilter *filter) : QWidget(parent), filter(filter)
-{
-    setupUi(this);
-
-    connect(listSelected,  &QListView::clicked,   this, &CSelectDoubleListWidget::slotSelectedClicked);
-    connect(listAvailable, &QListView::clicked,   this, &CSelectDoubleListWidget::slotAvailableClicked);
-    connect(toolAdd,       &QToolButton::clicked, this, &CSelectDoubleListWidget::slotAdd);
-    connect(toolRemove,    &QToolButton::clicked, this, &CSelectDoubleListWidget::slotRemove);
-    connect(toolUp,        &QToolButton::clicked, this, &CSelectDoubleListWidget::slotUp);
-    connect(toolDown,      &QToolButton::clicked, this, &CSelectDoubleListWidget::slotDown);
-}
-
-CSelectDoubleListWidget::~CSelectDoubleListWidget()
-{
-}
-
-void CSelectDoubleListWidget::setAvailable(const QList<QListWidgetItem *> & available)
-{
-    this->available.clear();
-    this->available << available;
-    listAvailable->clear();
-    for (QListWidgetItem * const & item : available)
-    {
-        int index = listSelected->row(item);
-        if (index < 0)
-        {
-            listAvailable->addItem(item);
-        }
-        else if(filter != nullptr && !filter->shouldBeMoved(item))
-        {
-            listSelected->takeItem(index);
-            listSelected->insertItem(index,item->clone());
-            listAvailable->addItem(item);
-        }
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::setSelected(const QList<QListWidgetItem *> & selected) const
-{
-    listSelected->clear();
-    for (QListWidgetItem * const & item : selected)
-    {
-        int index = listAvailable->row(item);
-        if (index < 0)
-        {
-            listSelected->addItem(item);
-        }
-        else
-        {
-            if(filter == nullptr || filter->shouldBeMoved(item))
-            {
-                listAvailable->takeItem(index);
-                listSelected->addItem(item);
-            }
-            else
-            {
-                listSelected->addItem(item->clone());
-            }
-        }
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::setFilter(IItemFilter * const & filter)
-{
-    this->filter = filter;
-}
-
-void CSelectDoubleListWidget::setLabelAvailable(const QString & label) const
-{
-    labelAvailable->setText(label);
-}
-
-void CSelectDoubleListWidget::setLabelSelected(const QString & label) const
-{
-    labelSelected->setText(label);
-}
-
-const QList<QListWidgetItem *> CSelectDoubleListWidget::selected() const
-{
-    QList<QListWidgetItem *> selected;
-    for (int i=0; i < listSelected->count(); i++)
-    {
-        selected << listSelected->item(i);
-    }
-    return selected;
-}
-
-void CSelectDoubleListWidget::clear()
-{
-    this->available.clear();
-    listAvailable->clear();
-    listSelected->clear();
-}
-
-void CSelectDoubleListWidget::slotSelectedClicked(const QModelIndex & index) const
-{
-    listAvailable->clearSelection();
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::slotAvailableClicked(const QModelIndex & index) const
-{
-    listSelected->clearSelection();
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::slotAdd() const
-{
-    for (QListWidgetItem * const & item : listAvailable->selectedItems())
-    {
-        if (filter == nullptr || filter->shouldBeMoved(item))
-        {
-            listAvailable->takeItem(listAvailable->row(item));
-            listSelected->addItem(item);
-        }
-        else
-        {
-            listSelected->addItem(item->clone());
-        }
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::slotRemove() const
-{
-    for (QListWidgetItem * const & item : listSelected->selectedItems())
-    {
-        if (filter == nullptr || filter->shouldBeMoved(item))
-        {
-            int index = -1;
-            for (int i = available.indexOf(item)-1; i>=0; i--)
-            {
-                index = listAvailable->row(available.at(i));
-                if (index >= 0)
-                {
-                    break;
-                }
-            }
-            index++;
-            listSelected->takeItem(listSelected->row(item));
-            listAvailable->insertItem(index,item);
-        }
-        else
-        {
-            delete listSelected->takeItem(listSelected->row(item));
-        }
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::slotUp() const
-{
-    QList<int> indices;
-    for (const QModelIndex & modelIndex : listSelected->selectionModel()->selectedIndexes())
-    {
-        indices << modelIndex.row();
-    }
-    std::sort(indices.begin(),indices.end());
-
-    int i=0;
-    for (int index : indices)
-    {
-        if (index > i)
-        {
-            listSelected->insertItem(index-1,listSelected->takeItem(index));
-            listSelected->setCurrentRow(index-1,QItemSelectionModel::Select);
-        }
-        i++;
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::slotDown() const
-{
-    QList<int> indices;
-    for (const QModelIndex & modelIndex : listSelected->selectionModel()->selectedIndexes())
-    {
-        indices << modelIndex.row();
-    }
-    std::sort(indices.begin(), indices.end(), [] (int a, int b) { return a > b; });
-
-    int i=listSelected->count()-1;
-    for (int index : indices)
-    {
-        if (index < i)
-        {
-            listSelected->insertItem(index+1,listSelected->takeItem(index));
-            listSelected->setCurrentRow(index+1,QItemSelectionModel::Select);
-        }
-        i--;
-    }
-    updateButtons();
-}
-
-void CSelectDoubleListWidget::updateButtons() const
-{
-    toolAdd->setEnabled(listAvailable->selectionModel()->hasSelection());
-
-    const QItemSelectionModel * const & selectedSelectionModel = listSelected->selectionModel();
-    if (selectedSelectionModel->hasSelection())
-    {
-        toolRemove->setEnabled(true);
-
-        int minSelected = listSelected->count();
-        int maxSelected = -1;
-        int minUnselected = minSelected;
-        int maxUnselected = -1;
-
-        for (int i = 0; i < listSelected->count(); i++)
-        {
-            if (selectedSelectionModel->isRowSelected(i, QModelIndex()))
-            {
-                if (i < minSelected)
-                {
-                    minSelected = i;
-                }
-                maxSelected = i;
-            }
-            else
-            {
-                if (i < minUnselected)
-                {
-                    minUnselected = i;
-                }
-                maxUnselected = i;
-            }
-        }
-
-        toolUp->setEnabled(minUnselected < maxSelected);
-        toolDown->setEnabled(maxUnselected > minSelected);
-    }
-    else
-    {
-        toolRemove->setEnabled(false);
-        toolUp->setEnabled(false);
-        toolDown->setEnabled(false);
-    }
-}
diff --git a/src/widgets/CSelectDoubleListWidget.h b/src/widgets/CSelectDoubleListWidget.h
deleted file mode 100644
index bf501da..0000000
--- a/src/widgets/CSelectDoubleListWidget.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 Norbert Truchsess norbert.truchsess at t-online.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 2 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, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-**********************************************************************************************/
-
-#ifndef CSELECTDOUBLELISTWIDGET_H
-#define CSELECTDOUBLELISTWIDGET_H
-
-#include "ui_ISelectDoubleListWidget.h"
-
-class CSelectDoubleListWidget : public QWidget, private Ui::ISelectDoubleListWidget
-{
-    Q_OBJECT
-public:
-    class IItemFilter
-    {
-public:
-        virtual bool shouldBeMoved(QListWidgetItem * item) = 0;
-    };
-
-    CSelectDoubleListWidget(QWidget *parent, IItemFilter *filter = nullptr);
-    virtual ~CSelectDoubleListWidget();
-
-    void setAvailable(const QList<QListWidgetItem *> &available);
-    void setSelected(const QList<QListWidgetItem *> &selected) const;
-    void setLabelAvailable(const QString & label) const;
-    void setLabelSelected(const QString & label) const;
-    void setFilter(IItemFilter * const &filter);
-    const QList<QListWidgetItem *> selected() const;
-    void clear();
-
-private slots:
-    void slotSelectedClicked(const QModelIndex & index) const;
-    void slotAvailableClicked(const QModelIndex & index) const;
-    void slotAdd() const;
-    void slotRemove() const;
-    void slotUp() const;
-    void slotDown() const;
-
-private:
-    void updateButtons() const;
-
-    QList<QListWidgetItem *> available;
-    IItemFilter * filter;
-};
-#endif //CSELECTDOUBLELISTWIDGET_H
diff --git a/src/widgets/CTemplateWidget.cpp b/src/widgets/CTemplateWidget.cpp
deleted file mode 100644
index f22512e..0000000
--- a/src/widgets/CTemplateWidget.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/**********************************************************************************************
-    Copyright (C) 2017 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 "helpers/CSettings.h"
-#include "widgets/CTemplateWidget.h"
-
-#include <QtGui>
-#include <QtUiTools>
-
-CTemplateWidget::CTemplateWidget(QWidget *parent)
-    : QDialog(parent)
-{
-    setupUi(this);
-    connect(comboTemplates, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &CTemplateWidget::slotTemplateActivated);
-    connect(pushPreview, &QPushButton::pressed, this, &CTemplateWidget::slotPreview);
-    connect(toolPathTemplates, &QToolButton::pressed, this, &CTemplateWidget::slotSetPath);
-    listTemplates();
-}
-
-
-void CTemplateWidget::listTemplates()
-{
-    comboTemplates->clear();
-    comboTemplates->addItem(tr("choose one..."));
-    comboTemplates->addItem(tr("Hiking Tour Summary (built-in)"), "://templates/Hiking_Tour_Summary.ui");
-
-    SETTINGS;
-    const QString& path = cfg.value("TextEditWidget/templatePath", "").toString();
-
-    if(!path.isEmpty())
-    {
-        QDir dir(path);
-        QStringList files = dir.entryList(QStringList("*.ui"), QDir::Files);
-        for(const QString& file : files)
-        {
-            QString name = QFileInfo(file).completeBaseName().replace("_", " ");
-            comboTemplates->addItem(name, dir.absoluteFilePath(file));
-        }
-    }
-
-    const QString& data = cfg.value("TextEditWidget/template", "").toString();
-    const int idx = comboTemplates->findData(data);
-    if(idx != -1)
-    {
-        comboTemplates->setCurrentIndex(idx);
-    }
-}
-
-QString CTemplateWidget::text()
-{
-    if(widget.isNull())
-    {
-        return "";
-    }
-    QString str;
-
-    QList<QGroupBox*> groups = widget->findChildren<QGroupBox*>(QRegExp("group.*"), Qt::FindDirectChildrenOnly);
-    qSort(groups.begin(), groups.end(), [](const QGroupBox * g1, const QGroupBox * g2){return g1->objectName() < g2->objectName(); });
-
-    for(const QGroupBox * group : groups)
-    {
-        str += QString("<p><b>%1</b>: ").arg(group->title());
-        str += resolveGroup(group);
-        str += "</p>";
-    }
-
-    return str;
-}
-
-QString CTemplateWidget::resolveGroup(const QGroupBox * group)
-{
-    QString str;
-    QList<QWidget *> widgets = group->findChildren<QWidget*>(QRegExp(".*"), Qt::FindDirectChildrenOnly);
-    qSort(widgets.begin(), widgets.end(), [](const QWidget * w1, const QWidget * w2){return w1->property("order") < w2->property("order"); });
-
-    for(const QWidget * w : widgets)
-    {
-        const QString pre(str.isEmpty() ? "" : ", ");
-
-        {
-            const QCheckBox * obj = dynamic_cast<const QCheckBox*>(w);
-            if(obj != nullptr)
-            {
-                if(obj->isChecked())
-                {
-                    str += pre + obj->text().replace("&","");
-                }
-                continue;
-            }
-        }
-
-        {
-            const QRadioButton * obj = dynamic_cast<const QRadioButton*>(w);
-            if(obj != nullptr)
-            {
-                if(obj->isChecked())
-                {
-                    str += pre + obj->text().replace("&","");
-                }
-                continue;
-            }
-        }
-
-        {
-            const QComboBox * obj = dynamic_cast<const QComboBox*>(w);
-            if(obj != nullptr)
-            {
-                if(!obj->currentText().isEmpty())
-                {
-                    str += pre + obj->currentText();
-                }
-                continue;
-            }
-        }
-
-        {
-            const QLineEdit * obj = dynamic_cast<const QLineEdit*>(w);
-            if(obj != nullptr)
-            {
-                if(!obj->text().simplified().isEmpty())
-                {
-                    str += pre + obj->text();
-                }
-                continue;
-            }
-        }
-
-        {
-            const QTextEdit * obj = dynamic_cast<const QTextEdit*>(w);
-            if(obj != nullptr)
-            {
-                if(!obj->toPlainText().simplified().isEmpty())
-                {
-                    str += pre + obj->toHtml();
-                }
-                continue;
-            }
-        }
-    }
-
-    if(str.isEmpty())
-    {
-        str += tr("-");
-    }
-
-    return str;
-}
-
-void CTemplateWidget::slotSetPath()
-{
-    SETTINGS;
-    QString path = cfg.value("TextEditWidget/templatePath", QDir::homePath()).toString();
-    path = QFileDialog::getExistingDirectory(this, tr("Template path..."), path);
-    if(path.isEmpty())
-    {
-        return;
-    }
-    cfg.setValue("TextEditWidget/templatePath", path);
-    listTemplates();
-}
-
-void CTemplateWidget::slotTemplateActivated(int idx)
-{
-    delete widget;
-    if(idx < 1)
-    {
-        pushPreview->setEnabled(false);
-        buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
-        return;
-    }
-
-    bool success = false;
-    const QString& filename = comboTemplates->itemData(idx).toString();
-    QFile file(filename);
-    if(!file.open(QFile::ReadOnly))
-    {
-        widget = new QLabel(tr("Failed to read template file %1.").arg(filename));
-    }
-    else
-    {
-        QUiLoader loader;
-        widget = loader.load(&file, this);
-        file.close();
-
-        if(widget.isNull())
-        {
-            widget = new QLabel(loader.errorString());
-        }
-        else
-        {
-            // convert focus chain into a sortable property.
-            quint32 cnt     = 0;
-            QWidget * first = nextInFocusChain();
-            QWidget * next  = first;
-            do
-            {
-                if(  (dynamic_cast<QCheckBox*>(next) != nullptr)
-                     || (dynamic_cast<QRadioButton*>(next) != nullptr)
-                     || (dynamic_cast<QComboBox*>(next) != nullptr)
-                     || (dynamic_cast<QLineEdit*>(next) != nullptr)
-                     || (dynamic_cast<QTextEdit*>(next) != nullptr)
-                     )
-                {
-                    next->setProperty("order", cnt++);
-                }
-
-                next = next->nextInFocusChain();
-            }
-            while(next != first);
-
-            success = true;
-        }
-    }
-
-    layoutWidget->insertWidget(0,widget);
-    pushPreview->setEnabled(success);
-    buttonBox->button(QDialogButtonBox::Ok)->setEnabled(success);
-
-    SETTINGS;
-    cfg.setValue("TextEditWidget/template", filename);
-}
-
-void CTemplateWidget::slotPreview()
-{
-    QTextBrowser * preview = new QTextBrowser();
-
-    preview->setAttribute(Qt::WA_DeleteOnClose, true);
-    preview->setWindowModality(Qt::ApplicationModal);
-    preview->setReadOnly(true);
-    preview->setHtml(text());
-    preview->setWindowTitle(tr("Preview..."));
-
-    preview->setMinimumWidth(600);
-    preview->move(QApplication::desktop()->screen()->rect().center() - preview->rect().center());
-    preview->show();
-    preview->raise();
-
-    QAction * action = new QAction(preview);
-    action->setShortcut(Qt::Key_Escape);
-
-    preview->addAction(action);
-    connect(action, &QAction::triggered, preview, &QTextBrowser::close);
-}
diff --git a/templates/header.h b/templates/header.h
index baaa265..a596e92 100644
--- a/templates/header.h
+++ b/templates/header.h
@@ -1,5 +1,5 @@
 /**********************************************************************************************
-    Copyright (C) 2017 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 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
diff --git a/templates/source.c b/templates/source.c
index d97a399..b2b3bae 100644
--- a/templates/source.c
+++ b/templates/source.c
@@ -1,5 +1,5 @@
 /**********************************************************************************************
-    Copyright (C) 2017 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 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
diff --git a/templates/source.cpp b/templates/source.cpp
index 03d99e4..287844d 100644
--- a/templates/source.cpp
+++ b/templates/source.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************************************
-    Copyright (C) 2017 Oliver Eichler oliver.eichler at gmx.de
+    Copyright (C) 2018 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

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